搜索
bottom↓
回复: 47

准备做载人自平衡车,现在开始调试MPU6050

[复制链接]

出0入0汤圆

发表于 2012-8-31 10:09:17 | 显示全部楼层 |阅读模式
   淘宝买的 STM32F013RBT6 + MPU-6050 + 5883 + BMP085
  现在通过模拟I2C 已经读出MPU6050的数据,请大家分析这个传感器怎么样

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2012-8-31 10:12:44 | 显示全部楼层
做两轮自平衡车我认为就这个传感器就够了,我试了下BMP085 数据对这个车来说没什么用,5883我买的是PCB板,现在差几个元件没焊好,没有测试
下一步准备做加速度和角速度融合,准备采用互补滤波

出0入0汤圆

发表于 2012-8-31 12:54:26 | 显示全部楼层
和我用的配置差不多,PID是最难调的,其它都不算难

出0入0汤圆

发表于 2012-8-31 13:30:46 | 显示全部楼层
年初时试过:STM32F013C8T6 + MPU-6050 ,还没弄完,比较忙。

出0入0汤圆

 楼主| 发表于 2012-8-31 17:37:03 | 显示全部楼层
下午去了赛格电子市场,居然没买到 STM32F103CBT6,随便买了点 贴片电阻 电容 等小东西花了近100块,现在把HMC5883L PCB全焊好了,准备晚上把HMC5883L加到MPU6050一起做9轴

出0入0汤圆

 楼主| 发表于 2012-8-31 22:05:05 | 显示全部楼层
看来我的焊接技术基本过关,昨天焊的BMP085也可以正常工作,今天焊的HMC5883也工作了,现在已经可以读数据了,5883的方位基本正确,有抖动,反正是做车,无所谓了
我看看怎么校准

出0入0汤圆

 楼主| 发表于 2012-8-31 22:08:25 | 显示全部楼层
5883的Z轴数据不起作用的吗
X=Rec_Data[0]<<8 | Rec_Data[1];//Combine MSB and LSB of X Data output register
        Z=Rec_Data[2]<<8 | Rec_Data[3];//Combine MSB and LSB of Z Data output register
        Y=Rec_Data[4]<<8 | Rec_Data[5];//Combine MSB and LSB of Y Data output register
        Angle= atan2((double)Y,(double)X)*(180/3.14159265)+180;//单位:角度 (0~360)
没用到Z
warning:  #550-D: variable "Z" was set but never used

出0入0汤圆

 楼主| 发表于 2012-9-1 18:59:48 | 显示全部楼层
发现个问题,STM32 的硬件I2C有问题,I2C设备没应答就死在哪里了

出0入0汤圆

 楼主| 发表于 2012-9-1 21:34:34 | 显示全部楼层
用硬件I2C读不了5883 死在
while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED));//等待ACK
现在把6050和BMP085硬件I2C读出来了,就是BMP085数据不对,不知道是我焊坏了还是我不换换算

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2012-9-1 23:14:22 | 显示全部楼层
本帖最后由 robotkid 于 2012-9-1 23:18 编辑

哦,MPU6050硬件出来应该就没问题了吧,还没搞过电磁和气压传感

出0入0汤圆

 楼主| 发表于 2012-9-9 18:01:10 | 显示全部楼层
硬件I2C可以使用 但是不放心,暂时用模拟I2C。
我发现应该问题,是因为我的知识不够
       我用的是MPU6050 6轴模块。但是我发现 我沿一个轴转动的话,如果加速度X轴变化的话,角速度却是Y轴在变化,请问这是什么原因?
  我看了几个用ADXL345+L3G4200D做的AHRS的PCB,有的这个两个传感器是X与Y交叉安装的,但是有的PCB板却是方向轴一致的,
