基于单片机的无线遥控小车研究与实现

2016-10-10 05:16宋亦薪代杭佚包宋建
关键词:主程序子程序寄存器

宋亦薪,陈 超,徐 斌,谭 军,代杭佚,包宋建

(重庆文理学院电子电气工程学院, 重庆 永川 402160)



基于单片机的无线遥控小车研究与实现

宋亦薪,陈超,徐斌,谭军,代杭佚,包宋建

(重庆文理学院电子电气工程学院, 重庆永川402160)

本文介绍了一种由STC12C5A60S2单片机控制的无线遥控小车,采用控传和图传独立设计的思想,即数据收发模块进行控制和温度数据的传输,图传模块负责作业环境的图像传输.控传部分以STC12C5A60S2单片机为核心,利用NRF24L01+模块数据收发,L298N电机驱动两路直流电机,使小车完成相应动作;DS18B20负责检测温度,由小车收发模块发射,LCD1602液晶模块显示.系统采用模块化设计,结构紧凑,便于优化,且可靠性能高.

单片机;NRF24L01+;L298N;DS18B20

无线遥控小车是一种新型无线遥控装置,综合了射频技术、微型计算机技术和智能控制等技术.随着现代控制技术和通信技术的不断发展,除传统的FM、PCM和红外遥控技术外,现在又出现了如蓝牙、WIFI等新的控制方式.这些技术在反恐、防化、抢险救灾及污染治理等方面有着广阔的应用前景[1].本文设计的无线遥控小车能够轻松自如地前进、后退、加速、减速、左转、右转,将所处环境的温度通过无线通信显示在遥控器LCD1602液晶显示屏上.系统采用模块化设计、结构紧凑,各个功能模块之间互不影响,智能化水平较高.

1 系统设计方案

1.1系统总体框图

本设计采用控传和图传分开独立设计,即用NRF24L10+无线收发模块进行小车控制和温度数据传输,5.8 g图传模块只负责作业环境的实时图像传输.控传部分设计一个无线智能遥控小车控制系统,分为按键遥控系统与车载系统两大部分,分别以STC12A60S2单片机最小系统为主控核心,通过NRF24L01+无线通信模块实现无线数据收发[2],用内置两个H桥的L298 N芯片驱动直流电机驱动模块实现对小车的控制.系统采用12 V电池组.将电压降为+5 V和+3.3 V后分别供控制回路和无线收发模块使用.在手动按键控制下,按键电路产生一个动作指令(如前进、后退、左转、右转等),单片机按照相应的算法进行运算,运算结果通过SPI通信总线传送给无线收发模块,再由无线收发模块通过射频发射.信号数据被无线收发模块接收采集,则无线收发模块通过SPI通信总线传送单片机进行处理,根据处理结果控制电机驱动模块,驱动小车完成相应基本动作.温度检测模块由小车上的DS18B20传感器、无线收发模块以及遥控板上的LCD1602液晶模块构成.系统原理示意图如图1所示.

图1 系统原理示意图

2 系统硬件电路设计

2.1遥控系统

以STC12A60S2单片机为主要控制芯片的最小系统为核心,当按键电路产生一个指令,通过无线通信模块实现无线数据收发,首先发射动作指令,远程控制小车完成相应动作.然后接收小车上的DS18B20温度传感器检测到的实时温度值,通过无线通信模块发送给遥控器,再由遥控器上的LCD1602模块显示.

2.1.1单片机最小系统

STC12系列单片机是宏晶科技生产的单时钟/机器周期(1T)的单片机,是高速/低功耗/超强抗干扰的新一代8051单片机,在指令代码上面完全兼容传统的8051,但速度却比传统的80C51单片机快8~12 倍,工作频率范围为0~35 MHz,相当于传统8051的0~420 MHz.其工作电压为5.5~ 3.3 V(5 V 单片机),内置MAX810专用复位电路,两路PWM,A/D 转换,一路SPI接口,八路10 位精度ADC,转换速度可达250 K/s[3].单片机管脚图如图2所示.

2.1.2NRF24L01无线收发模块

