移动机器小车的控制

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

54
2017年7月上 第13期 总第265期
机器人逐渐进入到人们的生活当中,如现在家用的扫地机器人、饭店使用的洗碗机等等。

机器人方便了人们的生活,优化了人们的生活方式。

机器人在未来一定可以对人类的生活起到更大的作用。

移动机器人在生活中的应用逐渐普遍,也引起了我对它的兴趣,我从简单的移动机器小车入手,开始学习与研究移动机器小车的控制,从而对机器人有更深的理解。

1 移动机器小车的基础知识
移动机器小车即使用伺服电机根据软件编程的设定,发出脉冲控制机器小车完成运动、避障、跟随等任务的机器。

1.1 软件介绍
BASIC Stamp是由美国Parallax公司自1992年起所提创的一种微控制器,此种微控制器与其他微控制器不同的
地方在于:微控制器中的R O M 内存内建了一套小型、特有
的BASIC编程语言直译器,称为:PBASIC。

1.2 硬件介绍伺服电机:伺服系统是使物体的位置、方位、状态等输出被控量能够跟随输入目标(或给定值)的任意变化的自动控制系统。

面包板:面包板是由于板子上有很多小插孔,专为电子电路的无焊接实验设计制造的。

电子元器件可根据需要随意插入或拔出。

1.3 指令和循环语句
伺服电机在收到某一特定的信号时,处于静止状态。

本次使用的伺服电机在收到脉冲宽度为1.5m s 的脉冲信号时,处于静止状态。

在计算机上,将使用一个P U L S O U T 指令。

PAUSE是低电平,PULSOUT输出的是高电平。

PULSOUT指令:PULSOUT Pin,Time。

Time是用来计算脉冲宽度的时间单位数,时间单位是2/μs ,则零点脉冲宽度为Time=0.0015s/0.000002s=750。

要控制脉冲之间的间隔则需要使用P A U S E 指令。

PAUSE指令:PAUSE T。

T是PAUSE的值,它表示微控制器在执行下一条指令之前要等待多久。

T 的单位是1m s 。

如要等待0.5秒,则给T赋值为500:PAUSE 500。

要持续产生脉冲信号,则还需要用到D O …L O O P 循环语句当中。

DO…LOOP语句:DO
 PULSOUT 1,750 PAUSE 500LOOP
如此则可以循环运行指令。

还有一种FO R…NE XT 的语句适用于有限次数的循环:C VAR Word FOR C=1 TO 200C=C+1
PULSOUT 1,850PULSOUT 2,650PAUSE 20NEXT
根据计算,循环一次的时间大概为23ms,循环200次,则为4.6秒。

1.4 匀速运动和匀变速运动的原理以及执行方法匀速运动:当T i me 参数的值大于750时,会使伺服电机逆时针旋转,而当T i m e 的值为850时,则会全速逆时针旋转。

顺时针反之亦然。

当要匀速运动时,可以使用P U L S O U T 指令使两个伺服电机同时旋转。

由于两个电机对应方向相反,则一个电机顺时针输出,一个电机逆时针输出可以完成匀速运动。

表1。

DO
 PULSOUT 1,850 PULSOUT 2,650 PAUSE 20LOOP
如果测量出不同脉冲宽度下行走的距离,可以计算出小车的行驶速度。

匀变速运动:当T i m e 输出的参数逐渐变化时,速度也会由此变化,则依据此可以进行匀变速运动代码的编写:
C VAR Word
作者简介:孙昱放,男,河南三门峡人,研究方向:工程学、教育学等。

移动机器小车的控制
孙昱放
(西安交通大学附属中学,陕西西安 710043)
摘 要:伴随科学技术的发展和人民生活水平的提高,移动机器小车在现实生产和生活中,得到了极为广泛的应用。

本文在系统介绍了移动机器小车的基础知识基础上,重点阐述了移动机器小车设计与被动避障、主动避障的控制,以及追踪控制的工作原理和应用。