我现在假如只需要一个轴的加速度和一个州的角速度,是不是要用MPU6050传感器的X轴加速度和Y轴的角速度做互补滤波?
  我准备用24V电源轮胎直径20CM的无刷有齿有霍尔的电动车电机,驱动准备用去年实验过的用AVR M16的电路,把M16换成STM32F103(主要是用同一种单片机方便) ,用一路PWM通过与门芯片与3个IO连接IR2103的上臂输入,另外3个IO连接到IR2103的下臂输入。如果这样的话是不是用一个STM32就可以驱动2个电机,驱动器准备用I2C或者SPI与姿态控制器通信,姿态控制器发送需要的速度量给驱动器,驱动器返回,速度、每个臂的电流、电压给控制器,这样设计有问题吗

出0入0汤圆

 楼主| 发表于 2012-9-12 13:52:08 | 显示全部楼层
今天看了下STM32的处理速度,  从采集 MPU6050 HMC5883 10次数据求平均值然后更新四元数 ,然后计算出3个姿态角 72M时钟用时大概2.1毫秒  8M时钟大概8秒,采用的是 模拟I2C

出0入0汤圆

 楼主| 发表于 2012-9-12 13:53:40 | 显示全部楼层
是不是用了采集10组数据求平均值就不需要MPU6050自带的高通滤波和低通滤波

出0入0汤圆

 楼主| 发表于 2012-9-15 01:08:46 | 显示全部楼层
现在考虑怎么做驱动器,控制器与2个电机驱动器之间准备用CAN传输数据

出0入0汤圆

发表于 2012-9-15 03:23:38 来自手机 | 显示全部楼层
高手,关注

出0入0汤圆

发表于 2012-9-16 15:55:54 | 显示全部楼层
也正在做双轮自平衡,毕设

出0入0汤圆

发表于 2012-9-21 22:56:02 | 显示全部楼层
载人的还是选用ADI的陀螺仪吧!绝对又不一样的感觉!

出0入0汤圆

 楼主| 发表于 2012-9-26 20:58:59 | 显示全部楼层
本帖最后由 自学STM32 于 2012-9-26 21:55 编辑

这两天用STM32F103RBT6调试NRF24L01,发现个奇怪问题
把24L01初始化
void NRF24L01_Init(void)
{
        GPIO_ResetBits(GPIOC, GPIO_Pin_6);     
        //NRF24L01_Write_Buf(WRITE_REG + TX_ADDR, (u8*)TX_ADDRESS, TX_ADR_WIDTH);    // 写本地地址        
        NRF24L01_Write_Buf(WRITE_REG + RX_ADDR_P0, (u8*)RX_ADDRESS, RX_ADR_WIDTH); // 写接收端地址
        NRF24L01_Write_Reg(WRITE_REG + EN_AA, 0x00);      //  频道0自动        ACK应答允许        
        NRF24L01_Write_Reg(WRITE_REG + EN_RXADDR, 0x01);  //  允许接收地址只有频道0,如果需要多频道可以参考Page21
  NRF24L01_Write_Reg(WRITE_REG + SETUP_RETR,0x00);//设置自动重发间隔时间:500us + 86us;最大自动重发次数:16次        
        NRF24L01_Write_Reg(WRITE_REG + RF_CH, 0);        //   设置信道工作为2.4GHZ,收发必须一致
        NRF24L01_Write_Reg(WRITE_REG + RX_PW_P0, RX_PLOAD_WIDTH); //设置接收数据长度,本次设置为8字节
        NRF24L01_Write_Reg(WRITE_REG + RF_SETUP, 0x07);                   //设置发射速率为1MHZ,发射功率为最大值0dB
        //NRF24L01_Write_Reg(FLUSH_TX,0xff);
  NRF24L01_Write_Buf(WRITE_REG + TX_ADDR, (u8*)TX_ADDRESS, TX_ADR_WIDTH);    // 写本地地址        
}

