DOI:10.16086/j.cnki.issn1000-0380.2011.09.017
利用 Arduino 控制板的光引导运动小车设计 崔才豪,等
利用 Arduino 控制板的光引导运动小车设计
Design of the Light-guided Car by Using Arduino Control Board
摘 要: 为降低生产成本、提高运输的灵活性,提出了一种以 Arduino 控制板为核心的光引导小车设计方案,并给出了该方案的软硬件设计方法。该方案基于光线沿直线传播的原理,通过光敏元件设计传感器并检测小车不同方向上的光强,计算出小车和光源之间的相对位置; 然后,利用 PWM 直流电机调速技术控制小车的启动、加减速和转弯等操作; 最后,利用红外线反射式脉冲编码器对小车的转速和位移
崔才豪
1
1
张玉华
2
2
杨树财
2
( 哈尔滨理工大学自动化学院 ,黑龙江 哈尔滨 150080; 哈尔滨理工大学工程训练中心 ,黑龙江 哈尔滨 150080)
进行反馈。试验证明,光引导小车在实验室中运行稳定,设计方案切实可行。 关键词: PWM 直流电机 红外线脉冲 中图分类号: TP242 + . 2
传感器 高精度
文献标志码: A
Abstract: To reduce the production cost and enhance the flexibility of transportation,the design scheme of the light-guided car based on Arduino control board is proposed. The design procedures for hardware and software of this scheme are given. In this scheme,by adopting the principle of straight propagation of the light,through detecting the light intensity on the car from different direction,by the transducer designed with photosen-sitive element,the relative position between light source and the car is calculated. The launch,acceleration,deceleration,and turning around of the car are controlled by PWM DC motor speed modulation technology. The rotating speed and displacement are fed back by using infrared reflective pulse encoder. The
experiments verify that the light-guided car is running stably in the lab,and the design scheme is feasible.
0 引言
Keywords: PWM DC motor Infrared pulse Transducer High accuracy
[2]
器 。这种测量方法具有结构简单、非接触、可靠性高、精
度高和反应快等优点,因此,被广泛地应用于自
[3]
运输的灵活性。
[1]传统的运输方式是依靠人驾驶装卸车运输货
在人类的生产生活中,很多货物的运输路线在短时间内是固定的。因此,若为满足这种运输要求而铺设轨道或增设传送带,就会增加相应的生产成本,降低
动检测系统中 。光引导技术就是基于上述原理,通过光电阻传感器检测小车在不同方向上的光强,从而判断出小车引导光源的方向,实现以光源为基准的趋
光运动。
本设计采用光电阻传感器对光信号进行采集。在
物 。人在货物运输中的主要作用就是控制车的启动、停止、运动方向和速度,这类相对简单的劳动可以通过改进自动控制技术来实现。本文提出了利用普通光源来引导小车运动的设计方案。这种利用光信号引导小车运动的设计,节约了人力,并提高了生产效率和 工作的灵活性。
光源引导方向上,分别设置 1 号、2 号、3 号光电阻传感器,其中 2 号传感器和小车轴线平行。3 个传感器轴线所构成的夹角 ω1 和 ω2 保持相等,光源引导信号的采集如图 1所示。
1 主要技术核心 1 . 1 光引导技术
光是沿直线传播的,物体接收光能的大小与受光
面积成正比,单位面积所获得的光能称为光强。光电 阻传感器是将光信号转换成为电阻变化的一种传感
图 1 信号采集示意图 Fig. 1 Schematic of signal collection
设 1 号和 3 号传感器分别与光源引导方向形成的 夹角分别为 θ1 和 θ2 ,当小车运动方向偏离光源引导方 向时,小车的实际运动方向与光源的引导方向产生了 一个偏差角。小车偏离光引导方向示意图如图 2( a)
修改稿收到日期: 2010 - 12 - 27。
第一作者崔才豪,男,1989 年生,现为哈尔滨理工大学自动化专业在
读本科生; 主要从事自动控制、信号检测和电源方面的研究。
《自动化仪表》第 32 卷第 9 期 2011 年 9月
5
利用 Arduino 控制板的光引导运动小车设计 崔才豪,等
所示。
设小车的实际运动方向与光源的引导方向产生的偏差角大小为 θ。此时调整小车的运动方向,就等价于调整偏差角 θ,使其平衡在零度,从而使小车的运动方向和光源引导方向一致,达到了光引导的效果。小车恢复光引导方向示意图如图 2( b) 所示。
图 2 小车光引导示意图 Fig. 2 Schematic of the light-guided car
通道数字 GPIO、4 通道 PWM 输出和 6 ~ 8 通道的 10 bit ADC 输入通道。本设计中采用 Arduino-duemilanove 控
制板,它的核心是一片 AVRmega168 单片机。
2. 2 光信号采集和方向运算
光引导信号发出的引导光照射在光电阻传感器上,从而改变了光敏电阻的阻值,进而改变了光敏电阻
两端的电压值。光敏电阻的两端电压经过分压电阻和运算放大器进行信号调整后,由 Arduino 控制板进行 A /D 转换 。3 个传感器产生 3 组数字量,比较后可
[7]
[6]
以得到 1 个偏差值 。运动控制系统根据偏差值调整小车的运动方向。
2. 3 直流电机控制
小车采用双直流电机加万向轮的驱动方式,通过
控制左右直流电机来控制小车的前进、后退或左右转
向。直流电机采用直流电机驱动芯片 L298。双路全桥电机驱动芯片 L298 的最大输出电流为 4 A,具有过温保护功能和较高的噪声抑制比。2 路输出正好可以满足小车的左右直流电机的驱动要求。L298 的主要引脚功能及其主要逻辑功能分别如表 1 和表 2 所示。
表 1 L298 主要引脚功能
1. 2 运动控制技术
小车运动控制系统设计的核心在于如何使小车以最快的速度从偏离光引导的状态中修正过来,从而恢复到
Tab. 1 Functions of the main pins of L298
引脚序号
名 称
主要功能 检测负载电流
1 ,
2 ,
15
Sense ,Sense B
A
3
时间。
对于小车的方向控制,可以采用 θ 为调节变量,通过 Andriod 控制板调节驱动电机的 PWM 信号,改变 电机输出功率,从而控制左右电机的转速,以实现方向
[4]
正常的运动状态,并且不会有较大的超调或调整
4 5 ,
7
Out ,Out 2 V1
A 桥输出端口
s
1
6 ,11
8 9
Input ; Input 2 Enable ,Enable 功率输出电源 A 桥控制输入
A B
GND
V
ss
3
,
10 12 Input ,Input 4 Out ,Out 3
A、B 桥使能输入
接地 数字逻辑电源 B 桥控制输入
的修正。控制算法可以使用经典的 PID 控制方法 。 PID 就是利用小车与引导光源的方向偏差,通过比例、
13 14
,
4
B
桥输出端口
表 2 L298 主要逻辑功能
Tab. 2 Main logical functions of L298 参数条件 Enable = H
速度和较高的调节精度。由于小车在路面粗糙度或负载变化时车轮转速误差变大,因此,采用红外线反射式
脉冲编码器对小车的转速进行测量。这种传感器可以将测量信号反馈给 Andriod 控制器,控制器根据传感器返回的数值,实现对小车速度和位移的监控。闭环控制 系统由传感器与直流电机控制系统构成,它能使
小车运动稳定精确
[5]
积分和微分作用控制电机的运动。当电机的转速和方向经过调节后,小车对光引导信号就会有较快的反应
输入信号
功能 前进 后退 停止 无
Enable = L
Input1 ( 3) = H,Input2 ( 4) = L Input1 ( 3) = L,Input2 ( 4) = H Input1 ( 3) = Input2 ( 4) Input1 ( 3) = X,Input2 ( 4) = X
表 2 中: L = Low ; H = High ; X = Don’t care。
本设计使用 Arduino 控制板上的数字输入输出端控
。
制驱动芯片的 Input1 、Input2 、Input3 、Input4 引脚,从而控制直流电机的旋转方向; 使用 Arduino 控制板上的 PWM 输出引脚控制驱动芯片的 EnableA 和 EnableB
[8]
引脚,最终实现了 2 路直流电机控制 ,进而控制了小车的运动方向。
2 系统的硬件设计
2. 1 Arduino 控制板
Arduino 是一块基于开放源代码的接口板,包括 12
6
PROCESSAUTOMATION INSTRUMENTATIONVol.32 No. 9 September 2011