传感器扩展板(Sense HAT)
最后更新于
最后更新于
FreeBSD 中文社区 2024
树莓派传感器扩展板(Sense HAT)可为你的树莓派提供一系列传感功能。板载传感器可让你监测压力、湿度、温度、颜色、方向和运动。明亮的 8×8 RGB LED 矩阵可使传感器数据可视化,五个按钮的摇杆能让用户与你的项目进行交互。
Sense HAT 最初是为在国际空间站上使用而开发的,是树莓派基金会与欧洲航天局合作开展的 Astro Pi 教育计划的一部分。它可以帮助完成一切需要位置、运动、方向或环境传感的项目。
由官方支持的 Python 库提供了对所有板载传感器、LED 矩阵和操纵杆的控制。传感器扩展板兼容带有 40 针 GPIO 引脚排针型号的树莓派计算机。
为了正确工作,传感器扩展板需要最新的内核,启用 I²C,并准备一些库来继续。
确保你的 APT 软件源是最新的:
接下来,安装传感器扩展板软件包,这将确保内核是最新的,启用 I²C,并安装必要的库和程序:
最后,如果 I²C 被禁用或在安装之前内核是旧的,则可能需要重启:
安装后,可在 /usr/src/sense-hat/examples
下找到示例代码。
你可以在由树莓派出版的《Experiment with the Sense HAT》一书中找到有关如何使用传感器扩展板的更多信息。由 Raspberry Pi 基金会的教育团队编写,这本书是由 Raspberry Pi Press 出版的 MagPi Essentials 系列的一部分。该书涵盖了 Astro Pi 项目的背景,并指导你如何使用 Python 库利用所有传感器扩展板的功能。
你可以以 PDF 格式免费下载这本书,它已根据知识共享署名-非商业性使用-相同方式共享 3.0 未本地化(CC BY NC-SA)许可发布。
sense-hat 是传感器扩展板的官方支持库;它提供对所有板载传感器和 LED 矩阵的访问。
可在 sense-hat.readthedocs.io 找到该库的完整文档。
RTIMULib 是一个 C++ 和 Python 库,可使嵌入式 Linux 系统与 9 自由度和 10 自由度 IMU 的使用变得更加容易。/etc/RTIMULib.ini 中提供了一个预校准的设置文件,也被 sense-hat 复制并使用。包含的示例在当前工作目录中查找 RTIMULib.ini,因此你可能希望将文件复制到那里以获得更准确的数据。
RTIMULibDrive11 示例已经被预编译,以确保一切按预期工作。可以通过运行 RTIMULibDrive11 启动,并通过按 Ctrl C 停止。
注意
可以通过在适当的目录中运行 make 来编译 C/C++ 示例。
传感器扩展板配备有 8×8 RGB LED 点阵和五向按钮摇杆,并包含以下传感器:
陀螺仪
加速度计
磁力计
温度
气压
湿度
颜色和亮度
Sense HAT 和 Sense HAT V2 的原理图和机械图可供下载。
Sense HAT V1 原理图。
Sense HAT V2 原理图。
传感器扩展板机械图纸。
LED 点阵是一个带有 id“RPi-Sense FB”的 RGB565 帧缓冲区。适当的设备节点可以被写入为标准文件或进行 mmap 映射。包含的“snake”示例展示了如何访问帧缓冲区。
操纵杆显示为名为“Raspberry Pi Sense HAT Joystick”的输入事件设备,映射到方向键和回车键
。它应该受到任意能够处理输入的库的支持,或直接通过 evdev 接口。适用的库包括 SDL、pygame 和 python-evdev。包含的“snake”示例显示了如何直接访问操纵杆。
安装必要的软件并按照以下步骤运行校准程序:
然后你将看到此菜单:
按小写的 m
。然后将显示以下消息。按任意键开始。
启动后,你将看到屏幕上滚动的类似内容:
关注屏幕底部的两行,因为这些是程序中最近发布的测量结果。
现在,拿起树莓派和传感器扩展板,以尽可能多的方式移动它。最好拔掉所有非必要的电缆,以避免混乱。
尝试在俯仰、横滚和偏航轴上各获得一个完整的圆圈。在执行此操作时,请注意不要意外弹出存储卡。花几分钟移动传感器扩展板,当你发现数字不再变化时停止。
现在按小写 s 然后小写 x 退出程序。如果现在运行 ls 命令,你会看到已创建一个新的 RTIMULib.ini 文件。
除了这些步骤,你还可以通过执行上述步骤,但按 m 键而不是 e 键来执行椭球拟合。
当你完成后,将生成的 RTIMULib.ini 复制到 /etc/ 并删除 ~/.config/sense_hat/
中的本地副本:
通过向 /boot/firmware/config.txt 文件添加以下行来启用 I2C0 和 I2C1:
输入以下命令以重启:
下载并构建闪存工具:
注意
这些步骤可能不适用于树莓派 2B Rev 1.0 和树莓派 3B。固件将控制 I2C0,致使 ID 引脚被配置为输入。
可以使用以下命令读取 EEPROM 数据:
下载 EEPROM 设置并构建 .eep 二进制文件:
禁用写保护:
写入 EEPROM 数据:
重新启用写保护:
警告
此操作不会损坏你的树莓派或传感器扩展板,但如果发生错误,扩展板可能不能被自动检测到。上述步骤仅供调试目的。