kaiyun官方注册
您所在的位置: 首页> 嵌入式技术> 设计应用> 基于红外技术的AGV控制
基于红外技术的AGV控制
来源:微型机与应用2010年第17期
李 亮,詹跃东
(昆明理工大学 信息工程及自动化学院,云南 昆明 650051)
摘要:提出一种应用发射红外线的电视机遥控器来控制小车运行方向和速度的方法,并设计了AGV系统的硬件电路和软件程序。实验表明,在Windows环境下运行,通过C语言编程器AVR-GCC和其他的开放源工具,AGV能够很好地实现转向和避障控制。
关键词: avr RC5代码 AVR-GCC
Abstract:
Key words :

摘 要:提出一种应用发射红外线的电视机遥控器来控制小车运行方向和速度的方法,并设计了AGV系统的硬件电路和软件程序。实验表明,在Windows环境下运行,通过C语言编程器AVR-GCC和其他的开放源工具,AGV能够很好地实现转向和避障控制。
关键词:RC5代码;AVR-GCC

无线遥控是指利用无线电波、红外线、超声波等作为信息传输的载体,在空间进行信息传输,实现对目标的控制。由于红外线的波长小于其他无线电波的波长,因此红外线遥控不会影响到其他电器设备。此外,红外线为不可见光,对环境影响较小且具有很强的隐蔽性和保密性,其遥控器结构简单、成本低廉、抗干扰能力强、工作性能可靠。
红外遥控的小车(AGV)的技术要求:
(1)使用遥控器控制小车所产生的红外信号对周围其他的电子电器设备不产生干扰,具有较好的电磁兼容性。
(2)在以小车为圆心、半径为2~4 m的范围内,遥控器输出命令(依靠光线条件、障碍物、天花板表面和安装在设备顶端的扩展板)都会被小车检测到,并且按规定执行,具有很强的信号接收能力。
(3)小车可根据控制器输出命令进行各种运动,如:匀速向前向后,向前左转或右转,向后左转或右转,加速度运动。
(4)为保护设备安全,通过中断设置小车的最大速度和最大加速度,一旦超过最大速度和加速度的阈值,小车自动停止。
(5)从软件的平台上,对于输入程序,需要Java 6的安装环境;对于Atmel单片机,WinAVR是一套可执行的、开放源软件开发工具,它允许在Windows环境下运行C语言编程器(AVR-GCC)和其他的开放源工具[1]。
1 基本原理
遥控器选用的是普通的电视机或音响的遥控器,其特点是价格低廉,绝大多数都可以通过RC5进行代码编程。首先要阅读针对设置使用RC5代码遥控的指南。如果RC5代码不在代码表上,可以测试一些其他的不同的厂家产品。其工作原理图如图1所示。

用红外接口来传输IR信号。在小车面板上安装两个传输二极管指向上面的天花板,从天花板和其他物体或视线范围内反射的光线进行通信。传送范围限制在距离为2~4 m的室内(依靠光线条件、障碍物、天花板表面和安装在设备顶端的扩展板)。可以通过添加更多的IR LED来扩展通信范围,例如通过带有巨大电容器和一个小的串联电阻的MOSFET来控制。同步发生的操作被task_ACS()函数所控制,这个函数频繁地从主函数中被调用,目的是用来处理IR信号的接收(额外管理红外通信的传输)。
2 硬件组成
2.1 硬件结构原理

AGV的硬件组成主要由ATMEGA32的电路板、红外线接收器、遥控器以及电源等构成,ATMEGA32电路板集成有A/D、D/A转换设备,可将采集进来的模拟量转化为数字量,通过用户编写的程序进行运算。其硬件电路结构原理图如图2所示。

2.2 信号接收装置
信号接收装置主要由二极管、TSOP34836芯片以及相应的电路构成,如图3所示。

3 软件设计
红外线遥控器通过RC5代码传输数据,而RC5数据包包含了设备地址、键盘编码器和一个触发器。5位的设备地址告诉哪个设备(如电视机、录像机、或高保真音响等)被遥控器控制。而对于本文的使用,设备地址也可以用来满足一些单独设备的使用。6位的编码器附和按键遥控允许传输其他的数据,但对于每个传输仅仅提供6位编码器附和按键遥控。
在AVR-GCC环境下,RC5数据包可以通过使用void IRCOMM_sendRC5(unit8_t adr,unit8_t data)函数[2]传输。其中,adr相当于设备地址;data相当于键盘编码器。参数adr允许在重要的位(MSB)通过申请常量TOGGLEBIT来设置触发位,方式如下:IRCOMM_sendRC5(12|TOGGLEBIT,40)[2];这个指令将通过地址12传输一个RC5数据包给设备,激活触发位并且以40作为数据值,如IRCOMM_sendRC5(12,40)。
事件处理程序可以管理RC5的数据接收,只要RC5数据包接收,事件处理程序将自动地被task_ACS()函数调用。例如写一个程序,程序的要求是如果机器人接收到键盘编码4号键,小车会向左转;接收到键盘编码6号键则向右转。
对于事件处理程序规定必须相应采用void receiveRC5Data(RC5data_t rc5data)形式[2],但也可以自由地命名函数。可以通过IRCOMM_setRC5DataReadyHandler(receiveRC5Data)[2]函数允许记录一个预定的事件处理程序。在这之后,专用的函数将被每个有效的RC5接收的代码调用。值得一提的是:RC5data_t是专门的预定义的数据类型,包含RC5设备地址、触发位和键盘编码(分别有对应的值),可以通过标识符rc5data.device、rc5data.toggle_bit、rc5data.key_code[2]就像使用变量一样地使用这些数据。程序流程图如图4所示。

4 测试结果
4.1 红外发射器电器参数

(1)接收距离范围内,通过示波器测得发射器发送脉冲的参数:发射器输出波长为λ0=400 nm。
(2)输出波形如图5所示,而标准的发射器对红外电管的要求为:波长λ=940 nm,Δλ=60 nm。

4.2 小车运行结果
AGV运行时,程序会自动记录下每个控制间隔内得到的侧向偏差e和方向偏差的数据,图6、图7是根据AGV前进时在某一时间段内的偏差记录的曲线。

通常红外线遥控器遥控的对象是电视机、影碟机及音响等设备,本文设计实例说明,AGV或车辆装备也可以使用红外线通信装置。如果将这个实例换个角度思考,在车辆上安装红外线发射器和接收器,当红外线接收器接收到发射器发射后反弹回来的红外线时,就可证明前方有障碍,这就为未来的汽车发展提供了一种可能的研究方向。当前交通事故频繁,对社会危害严重,如果将这种红外通信技术应用于车辆的避障中,将有可能大幅降低交通事故的发生。
参考文献
[1] 吴启华.基于Windows环境下AVR-GCC示例开发[J].电讯技术,2001(3):95-98.
[2] 王传,姜华.基于RC5代码红外线遥控[J].通讯技术, 2001,35(11):122-125.

此内容为AET网站原创,未经授权禁止转载。
Baidu
map