这样的话发射机打开电源,接收机可以成功收到如果是这样的话就需要再按下发射机的复位开关才可以收到
void NRF24L01_Init(void)
{
        GPIO_ResetBits(GPIOC, GPIO_Pin_6);     
主要是这句,放到最后写入就不需要按复位开关  NRF24L01_Write_Buf(WRITE_REG + TX_ADDR, (u8*)TX_ADDRESS, TX_ADR_WIDTH);    // 写本地地址        
        NRF24L01_Write_Buf(WRITE_REG + RX_ADDR_P0, (u8*)RX_ADDRESS, RX_ADR_WIDTH); // 写接收端地址
        NRF24L01_Write_Reg(WRITE_REG + EN_AA, 0x00);      //  频道0自动        ACK应答允许        
        NRF24L01_Write_Reg(WRITE_REG + EN_RXADDR, 0x01);  //  允许接收地址只有频道0,如果需要多频道可以参考Page21
  NRF24L01_Write_Reg(WRITE_REG + SETUP_RETR,0x00);//设置自动重发间隔时间:500us + 86us;最大自动重发次数:16次        
        NRF24L01_Write_Reg(WRITE_REG + RF_CH, 0);        //   设置信道工作为2.4GHZ,收发必须一致
        NRF24L01_Write_Reg(WRITE_REG + RX_PW_P0, RX_PLOAD_WIDTH); //设置接收数据长度,本次设置为8字节
        NRF24L01_Write_Reg(WRITE_REG + RF_SETUP, 0x07);                   //设置发射速率为1MHZ,发射功率为最大值0dB
}

前天去逛二手市场发现一个成色不错的电烤箱,准备用来烘干感光油墨,将来还打算改成回流焊箱,不知道1500W的功率够不够我的
我的电脑有问题发表了图片

出0入0汤圆

发表于 2012-9-26 21:26:28 | 显示全部楼层
自学STM32 发表于 2012-9-1 21:34
用硬件I2C读不了5883 死在
while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED));// ...

楼主,看你的软件好像是买了论坛上某大侠的IMU板子吧,他也是用的软件I2C实现的。话说STM32的硬件I2C真的是有些问题,你可以去官方网站找一下他们的补救库,话说功能强大,可是牺牲了定时器等这些资源。

出0入0汤圆

 楼主| 发表于 2012-9-27 09:27:00 | 显示全部楼层
我是买的F103RBT6MINI板+ MPU6050模块+HCML5883模块

出0入0汤圆

发表于 2012-10-18 10:19:24 | 显示全部楼层
自学STM32 发表于 2012-9-27 09:27
我是买的F103RBT6MINI板+ MPU6050模块+HCML5883模块

MPU6050感觉加速度传感器有点慢,我的车虽然站起来了但是有点不稳,打算换传感器

出0入0汤圆

发表于 2012-12-10 12:13:08 | 显示全部楼层
分享下我读出来的数据:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2012-12-10 15:45:11 来自手机 | 显示全部楼层
denglu 发表于 2012-9-21 22:56
载人的还是选用ADI的陀螺仪吧!绝对又不一样的感觉!

为什么=-O,高手怎么认为,mpu6050效果不好吗?还有就是为什么载人的大车都选择了模拟的传感器呢?数字的不好吗?我用过6050,感觉还可以啊,你说的ADI的陀螺仪是模拟的还是数字的?

出0入0汤圆

发表于 2012-12-12 14:21:46 | 显示全部楼层
朋友,STM32调试MPU6050 的程序能给我看看吗?这几天我也在调试,但没成功,谢谢你了,我的邮箱skxiaopeng@163.com

出0入0汤圆

发表于 2012-12-14 12:21:44 | 显示全部楼层
MPU6050是拿来玩玩的,不能当真。

出0入0汤圆

发表于 2012-12-14 16:34:39 | 显示全部楼层
kmani 发表于 2012-12-14 12:21
MPU6050是拿来玩玩的,不能当真。

那肯定不能用来做载人的车了?!

出0入0汤圆

发表于 2012-12-14 21:44:49 | 显示全部楼层
chenjiawei7 发表于 2012-12-14 16:34
那肯定不能用来做载人的车了?!

我记得坛子里有人用MPU6050做过载人的,他觉得车子不稳,就换了其它的传感器,然后就比较稳了。我自己使用MPU6050,也觉得不太靠谱。

