成乐凯 张 鹏 瞿 丹 刘振兴 张 明
河北农业大学,河北保定 071001
近年来,智能小车已成为车辆工程领域的热点,出现在各个高校的比赛、竞赛中。绝大多数的小车都是采用红外传感器来实现循迹,但是这类的循迹方法只能在有光照的前提下实现。因此本文设计了一种电磁循迹式智能分拣小车。该小车依照提前铺设好的电磁轨道,利用电磁传感器进行数据采集,实现小车自动循迹功能,规避了外界环境对小车行走路线的干扰,使机器人在白天、黑夜都可以进行工作。
1.1.1 STC12C5A60S2单片机
STC12C5A60S2单片机是一个单时钟高速的单片机,属于8051系列单片机,不但和stc89c51的引脚完全一致,而且还具有更高容量的存储器。与其他的51系列单片机相比有许多优点:
(1)相同的晶振情况下,速度是一般51的8~12倍;
(2)配置了8路10位AD;
(3)比其他的多了两个定时器,带PWM输出功能;
(4)具有EEPROM;
(5)有1K的内部扩展RAM;
(6)多了一个串口;
(7)中断优先级可以定义四种状态。
1.1.2 电磁传感器
电磁传感器是把被测物理量转换为感应电动势的一种传感器,又称电磁感应式或电动力式传感器。主要是针对测速齿轮而设计的发电型传感器,将被测量在导体中感生的磁通量变化,转换成输出信号变化。
1.1.3 颜色识别传感器
GY-31 TCS3200可以将物体的表面颜色转换成相应的电压或频率输出,来实现对物体的识别,实现智能分拣。
ADC转换模块
void InitADC() //初始化AD函数
{
P1ASF=0X06; // 1110 0111 //定义为AD转换的IO口
ADC_RES=0;
ADC_CONTR=0xe8;
Delay(2);
}
void GetADCResult(BYTE ch) //读取AD的函数
{
ADC_CONTR &=!ADC_FALG;
for(ch=0;ch<2;ch++){
switch(ch)
{
case 0: ADC_CONTR=0xe9; //定义P1.1为AD转换 1110 1001
式中,S(r)是噪声源的分布强度,F(ω)是功率谱。假设所有噪声源都具有共性,那么通过以上讨论可得出:
_nop_();
_nop_();
_nop_();
_nop_();
while(!(ADC_CONTR&ADC_FALG));
ADC_CONTR&=~ADC_FALG; //清除falg位
cg1=ADC_RES; //把传到P1.1口的AD值(二进制)赋值给cg1
break;
case 1: ADC_CONTR=0xea; //定义P1.2口为AD转换 1110 1010
_nop_();
_nop_();
_nop_();
_nop_();
while(!(ADC_CONTR&ADC_FALG));
ADC_CONTR&=~ADC_FALG;
cg2=ADC_RES; //把传到P1.2口的AD值(二进制)赋值给cg2
break;
default: break;
}
图1 硬件连接
图2 程序流程图
路径中央的导线通有正弦规律变化的电流,由比奥-萨伐尔定律可知,变化的电场激发变化的磁场,且磁场和电场的变化规律一致。对于通有稳恒电流I长度为L的直导线,周围会产生磁场,在小车前方安装有对称的电磁传感器,当小车自动行驶过程中偏离通中心线,前方的电磁传感器会产生感应电动势。在理想情况下,通电导线正好穿过小车的中心轴,则两边电磁传感器产生大小相等、方向相同的感应电动势,其差值为零。如果小车在行驶过程中偏移了方向,两边的电磁传感器会产生电动势差值,通过AD转换器将电动势差值转换成数字信号由单片机进行处理[2],从而控制舵机给出转角调整其行驶方向。当遇到指定物体时,红外传感器发出指示,颜色传感器开始识别,控制机械臂抓取物体实现分拣。
本装置采用了基于电磁传感器式的循迹方式,解决了无法在无光照的情况下的工作的问题。应用了STC12C5A60S2单片机,相比于51单片机而言,多了AD转换模块,反应更迅速、更灵敏、反应能力更强。不仅具有结构简单、体积小巧、操作简单、效率较高、成本较低等特点,还加入了避障功能,因此还具备安全稳定的特点。实用性很高。