NRF24L01+是NORDIC公司最近生产的一款工作在2.4~2.5 GHz世界通用ISM 频段的超低功耗单片通信芯片,采用FSK 调制,内部集成NORDIC公司的Enhanced Short Burst 协议.无线通信速度最快可以达到2 Mbps.该芯片使用很方便,单片机电子DIY爱好者和专业人员只需要为单片机系统预留5个GPIO接口,1个IRQ(中断输入)引脚就可以轻松实现无线通信,非常适宜通过配置某些单片机自带的SPI 接口,或者用普通I/O接口模拟SPI 接口构建单片机无线通信系统[4].NRF24L01无线通信模块电路接口如图3所示.

图2 单片机最小系统

图3 NRF24L01模块接口电路

2.1.3LCD1602液晶显示模块

液晶模块以其功耗极低、轻巧超薄、显示信息量大等诸多优点,在小型、便携、数字、智能化仪器仪表中都有广泛应用.本设计使用LCD1602液晶模块作为显示模块.LCD1602接口电路如图4所示.

图4 LCD1602接口电路

2.1.4按键电路

本设计采用按键控制,有编程方便、硬件电路结构简单的特点.当UP键按下时小车前进,Down小车后退,Left小车左转,Right小车右转,当Pause键按下时小车即停止动作.按键电路如图5所示.

图5 遥控按键电路

2.2小车系统

小车控制电路同样以STC12系列的单片机作为主控芯片,DS18B20温度传感器负责检测和收集环境温度,由小车上的单片机传输给无线收发模块发射,并接受遥控器指令,单片机按照处理结果控制L298N机电驱动模块,驱动两路直流电机,使小车完成动作响应.

2.2.1电机驱动模块

L298N是一款集成的高电压、高电流、双路全桥式电机驱动芯片,可接受标准TTL逻辑电平信号VSS. VSS可接4.5~7 V电压.4脚VS接电源电压,VS电压范围VIH为2.5~46 V.输出电流可达2.5 A,可驱动电感性负载.1脚和15脚下管的发射极分别单独引出以便接入电流采样电阻,形成电流传感信号[5].L298可驱动2个电动机,OUT1、OUT2和OUT3、OUT4之间可分别接电动机.我们选用驱动两组直流电机.5,7,10,12脚接单片机输入控制电平,然后驱动电机的正转或反转.EnA、EnB为L298N电机驱动模块的使能控制,同样接单片机,控制电机运行或停止工作.

本设计的动力驱动部分采用ST公司原装全新的L298N 芯片为核心驱动模块,可直接驱动两路3~35 V 直流电机,并提供了5 V 输出接口(电机驱动电压可以最低输入为6 V),可以给5 V单片机电路系统供电(低纹波系数),支持3.3 V 单片机或嵌入式控制,直流电机的速度和方向可以被方便地控制,也可以控制一路2 相步进电机或一路5 线4相步进电机.模块原理图如图6所示.

图6 L298N直流电机驱动模块原理图

2.2.2DS18B20温度检测电路

数字化温度传感器DS18B20是Dallas半导体公司生产的支持“一线总线”接口的温度传感器.温度测量范围在-50 °C~+120 °C内,精度为±0.5 °C[6].现场温度直接以“一线总线”的数字方式传输,大大提高系统的抗干扰性,适合恶劣环境的温度检测,支持范围在3~5.5 V 之间的电压,系统设计更灵活、简便.温度检测接口电路原理图如图7所示.

图7 接口电路原理图

2.2.3电源电路

本系统按键遥控器电路和车载系统的最小系统使用+5 V电源,而无线收发模块需要使用+3.3 V电源.由于要使用两种不同的电源,故本系统采用电池组分别变换成+5 V和+3.3 V电压对系统供电.电路原理图如图8所示.

图8 电源电路原理

3 实时图传系统

3.1图传系统简述

图传系统是可以实时监测环境指标变化的可视遥控装置,代替作业人员进入作业环境进行实时环境监测,甚至代替作业人员进行作业.但由于51内核单片机的I/O数据传输能力相对较低,故很难支撑较高的数据传输速率.本系统在无线智能遥控小车原来设计的基础上,特别在原来遥控小车的基础上增加了一个5.8 g实时图传系统.即用NRF24L01+无线收发模块进行小车控制和温度实时数据收发,5.8 g图传模块只负责作业环境的实时图像传输.

