Sense HAT (C)

来自Waveshare Wiki
跳转至: 导航搜索
Sense HAT (C)
{{{name2}}}
{{{name3}}}
功能简介
特性 树莓派传感器扩展
' 无特性,不解释
' 无特性,不解释
' 无特性,不解释
' 无特性,不解释
接口 I2C AD

说明

产品概述

我是专为树莓派设计的传感器扩展板,板载了陀螺仪、加速度计、磁力计、气压计和温湿度传感器等,I2C接口通信,支持外接更多传感器。 如果你想把树莓派DIY成可以检测运动姿态、方位的机器人,或者想让树莓派采集周围环境的温湿度、大气压强等传感器数据,那就带上我吧。 

产品特点

  • 板载Raspberry Pi 40pin GPIO接口,适用于Raspberry Pi系列主板
  • 板载QMI8658+AK09918(3轴加速度、3轴陀螺仪和3轴磁力计),可检测运动姿态、方位和磁场
  • 板载SHTC3数字温湿度传感器,可感知环境的温度和湿度
  • 板载LPS22HB大气压强传感器,可感知环境的大气压强
  • 板载TCS34087颜色识别传感器,可识别周围物体的颜色
  • 板载SGM58031芯片,4通道16位精度ADC,可扩展AD功能以便接入更多传感器
  • 引出I2C控制接口,方便接入STM32、Arduino等主控板
  • 提供完善的配套资料手册(Raspberry/STM32等示例程序)

产品参数

产品参数
工作电压: 3.3V
通信接口: I2C
逻辑电压: 3.3V
产品尺寸: 65 x 30.5(mm)
加速度计特性: 分辨率:16位
量程(可选):±2、±4、±8、±16g
陀螺仪计特性: 分辨率:16位
量程(可选):±16、±32、±64、±128、±256、±512、 ±1024、±2048°/sec
磁力计特性: 分辨率:16位
量程:±4912µT
气压计特性: 分辨率:24位压力数据,16位温度数据;
测量精度(常温下): ±0.025hPa
测量范围:260 ~ 1260 hPa
测量速率:1 Hz - 75 Hz
温湿度传感器特性: 测量精度(湿度):±2% rH
测量范围(湿度):0% ~ 100% rH
测量精度(温度):±0.2°C
测量范围(湿度):-30 ~ 100°C
颜色识别传感器 分辨率:4通道RGBC,每个通道16位
AD转换芯片 分辨率:16位

产品大PK

PK项 Sense HAT (C) Sense HAT (B) 备注
陀螺仪 测量范围:±16/32/64/128/256/512/1024/2048 dps
分辨率:16位
测量范围:±250/500/1000/2000 dps
分辨率:16位
C型角速度可选量程更多
加速度计 测量范围:±2/4/8/16 g
分辨率:16位
测量范围:±2/4/8/16 g
分辨率:16位
 
磁力计 测量范围:±±49.12 gauss
分辨率:16位
测量范围:±49 gauss
分辨率:16位
C型磁力测量范围更广
气压计 测量范围:260 ~ 1260 hPa
测量精度(常温下): ±0.025hPa
测量速率:1 Hz - 75 Hz
测量范围:260 ~ 1260 hPa
测量精度(常温下): ±0.025hPa
测量速率:1 Hz - 75 Hz
温湿度传感器 测量精度(湿度):±2% rH
测量范围(湿度):0% ~ 100% rH
测量精度(温度):±0.2°C
测量范围(温度):-30 ~ 100°C
测量精度(湿度):±2% rH
测量范围(湿度):0% ~ 100% rH
测量精度(温度):±0.2°C
测量范围(温度):-30 ~ 100°C
其他 颜色识别传感器
高精度16位AD转换芯片
颜色识别传感器
高精度16位AD转换芯片

树莓派使用指南

硬件连接

实物硬件连接图:
接入树莓派Zero
Sense HAT C 3.jpg

接入树莓派4
Sense HAT C 2.jpg

接入传感器
Sense HAT C 4.jpg

开启I2C接口

  • 打开树莓派终端,输入以下指令进入配置界面
sudo raspi-config 
选择 Interfacing Options -> I2C ->yes 启动 i2C 内核驱动

RPI open i2c.png
然后重启树莓派:

sudo reboot

安装库函数

如果使用bookworm系统,只能使用lgpio库,bcm2835跟wiringPi无法安装与使用

BCM2835

