APP下载

一种多功能遥控智能小车的设计

2014-03-23龙光利

关键词:子程序中断小车

龙光利

(陕西理工学院 物理与电信工程学院, 陕西 汉中 723000)

设计出智能化的产品已成为商家开发产品的目标之一,智能小车的设计就很多。但大多数智能小车只是完成了“智能化”所要求的基本功能,在小车运行功能多样、遥控、语音控制、速度稳定性和快速性上考虑的相对较少。本文主要针对具有自主巡线功能的智能小车,设计出一种多功能遥控系统,可使智能小车具有多种运行方案、无线遥控、运行方案可语音提示,具有较好的稳定性和快速跟随性。

1 系统组成原理

设计的多功能遥控智能小车,包括小车车体、两个直流减速电机、两个大车轮、1个小车轮[1]、避障微动开光、无线发射/接收器、控制电路板等,多功能遥控智能车电路框图如图1所示,主要由电源模块、激光调制收发电路、遥控收发模块、语音提示电路、数码管显示模块和电机驱动电路等组成。

图1 多功能遥控智能车电路框图

2 系统电路设计

2.1 单片机最小系统的设计

设计的单片机最小系统[2]主要由单片机、时钟电路和复位电路组成。

单片机的时钟产生有两种方式,内部时钟方式和外部时钟方式。电路采用外部时钟方式。采用石英晶体和瓷片电容组成的并联谐振回路连接在引脚18(XTAL1)和19(XTAL2)之间,晶体为12 MHz, 两个电容均选择30 pF瓷片电容。

单片机外接9脚(RST)引出复位电路。复位是对单片机进行初始化操作,高电平有效,有效时间应至少持续二个机器周期的高电平宽度。复位操作有按键手动复位和上电自动复位两种方式。按键电平复位是通过使复位端经电阻与VCC电源接通而实现的。上电自动复位是通过外部复位电路的电容充电来实现的,这样,只要电源VCC的上升时间不超过1ms,就可以实现自动上电复位[3]。本设计中采用按键电平复位方式。

2.2 电机驱动电路的设计

电机驱动电路采用专用芯片L298N[4-5]。L298N 是SGS-THOMSON公司生产的一种高电压、大电流电机驱动芯片,该芯片采用15 脚封装,最高工作电压可达46 V,瞬间峰值电流可达3 A,持续工作电流为2 A;额定功率25 W。内含两个H桥的高电压大电流全桥式驱动器,可以用来驱动直流电动机和步进电动机、继电器线圈等感性负载;采用标准逻辑电平信号控制;具有两个使能控制端,在不受输入信号影响的情况下允许或禁止器件工作,有一个逻辑电源输入端,使内部逻辑电路部分在低电压下工作;可以外接检测电阻,将变化量反馈给控制电路。

设计的L298N直流电机驱动电路如图2所示, 可驱动两台直流电机。

图2 L298N电机驱动电路

L298N直接集成了两对电机驱动电路,其中10、12脚作为控制输入,13、14脚作为对应的控制端输出来控制一个直流电机;5、7脚作为另一对控制输入,2、3脚作为其对应的输出来控制另一个直流电机。以10、12脚这一对控制输入为例,当10脚输入正脉冲,12脚接低电平时,电机右转,其转速由6(11)脚输入的PWM正脉冲的占空比决定;反之,当10脚接低电平,12脚接正脉冲时,电机左转。由于工作时L298N的功耗较大,可以适当加装散热片。图2中,D1、D6,D2、D5的作用是:电机1正转时,OUT1为正,OUT2为地,电流从OUT1经A绕组流向OUT2。当切断电流,电机停转时A电机绕组的感生电压使OUT2为正,OUT1为负,这时接在正端(OUT2)的D2会正向导通;而接在负端(OUT1)的D5也导通将负端接地,为感应电流提供泄放通道,向C1、C2充电,C1、C2作为储能器件将自感电流吸收储存。反转时与正转相反,当电机反转后断电时D1和D6起作用。电路中的二极管在为L298 N提供保护同时,也为感生电流向电源电路充电提供通道。C1、C2不但是滤波电容,也是储能器件。

