项目简介
本项目运用Python和Panda3D框架,对ICM - 20948惯性测量单元(IMU)的数据进行可视化处理。借助Arduino和Panda3D,可实时展示ICM - 20948芯片在SparkFun转接板上的方向变化。
项目的主要特性和功能
- 数据获取:利用ICM - 20948惯性测量单元获取实时数据。
- 传感器融合:采用Madgwick算法实现传感器融合,以进行精确的姿态估计。
- 数据传输:通过Arduino将IMU数据发送到计算机。
- 3D可视化:运用Python脚本接收串行端口数据,并实时更新3D模型的朝向。
- 用户界面:提供可视化界面,展示ICM - 20948芯片的方向变化。
安装使用步骤
假设用户已经下载了本项目的源码文件,安装和使用步骤如下:
1. 安装Arduino IDE:
- 安装Arduino IDE(推荐版本v1.8.13)。
- 在Arduino IDE中,安装SparkFun的ICM 20948库:打开Tools > Manage Libraries...
,搜索并安装Sparkfun ICM 20948
库(推荐版本v1.2.6)。
2. 上传固件:
- 打开imu_arduino_firmware
项目。
- 编译并上传至Arduino UNO。
3. 硬件连接:
- 连接ICM - 20948转接板至Arduino的I2C端口。
- 可选:连接一个触觉开关至特定引脚以实现重置功能。
4. 验证数据传输:
- 在Arduino IDE中打开串行监视器,设置波特率为115200。
- 确保数据以"HPR"为前缀输出,表示固件运行正常。
5. 设置Python环境:
- 创建一个Python 3虚拟环境,例如:python -m venv env
。
- 激活虚拟环境,例如:source env/bin/activate
。
- 安装必要的Python包,运行pip install -r requirements.txt
。
6. 转换3D模型文件:
- 将.blend
文件转换为.bam
文件,运行blend2bam imu_breakout.blend imu_breakout.bam
。
7. 运行可视化脚本:
- 在虚拟环境中运行python visualize_imu.py <serial_port>
。
- 例如,在Linux上运行:python visualize_imu.py /dev/ttyACM0
。
- 随后应该可以看到一个3D模型,其朝向与连接的Arduino/IMU相匹配。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】