方案三:
采用三只红外光电传感器,一只置于轨道中间,两只置于轨道外侧,当小车脱离轨道时,即当置于中间的一只光电开关脱离轨道时,等待外面任一只检测到黑线后,做出相应的转向调整,直到中间的光电开关重新检测到黑线(即回到轨道)再恢复正向行驶。现场实测表明,小车在寻迹过程中有一定的左右摇摆不定,虽然可以正确的循迹但其成本与稳定性都次与第二种方案。
通过比较, 选取第二种方案来实现循迹。
2.3.3 方案优化
比赛时,先从5种颜色的物块中抽出3个,再从3个物块中依次抽出第一个、第二个、第三个放置地图的物料区A、C、E区。这样就有60种路径,使得程序太大,占用单片机大量的存储区。但是在放物块时,我们通过转轮机构逆时针或顺时针旋转90°、180°、270°使得行驶路径由原来的60种减少到10种,即从3个物块中依次抽取放置位置的6种可能性减少到1种,将排列问题转化为组合问题,这样大大简化了程序调试量和节约单片机的存储量。
为了实现转向和直线行走,机器人由两轮驱动。机器人的行走过程要求尽量平稳,由于有两个主动轮,在走直线时就要求两个轮子能以同样的速度运行,所以对电机的调速必须很精确。在行进过程中,如果机器人偏离了预定的路线,则无法到达指定的位置。这就必须随时监测其是否走偏,并将信息反馈到单片机,由单片机发出指令来控制电机校正偏离误差,保证机器人按照预定方案准确的行走。
机器人要到达指定位置,不可能一直走直线。在到达一定位置时,机器人需要转向一定角度后继续前行或是倒退一段距离后转向。如果检测到转向信号,单片机就发出转向指令,并不断检测是否转到预定角度;如果检测到倒退信号,则发出倒退指令,并检测是否后退到所需位置。
为了方便观察计算,将五种颜色编号,黄、白、红、黑、蓝依次为1、2、3、4、5,这些编号需要与A、C、E上物块的颜色对应,即要将A、C、E上三种颜色的物块放到对应颜色的区域内。
小车走的路径是:从出发区出发,到达地图中心时,左转90°并直行取物块A,然后转轮机构转90°,将A存在转轮机构中。然后小车后退到中心,按上述步骤,右转90°去取物块C。同理取得物块E,最后将小车后退到中心,此时车头对着E,三个物块收集完成,存在转轮机构中。转轮机构由步进电机控制,每次给个脉冲,步进电机带动转轮机构旋转90°。放物块时,按照1~5从大到小放物块,不按A、C、E的次序放到对应的颜色区域内。例如A、C、E处对应的号码是4、1、5,则放物块时按照1、4、5的次序放,和它们的颜色对应无关,因此只要抽取出来的颜色是1、4、5三种,不论怎么放到A、C、E处,小车走的路径是一样的,不一样的是要通过步进电机控制转轮机构旋转合适的角度,将三个物块放到对应的颜色区域内。
放物块时,组合问题, ,共有10种可能性,如下表2.3所示。定义顺时针为+,逆时针为-。
表2.3 10种可能性
组合情况 小车需旋转的角度
1 2 3 -180——45——45
1 2 4 -180——45——90
1 2 5 -180——45——135
1 3 4 -180——90——45
1 3 5 -180——90——90
1 4 5 -180——135——45 ATmega16单片机分拣搬运机器人的设计与实现(11):http://www.youerw.com/jixie/lunwen_7784.html