出0入0汤圆

发表于 2012-12-14 22:15:27 | 显示全部楼层
请问楼主测试软件用的是什么,有得下载吗?3q

出0入0汤圆

发表于 2012-12-25 11:36:20 | 显示全部楼层
楼上各位能否推荐一款靠谱点的传感器啊

出0入4汤圆

发表于 2012-12-26 20:32:40 | 显示全部楼层
好久没见楼主更新了啊

出0入0汤圆

发表于 2013-1-13 23:56:57 | 显示全部楼层
自学STM32 发表于 2012-9-1 21:34
用硬件I2C读不了5883 死在
while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED));// ...

能否将此软件共享下。。谢谢~

出0入0汤圆

发表于 2013-2-10 09:41:36 | 显示全部楼层
关于载人,现在已上市的商业成品就有用MPU-6050的

出0入0汤圆

发表于 2013-2-10 20:28:23 | 显示全部楼层
兄弟,加我个QQ,274890853.我搞stm32f407下的两轮小车

出0入0汤圆

发表于 2013-2-20 11:01:23 | 显示全部楼层
其实数字的跟模拟的区别不大,外围电路做好就行,
//////去淘宝搜Freeway 两轮平衡车

出0入0汤圆

发表于 2013-3-19 08:31:19 | 显示全部楼层
mini ahrs DEMO  软件 能发份我吗  992267082@qq.com

出0入0汤圆

发表于 2013-8-30 22:28:28 | 显示全部楼层
飞鹰377 发表于 2012-12-12 14:21
朋友,STM32调试MPU6050 的程序能给我看看吗?这几天我也在调试,但没成功,谢谢你了,我的邮箱
...

现在有程序了吗?我也在调试 ,在数据融合出问题了

出0入0汤圆

发表于 2013-8-30 22:29:06 | 显示全部楼层
想飞的四轴 发表于 2013-8-30 22:28
现在有程序了吗?我也在调试 ,在数据融合出问题了

我的邮箱1415890504@qq.com  谢了

出0入0汤圆

发表于 2013-9-17 02:43:04 | 显示全部楼层
自学STM32 发表于 2012-9-1 21:34
用硬件I2C读不了5883 死在
while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED));// ...

请问前辈,您的这个软件可否共享使用吗?

出0入0汤圆

发表于 2013-10-21 18:59:29 | 显示全部楼层
想飞的四轴 发表于 2013-8-30 22:29
我的邮箱  谢了

我也在调试,那个你调的怎么样了?能分享一下经验吗?也是数据融合的时候出现问题

出0入0汤圆

发表于 2013-10-25 14:10:59 | 显示全部楼层

MPU6050是拿来玩玩的,不能当真。

实际产品中有很多在用啊

出0入0汤圆

发表于 2013-11-3 19:59:00 | 显示全部楼层
楼主的车现在做的咋样了?

出0入0汤圆

发表于 2013-12-29 17:35:55 来自手机 | 显示全部楼层
6050十几块钱的东东也只能玩玩,真要做商品级别的车必须要用好的传感器

出0入0汤圆

发表于 2013-12-31 14:11:06 | 显示全部楼层
用6050做载人个人觉得不靠谱,这片子的加速度计非线性度大,陀螺仪的反应慢......
个人见解

出0入0汤圆

发表于 2014-3-10 20:05:23 | 显示全部楼层
认真阅读,学习了!

出0入0汤圆

发表于 2014-3-10 22:38:28 | 显示全部楼层
支持开源

出0入0汤圆

发表于 2014-5-11 23:28:04 | 显示全部楼层
MPU6050真的那么差劲吗?

出0入0汤圆

发表于 2014-5-16 09:27:56 | 显示全部楼层
我觉得还好啊,我就用的这个,能用

出0入0汤圆

发表于 2014-5-22 19:27:29 | 显示全部楼层
我已经用这个实现了两轮自平衡了,用LM3S2B93+MPU6050,没问题。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-6 09:28

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表