PMW3901

这里记录下PMW3901的应用笔记,开发平台为真特么爽的树莓派,使用spidev这个python库。

PMW3901是一个性能还不错的硬件光流方案,来自Pixart厂,使用SPI协议传输,我自己试了下跑个100Hz简直不要太轻松,虽然精度比起OpenCV里面的各种算法差了不少,但是好在小巧而且不需要高性能处理器。(虽然我们今天使用的树莓派就算是性能挺高的处理器了。。。)

硬件连接

当然是接到SPI上啦,参考这里。片选我接的是CE0,当然你要接到CE1也可以,代码稍微改一下就好。注意使用的是SPI0而不是SPI1,因为我们使用的是MODE3,而恰好树莓派的SPI1对MODE3有bug,截止目前这个bug仍未修复。

软件环境

我使用的是raspbian操作系统,spi设备会被挂载到/dev/spidev*.*。你可以用以下命令检查

1
ls /dev/spidev*

如果是其他的操作系统,我不保证能正常运行。

安装spidev

如果你还没有安装的话,可以执行下面的命令来安装。我们使用python3,所以这里是pip3,如果你仍然在使用python2,我建议你现在更换。

1
sudo pip3 install spidev

协议分析

开发一个芯片必备的是什么?datasheet!

对于PMW3901,我们同样需要它的datasheet。比较可惜的是,Pixart似乎不太情愿提供,反正我找了很久都没找到下载datasheet的按钮,后来还是找淘宝卖家要的。