#打开树莓派终端,并运行以下指令
wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.71.tar.gz
tar zxvf bcm2835-1.71.tar.gz 
cd bcm2835-1.71/
sudo ./configure && sudo make && sudo make check && sudo make install
# 更多的可以参考官网:http://www.airspayce.com/mikem/bcm2835/

wiringPi

#打开树莓派终端,并运行以下指令
cd
sudo apt-get install wiringpi
#对于树莓派2019年5月之后的系统(早于之前的可不用执行),可能需要进行升级:
wget https://project-downloads.drogon.net/wiringpi-latest.deb
sudo dpkg -i wiringpi-latest.deb
gpio -v
# 运行gpio -v会出现2.52版本,如果没有出现说明安装出错

#Bullseye分支系统使用如下命令:
git clone https://github.com/WiringPi/WiringPi
cd WiringPi
./build
gpio -v
# 运行gpio -v会出现2.70版本,如果没有出现说明安装出错

lgpio

#打开树莓派终端,并运行以下指令
wget https://github.com/joan2937/lg/archive/master.zip
unzip master.zip
cd lg-master
sudo make install

# 更多的可以参考官网:https://github.com/gpiozero/lg

python

sudo apt update
sudo apt install python3-pip 
sudo apt install python3-spidev
sudo apt install python3-smbus

下载例程

wget https://www.waveshare.net/w/upload/0/04/Sense_HAT_C_Pi.zip
unzip Sense_HAT_C_Pi.zip -d Sense_HAT_C_Pi
cd Sense_HAT_C_Pi/RaspberryPi

I2C设备地址

ADS1015: AD转换例程(STM32 , BCM2835,WringPi 和Python四种例程)设备地址:0x48
QMI8658:6轴传感器例程(STM32 , BCM2835,WringPi 和Python四种例程)设备地址:0x6B
AK09918C:3轴传感器例程(STM32 , BCM2835,WringPi 和Python四种例程)设备地址:0x0C
LPS22HB:气压传感器例程(STM32 , BCM2835,WringPi 和Python四种例程 )设备地址:0x5C
SHTC3:温湿度传感器例程(STM32 , BCM2835,WringPi 和Python四种例程 )设备地址:0x70
TCS34087:颜色识别传感器例程(STM32 , BCM2835,WringPi 和Python四种例程 )设备地址:0x29

注:该模块的所有传感器的I2C地址均不同,用户可同时使用板载的所有传感器。

IMU(QMI8658+AK09918C)示例程序 -9轴传感器演示

bcm2835程序

进入Linux终端,在终端执行以下命令。

cd /home/pi/Sense_HAT_C_Pi/RaspberryPi/IMU/bcm2835/
#pi为账户名称
sudo make clean
sudo make
sudo ./main

预期结果:
Sense C IMU.jpg
按下Ctrl+C结束程序。

wiringPi程序

进入Linux终端,在终端执行以下命令。

cd /home/pi/Sense_HAT_C_Pi/RaspberryPi/IMU/wiringPi/
#pi为账户名称
sudo make clean
sudo make
sudo ./main

预期结果:
Sense C IMU.jpg
按下Ctrl+C结束程序。

lgpio程序

进入Linux终端,在终端执行以下命令。

cd /home/pi/Sense_HAT_C_Pi/RaspberryPi/IMU/lgpio/
#pi为账户名称
sudo make clean
sudo make
sudo ./main

预期结果:
Sense C IMU.jpg
按下Ctrl+C结束程序。

python程序

进入Linux终端,在终端执行以下命令。

cd /home/pi/Sense_HAT_C_Pi/RaspberryPi/IMU/python/
#pi为账户名称
sudo python IMU.py

预期结果:
Sense C IMU.jpg

按下Ctrl+C结束程序。

STM32程序

该例程基于XNUCLEO-F103RB 开发板,通过串口2输出数据。 连线如下:

Sense HAT (C) STM32
3V3 +3.3V
GND GND
SDA PB9
SCL PB8

编译并下载程序:
Sense-hat-b-user-manual-cn6703.png

打开串口助手,设置波特率为115200
预期结果:
Sense-hat-b-user-manual-cn6732.png

参数校准和计算

计算加速度

程序测量出的加速度单位是LSB(最低有效位),实际使用中常常把单位换算成重力加速度(g)。默认量程为16384 LSB/g(±2g),所以测量的实际加速度为:
𝑎=Acceleration/16384 ,𝑈𝑛𝑖𝑡:𝑔

请参考:QMI8658A-v1.0.pdf 第17页

计算陀螺仪角速度

