一、题目要求
运水机器人方框图如下图所示,应达到如下要求:
(1)小车放置在A区黑色起始线的左侧,车轮不得压线。
(2)A区第一次采取手动给水,注水完毕后启动小车,同时开始显示计时时间。
(3)小车将水运到C容器,停在右边线左侧,车轮不得压线,小车所载的水由人工倒入C容器。
(4)卸水后,装水容器B放回小车时、小车自动返回A区停在起始线左侧,车轮不得压线。等待自动注水。
(5)自动注水完毕后,自动行驶到C区,等待第二次卸水结束,将容器放回小车,容器B接触小车时终止计时。
(6)由测试人员计量C容器中的水量,计算单位时间的运水量。
(7)每次运水量不超过500rnl。
根据赛题要求。我们设计了由控制器、电源、寻迹传感器、直流电机、驱动电路、自动供水等模块构成的系统。并进行功能扩展、加入了语音提示模块,可实时播报当前运水机器人的工作状态,比如说小车开始送水时会发出“送水去”的语音指示。
二、方案论证
过反复考虑论证,制定了左右两轮分别驱动。即左右轮用两个直流电机驱动。车体尾部装两个万向轮,后万向轮转向的方案。车架材料选用有机玻璃板。它比塑料车架更牢固,比铁制小车更轻便,美观。
1.控制器模块
采用ATMEL公司的AT89S51单片机,它是一个低功耗,高性能的8位单片机,片内含有4kB程序存储器,128kB数据存储器,4个并行10口,2个16位定时/计数器。
虽然单片机内部无PWM接口,但由于可进行位操作,对于PWM电机调速很方便。
2.电源模块
选用12V蓄电池为直流电机供电。并经稳压后给单片机系统和其他芯片供电。蓄电池具有较强的电流驱动能力,且价格低谦。用两片7812稳压给两台直流电机供电,用7805稳压给单片机等芯片供电,7805输出电流可达1.5A以上,完全满足系统要求。
3.寻迹传感器模块
用一对光电对管自制,发射器是砷化镓红外发光二极管,接收器是高灵敏度的硅平面光电三极管。当发光二极管发出的光反射回来时,三极管导通输出低电平。此光电对管调理电路简单。工作性能稳定。由于黑色对光的反射率非常低。只有3%。
而白色对光的反射率很高,有97%以上,所以很容易区分黑线和白线。能够达到寻迹的要求。
4.电机模块
采用直流减速电机。直流减速电机转动力矩大,体积小。重量轻,装配简单,使用方便。由高速电动机带动减速齿轮组,可以产生较大扭力。我们选用的减速比为1:74,减速后电机的转速为100r/min。
车轮直径为6cm,因此小车的最大速度可以达到V=2Trrv=2×3.14×0.03×100/60=0.314m/s
5.电机驱动模块
采用专用驱动芯片L293D作为电机驱动芯片。
L293D是一个具有高电压大电流的全桥驱动芯片。
一片L293D可以分别控制两个直流电机,而且还带有控制使用端。用该芯片作为电机驱劝,操作方便,稳定性能好。性能优良。
6.显示模块
采用4位数码管显示小车运行的时间。由于单片机接口限制,我们用8155进行数码管的扩展,利用动态显示方法进行编程,一共可显示9999s,足可以达到题目要求。
系统的结构框图如下图所示。
三、硬件及单元电路设计
1.微控制器单元设计
采用AT89S51单片机,只需简单接上外部的晶振和复位电路,就能正常工作,由于使用接口比较多,造成单片机的硬件接口资源比较紧张,所以我们用8155进行接口扩展,8155一方面利用PA口和PB口进行数码管显示,另一方面利用PC实时接小光电对管寻迹组的信号,交给单片机进行处理。单片机的P1口主要进行启动及对L293D控制,由软件产生PWM信号对电机进行调速。有关8155扩展显示接口电路很容易在相关的单片机书籍中找到,读者可参考相关资料。
2.光电对管单元电路设计
光电对管电路如下图所示。可调电阻R3可以调节比较器的门限电压,经示波器观察。输出波形相当规则,用黑色物体遮住光电对管,传感器输出高电平,用白色物体遮住光电对管,传感器输出低电平,可以直接供单片机查询使用。且试验验证给此电路供电的电池压降较小。因此选用此电路作为传感器检测与调理电路。
3.寻迹光电对管的安装
考虑到题目的要求,本设计使用6个光电传感器,其中4个传感器分两组分别装在小车两侧,跨在黑线上,用来校正小车的寻迹路线,保证运行的直线性。另外两个传感器一前一后安装小车前、后端,用来在A区和C区停车时控制小车不压到黑线。
4.电机驱动单元电路设计
采用电机驱动芯片L293D作为电机驱动,驱动电路的设计如下图所示。
L293D的1、2、7、9、10、15脚接到单片机的P1口,通过对单片机的编程就可以实现两个直流电机的正反转及PWM调速功能。
5.自动供水单元电路设计
根据题目要求第二次采用自动供水,所以在A区设计了自动供水。采用电磁阀控制出水。用AT89C2051作为供水控制器,利用光电对管作为检测小车到达的传感器,当小车第二次到达A区取水时,光电对管产生一个低电平的有效信号,同时单片机发供水信号,驱动继电器、控制电磁阀通电,注水到车体上的容器。经过一段延时,AT89C2051产生停止供水信号,小车离开A区向C区送水。这里面光电传感器放的位置很关键,应该是正好小车停在A区黑线左侧,光电传感器正好接收到停车信号。这样一来,小车上的AT89S51控制器与自动供水端的AT89C2051控制器在时间上是同步的,只要延时设计的精确。停止供水及小车启动送水都是同步的。
6.语音提示单元设计
机器人工作过程中设~7J-L个状态点,小车从A区第一次出发;到C区停止等待卸水;自动返回A区;到A区停止等待装水;再从A区出发;到C区停止并等待卸水这几个状态。我们给出语音提示,语音提示我们采用凌阳公司的SPCE061A,该单片机具有很强的语音处理功能。通过上面几个状态产生相应的脉冲信号,触发SPCE061A单片机播放已录制好的语音。这样在小车运行的过程中。会有相应的语音提示语。当机器人接通电源时,人们就会听到“欢迎使用运水当机器人”,接着按下开始按钮同时会听到“送水去”并且秒表开始计时,当机器人第一次到达C区遇到黑线停止时会听到“请卸水”,当卸水完毕将B容器放回机器人时,会听到“取水去”、同时机器人自动退回A区,当机器人到达A区时车上的传感器会检测到A区黑线停止,此时会听到“请注水”、同时自动注水系统的传感器也会检测到机器人的到来并开始注水,当自动放水结束后会听到“注水完毕送水去”,同时机器人就会向C区送水。当机器人再次到达C区遇黑线停止时会听到“请卸水”。这样小车就有很强的人机互动性。
经过上述几个单元电路的设计,做好了小车的整体硬件电路。
四、软件程序设计
1.主程序流程图
所设计的软件的主程序流程图如下图所示:
小车运行时,开始不停地读8155的6个传感器PC口,扫描6个传感器信号。我们把小车直线行进时分成三种状态,当中间四个传感器都检测白线时,小车在跑道的正上方,这时两个电机全速运行。
当检测到有一个传感器或者两侧的两个传感器偏出白线时,小车处于偏离状态,这时将一个电机速度调慢,完成调整。当停止的传感器检测到黑线时,小车立刻停止。做出相应的动作。
用这种寻迹方法思路相当清晰,程序执行效果较好。该检测传感器子程序流程图如下图所示。
本文关键字:机器人 机器人-智能车,电子知识资料 - 机器人-智能车
上一篇:搜寻机器人的设计