2.3 激光调制收发电路设计

激光传感器的工作原理和红外光电管类似,当发射管发出的光束照在黑色地面时黑色地面会吸收大部分发射的光线,而白色地面则不会吸收反射光线。所以接收管接收的光强会有所区别,进而导致接收管的特性曲线发生程度不同的变化,从外部看可近似认为接收管两端输出的电阻不同,经分压后的电压不一样,可将黑白路面区分开来。

激光调制电路如图3(a)所示。因为激光接收管对160~220 kHz频率范围内的光接收敏感度良好,在180 kHz达到最佳,所以需要对激光进行调制,使其发出的光频率稳定在180 kHz左右。激光调制电路的工作原理为,在激光调制管的第一引脚接一个下拉电阻,第二引脚接VCC,第三引脚悬空,便可产生稳定的频率,其中频率大小与下拉电阻阻值有关,通过示波器观察,当下拉电阻18 Ω时,调制管产生频率为181 kHz,正占空比为22%的波形,驱动激光效果达到最佳,接收管最敏感。

(a) (b) (c) 图3 激光调制发射接收电路

激光发射电路如图3(b)所示。对于激光发射电路,只需要VCC端接电源,GND端接从调制管输出的PWM波便可发射激光。其发射频率为调制管输出频率。

激光接收管的工作原理为:激光经过光学透镜校准, 被光敏器件(光电二极管)接收, 光电二极管接收光照后, 随光强不同会产生相应强度的光电流, 电流经过放大器放大输出电信号。激光接收管分为常态低电平(即没有受到激光照射时信号输出管脚输出低电平)和常态高电平(即没有受到激光照射时信号输出管脚输出高电平)两种类型。本设计中采用常态低电平类型的激光接收管。激光接收电路如图3(c)所示,在使用过程中,需要注意的是每个接收管的VCC与GND端须接一个103pF或104pF去耦电容,以避免接收管出现逻辑错误。

2.4 遥控器设计

遥控器包括射频发射接收电路和数据编解码电路。

射频收发电路主要用来配合PT2262/PT2272编解码芯片[6]实现相对较远距离的数据接收和发送。

射频发射电路采用ASK方式调制[7],工作频率为315~433 MHz,用声表面谐振器SAW稳频,频率稳定度±75 kHz。由声表面谐振器构成的发射电路可在3~12 V的宽电压范围工作。数据传输距离随发射工作电压不同而不同,传输距离可达20~500 m。

射频接收电路工作频率为315~433 MHz,工作电压为5 V,频率稳定度为±200 kHz,接收灵敏度为-105 dBm,接收天线用25~30 cm的导线竖立起来就可以了。

数据编解码电路采用PT2262/2272,它是一种CMOS工艺制造的低功耗,带地址、数据编/解码的通用发射/接收芯片,工作电压范围是2.6~15 V,在使用时两者的地址必须配对,最多可有12位地址设定引脚, 可分别设置为悬空、高电平、低电平3种状态,而且振荡电阻也必须符合要求。地址码最多可达312= 531 441种,数据最多可达6位。

编码芯片PT2262的编码信号是由地址码、数据码、同步码组成一个完整的码字,PT2262的TE端是发射允许端,接低电平时,17脚DOUT端输出一串编码,编码信号调制在38 kHz的载波上,通过射频发射模块发射出去。OSC1、OSC2外接的电阻决定载频频率。PT2262与射频发射电路连接图如图4所示。PT2262的10—13脚受单片机P0.4—P0.7控制,编码后从PT2262的17脚DOUT端输出,接入315 MHz射频发射电路,采用ASK调制后通过天线发送出去。