3.2图传系统结构设计

系统由微型摄像头实时采集图像,再由5.8 g无线图传发射模块发射图像数据.当5.8 g无线图传接收模块接收到图像数据信号时,由TFT显示屏显示实时图像,或经USB视频采集卡将采集到的图像传输给显示设备实时显示出来.图传系统结构示意图如图9所示.

图9 图传系统结构示意图

4 系统软件设计

本系统的控制程序设计采用模块化程序结构设计,主要分为两大部分:遥控部分和小车部分.每个部分都由若干个子程序和主程序组成.

4.1遥控程序设计

遥控部分由若干子程序组成,分别为遥控主程序和延时子程序、按键子程序、无线收发子程序和液晶显示子程序等.

4.1.1遥控器主程序

系统上电或复位后,系统程序首先初始化,并提示“temperature”.系统延时6 s后判断定时器计时是否到200 ms[7].如果定时器计时到200 ms,程序自动进入发射模式并关闭中断,扫描按键,发射由按键产生的按键值并检测是否达到最大重发次数.如果达到,则清除状态寄存器、其他数据寄存器和中断标志位并返回主程序开启中断;若没有到达最大重发次数,系统将一直重发,直至达到最大重发次数并清除状态寄存器和数据寄存器,返回遥控主程序开启中断.当定时器没有计时到200 ms,程序进入接收模式,此时程序将判断是否接收到数据包.如接收到数据包,单片机将根据接收到的数据,再由LCD1602液晶模块显示小车实时监测到的环境温度,并清除状态寄存器、其他数据寄存器及中断标志位并返回主程序.若没有接收到信号,系统将直接返回主程序.小车部分的主程序流程图如图10所示.

4.1.2无线收发模块子程序

主程序首先计时,再判断定时器是否计时到200 ms;如果到了200 ms,程序进入发射模式关闭中断,并读寄存器,判断是否收到数据.若是则读取数据并置位、发送数据,检测是否发射成功.若发射成功则清除状态寄存器及TX数据寄存器并返回主程序,若没有发射成功则系统将会一直发射,再检测是否达到最大重发次数.若达到最大重发次数则清除状态寄存器及TX数据寄存器、中断标志位并返回主程序.若没有达到最大重发次数,程序将一直重发数据,直到达到最大重发次数并清除状态寄存器及其他数据寄存器和中断标志位并返回主程序开启中断.发射程序流程图如图11所示.

图10 遥控主程序流程图

图11 发射程序流程图

主程序判断定时器是否计时到200 ms.没有到200 ms程序进入接收模式并读RX寄存器,判断是否收到数据,若是则读取数据并通过单片机处理数据,检测是不是达到最大重发次数.若到达最大重发次数则擦除状态寄存器及数据寄存器和中断标志位并返回主程序.没有到达最大重发次数,程序将直接清除数据寄存器、中断标志位并返回小车主程序.接收程序流程图如图12所示.

图12 接收程序流程图

4.2小车程序设计

小车程序分别由延时子程序、无线收发子程序、温度检测子程序、电机驱动子程序和小车主程序构成.

4.2.1小车主程序

程序上电或复位后程序初始化,系统延时6 s后判定定时器是不是计时到200 ms.如果到了200 ms,程序进入发射模式并关闭中断,发射由DS18B20采集的温度值并检测是否达到最大重发次数.如果达到则清除状态寄存器及其他数据寄存器、中断标志并返回主程序开启中断;若没有到达最大重发次数,程序将一直重发,直到到达最大重发次数并擦除状态寄存器及其他数据寄存器、中断标志并返回主程序开启中断.当定时器没有计时到200 ms,程序进入接收模式,此时程序将判断是否接收到数据.如接收到信号,单片机将根据接收到的数据指令驱动小车完成相应的动作,并清除状态寄存器及其他数据寄存器、中断标志并返回主程序.若没有接收到信号,程序将直接返回主程序.小车主程序流程图如图13所示.

4.2.2电机驱动子程序

电机驱动子程序的主要功能是将单片机接收到的按键动作指令通过PWM函数产生一组PWM波控制L298N电机驱动模块驱动电机并响应相应的反应动作.电机驱动子程序流程图如图14所示.

图13 小车主程序流程图

