2023年6月29日发(作者:)
基于Android平台的无线遥控智能小车
朱丹峰;葛主冉;林晓雷
【摘 要】Design the hardware and software in the Android-based
intelligent car with wireless remote system has two kinds of
remote control ways:Bluetooth and for the hardware,the system
takes STC12C5A60S2 singlechip as the core,others is mainly composed by
the Android devices,power supply modules,DC motor driver
module,tracking module,obstacle avoidance module,light-searching
module,WiFi module and camera ing the software,complete
the programming of Android device in the upper computer and singlechip
in the lower comparing the programs and testing the
relevant parameters,the results show that the system of the intelligent car
is stable and it can achieve the desired goals by perfectly performing
functions of wireless remote control,tracking,obstacle avoidance,light-searching,video monitoring and so on.%设计基于Android平台的无线遥控智能小车的软硬件.该系统具有蓝牙和WiFi两种遥控方式.在硬件方面,该系统以STC12C5A60S2单片机为核心,其他主要由Android设备、稳压电源模块、直流电机驱动模块、循迹模块、避障模块、寻光模块、蓝牙模块、WiFi模块及摄像头模块等组成.在软件方面,完成了上位机Android设备程序、下位机单片机程序的编写.经过方案的对比,相关参数的测试,实验结果表明该智能小车系统稳定,能完成无线遥控、循迹、避障、寻光、视频监控等功能,达到预期目标.
【期刊名称】《电子器件》 【年(卷),期】2013(036)003
【总页数】5页(P408-412)
【关键词】Android;WiFi;蓝牙;单片机;监控;智能小车
【作 者】朱丹峰;葛主冉;林晓雷
【作者单位】温州医学院生物医学工程系,浙江温州325035;温州医学院生物医学工程系,浙江温州325035;温州医学院生物医学工程系,浙江温州325035
【正文语种】中 文
【中图分类】TP242.6
目前,蓝牙和WiFi技术得到了空前广泛的应用,使用蓝牙和WiFi的产品非常多,如手机、电脑、汽车、游戏设备和医疗设备等。在中国,手机的普及率已经很高,通过移动设备实现远程控制已成为人们需求的方向[1]。Android是一种以Linux为基础的开放源码操作系统,基于此平台的应用程序开发,越来越热门[2]。基于Android平台的蓝牙遥控小车具有远程控制(蓝牙,WiFi)、自动循迹、自动避障、寻找电光源等功能,有一定的新颖度,能够运用到实际生产,有一定的社会需求,可以进一步开发用来完成一些目前人类无法完成的任务,具有一定的实际意义。
1.1 总体方案设计
智能小车硬件以STC12C5A60S2单片机为控制核心,用光电传感器获取外界信号,使用电机驱动电路驱动直流电机。整个系统分为以下几个模块: Android设备、稳压电源模块、控制器模块、直流电机驱动模块、循迹模块、避障模块、寻光模块、蓝牙模块、WiFi模块及摄像头模块组成。总体硬件框图如图1所示。 1.2 智能小车控制系统硬件电路设计
1.2.1 智能小车控制器模块
控制器是智能小车的核心,本系统采用51系列单片机,具体型号为STC12C5A60S2。STC12C5A60S2系列单片机是宏晶科技生产的单时钟/机器周期(1T)的单片机,指令代码完全兼容传统8051,但速度比8051快8倍~12倍,片上集成1 280 byte RAM,针对电机控制,强干扰场合,内部结构包括中央处理器(CPU)、程序处理器(Flash)、数据存储器(SRAM)、定时/计数器、UART接口、串口2、I/O口、高速A/D转换、SPI接口、PCA、MAX810专用复位电路、看门狗及片内R/C振荡器和外部晶体振荡电路等模块。本系统需要单片机实现复位,I/O口控制,PWM调速等功能[3]。
1.2.2 直流电机驱动模块
目前大多采用开关型驱动方式驱动直流电机,最常见的驱动方式是脉冲宽度调制(PWM)[4]。本系统电机驱动芯片采用L298N,采用单片机PWM调速,L298N可以驱动两组直流电机,其单组驱动电流可达2 A。电机驱动模块原理如图2所示。
1.2.3 循迹、避障、寻光模块
循迹模块采用发射接收一体式红外传感器TCRT5000,体积小、灵敏度高、光电转换速度快、能防止其他光线干扰。TCRT5000输出信号经门电路整形后可以给单片机提供稳定的TTL信号,使寻线更加准确稳定。
避障模块采用发射接收一体化反射式光电传感器,用红外接收头和红外发光二极管进行避障,红外接收头接收已调制好的信号,受其他光源的影响很小。避障传感器感应距离在3 cm~80 cm。
寻光模块采用光敏二极管的光电效应对周围环境光的强度进行检测。光敏二极管灵敏度高,线性好,方向性好,可感知固定方向的可见光,能将光信号转变成电信号,便于单片机判断。
循迹、寻光模块原理如图3所示。
1.2.4 蓝牙模块
蓝牙设备体积小、功耗低,广泛地应用在嵌入式平台上。本系统采用HC-06蓝牙模块,HC-06蓝牙模块可以通过AT指令修改参数,可以掉电保存参数,给蓝牙模块上电,不配对的情况下就是进入AT模式了,指令间隔1 s左右。
1.2.5 WiFi模块
Openwrt是一个小型Linux系统,DB120-WG路由器安装上Openwrt后,其功能将变为异常强大,可做为一台小型服务器,安装好数据转发和监控软件后,可以实现与单片机的串口通信,并用WiFi传输视频信号,实现视频监控功能[5]。本系统安装的视频监控软件为MJPG-streamer,安装好后通过命令启动该软件,mjpg_streamer-i"input_-yd/dev/video0"-o"output_-p 8080-w/
www/camweb"。mjpg_streamer启动成功后,则可以通过浏览器访问路由IP:8080/?action= stream查看视频。
DB120-WG需要安装Ser2net实现网络转串口[6],并设置波特率为9600
bit/s,8 bit数据位,1 bit停止位。DB120-WG通过WiFi接收上位机Android设备的命令,然后通过Ser2net转发给单片机串口,用来控制小车运动。
1.2.6 摄像头模块
虽然Linux系统对芯片为ZC301的摄像头驱动支持更好,但是现在市场上摄像头多为UVC摄像头,且摄像头像素更高,所以本系统采用UVC摄像头,摄像头通过USB接口与DB120路由器相连接,安装好驱动和视频监控软件后即可通过DB120-WG的WiFi功能传输视频信号。
2.1 主程序流程
本系统的软件需完成以下功能: (1)检测小车所处的环境状态,如黑白线,障碍物,光照强度等;
(2)控制电机的运转方向与速度;
(3)接收上位机Android设备的控制命令。
下位机软件流程如图4所示。
2.2 系统初始化
单片机上电后,首先执行初始化动作,包括I/O口工作模式、中断、串口、PWM初始化等。
2.3 串口通信
单片机与蓝牙模块、WiFi模块的无线通信是利用单片机的UART接口。STC12C5A60S2单片机具有2个采用UART工作方式的全双工串行通信接口。每个串行口由2个数据缓冲器、一个移位寄存器、一个串行控制寄存器和一个波特率发生器等组成。
2.4 循迹、避障、寻光的实现算法
单片机通过传感器,检测外界环境状态,作出判断,从而改变小车行驶状态。由于单片机资源利用率不高,所以小车的循迹、避障、寻光都采用轮询方式。传感器检测到的信号与环境状态关系如表1所示。
2.5 电机驱动与PWM调速
STC12C5A60S2单片机集成了两路可编程计数器阵列(PCA)模块,可用于软件定时器、外部脉冲的捕捉、高速输出以及脉宽调制(PWM)输出。PWM初始化代码如下:
P1M1=0x00;
P1M0|=0x18;//设置P1.3,P1.4口为强推挽输出,输出PWM信号
CMOD|=0x04;//选择定时器T0的溢出率为PWM时钟源,控制PWM波的频率
CCAPM0|=0x42;//允许比较器功能,开启PWM0 CCAPM1|=0x42;//允许比较器功能,开启PWM1
CL=0x00;//计数器清零
CH=0x00;
CR=1;//启动PWM
可以通过改变寄存器 CCAP0L、CCAP0H、CCAP1L、CCAP1H的值来分别改变两路PWM占空比。通过示波器测得的PWM波形如表2所示。
3.1 Android系统架构
Android系统架构由5部分组成,分别是Linux内核(Linux Kernel)、运行环境(Android Runtime)、开发库(Libraries)、应用框架(Application Framework)、应用程序(Applications)[7]。Android系统架构如图5所示。
3.2 Android应用程序开发环境Eclipse
Android应用程序开发支持 Windows、Linux、Mac OS等操作系统,当前中国主流的操作系统是微软的Windows系统,在Windows下大多采用Eclipse搭建Android开发环境。Eclipse(Integrated Develop-ment Environment)是一个集成开发环境,通过插件来构建开发环境,主要由Eclipse项目、Eclipse工具项目和Eclipse技术项目三个项目组成,具体包括四个部分组成——Eclipse Platform、JDT、CDT和PDE[8]。Eclipse具有以下特点:
(1)开放源代码,能接受由Java开发者自己编写的插件;
(2)附带了一个标准的插件集,包括Java开发工具JDT(Java Development
Tools);
(3)对内存控制很好,Eclipse对插件的调用是动态的,Eclipse会在适当的时候将长时间不用的插件清理出内存,程序员不用担心内存不足的问题。
基于Android平台的无线遥控智能小车,通过单片机、Android设备及软件设计实现了无线遥控、循迹、避障、寻光、视频监控等功能。在该控制系统下,无线遥控小车具有良好的操控性、扩展性、实用性。经过测试,得出智能小车技术参数,如表3所示。
由于客观条件不足和本人能力有限,还存在以下不足之处需要改善:
(1)单片机控制算法较简单,应对循迹、避障、寻光的算法做进一步优化;
(2)视频传输速度不够快,有延迟。
(3)本系统只考虑了点对点的控制,下一步可以开发实现点对多点的控制。
朱丹峰(1983-),男,温州医学院生物医学工程系助理实验师、工学硕士,研究方向为自动化控制,**************;林晓雷(1984-),女,温州医学院生物医学工程系助理实验师、工学硕士,研究方向为生物医学工程,****************。
【相关文献】
[1] 林志翔,肖宝森.新型多功能智能小车的设计与应用[J].现代电子技术,2011,34(6):134-136.
[2] 杨丰盛.Android应用开发揭秘[M].北京:机械工业出版社,2010:1-4.
[3] 刘泉,李成.基于CC2500的无线信息家电节点设计[J].电子器件,2009,32(1):153-157
[4] 陈德益.基于嵌入式单片机的电机控制系统设计[J].计算机仿真,2010,27(1):359-362.
[5] Fu of Digital Video Capture System Based on USB2.0[J].Zhuangjiabing Gongcheng Xueyuan Xuebao,2005,5 (15):23-27.
[6] 李佐彬.Android开发入门与实战体验[M].北京:机械工业出版社,2011:32-35.
[7] DiMarzio J d A Programmer’s Guide[M].McGraw-Hill Osborne Media,2008.
[8] 强锋科技,陈刚.Eclipse从入门到精通[M].北京:清华大学出版社,2005:5-6.
发布者:admin,转转请注明出处:http://www.yc00.com/web/1688025154a67843.html
评论列表(0条)