解码芯片PT2272具有“锁存”和“暂存”两种数据输出方式,后缀为“L”的是“锁存型”,后缀为“M”的是“暂存型”。 当PT2272为锁存数据输出方式时 ,如果没有接收到新的信号输入,PT2272 输出上次接收到的数据状态,否则输出当前接收到的数据状态。当PT2272为暂存数据输出方式时,如果没有接收到新的信号输入,PT2272的对应数据输出位即变为低电平,否则输出当前接收到的数据状态。射频接收电路接收到PT2262的DOUT端输出的编码信号后送入PT2272的14脚DIN,地址码经过比较核对正确后,VT解码有效端输出高电平,同时数据端口输出与PT2262发射端口一致的数据,从而实现数据的无线收发功能。 PT2272与射频接收电路连接原理图如图5所示。PT226地址线全部悬空,PT2272的地址线也全部悬空,以达到地址配对,接收并解码后的信号从PT2272的10—13脚输出并接入单片机的P2.0— P2.3,单片机通过软件编程读取端口状态变化,得到报警触发信号。

图4 PT2262与射频发射电路连接图 图5 PT2272与射频接收电路连接原理图

2.5 语音录放电路设计

设计的语音录放电路主要由ISD1760组成[7],单片机通过模拟SPI接口向语音芯片发送录音命令时,声音信号通过麦克风转换为变化的电信号,进入语音芯片进行放大、采样,最后存储在芯片内部ROM中。单片机通过模拟SPI接口向语音芯片发送播放命令,语音芯片从指定地址读取数据,并将读取到的数据经过DA转换为模拟信号由SP+端输出经喇叭播放语音信号。

2.6 矩阵键盘电路和程序下载电路设计

设计中按键通过矩阵键盘接单片机来实现,在矩阵式键盘中,每一排和每一列的按键分别连接到一条线上,总共构成八条线,连接到单片机的一个端口上就可以构成4×4的矩阵键盘[3]。系统采用P2口连接矩阵键盘。

STC单片机通过RS232串口下载程序。MAX232芯片是MAXIM公司专为RS-232标准串口设计的单电源电平转换芯片,使用+5 V单电源供电,MAX3232为RS-232收发器,完成从TTL电平到RS-232电平的转换。

3 系统软件设计

系统软件设计包括主程序、各部分子程序设计以及程序编译与下载。

3.1 主程序设计

主程序流程如图6所示。

系统上电后,程序进行初始化[3],包括外部中断0初始化,外部中断1初始化,定时器0初始化和定时器1初始化。然后程序进入循环,检测收到的按键值,从而使小车可以根据不同命令做出不同动作。系统软件设计中将系统各部分功能模块化编程,然后采用子程序调用方式执行程序。主要分为单片机中断初始化子程序、数码管显示子程序、键值监测子程序、走“口”字子程序、走“8”字子程序、直行子程序、后退子程序、左转子程序、右转子程序等组成。在主程序中,不断调用键值检测程序,检测接收到的遥控器按键值,再根据不同键值调用小车不同动作程序,执行完一次子程序后,再次检测键值变化情况,一直循环。

外部中断0为跳变沿触发,当中断触发时对小车占空比进行一次判定,如果小于90%,则进行一次加运算,幅度为10%,完成后中断返回。外部中断1为跳变沿触发,当中断触发时对小车占空比进行一次判定,如果大于10%,则进行一次减运算,幅度为10%,完成后中断返回。

定时器0设置为方式一,50 ms触发一次,当中断触发时先对16位初值进行一次重装,然后关闭中断,根据具体中断信号完成对小车蔽障子程序的调用,完成后中断返回。如果没有中断信号,触发后直接返回。定时器1也是工作也是方式一,当中断触发时先对16位初值进行一次重装,然后对PWM输出管脚进行取反操作,完成后中断返回。

3.2 子程序设计