程序测量出的角速度单位是LSB(最低有效位),实际使用中常常把单位换算成角速度(°/秒)。默认量程为64 LSB/(°/s)(±500°/秒),所以测量的实际角速度为:
ω=Gyroscope/64 ,Unit:°/s

请参考:QMI8658A-v1.0.pdf 第18页

LPS22HBTR示例程序-气压传感器演示

注意:气压传感器的温度检测只作为补偿作用,如需准确的温度检测,请观察SHTC3温湿度传感器的数值为准。

bcm2835程序

进入Linux终端,在终端执行以下命令。

cd /home/pi/Sense_HAT_C_Pi/RaspberryPi/LPS22HBTR/bcm2835/
#pi为账户名称
sudo make clean
sudo make
sudo ./main

预期结果:
Sense-hat-b-user-manual-cn6951.png
按下Ctrl+C结束程序。

wiringPi程序

进入Linux终端,在终端执行以下命令。

cd /home/pi/Sense_HAT_C_Pi/RaspberryPi/LPS22HBTR/wiringPi/
#pi为账户名称
sudo make clean
sudo make
sudo ./main

预期结果:
Sense-hat-b-user-manual-cn7165.png
按下Ctrl+C结束程序。

lgpio程序

进入Linux终端,在终端执行以下命令。

cd /home/pi/Sense_HAT_C_Pi/RaspberryPi/LPS22HBTR/lgpio/
#pi为账户名称
sudo make clean
sudo make
sudo ./main

预期结果:
Sense-hat-b-user-manual-cn7165.png
按下Ctrl+C结束程序。

python程序

进入Linux终端,在终端执行以下命令。

cd /home/pi/Sense_HAT_C_Pi/RaspberryPi/LPS22HBTR/python/
#pi为账户名称
sudo python3 LPS22HB.py

预期结果:
Sense-hat-b-user-manual-cn7296.png
按下Ctrl+C结束程序。

STM32程序

该例程基于XNUCLEO-F103RB 开发板,通过串口2输出数据。
连线如下:

Sense HAT (C) STM32
3V3 +3.3V
GND GND
SDA PB9
SCL PB8

编译并下载程序:
Sense-hat-b-user-manual-cn7492.png

打开串口助手,设置波特率为115200
预期结果:
Sense-hat-b-user-manual-cn7521.png

SHTC3示例程序-温湿度传感器演示

注意:树莓派自身发热会影响实际测量温度,板子有引出I2C接口,如需准确的环境温度,可将树莓派跟模块隔一段距离再通过线材来连接来检测。

bcm2835程序

进入Linux终端,在终端执行以下命令。

cd /home/pi/Sense_HAT_C_Pi/RaspberryPi/SHTC3/bcm2835/
#pi为账户名称
sudo make clean
sudo make
sudo ./main

预期结果:
Sense-hat-b-user-manual-cn7730.png
按下Ctrl+C结束程序。

wiringPi程序

进入Linux终端,在终端执行以下命令。

cd /home/pi/Sense_HAT_C_Pi/RaspberryPi/SHTC3/wiringPi/
#pi为账户名称
sudo make clean
sudo make
sudo ./main

预期结果:
Sense-hat-b-user-manual-cn7936.png
按下Ctrl+C结束程序。

lgpio程序

进入Linux终端,在终端执行以下命令。

cd /home/pi/Sense_HAT_C_Pi/RaspberryPi/SHTC3/lgpio/
#pi为账户名称
sudo make clean
sudo make
sudo ./main

预期结果:
Sense-hat-b-user-manual-cn7936.png
按下Ctrl+C结束程序。

python程序

进入Linux终端,在终端执行以下命令。

cd /home/pi/Sense_HAT_C_Pi/RaspberryPi/SHTC3/python/
#pi为账户名称
sudo python3 SHTC3.py

预期结果:
Sense-hat-b-user-manual-cn7937.png
按下Ctrl+C结束程序。

STM32程序

该例程基于XNUCLEO-F103RB 开发板,通过串口2输出数据。
连线如下:

Sense HAT (C) STM32
3V3 +3.3V
GND GND
SDA PB9
SCL PB8

编译并下载程序:
Sense-hat-b-user-manual-cn8131.png
预期结果:
传感器正常无错误,LED2亮起:
Sense-hat-b-user-manual-cn8156.png

当空气湿度低于80%时LED3不亮。当空气湿度大于或等于80%时LED3亮起。
Sense-hat-b-user-manual-cn8197.png

TCS34087示例程序-颜色识别传感器演示

bcm2835程序