关键词:移动机器小车;控制;制作与设计中图分类号:TP24文献标识码:A 文章编号:1671-2064(2017)13-0054-03
表1
伺服电机1(左) 伺服电机2(右) 静止 750 750 全速前进 850 650 全速后退 650 850 向左转 650 650 向右转
850
850
. All Rights Reserved.
55
2017年7月上 第13期 总第265期
For C=1 To 100 Pulse out 1,750+1 Pulse out 2,750-1 PAUSE 20NEXT
在100次循环后,速度逐渐增加到最大值,完成了一次匀变速运动。

根据加减的数值大小算出加速度的大小。

2 被动避障
被动避障是机器小车进行的被动行为。

当机器小车被障碍阻碍从而被动接受到障碍的信号时,做出转动和避让。

2.1 被动避障的原理
可以通过一个感受障碍的装置,将障碍信号转化为电信号。

本次使用了一个类似胡须的装置来完成这个任务。

胡须是类似一个触角的金属丝,弯曲形成一个环形,在前面感测障碍,胡须如同一个开关,控制着机器小车。

胡须开关的状态值1或0储存在I N 7的变量中。

当没有被按下时存储值为1,胡须被按下时存储值为0。

机器小车在行走中,一旦胡须被按下,就代表有障碍物,根据胡须的不同情况使机器小车进行不同的动作,从而完成被动避障。

2.2 被动避障使用的代码以及程序的设计为了使机器小车进行判断,需要使用I F …T HE N 语句:IF (cundition)THEN…{ELSEIF(CONDITION)}…{ELSE}…ENDIF
可以提前编制一些动作的代码,在程序中使用G O S U B 来进行子函数,这样在写程序中就简洁许多。

(I N 5为左胡须的存储器,I N 7为右胡须的存储器)
3 主动避障
主动避障是机器小车进行的主动行为。

当机器小车在还未接触到障碍时主动接收到障碍的信号时,做出转动和避让。

3.1 主动避障的原理
可以通过一个红外感应装置,将障碍信号转化为电信号。

我使用了红外线探测器完成这项任务。

机器小车上使用了红外线二极管L E D 作为发射源,如果有障碍物,则会对红外线进行阻碍和反射,如此则机器小车上的红外线探测器便可以测得反射回来的红外线。

为了排除普通光源的干扰,红外线探测器内部的光滤波器只允许980n m 波长的红外线通过,并且红外线探测器的电子滤波器只允许38500Hz的电信号通过,即只寻找每秒闪烁38500次的红外线。

3.2 主动避障使用的代码以及程序的设计
为了让红外线二极管L E D 发出所需的和声信号,需使用FREQOUT指令。

如:
FREQOUT 8,1,38500
这句代码的指令就是连接到8号引脚的红外线二极管LED电路发送1ms频率为38500Hz的和声信号。

当红外线探测器接收到红外信号时会产生存储值,没发现物体显示1,发现物体显示0。

IRDL和IRDR是左右两个红外线探测器的存储值。

使用下面代码即可将存储值储存到存储器当中。

IRD VARL Bit IRD=IN9
则主动避障的程序代码为(定义变量)IRDL VAR Bit IRDR VAR Bit C VAR Byte (主程序)DO
 FREQOUT8,8,1,38500 IRDL=IN9
 FREQOUT8,2,1,38500 IRDL=IN0
 IF(IN9=0)AND(IN0=0) THEN ’表示前方有障碍 GOSUB BACK GOSUB LEFT GOSUB LEFT
 ELSEIF(IN9=0) THEN ’表示左边有障碍 GOSUB BACK GOSUB RIGHT
 ELSEIF(IN0=0) THEN ’表示右边有障碍 GOSUB BACK GOSUB LEFT
 ELSE GOSUB GO ’无障碍则持续前进 ENDIF LOOP
