APP下载

基于nRF2401无线通信系统控制的智能小车设计

2019-10-21鲁益帆

科学与财富 2019年35期
关键词:串口通信智能小车无线通信

鲁益帆

摘 要:智能小车可以根据人们的需求,添加一些特定的功能,比如工厂里,检测一定区域的温度或气体参数,在人不便暴露的情况下,智能小车就可以代替人们工作了,它可以沿着一定的轨迹,按照设计好的道路前进,进行探测。但是一旦遇到规定道路以外的情况又该怎么办,这时还需要人对小车进行控制,就产生了无线控制的需求,本文正是以无线通信作为重点,对智能小车进行设计。

本文设计智能小车实现的主要功能是利用电脑端上位机通过nRF24L01模块发送信息给以STC89C51单片机为核心的智能小车,来完成实时无线通信并对实现其远程操控。

关键词:智能小车;nRF2401;循迹行驶;串口通信;无线通信

概述

本文是基于STC89C51系列单片机进行智能循迹小车的设计与制作。小车依靠红外光电传感器检测道路和反馈路况信号,自主控制小车按照规定的路径行驶,并能实现启动、停车、蔽障、入库、报警等功能,当小车发现规定路径以外的情况,可以人工干预,采用远程无线控制的操作,进行查看。

1系统设计

本设计使用STC89C51单片机为核心的智能小车进行循迹行驶,且电脑可以与其实时无线通信并对其远程控制。设计使用到了STC89C51单片机、nRF24L01无线通信模块、信号采样模块、驱动电机模块、电源模块等模块来完成。

1.1系统整体方案设计

实现系统总体方案如图1所示。

1.2单片机最小系统

本设计的控制核心为STC89C51单片机,通过各个IO口来控制每一个模块。STC89C51采用的是8051核的ISP在系统可编程芯片,单片机兼容标准的111条MCS-51算数运算指令及80C51引脚结构。时钟频率从0~35MHz,实际工作频率可达48MHz,4KB的flash,512B RAM,共有27个IO口,有2个16位定时器/计数器,2路外部中断。具有UART和SPI,可支持全双工通信。本设计需要8个采样信号输入IO口,6个电机驱动IO口,8个无线模块数据传输IO口,完全可以满足本文的设计。

1.3采样模块

这里,采用TCRT5000型号的传感器。目前,循迹轨迹的颜色大都是黑色,因为黑色能够吸收大部分的光,导致反射的光减少。当红外发射管发射的红外线遇到黑色物体时,大部分红外线都被吸收了,反射出来的红外线就变得极少;若是照射到白色物体上时,大部分的红外线都会被反射回来。TCRT5000传感器的红外发射二极管一直不间断地发射红外线,如果没有检测到反射回来的红外线,则光敏三极管一直处于断开状态,模块输出低电平;相反,如果检测到的红外线达到要求值,则可以导通光敏三极管,让模块输出高电平。由此,就可以判断小车是否在规定的路径上行驶了。

有了TCRT5000检测黑线,还不够。还需要添加外部检测电路,才能实现采样功能,可以有多种选择,本文采用LM339(四路差动比较器)。电路设计如图3所示:比较器有两个输入端和一个输出端,“+”号表示的为同输入端,“-”示的为反向输入端。比较信号电压时,哪一端的电压高边输出哪一端的电压。R4为滑动变阻器,作分压电阻来提供合适的比较电压,根据路面情况和小车底盘距离地面的高度可以进行适当的调节。

1.4驱动模块

STC89C51的每一个IO口最多只能输出20mA左右的电流,这样小的电流远远不能驱动直流电机。因此必须借助驱动芯片来驱动电机。本文采用了较为常见的L298N驱动芯片。本设计L298N采用封装是15脚Multiwatt封装。可以驱动两个接直流电机,使用单片机的IO口提供信号;而且电路简单,使用比较方便。L298N驱动模块中驱动一个直流电机的信号有三个(ENA, OUT1, OUT2),分别连接MCU的P2.0, P2.2, P2.3, 分别负责芯片的使能和电机正转反转,本设计中的EA端接+5V信号。

1.5电源模块

为了使输入电压达到一个稳定的值,电源模块的芯片采用了LM2576HVT-5.0,稳压降压效果很好,最高输入电压不超过45V。电源插口出,设计有整流桥,将交流转化为直流,也可以防止反接。本设计采用的是通用的18650电池组,供电电压为7.4V。