图14 电机驱动子程序流程图

5 系统测试结果

5.1测试仪表

测试采用秒表、刻度尺、卷尺、温度计等.

5.2测试方法

(1)将小车放在空旷地域,开启电源开关,由手持无线遥控器在100 m/200 m/500 m范围内控制小车前进、后退、加速、减速、左转、右转.

(2)将小车放在200 cm×200 cm大小的木板上,在木板上制定坐标X轴、Y轴,设置好坐标后让小车自动跑到该位置.

(3)将小车所处的环境温度通过无线通信显示在遥控器LCD1602液晶显示屏上.

5.3测试结果

经多次测量在0.5 km以内控制小车情况良好.在200 cm×200 cm的制定坐标的范围内电动小车能将其位置的坐标值实时传送至手持无线遥控器.手持无线遥控器给定坐标后小车能够找到目标地点并到达指定地点,定点误差小.温度的采集与传输精度在误差范围内.

6 结语

本设计是基于STC12C5A60S2单片机的无线遥控小车,虽然还有不足,但总体设计相对较好,可以连续扩展和改良.如可将按键控制改成摇杆电位器控制,可以加装其他传感器如一氧化碳、甲烷检测等,还可以加装机器手臂,让小车可以抓取工具.

图15 遥控器与小车系统实物

[1]黄建能,杨光杰.无线遥控小车[J].现代电子技术,2012(23):126-128.

[2]刘汪,董晓庆.基于单片机的无线遥控小车[J].科技信息,2013(4):155.

[3]陈双燕.远程温度检测系统的设计[J].武夷学院学报,2014(2):66-69.

[4]包宋建,李文森.基于单片机的四旋翼飞行器智能控制及图像实时传输系统设计[J].重庆文理学院学报,2013,32(5):53-56.

[5]冯洋.智能环境数据采集小车[J].电子设计工程,2015(21):12-14.

[6]包宋建.一种视频帧宏块噪声判断的自适应边缘检测技术[J].重庆文理学院学报,2014,33(2):117-120.

[7]余福兵.电阻炉智能温度控制器的设计[D].内蒙古:内蒙古科技大学,2012:14-16.

(责任编辑穆刚)

Research and realization of intelligent wireless remote control car based on SCM

Song Yixin, CHEN Chao, XU Bin, TAN Jun, DAI Hangyi, BAO Songjian

(School of Electronics Engineering, Chongqing University of Arts and Sciences, Yongchuan Chongqing 402160, China)

The paper introduces a wireless remote control car controled by the STC12C5A60S2 single-chip microcomputer, and the system was designed with control preaches and independent imagine transmission devices, that is to say, the data transceiver module controls the temperature and sends it to the computer. And the imagine module is responsible for sending the work conditions and STC12C5A60S2 is the core of control parts; the car completes the corresponding action based on the use of NRF 242L01 data transceiver module and the electricity of L298N motor driven. DS18B20 is responsible for measuring temperature. Then the transceiver module launches the data which is seen on LCD1602. The system is designed with modular parts and compact structures. What’s more, it is convenient to update with high reliability.

single chip microcomputer; NRF24L01+; L298N;DS18B20

2015-10-26

重庆文理学院校级科研项目“基于单片机的无线遥控小车研究与实现”(XSKY2015052).

宋亦薪(1985—),男,重庆璧山人,硕士研究生,主要从事电力系统运行、信息控制方面的研究;陈超(1993—),男,重庆梁平人,主要从事电力系统运行、信息控制方面的研究.

包宋建(1974—),男,重庆永川人,讲师,硕士,主要从事视频编码、嵌入式系统控制方面的研究.

TP242

A

1673-8004(2016)05-0069-06

猜你喜欢
主程序子程序寄存器
STM32和51单片机寄存器映射原理异同分析
自动升级程序在船舶监测系统中的应用
Lite寄存器模型的设计与实现
浅谈数控铣削技术代码程序的嵌套方式研究
电控冰箱软件模块化设计
时光倒流 换回PotPlayer老图标
浅谈子程序在数控车编程中的应用
子程序在数控车加工槽中的应用探索
西门子840D系统JOG模式下PLC调用并执行NC程序
简化编程与子程序嵌套的应用