单片机中断初始化部分将STC89C52RC定时器/计数器0和定时器/计数器1都设置为定时器工作模式,工作方式为方式1;将外部中断0和外部中断1设置为边沿触发方式。

单片机中断初始化设置程序为:首先是开总中断,然后对两个定时器的工作模式做出设置,都是工作方式一,再对外部中断工作模式做出设置,设计中两个外部中断触发方式都为跳变沿触发,设置完成后开启定时器和外部中断允许。

遥控器编码程序流程如图7所示。在遥控器编码程序中,也是不断调用键值检测程序,检测到矩阵键盘中按键按下时,对不同的按键有不同的编码,编码完成后通过无线模块发射出去,执行完一次程序后,再次检测键值变化情况,一直循环。

图6 主程序流程图 图7 遥控器编码程序流程图

系统软件采用C语言编程[8-9],在Keil uVision4环境下编译,编译成功,生成HEX文件,然后下载到单片机STC89C52RC中。

4 实验结果

将下载程序的单片机和其它相关元器件焊接到PCB板,并将该PCB板装在平板小车上[10-11]。接通电源,小车初始化完成后处于停止状态,程序进入循环,等待接收遥控命令,当遥控器按1时,小车前进,语音提示“前进”;按2时小车后退,语音提示“后退”;按3时小车左转弯(左滚动),语音提示“左转”;按4时小车右转弯(右滚动),语音提示“右转”;按5时小车执行走“口”字指令,语音提示“走口字”;按6时小车走“8”字,语音提示“走8字”;按7时,小车停止,语音提示“停车”。小车行走时,点亮绿灯表示电源电路工作正常,点亮红灯表示电机驱动L298N使能显示。

5 结束语

设计的多功能遥控智能小车可实现前进、后退、左转弯、右转弯、走“口”字、走“8”字等功能,并可语音提示小车动作。该小车还可增加液晶显示模块,显示当前各参数的值;增加多路传感器和串口无线发射模块,将测量到的数据通过无线终端发送到后台。

[参考文献]

[1] 赵振德.多功能遥控智能车的制作[J].电子制作,2011,100(4):12-16.

[2] 李建忠.单片机原理与应用[M]. 2版.西安:西安电子科技大学出版社,2008.

[3] 张俊谟.单片机使用技术讲座(3)第一讲:单片机的基本结构与工作原理(下)[J].电子世界,2002,(3):34-35.

[4] 王旭.框架式导引头数字控制器设计[D].南京:南京理工大学,2008.

[5] 何常红.弓网电弧模拟系统的研制和试验研究[D].成都:西南交通大学,2009.

[6] 郑开路.基于单片机和PT2272的编码解码方法[J].现代电子技术,2006,29(12):65-68.

[7] 李佳旭,丁鹏飞.基于ISD1760的智能语音计费显示系统设计[J].电子元器件应用,2010, 12(6):20-23.

[8] 谭浩强.C程序设计[M].3版.北京:清华大学出版社,2005.

[9] 郭天祥.新概念51单片机C语言教程[M]. 北京:电子工业出版社,2009.

[10] SURYANARAYANAN S,TOMIZUK M.Appropriate sensor placement for faulttolerant lanekeeping controlofautomated vehicles[J].IEEE/ASME Transactions on Mechatronics,2007,12(4):465-471.

[11] 张志远,万沛霖.一种用于电动车辆驱动控制的模糊控制系统设计[J].电机与控制学报,2005,9(3):203-206.

猜你喜欢

子程序中断小车
大车拉小车
自制小车来比赛
刘老师想开小车
两轮自平衡小车的设计与实现
跟踪导练(二)(5)
千里移防,卫勤保障不中断
浅谈子程序在数控车编程中的应用
子程序在数控车加工槽中的应用探索
西门子840D系统JOG模式下PLC调用并执行NC程序
AT89C51与中断有关的寄存器功能表解