(子函数)GO:’表示前进的子函数PULSOUT 1,850PULSOUT 2,650PAUSE 20RETURN LEFT:’表示左转的子函数 FOR C=0 TO 20 PULSOUT 1,650PULSOUT 2,650PAUSE 20 NEXT RETURN RIGHT:’表示右转的子函数 FOR C=0 TO 20 PULSOUT 1,850PULSOUT 2,850PAUSE 20 NEXT RETURN BACK:’表示后退的子函数 FOR C=0 TO 40 PULSOUT 1,650PULSOUT 2,850
. All Rights Reserved.
56
2017年7月上 第13期 总第265期
PAUSE 20NEXT RETURN
3.3 主动避障和被动避障的区别与优缺点主动避障没有直接接触到障碍,是提前预知障碍进行避让;被动避障是直接接触到障碍,从而进行避让。

两种避障方式的原理不同,但它们的目的相同。

可根据不同的需要和要求进行两种避障方式之间的选择。

主动避障避免的
直接的撞击导致的经济损失,但是缺点是通过无线传感器
接收到的干扰因素较多,成本高。

4 移动机器小车的距离探测和追踪
不同频率的和声信号探测的距离远近也不同,可以发
射多种频率的和声信号,根据返回的红外线频率探测物体
的位置,并使用负反馈控制系统进行追踪。

4.1 用频率扫描进行编程做距离探测
频率特性使得红外线传感器在不同的频率下有不同
的灵敏度,导致红外线探测的距离不同。

如图1,物体反射
了39500Hz、38250Hz和37500Hz的红外线,根据接收情况,
可以得知物体在区域2。

划分区域越多则精度越高,定位也
更加准确,但会增大计算量,带来不必要的麻烦。

由于本次
研究目的在于追踪,不需要过高的精度,所以以1000h z为最
小分度值,划分为6个区域。

当信号反馈时,有一种频率的信号反馈则储存的数字
是0,无信号反馈则为1。

如在图1中物体在区域2时,接收到了3种信号的反馈,而另外两种信号的反馈则接受不到,即为3个0,2个1,求和的出数字2,而数字2对应的便是区域2。

为了对红外线频率进行扫描,要用F R E Q O U T 指令发送6种不同频率的红外线信号,使用L O O K U P 命令可以简便的写出。

L O O K U P 命令的用法定义如下:LOOKUP Index,[Value0,Value1,…ValueN],Variable 则代码可为
IRF VAR Nib
IRD VAR Bit
FOR IRF=1 TO 4
 LOOKUP IRF,[37500,38250,39500,40500,41500],IRF FREQOUT8,1,IRF IRD=IN9NEXT
4.2 移动机器小车的追踪控制
这个任务是要让机器小车跟随一个移动的物体。

根据闭环控制系统的控制,在落后较远时,机器小车能进行加速;当距离太近的时候,它也能察觉并减速。

如果距离合适,那么它会等待直到测量距离变远或者变进。

如图2,我们需要机器小车保持2个区域的距离,相差4
区域的距离接下来对机器小车进行编程。

由此得出右边伺服电机的输出方程为:
Right servo output=(Right distance set point-Mea-sured right distance)*Kp+Center pulse width
pulseLeft=(SetPoint-distanceLeft)*Kpl+CenterPulse
p u l s e R i g h t =(S e t P o i n t -d i s t a n c e R i g h t )
*Kpl+CenterPulse
将右边距离设置为2,测量距离由变量distanceRight存
储,K p 为35(比例常数是根据伺服电机特性得出来的常
数),脉冲宽度为750。

pulseLeft=(2-distanceRight)*35+750
5 结论在移动机器小车的制作与探究中,我学到了被动避障和主动避障的原理与设计,体会研究追踪移动机器小车的原理,学会了使用BASIC stamp 软件,了解了红外线二极
管L E D 和红外线探测器。

我相信在未来,移动机器小车的使用会更加的广泛,涉及到更多的领域,也将会有更多的功能。

我也要紧跟时代脚步,在机器小车的领域中继续探索。

参考文献[1]秦志强,侯肖霞,王文斌.基础机器小车制作与编程[M].第二
版.北京:电子工业出版社.
图1
图2
. All Rights Reserved.。

相关文档
最新文档