PYNQ 传感器数据可视化一网打尽

本文转载自: PYNQ开源社区微信公众号

本项目介绍了Sense HAT在PYNQ上的使用。Sense HAT是是为树莓派设计的集成外设板,包含了惯性传感器、湿度温度传感器、气压传感器和一个8×8LED矩阵。这些外设通过I2C总线利用不同设备地址来访问。本项目分成三个部分介绍:LED矩阵显示字符、温度气压传感器读取和惯性传感器数据读取。

快速开始
在PYNQ的Terminal中运行以下命令安装:

sudo pip3 install git + https://github.com/xupsh/pynq-sense-hat.git

安装完成后jupyter_notebooks下将会出现pynq-sense-hat文件夹,里面有三个notebook可以运行。

案例演示

1. LED矩阵显示实验

运行01_character.ipynb。

这里将包含各种库并,下载bit文件,切换到树莓派模式并配置IIC接口。注意,因为树莓派接口有8个管脚是和PMODA共用的,所以要使用树莓派接口,需要在一开始把这八个管脚切换过来(它们默认连接在PMODA,利用select_rpi()方法切换到树莓派接口,也可以利用select_pmoda()方法切换回PMODA)。Sense HAT使用的是IIC1,也就是GPIO2和GPIO3这两个引脚。LED矩阵控制器的IIC地址是0x46。

这一部分是建立一个列表,这个列表里储存了各字符的字模,也就是各字符对应的点阵。

这里将会把输入的字符串,逐字显示在屏幕上,如下图所示:

2. 温度气压传感器实验

运行02_sensor.ipynb,前面的包含库等等和显示实验的类似。

由于传感器数据是自动更新的,所以只要读取传感器对象的pressure和Temperature成员就可以得到气压和温度。

由于传感器数据是自动更新的,所以只要读取传感器对象的pressure和Temperature成员就可以得到气压和温度。

3. 惯性传感器实验

运行03_imu.ipynb,初始化过程和前两个实验一致。

这里定义了level_meter函数,这个函数将把惯性传感器测到的一对正交加速度(在Sense HAT没有水平运动的时候,从这对正交加速度可以得到重力加速度方向)转换成LED矩阵中光块的位置并显示。

这一段代码演示了如何读取IMU的数据,Sense HAT使用的LSM9DS1是一个复合传感器,内置加速度计、磁力计和陀螺仪。

这一段代码就是不断循环读取IMU数据并且显示在LED矩阵上,可以按下BTN0来退出。

这是水平放置在桌面的状态,可以看到光块在正中央。

这是倾斜后的状态,可以看到光块随着板卡的倾斜“滑落”了下来。

总结

通过上述案例演示,我们可以看到PYNQ对树莓派接口的操作非常简单,可以在这之上利用树莓派庞大的外设库开发出很多有趣的项目。

项目参考网站: https://github.com/xupsh/pynq-sense-hat

最新文章

最新文章