21156| 10
|
告别坡道翻车!会上坡的履带车 |
告别坡道翻车!会上坡的履带车 你是不是还在为自己的蔽障小车不会上坡而困扰,除了爬坡路线单一的巡线小车,疲于操作的遥控车,怎么让小车智能的爬上一个个小土坡?运用六轴传感器mpu6050的履带车横空出世了,通过读取自身的运动姿态,小车及时进行方向修正,免于坡道翻车。 上坡演示 Step1:所需硬件 Step2: 调试mpu6050 前几天也在论坛发过一个关于mpu6050的数字运动处理器DMP(Digital Motion Processor)的帖子,这个坡道履带车就是简单运用了数字运动处理器得到的稳定的pitch角与roll角。 这里再简单的说一下mpu6050 DMP的用法。 A .连线图 B.使用Arduino得到六轴传感器的pitch与roll角 1. 通过usb线将uno板连接到电脑上。 2. 下载mpu6050DMP的arduino库(i2cdevlib-bef1b387f3331acaba5723f36a604b4d777b966b.zip) 3. 打开arduino,打开DMP库中自带的mpu6050 6mpu示例 4 上传代码到uno板中可以看到结果如下 注:陀螺仪的自动校正在八秒左右完成,之后的数据就非常稳定了(后面两个值分别是pitch角和roll角) C.数据分析 为了实现坡道方向修正,首先判断履带车是在上坡还是下坡(判断roll角),roll角大于0是上坡roll角小于0是下坡。然后判断pitch角根据实际情况赋予左转或是右转命令。 Step3:安装灯带 为了让小车更显特别,灯带装饰当然是少不了的啦,这里我也简单介绍一下灯带的使用。 A.先上连线图 注:数字4567引脚默认电机使用所以这里将数字绿色导线接在数字8引脚。 B. 和之前一样下载灯带的arduino库(libraries_for_LEDStrip.zip) 使用示例的rainbow代码: 根据自己的灯带数量在代码开头的“#define LED_COUNT 180 ”定义灯带数量的地方改成对应数量。 C. 把灯带安装在自己喜欢的地方 彩虹眉 Step4:把小车mpu6050与灯带组装在一起 安装mpu6050的时候要根据(下图)它的坐标轴,Y轴箭头方向向前安装在与小车平行的位置。 原理使用 if(roll>0) //上坡中 { if (abs(pitch)<3) //3为设置的阈值角度可以根据需要调整 { carAdvance(150,150); //无pitch偏转,小车前进。 delay(100); } else if (pitch>3){ //小车pitch>3,右转。 carTurnRight(200,200); delay(100); } else //小车pitch<-3,左转。 {carTurnLeft(200,200); delay(100); } } if(roll<0) //下坡中 { if (abs(pitch)<3) { carAdvance(150,150); delay(100);} else if (pitch>3){ carTurnLeft(200,200); delay(100); } else {carTurnRight(200,200); delay(100); } } 附: 小车存在的问题:对于较小的坡度识别度较差,因为车身与六轴传感器本身存在的倾角与履带车在运行时车身的震动都会使数据产生误差。 |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed