首页 理论教育 基础实验训练:掌握技能的关键

基础实验训练:掌握技能的关键

时间:2023-06-25 理论教育 版权反馈
【摘要】:图11.13基本舵机控制程序② 制作用一个子程序控制多个舵机的运动。图11.16设置新的子程序接线端图11.17子程序编写舵机应用程序。当传感器不等于1023,有信号,判断为假,此时小车停止,程序如图11.25所示。图11.24小车直行程序图11.25小车停止运行程序图11.26红外控制暂停最终程序注意:传感

基础实验训练:掌握技能的关键

1.小车的基本结构搭建

1)实验目的

使学生了解机器人机电一体化技术的基本原理和基本知识。

2)实验要求

掌握Nextmech各种构件的用途,用现有的构件搭建出一辆小车。

3)实验内容

(1)主动轮的安装。首先,将舵机装入电动机支架中,用四个螺钉与螺母上紧。然后,将输出头安装在舵机上,用螺柱连接联轴器和输出头。注意,输出头的螺钉必须拧紧以防小车松动。最后,将联轴器和车轮用螺钉拧紧,主动轮安装完成。

(2)从动轮的安装。将两个圆形片用螺柱拧紧,组成一个小轮。在两个双折面板上用螺柱固定螺钉,在小轮中加入合适的轴套。将这三部分连接在一起,最后安装在车身上固定。

(3)车身的安装。小车的车身主要是放置ARM,并安装传感器。所以,选择711×孔平板。由于ARM不能接触金属安装,否则会出现干扰,因此选择用螺柱将ARM与车身连接。

2.简单的舵机控制

1)实验目的

使学生了解机器人和机电一体化技术的基本原理,了解和掌握机器人和机电一体化技术的基本知识,培养学生机电一体化设计的能力。

2)实验要求

学会用软件编写舵机的基本控制程序,并将程序烧录进小车,使小车完成基本的动作。

3)实验内容

(1)调用舵机程序。在项目浏览器的MCB2300处右击,在弹出的快捷菜单中选择“添加”→“文件”命令,弹出“选择需插入的文件”对话框,找到控制舵机的两个程序PWM_Init.vi和PWM_Out.vi,单击“添加文件”按钮,如图11.12所示。

图11.12 “选择需插入的文件”对话框

然后,MCB2300下面就出现了舵机的子VI,将这两个子VI拖入程序的后面板,就调用了舵机的VI。PWM_Out有两个数据,上面的数值为所对应的引脚,下面的数值对应不同的速度或转动方向(圆周舵机)。

(2)创建基本舵机控制程序。

① 创建一个两帧的顺序结构,在第一帧内拖入PWM_Init舵机初始化子程序;第二帧创建一个while循环,并拖入PWM_Out子程序,将其第一个输入常量设置为所要控制的舵机引脚序号,第二个常量设置为0~15的数字,用来控制舵机转角/转角和方向。在while循环内放置一定的延时给程序一定的执行时间,同时添加循环终止条件用来停止程序。基本舵机控制程序如图11.13所示。

图11.13 基本舵机控制程序

② 制作用一个子程序控制多个舵机的运动。程序框图如图11.14所示,前面板如图11.15所示。首先,给第一个常量,即Channel(舵机频道),创建输入控件;然后,给第二个常量Duration%(持续时间%)创建输入控件。若一个子程序需要控制两个舵机,则重复一次以上操作。

图11.14 程序框图

图11.15 前面板

设置新的子程序接线端,如图11.16所示,先单击Channel,然后单击右上角接线处定义接线端,依次进行Duration%、Channel2、Duration%2的接线端设置,最后保存子程序。这样,子程序就可以实现一个程序控制两个舵机运动,不用在程序中多次使用原来程序。子程序如图11.17所示。

图11.16 设置新的子程序接线端

图11.17 子程序

(3)编写舵机应用程序。

① 小车的直行程序。由于小车两个舵机为对称安装,因此要想保持直行,必须两个轮子方向相反、速度相同,如左轮的速度数值为9,舵机与ARM1号引脚连接,则右轮就需要相反方向、速度相同,应为6,舵机的ARM2号引脚连接,所以最后的程序如图11.18所示。

