完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
最近 3 天我一直在研究 esp01 和 mpu9250,尝试了很多库、库更改、代码更改,在我来的时候,当 imu 连接到引脚 0 和 2 时,使用基本代码,如获取 acc、gyr 和 mag 值使用 dmp,它无法获取 mag 值。(如果没有 dmp,您可以获得较低赫兹的 mag 值)。
让我用一个例子来解释: 代码:全选#include //#include #define SerialPort Serial MPU9250_DMP imu; void setup() { delay(2000); SerialPort.begin(115200); // Wire.begin(2, 0); // Wire.setClock(400000); if (imu.begin() != INV_SUCCESS) { while (1) { SerialPort.println("Unable to communicate with MPU-9250"); SerialPort.println("Check connections, and try again."); SerialPort.println(); delay(5000); } } imu.setSensors(INV_XYZ_GYRO | INV_XYZ_ACCEL | INV_XYZ_COMPASS); SerialPort.println("o- sensors turned on."); delay(50); imu.setGyroFSR(2000); // Set gyro to 2000 dps imu.setAccelFSR(2); // Set accel to +/-2g imu.setLPF(5); // Set LPF corner frequency to 5Hz imu.setSampleRate(100); // Set sample rate to 10Hz SerialPort.println("o- sample rate set."); delay(50); imu.setCompassSampleRate(100); // Set mag rate to 10Hz SerialPort.println("o- compass sample rate set."); delay(50); } void loop() { delay(100); if ( imu.dataReady() ) { imu.update(UPDATE_ACCEL | UPDATE_GYRO | UPDATE_COMPASS); printIMUData(); } } void printIMUData(void) { float accelX = imu.calcAccel(imu.ax); float accelY = imu.calcAccel(imu.ay); float accelZ = imu.calcAccel(imu.az); float gyroX = imu.calcGyro(imu.gx); float gyroY = imu.calcGyro(imu.gy); float gyroZ = imu.calcGyro(imu.gz); float magX = imu.calcMag(imu.mx); float magY = imu.calcMag(imu.my); float magZ = imu.calcMag(imu.mz); SerialPort.println("Accel: " + String(accelX) + ", " + String(accelY) + ", " + String(accelZ) + " g"); SerialPort.println("Gyro: " + String(gyroX) + ", " + String(gyroY) + ", " + String(gyroZ) + " dps"); SerialPort.println("Mag: " + String(magX) + ", " + String(magY) + ", " + String(magZ) + " uT"); SerialPort.println("Time: " + String(imu.time) + " ms"); SerialPort.println(); } 在这段代码中,如果我们将它与 arduino uno 一起使用,它可以完美地工作,当涉及到 esp01 时,我添加了线库和线开始线来选择引脚 0 和 2,因为 esp01 默认情况下没有 4 和 5,它提供输出acc 和陀螺仪,但似乎无法连接到 mag(MPU9250(或辅助总线上带 |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
1089 浏览 1 评论
570浏览 6评论
476浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
459浏览 5评论
460浏览 4评论
432浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-14 09:41 , Processed in 0.985959 second(s), Total 44, Slave 38 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号