|
楼主
查看: 5230回复: 2
发表于 2019-3-5 20:36:51
只看该作者
本帖最后由 电赛小编 于 2019-4-11 17:43 编辑
一、材料清单
硬件组件:MSP432P401R核心板、电源模块、电机驱动模块、编码减速电机组、红外遥控接收模块、红外测距传感器
软件:cloud composer Studio
工具:3D打印机、激光切割机、抛光机、电钻
二、项目介绍
本机器人组件作为一个基础版的迷宫机器人,可实现的功能相对有限,而且提供的东西比较有限,但是在板子是MSP432,是非常强大的32单片机,可以随意添加各种模块,我们在后期尝试加入**,MPU6050,蓝牙,超声波。选择该项目其实有很多原因,之前我们接触过51单片机,STM32单片机,K60,但是唯独没有接触过MSP系列单片机,所以非常想尝试接触一下。另外呢,今年我们准备参加河南省大学生机器人大赛迷宫组,包括车模的制作、程序的书写,硬件的制作,之前从未有过了解,在山穷水尽之时,TI恰逢其时伸出援助之手,千里送珍宝,礼轻情意重,在此再次感谢TI。项目的过程可谓一波三折,但是我们发扬了不放弃不抛弃的精神,废寝忘食,攻关克难,克服重重困难,攻占一座又一座堡垒,占领一座又一座堡垒。首先是组装,这肯定没啥难度,装不起来还玩啥,但是在这有点意见提一下,作为迷宫鼠,我感觉车子有点偏大,河南省机器人大赛以及其他比赛来看,车子都是小而精致的,所以在这里提供一下建议,车子应该再缩小点,(可能专家考虑到教学问题)。组装完毕就可以正式写程序调试了,但是问题来了,应该选择哪种编译软件呢,官方推荐CCS,但是我们觉得Keil也可以,而且电脑上本啦就有,可以省去下载的时间,但是我们找了好久,实在是找不到库,那没办法用寄存器版本吧,虽然比较麻烦,但是问题又来了,给的文档里边没有原理图,在群里问其他人有没有,大家都没有,后来在视频里找到了,只能在视频里截图保存,原理图搞定了,程序就好写了,下载时却下不进去,搞了好几个小时也没搞好,就是找不到原因,后来无奈换成CCS,但是这个CCS更折磨人,安装时有一个毛病,就是要把电脑里面的杀毒软件全部卸掉,否则安装不上,但是卸了却还是显示没卸掉,真是折磨人啊,后来用了cloud composer Studio,虽然有点卡,但是起码能用,能凑活。第一,要让电机跑起来,必须了解电机驱动相关原理,只需要给电机高低电平就可以了。
第二就是PWM波了,PWM脉宽调制,是靠改变脉冲宽度来控制输出电压,通过改变周期来控制其输出频率。而输出频率的变化可通过改变此脉冲的调制周期来实现。这样,使调压和调频两个作用配合一致,且于中间直流环节无关,因而加快了调节速度,改善了动态性能。由于输出等幅脉冲只需恒定直流电源供电,可用不可控整流器取代相控整流器,使电网侧的功率因数大大改善。利用PWM逆变器能够抑制或消除低次谐波。加上使用自关断器件,开关频率大幅度提高,输出波形可以非常接近正弦波。第三就是红外循迹了,红外寻迹原理其实很简单,利用判断黑白线来完成寻迹,红外光有一个反射特性。但对于不同的物体反射特性是不同,特别是对白色反光的物体,红外光的反射量将会多一点。而对黑色不反光的物体,红外反射量将会大量的减少。那么我们就可利用这个特性来完成黑与白的判断。在程序上,
1. 利用黑色对光线的反射率小这个特点,当平面的颜色不是黑色时,传感器发射出去的红外光被大部分反射回来。于是传感器输出低电平0。
2. 当平面中有一黑线,传感器在黑线上方时,因黑色的反射能力很弱,反射回来的红外光很少,达不到传感器动作的水平,所以传感器输出1。
3.我们只要用单片机判断传感器的输出端是0或者是1,就能检测到黑线。
红外循迹刚开始调试时也遇到很多问题,第一,车子并没有识别到黑线,不按黑线走。第二,车子按黑线走了,但是走走就跑出黑线了。后来经过讨论我们解决了这两个问题,没有识别到黑线,使我们忽略了光干扰这个问题,当时测试时正值中午,光线特别强,但到了下午在测试时,小车走的很好,顺利寻黑线。
第二个问题是PWM波的问题,我们把车速调的太高,以至于车的识别反应时间赶不上车速,车子直接冲出去。
第四就是碰撞开关了,碰撞开关的原理非常简单,完全依靠内部的机械结构来完成电路的导通和中断,当碰撞开关的外部探测臂受到碰撞,探测臂受力下压带动碰撞开关内部的簧片拨动,从而电路的导通状态发生改变。
第五就是红外避障了,1. 利用障碍物对光线的反射特点,当前面的有障碍物时,传感器发射出去的红外光被大部分反射回来。
2. 当前面中没有障碍物时,传感器在小车上方,因为远距离物体反射后的信号很弱,反射回来的红外光很少,达不到传感器动作的水平,所以传感器输出1。
3. 我们只要用单片机判断传感器的输出端是0或者是1,就能知道是否检测到障碍物,进行避障
第六就是红外遥控,这是所有里面最难得,要知道这两个问题1.理解红外发射的信号调制和解调2.掌握NEC协议编码及解码,这个比较麻烦就看代码吧!
自己diy部分,主要用了MPU6050,**
对于MPU6050,主要是实现姿态解算,我们把万向轮给拆了,车子变成自平衡小车,首先MPU6050采集x/y/z轴的加速度等数据,经过DMP姿态解算最终得出俯仰角,然后再用PID控制算法进行负反馈,是小车实现平衡。但是最终由于电机,还有车子本身结构的限制,凭借程序无法做到平衡。
对于**,我们要对采集到的图像进行处理,首先进行灰度化,由于只是识别黑白,所以不需要边缘检测,可直接进行二值化,**识别黑线,车子延黑线前进。
其他:
最终项目难度:中级
最少1个月[img]D:\MobileFile[img]D:\MobileFile[img]D:\MobileFile[img]D:\MobileFile[img]D:\MobileFile[/img][/img][/img][/img][/img] |
|