② 小车的拐弯程序。小车拐弯时,以向左拐为例,只要左轮不动,而右轮向前转动,就会呈现出向左拐的运行状态。假如右轮的运行速度数值为2.5,小车拐弯程序如图11.19所示。

图11.18 小车直行程序示例

图11.19 小车拐弯程序示例

3.简单的传感器配合ARM控制

1)实验目的

使学生了解机器人和机电一体化技术的基本原理,了解、掌握机器人和机电一体化技术的基本知识,使学生对机器人和机电一体化技术有一个完整的理解。培养学生机电一体化设计的能力。

2)实验要求

学会用软件编写传感器控制舵机的基本控制程序,并将程序烧录进小车,使小车完成稍微复杂的动作。

3)实验内容

(1)调用传感器的程序。在项目浏览器中的MCB2300处右击,在弹出的快捷菜单中选择“新建”→“Elemental I/O”命令,弹出“新建Elemental I/O”对话框,选中“Analog Input”,选择传感器连接的不同引脚,单击向右的箭头进行添加,如图11.20所示。单击“确定”按钮,这样所用到的传感器信号就在项目浏览器的管理器中了,然后在项目浏览器中拖动所要用到的传感器到后面板上,即可调用。

(2)单个传感器控制实例。

① 小车障碍直行,遇到障碍转弯程序设计实例。(www.xing528.com)

假如传感器为触碰传感器,则将图11.21、11.22所示程序烧录进ARM,将会实现触碰传感器无信号(模拟无障碍),小车直行,一旦按下触碰开关(模拟遇到障碍物),小车实现拐弯。

当传感器等于1023时,即为无信号,判断为真,此时两舵机为7.2、7.5(此舵机的中值为7.35),表示为无障碍前进,如图11.21所示。

当传感器不等于1023时,即为有信号,判断为假,此时两舵机分别为7、0,表示为遇到障碍向左转,如图11.22所示。

图11.20 调用传感器程序

图11.21 无障碍直行程序

图11.22 直行变转弯程序

添加舵机的初始化程序和while循环,将以上程序添加到while循环中,让程序一直运行,最终程序如图11.23所示。

图11.23 直行变转弯最终程序

② 小车的红外控制暂停程序设计实例。

传感器为红外传感器,当有信号时,小车停止运行;当无信号时,小车直行,其基本原理与直行变转弯相同。

当传感器等于1023时,无信号,判断为真,此时小车直行,程序如图11.24所示。

当传感器不等于1023,有信号,判断为假,此时小车停止,程序如图11.25所示。

与上一个程序相同的原理,初始化舵机必须加入顺序结构,使程序不断运行,即加入while循环。最终程序如图11.26所示。

图11.24 小车直行程序

图11.25 小车停止运行程序

图11.26 红外控制暂停最终程序

注意:传感器所用编号要对应所插的引脚。舵机也一样。

(3)两个传感器控制机器人的逻辑。

既然已经知道一个传感器的控制方法,那么两个传感器的控制也就可以尝试进行。机器人其实和人的大脑类似,实现复杂的运动的基础就是一个个的判断,两个传感器就是两次判断。例如,人要喝水,会经过两次判断,第一次判断是否有水,第二次判断是否能喝,机器人也是这样。

下面,做一个“逃命机器人”。当后面有人追它时,机器人会向前跑;逃跑过程中,如遇到障碍,则会绕开障碍,继续逃跑。这个过程中机器人经历了两次判断,第一次判断是否有人追;第二次判断前进路线是否有障碍。为了方便起见,依然采用近红外传感器和触碰传感器,把红外传感器放在小车后部检测是否有人追,将触碰传感器放在前方检测是否触碰障碍物,其流程图如图11.27所示。

图11.27 “逃命机器人”流程图

根据流程图编写程序,如图11.28所示。由于前方触碰到物体,无法直接拐弯,需先后退再转弯,此时编写一个顺序结构,并用定时器来控制后退的距离和拐弯的角度。

图11.28 “逃跑机器人”最终程序

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