进入Linux终端,在终端执行以下命令。

cd /home/pi/Sense_HAT_C_Pi/RaspberryPi/TCS34087/bcm2835/
#pi为账户名称
sudo make clean
sudo make
sudo ./main

预期结果:
Sense-hat-b-user-manual-cn8415.png
按下Ctrl+C结束程序。

wiringPi程序

进入Linux终端,在终端执行以下命令。

cd /home/pi/Sense_HAT_C_Pi/RaspberryPi/TCS34087/wiringPi/
#pi为账户名称
sudo make clean
sudo make
sudo ./main

预期结果:
Sense-hat-b-user-manual-cn8627.png
按下Ctrl+C结束程序。

lgpio程序

进入Linux终端,在终端执行以下命令。

cd /home/pi/Sense_HAT_C_Pi/RaspberryPi/TCS34087/lgpio/
#pi为账户名称
sudo make clean
sudo make
sudo ./main

预期结果:
Sense-hat-b-user-manual-cn8627.png
按下Ctrl+C结束程序。

python程序

在终端输入以下命令执行程序:

cd /home/pi/Sense_HAT_C_Pi/RaspberryPi/TCS34087/python/
#pi为账户名称
sudo python main.py

预期结果:
Sense-hat-b-user-manual-cn8756.png
按下Ctrl+C结束程序。

STM32程序

该例程基于XNUCLEO-F103RB 开发板,通过串口2输出数据。
连线如下:

Sense HAT (C) STM32
3V3 +3.3V
GND GND
SDA PB9
SCL PB8

编译并下载程序:
Sense-hat-b-user-manual-cn8950.png
打开串口助手,设置波特率为115200
预期结果:
Sense-hat-b-user-manual-cn8979.png

这数据怎么转换成颜色呢?下面介绍一个工具,复制到浏览器打开即可

https://www.sioe.cn/yingyong/yanse-rgb-16/

也可以下载

https://www.waveshare.net/w/upload/0/05/Hexacolor3.7z

Sense-hat-b-user-manual-cn9116.png
Sense-hat-b-user-manual-cn9118.png

SGM58031示例程序-AD转换演示

bcm2835程序

进入Linux终端,在终端执行以下命令。

cd /home/pi/Sense_HAT_C_Pi/RaspberryPi/SGM58031/bcm2835/
#pi为账户名称
sudo make clean
sudo make
sudo ./main

预期结果:
Sense-hat-b-user-manual-cn9329.png

按下Ctrl+C结束程序。

wiringPi程序

进入Linux终端,在终端执行以下命令。

cd /home/pi/Sense_HAT_C_Pi/RaspberryPi/SGM58031/wiringPi/
#pi为账户名称
sudo make clean
sudo make
sudo ./main

预期结果:
Sense-hat-b-user-manual-cn9536.png
按下Ctrl+C结束程序。

lgpio程序

进入Linux终端,在终端执行以下命令。

cd /home/pi/Sense_HAT_C_Pi/RaspberryPi/SGM58031/lgpio/
#pi为账户名称
sudo make clean
sudo make
sudo ./main

预期结果:
Sense-hat-b-user-manual-cn9536.png
按下Ctrl+C结束程序。

python程序

进入Linux终端,在终端执行以下命令。

cd /home/pi/Sense_HAT_C_Pi/RaspberryPi/SGM58031/python/
#pi为账户名称
sudo python AD.py

预期结果:
Sense-hat-b-user-manual-cn9536.png
按下Ctrl+C结束程序。

STM32程序

该例程基于XNUCLEO-F103RB 开发板,通过串口2输出数据。
连线如下:

Sense HAT (C) STM32
3V3 +3.3V
GND GND
SDA PB9
SCL PB8

编译并下载程序:
Sense-hat-b-user-manual-cn9732.png
打开串口助手,设置波特率为115200
预期结果:
Sense-hat-b-user-manual-cn9761.png

FAQ


如果运行BCM2835例程正常,再运行python或者wiringPi可能会屏幕无法正常刷新,因为bcm2835库是树莓派cpu芯片的库函数,底层是直接操作寄存器,而wiringPi库和python的底层都是通过读写linux系统的设备文件操作设备,可能导致GPIO口异常,重启树莓派可完美解决。




技术支持


联系人:黄工
QQ:2850151199
EMAIL:2850151199@qq.com
电话:0755-83040712
微信:扫下方二维码添加
Service20-Weichat.png

说明:进行售后服务前,请准备好客户信息(定货单位、定货人等),以供验证