10249| 1
|
[Ardublock] Makeblock搬运遥控车之车身行动控制 |
搬运遥控车的底盘是由金属铝合金结构件组建而成,它底盘驱动系统是由两个直流电机,四个同步带轮和橡胶履带组成的,以实现前后进退和左右转弯的动作。 为了让搬运遥控车的宽度限制在160mm内,我选用了两个短尺寸的电机并排放置在小车的后轮位置,如图1所示。两个电机由一块MC33886电机双路驱动板驱动。 图1 搬运遥控车的底盘 一、Makeblock搬运车车身行动部分的电控系统组成 搬运车车身行动部分的电控系统组成为:两个短尺寸直流电机、Arduino MEGA2560控制器与XBee无线数传模块,一块MC33886电机驱动板,稳压电源模块,还有12V锂聚合物电池。 用来驱动这两个短尺寸直流电机是MC33886驱动板。这个驱动板是一款大电流电机驱动模块,两路电机输出,可实现 PWM调速、正反转、制动功能等。 二、Makeblock搬运车的车身行动控制调试程序编制 机械和电子硬件组装完毕后,我一步步通过LabVIEW软件来调试各执行部件的动作,并确定出来重要参数。这次调试的是车身行动控制,确定出车子直行和转弯的速度,以及两个电机转速偏差为多少时,小车才会直行。 经常做智能车模型作品,你会发现,若给驱动左右两个车轮的电机相同的PWM功率值,小车却不能直行。可能有三个因素,导致了这种现象的出现。一是车轮的轮胎质量不行,比如轮胎没有内胆,有下陷的凹面,或者车身负载较大时,轮胎太硬,导致抓地能力不强而打滑;二是小车身上所带负载不平衡,车体左右一边重,一边较轻;三是驱动左右两个车轮的电机,它们的电气参数不一致。所以可以通过修正左右电机的PWM值,让它们之间有些偏差,小车就会被调整到走直线。 所以设计一个行动灵活,控制精确的智能车,我认为要注意以下几点: 1、在智能车能够完成规定任务的前提下,小车负载尽量做到最轻(除相扑机器人),同时小车左右两边的负载尽量做到均衡。 2、所选电机要能与小车负载匹配,小车应具有比较好的加速能力和响应能力。 3、驱动小车的电机最好能选用带编码器的电机,这样小车的控制能力可以被提升。 4、小车的轮胎需仔细选择,轮胎要有很好的韧性。 调试车身行动参数,采用了LabVIEW前面板,上位机与下位Arduino控制器通过XBee无线串口通信。 图2车身行动控制前面板 上图前面板中,左右两个旋钮控件分别用来设置小车左右电机的PWM值,PWM值范围为0~255,值越大,电机转速越快。当把小车左右电机的PWM值设置好后,按下启动按钮,小车被遥控行驶。若此时,按下停止按钮,则小车停止。 注意,小车的Arduino MEGA2560控制器上插有一块XBee数传模块,它与插在电脑USB适配器上的另一块XBee模块无线通信,该适配器如图3所示。 图3 Xbee适配器 这个适配器通过USB数据线插到电脑USB插口上,要通过Arduino软件自带的驱动,生成串口COM号。这个串口号可以在windows操作系统的设备管理器看到,并且要把这个COM号,填写到图2前面板右侧的“请选择串口号”列表框中。“波特率”列表框中的值也不能随便写,它要与下位机Arduino程序设置的波特率一致。 前面板后台程序是图形化编程语言,称为框图程序。在这个程序中,我采用了事件结构,这个结构分为三个由按钮控件引发的事件分支。三个按钮是分别指启动、停止、退出按钮。图4展示的就是启动按钮分支, 图4 车身行动控制框图程序之启动按钮事件分支 从图4看出,如果按下前面板的“启动”按钮,在后台框图程序中就会引发“启动”:值改变事件分支,这个分支程序的任务是先把五个字节数据转换为一个字符串,再输入到VISA写入VI中,这个VI就会通过RS322通信协议把五个字节下达给小车上的Arduino控制器。五个字节中第一个字节如果是0x11(十六进制),则表示小车启动,若是0x22,则小车停止;第二个字节决定小车左轮电机正转或者反转,0xAA表示前进,0xBB表示后退;第三个字节是决定右轮电机正转或者反转,0xAA表示前进,0xBB表示后退;第四个字节是左轮电机的PWM功率值,功率值的大小由图2中旋钮控件来调节,第五个字节是小车右轮电机的PWM功率值。 与上位机LabVIEW程序相配合的是Arduino程序,它的任务是:接受上位机下达的五个控制字节,并据此控制小车左右轮子的转向、转速。 Arduino程序:
通过三篇文章的介绍,讲解了如何用LabVIEW可视化界面,方便直观高效地确定出Arduino编程时所需的参数。这些参数包含有搬运车夹持器爪子张合角度;直线导轨上夹持器的升降高度和速度;以及小车走直线时左右电机的PWM值。 下面就要谈谈如何用SONY PS2手柄来遥控这个MakeBlock搬运车。这些确定好的重要参数,可以直接会用到遥控车的Arduino程序中,比如向前拨动手柄摇杆,小车左右电机按照事先设定好的PWM值,能向前走出直线。按下手柄某个按钮,夹持器的爪子收紧到规定角度,刚好紧紧抓住物料。 |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed