周杨
摘要:随着电子技术的发展,虽然红外遥控(IR)技术依旧凭借其成本低廉的优势,应用于家电等领域,但是由于遥控距离、抗干扰等缺点,无线电遥控(RF)技术在防盗报警设备、门窗遥控、汽车遥控等方面得到更广泛的使用。此文介绍基于STC51单片机设计的2.4GHz远距离遥控车设计。从硬件和软件两个方面介绍如何实现2.4GHz无线遥控车的设计。
关键词:STC12LE5410AD;nRF24L01;无线遥控;NOKIA5110液晶
中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2015)09-0259-02
1 硬件设计
1.1 系统框图
1.2 电源模块
如图1所示,系统电源主要考虑为单片机、液晶显示、无线收发模块、电机驱动供电。综合考虑功耗和重量,本系统不采用9V干电池而使用四节1.5V干电池(6V)供电。其中6V给电机驱动模块供电,另外采用线性稳压芯片LM1117-3.3将输入电压6V降压到3.3V分别给单片机和无线收发模块供电,因为单片机和无线收发模块都使用低功耗芯片,所以线性稳压芯片功耗较少。为了减少电源干扰对收发模块的影响,使用磁珠和0欧电阻将3.3V和地隔开。
1.3 单片机模块
STC12LE5410AD是单时钟兼容8051内核的单片机,是高速、低功耗的新一代8051单片机。速度比普通8051快8~12倍,全新的流水线、精简指令集结构,内部集成MAX810专用复位电路。
1.4 无线收发模块
nRF24L01是一款工作在2.4~2.5GHz世界通用ISM频段的单片无线收发器芯片,内部集成Enhanced Short Burst协议。可以实现点对点或是1对6的无线通信。无线通信速度可以达到2Mbps,高效GFSK调制,抗干扰能力强,空旷环境可以达到100米收发。该模块采用SPI接口与单片机进行通信,1.9~3.6V的低电压工作范围非常适合本系统。为了减少电路对收发模块的干扰,PCB设计时尽量将SPI信号线远离电源线及其他信号线。
1.5 电机驱动模块
四轮结构小车不论是是四轮驱动还是后轮驱动,虽然运行会比较稳定,但是车体转向不够灵活,又或功耗较大。因此,本系统采用三轮结构,车体中心前方使用万向轮,减少阻力,后轮为驱动。两个带减速器的直流电机作为运动驱动,具有转动力矩大、体积小、重量轻、装配简单、使用方便等优点。电机驱动芯片选择L9110S。
L9110S是为控制和驱动电机设计的两通道推挽式功率放大专用集成电路器件,将分离电路集成在单片IC内部,仅需极少的外围器件,成本降低,可靠性提高。同时,该芯片具有良好的抗干扰能力,输出端可直接驱动电机正反向运动及刹车,具有较大的电流驱动能力。
相比于L298驅动芯片,牺牲了对速度的控制,但是简洁的设计不仅降低成本,提高系统稳定性,同时也极大的减少了软件的复杂度。不同于PWM控制,仅需要四个I/O口的高低电平就可以实现停止、前进、后退、左转、右转的功能,节省了单片机定时器资源。
1.6 液晶显示模块
LPH7366是NOKIA公司生产的可用于5110、6150、6110等系列移动电话的液晶显示模块。NOKIA5110 LCD液晶模块采用低功耗COMS LCD 驱动芯片PCD8544。84×48点阵LCD,可以显示4行汉字。采用串行接口与单片机通信,整个模块仅需8根线,传输速率高达4Mbps。采用低压(2.7~3.3V)供电,正常工作电流在200μA以下,且具有掉电保护。
在本设计中,发送系统使用液晶显示主要表示当前运动状态,停止、前进、后退、左转、右转五个状态。接收系统使用液晶显示主要用于方便调试,显示接收到的命令。
2 软件设计
软件设计最重要的就是单片机与无线收发模块的通信。无线收发模块预留的通信方式是SPI模式,虽然本系统采用的STC12LE5410AD具有SPI通信接口,但是为了降低软件调试的难度,还是采用I/O口模拟SPI通信实现单片机与无线收发模块的通信。其中,nRF24L01无线收发模块软件设计的重点在初始化过程。
2.1 发送模块
发送(TX)模式初始化过程:
1)写入TX节点地址;
2)写入RX节点地址(主要用于使能AUTO ACK);
3)使能AUTO ACK;
4)使能PIPE0;
5)配置自动重发次数;
6)选择通信频率;
7)配置发射参数(低噪放增益、发射功耗、无线速率);
8)选择通道0有效数据宽度;
9)配置nRF24L01的基本参数以及切换工作模式。
2.2 接收模块
接收(RX)模式初始化过程:
1)写入RX节点地址;
2)使能AUTO ACK;
3)使能PIPE0;
4)选择通信频率;
5)选择通道0有效数据宽度;
6)配置发射参数(低噪放增益、发射功率、无线速率);
7)配置nRF24L01的基本参数以及切换工作模式。
如图6所示为系统发送模块和接收模块单次发送与接收的程序流程图。发送模块主要指的是遥控器,软件根据按下的按键检测对应的控制命令装载到发送缓存区并发送出去。接收模块指的是车体,软件接收到发送的控制命令,根据命令的不同做出相应的动作。
3 结束语
经测试,本文介绍的遥控车在硬件焊接无误情况下,可以正常使用。空旷场地,十米以上可以实现停止、前进、后退、左转、右转动作。
本文介绍的遥控小车具有设计简洁,运行稳定,遥控距离远的优点。单片机系统预留了多余的I/O管脚及液晶显示,可扩展升级,比如增加超声波测距可以检测前方障碍物的距离,然后发送到遥控器上,提供操作人员参考。
参考文献:
[1] 彭伟. 单片机C语言程序设计实训100例[M]. 北京: 电子工业出版社, 2010.
[2] 张义和, 王敏男, 许宏昌,等. 例说51单片机(C语言版)[M]. 3版. 北京: 人民邮电出版社, 2010.
[3] 刘志平, 赵国良. 基于nRF24L01的近距离无线数据传输[J]. 应用科技, 2008, 35(3): 55-58.
[4] 刘开绪. 韩志友. 基于AT89C51的寻迹小车掉头运动系统设计与实现[J]. 长春工业大学学报: 自然科学版, 2009, 30(1): 78-82.