1.6无线模块

nRF24L01是一款单片无线收发器芯片,工作在2.4~2.5GHz世界通用ISM频段。输出功率、频道选择和协议的设置都是通过SPI接口进行设置。ISM频段是主要开放给工业,科学和医学机构使用,这一频段是免费使用的,而且无需申请。

整体模块的配置,包括工作模式,输出功率和频道的选择,协议的设置等等都可以通过SPI串口与单片机连接进行设置,同时传输无线数据。

本设计中,nRF24L01采用的是模块化产品,在主板位置预留出接口即可,即插即用。CE引脚的作用是使能,让芯片发射或者接收,CSN,SCK,MOSI,MISO这四个是SPI串口通信的引脚,分别是片选线,时钟线,输入线和输出线。MCU可通过这四个引脚来控制和配置nRF24L01;另外IRQ为中断标志。

2 电机控制

本文对驱动电机模块的信号控制设计方面,采用了PWM(脉冲宽度调制)控制,这是一种非常经济、方便且实用的方法,搭配L298N的驱动电路实现对直流电机的调速。单片机引脚输出的波形,一般是矩形波,且周期是固定的。改变每一个周期中高电平的脉冲宽度,即高电平在整个周期之中的占有比例,也称作占空比,就是PWM。

有一些单片机,本身就含有硬件PWM 模块,这样设计程序时就变得较为简单,但STC89C51系列,就不具备这个条件。在没有 PWM 硬件的单片机上实现 PWM,并不困难,只需一个定时器,让它在中断方式工作即可,控制其中断的时间,这样就可以控制高电平输出的时间,从而改变其占空比,完成PWM控制。

电机的转速是由电机电压进行控制的,电压越大,电机的转速也就越快,而电机两端的电压是由控制信号波形中的占空比来决定的,占空比越大,电压也就越大,相当于占空比越大,电机的转速也就越快。当占空比=1时,电机转速达到最大。在实际操作过程中,控制信號的频率不用很高,400Hz以下就足够使用了,占空比的多级调节可由实际进行设计,10级,20级调节都是可以的。此外,在小车前进时,占空比不需要太高,太高会导致小车全速行驶,这样循迹信号的检测,就变得很不稳定了。直线行驶和转弯行驶应该分开来设计,转弯的时候,车速不宜过快,否则方向不易控制,小车容易滑出规定的线路之外,若是设计的太慢了,未免过于浪费时间,可以根据实际情况,进行调节。

3 软件开发

常用的开发思维即是模块化编程,先将系统需求分划开来,分成多个模块,然后按每个模块来细化编写,主要在keil5软件平台进行编写,使用STC烧写软件进行烧写。

主要分为一下几个模块:

1.采样检测模块:主要检测路面的黑色循迹线路,当识别到黑色循迹线路时,要给单片机一个反馈信息,同时要点亮对应的二极管方便查看。

2.PWM调速模块:单片机通过定时中断来控制IO口输出波形中高电平的占空比,从而实现对电机两端电压的调整,完成加速和减速操作。

3. 小车控制模块:通过L298N驱动来操控电机的前进后退等基本操作。根据PWM调速模块和采样检测模块,实时调整电机的速度,通过左右轮速差,来做到转弯前进。

4. 无线通信模块:电脑端通过上位机对nRF24L01模块的操作,发射无线信息给智能小车,小车通过nRF24L01模块来接收信息,进行判断,执行操作。所以要对nRF24L01模块进行配置。

4. 总结

本文基于nRF24L01芯片展开了设计,目的就是通过无线操作智能小车,来完成一些人类不便进入的区域的任务,既然是模块化的设计,就如同搭积木一般,可装可拆,本设计还有更多的展望,如添加一个温度检测传感器、气体检测传感器等等,在一些较为危险的地方,可以代替人类进行探测。

参考文献:

[1]张毅刚.单片机原理及接口技术[M], 人民邮电出版.

猜你喜欢

串口通信智能小车无线通信
基于Qt和Flash的嵌入式Linux软件架构设计
基于STC89C51智能小车的移动家居平台的设计
基于HC—SR04超声波传感器的智能避障小车设计
串口通信在智能家居监控系统中的应用
无线通信技术在测绘工程中的应用分析
基于ZigBee的舱内人员巡检系统的应用研究
智能安全防盗探测小车
基于OpenCV的室内照明智能控制系统设计与实现