模板: 10 DOF IMU for RPIuse

来自Waveshare Wiki
跳转至: 导航搜索

开启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

下载测试程序

打开树莓派终端,执行:

sudo apt-get install p7zip-full -y
sudo wget  https://www.waveshare.net/w/upload/c/c1/10_DOF_IMU_Sensor_D_Code.7z
7z x 10_DOF_IMU_Sensor_D_Code.7z -O./10_DOF_IMU_Sensor_D_Code
cd 10_DOF_IMU_Sensor_D_Code/RaspberryPi/

硬件连接

树莓派连接引脚对应关系
10 DOF Raspberry Pi 功能
Board物理引脚序号
VCC 5V 电源输入
GND GND 电源地
SDA 3 I2C数据输入
SCL 5 I2C时钟信号

10 DOF IMU RPI C 2.jpg

运行测试程序

以下命令请在RaspberryPi下执行,否则不在索引不到目录;

C

  • 重新编译,编译过程可能需要几秒

BCM2835

cd BCM2853
sudo make clean
sudo make 
sudo ./10Dof-D_D

wiringPi

cd wiringPi
sudo make clean
sudo make 
sudo ./10Dof-D_Demo

注意:如果运行过BCM2835,请重启之后再运行wiringPi。

现象

在树莓派运行程序后,就会输出以下数据:
10 DOF IMU RPI C 1.jpg

串口输出数据含义

Roll, Pitch, Yaw Roll 倾角(°), Pitch 倾角(°), Yaw 倾角(°)
Acceleration 加速度(LSB,可换算为 g
Gyroscope 陀螺仪角速度(LSB,可换算为°/秒
Magnetic 电子罗盘(LSB,可转换μT
Angle 方向角(°),理论上等于 Yaw 倾角。
Pressure 气压值(hPa)
Altitude 海拔高度(m)
Temperature 温度值(℃)

备注:
①:示例程序串口输出的加速度为寄存器原始值(既寄存器数值),该数值
除以16384后,即可转化为单位为g(重力加速度常数)的数值。
②:示例程序串口输出的角速度为寄存器原始值(既寄存器数值),该数值
除以32.8后,即可转化为单位为dps(角度/秒)的数值。
③:示例程序串口输出的磁传感器数值为寄存器原始值(既寄存器数值),该
数值乘以0.15,即可转化为单位为μT(10-6特斯拉)的数值。