梁 妍,张天一
(郑州工商学院,郑州 450000)
摘 要:本文是对Wi-Fi智能电动小车的设计,采用硬件和软件结合的方式实现,主要由控制模块、Wi-Fi信号模块、驱动模块、摄像模块等多个模块组成。摄像模块获取的视频或图片信息可以通过Wi-Fi信号传送给手机或电脑PC机,而手机或电脑PC端也可以通过Wi-Fi发送指令给控制模块,从而控制驱动模块来驱使小车动作,最终实现实时监控及精确控制小车运行的目的。关键词:Wi-Fi;智能控制;驱动模块;小车
0 引言
目前在学生电子设计竞赛中,有关智能电动小车设计和研究项目非常火热。现在电子市场上的智能小车,很多是儿童玩具小车、红外遥控小车,或是带自动寻迹、避障功能的小车,往往存在一些缺陷和漏洞。随着无线网络的不断兴起和发展, Wi-Fi技术应用愈加广泛,它是一种无线技术和网络传输标准,将普通智能小车加上Wi-Fi技术是一种综合性很强的设计。
本文是基于Wi-Fi技术的智能小车设计,以STM32单片机为控制核心,加装有摄像头,可以实现对小车的位置、速度、运动状况的实时检测,将检测的信息通过Wi-Fi模块传送至手机或个人电脑,可以利用Wi-Fi对小车控制模块发送控制指令,从而控制小车的运动,实现小车的智能监测及控制。
Wi-Fi是路由器模块发射出的信号,选用wr703n迷你路由器,用于接收手机或电脑发送的指令,同时把摄像头采集的视频信号传送到手机或电脑屏幕上;选用嵌入式单片机STM32F103作为控制模块,是整个系统的控制核心;4个直流电机由L298N芯片驱动转动,驱动芯片可以使直流电机正转、反转,进而驱动智能小车进行前进、后退、左转、右转等动作;摄像头的安装为智能小车提供了视野角度,摄像头采集的视频通过Wi-Fi信号发送到手机或电脑屏幕上,从而让智能小车在复杂的环境下来去自如;LED的设计可以用于提示作用,当电源通电以后,LED灯发出亮光并进行花样闪烁;智能小车进行不同的运动,LED灯都有对应的提示,使得小车的运动更加完善;电源模块为整个系统提供能量。
图1系统结构框图
1 系统总体设计
1.1总体设计结构框图
总体设计由嵌入式单片机控制模块、直流电机驱动模块、路由器模块、免驱摄像头模块等组成,系统结构框图如图1所示。
www.eepw.com.cn 2019.10
77
机器视觉Machine Vision1.2 整机工作原理
智能电动小车的工作原理是手机或电脑上的APP软件发布指令控制小车运动。当路由器正常工作并发射出Wi-Fi信号时,手机或电脑连接Wi-Fi信号,使得手机或电脑和路由器的IP地址在同一网段并进行正常的通信;打开手机或电脑上的小车APP软件发送控制指令,控制指令通过Wi-Fi信号发给路由器;路由器接收到手机或电脑的控制指令后,通过串口将信号传送至单片机,由单片机进行分析、处理,而单片机处理后的电平信号转化成控制指令传递给驱动模块,驱动模块做出相应的指令来驱动直流电机的转动,以完成智能电动小车的前进、后退、转弯的功能;当智能小车转动时,LED灯根据小车运动的方向做出相应的提示。摄像头的作用是为小车运动采集信息,摄像头采集视频之后通过Wi-Fi信号发送到手机或电脑的屏幕上,通过观察屏幕上的视频让智能小车运动自如。
最小系统是基本的功能单元,由微控制芯片、时钟电路、复位电路、电源电路、启动配置电路和程序下载电路组成。电源电路是必不可少的部分。时钟电路是单片机必须具备的电路设计,它影响着单片机是否正常运行。时钟电路为单片机提供时钟信号,配合单片机程序,使得单片机有节奏地控制各个电路部件。单片机的复位就是让电路恢复到一个初始状态,并确保单片机的稳定性和可靠性。启动模式由BOOT0和BOOT1来选择,有3种不同启动模式。程序下载主要用于芯片测试。
时钟电路采用的是内部时钟方式,需要在XTAL1引脚和XTAL2引脚两端连接一个8 MHz的晶振和两个20 pF的电容组成时钟电路,为整个系统提供了稳定的时钟信号源。复位电路中,使用10 kΩ的电阻、104 F的电容和一个按键来实现。
2.2 供电电源模块
电源模块为整个设计提供能源。本文设计中控制电路部分使用+3.3 V直流供电,电机驱动模块使用的有+5 V和+12 V的直流电源,+12 V的电压可以由电池组获得,而+3.3 V和+5 V电源可以由电路转换得到,设计中的5 V供电电源模块电路图如图2所示,3.3 V电源电路如图3所示。
2 硬件电路设计
2.1 主控制模块
主控制模块选用的芯片为STM32F103C8T6,是一款低功耗的控制器。本次设计用路由器的串口和单片机的串口之间相互通信,路由器将接收到的控制指令通过串口通信发送到单片机上,让单片机做出相应的指令反馈从而实现智能小车的运动。
J1DC IN:12VC80.1uFGNDC910uFC1010uFR5100KR6179K8374U2VINBOOTENRLIMSWFB2156C110.1uFL16.8uHR862K5VC122.7nFR724KGNDCOMPRT7272C1310uFC1410uFGNDR911.8KGNDGNDGND图2 5 V供电电源电路图
78
ELECTRONIC ENGINEERING & PRODUCT WORLD 2019.10
责任编辑:毛烁+5VUP1INGND1117-3.3OUTOUT+3.3V3.3V输输R2C647uFC71K0.1uF后,对路由器进行初始配置,OpenWrt官方的固件是不带网页界面的,所以初始的网络设定需要在命令行下完成;网络配置完之后,需要在路由器上安装摄像头的
D1C447uF31C50.1uF24驱动,从而进行挂载摄像头。插上免驱摄像头,用手机或电脑连上路由器的Wi-Fi,打开控制小车的APP软件,然后打开视频,这时可以看到一个稳定视频信号通过Wi-Fi传送到了控制终端上,至此说明路由器刷机及其配置完成。
GNDGND图3 3.3 V电源电路图
2.3.3 路由器的串口通信
串口通信设计部分是通过路由器的串口和单片机的串口相互通信,进而实现路由器和单片机的数据传输。路由器需要引出GND、TX、RX三条串口线,路由器电路板上的TP-IN接到串口线的TX,TP-OUT接到串口线的RX,从USB焊点处引出一条GND线。连接图如图4所示。
2.3 路由器Wi-Fi设定模块
本设计应用的Wi-Fi信号是由体积非常小的wr703n迷你路由器提供的。选用的是迷你型3G无线路由器TL-WR703N,可以轻松将3G网络转为Wi-Fi信号,使笔记本电脑以及智能手机用户通过Wi-Fi共享3G网络,使用时只需将3G上网卡插上TL-WR703N的USB接口,Wi-Fi上网就可以变得轻松自如。
本设计无需使用上网卡,只是借助于无线路由器的Wi-Fi功能,让手机或电脑通过无线网络控制小车;使用方便,只需要进行简单的路由器刷机和网络配置,就可以将一个稳定视频信号通过Wi-Fi传送到控制终端上。
图4 串口连接图
2.4 摄像模块
本设计中需要在路由器上挂载摄像头,以判断路况,实时检测小车的行驶状态。
摄像头有数字式的和模拟式的,本次设计选用的是数字摄像头,重要组成部分是镜头、图像传感器和DSP控制芯片。它支持OPENWRT系统,为YUV/MJPG动态格式输出,是一种免驱动摄像头,可以将其连接到所支持的操作系统平台上。摄像头在系统上自动配置驱动,且具有30万像素,640×480分辨率,能够满足本设计需要。
本设计将摄像头挂载到路由器上,通过摄像头的USB接口连接在路由器上,在路由器上安装摄像头所需要的驱动软件,让摄像头正常工作,将其采集到的数字图像信号通过路由器传送给单片机进行处理,处理后的视频信号通过路由器Wi-Fi信号发送出去,而手机或电脑连上智能小车的专属Wi-Fi,并打开小车APP软件,从而接收到视频信号,实现实时状况监测。
2.3.1 路由器刷机
wr703n迷你路由器可以支持Linux操作系统。它的系统就是嵌入在Linux系统上开发的,可以说它的底层就是Linux操作系统,而Linux操作系统是一个开源的操作系统,从而使路由器的功能更加强大。本次的设计需要挂载摄像头,所以wr703n迷你路由器原有的系统要升级为开源的、可编译的操作系统,这样才能使达到本次设计的可扩展性。
2.3.2 刷机过程
wr703n迷你路由器刷机是需要有网络和Linux操作系统基础的。首先,在openwrt官网上下载openwrt-ar71xx-generic-tl-wr703n-v1-squashfs-factory.bin文件;下一步,进入路由器管理界面,出厂配置为http://192.168.1.1,用户名和密码均为admin,然后进入固件更新,选择下载的文件,然后更新;升级完之
www.eepw.com.cn 2019.10
79
机器视觉Machine Vision2.5 电机驱动模块
电机驱动模块中的电机选用的是直流电机,采用L298N驱动芯片作为电机驱动模块的核心部件。L298N内部有两个全双桥的H型驱动电路,是一种二相和四相电机的专用驱动集成电路,该芯片驱动电流大,抗噪能力强,完全满足本设计需要。
本次设计采用直流电机并联的方式,用一个L298N芯片驱动4台直流电机,其输入端可以直接和单片机的I/O口相连,实现对电机转动的方向的控制。驱动芯片L298N的使能端ENA和ENB接5 V电源,由IN1~IN4组合控制电机的正转、反转和停止。电路中使用8只整流二极管构成保护电路。电机驱动电路原理如图5所示。
电机的驱动状态通过单片机输出信号,即L298N的输入信号来控制。由使能端ENA、输入信号IN1和IN2控制电机M1/M3;使能端ENB、IN3和IN4控制电机M2/M4。在设计中ENA和ENB接5 V电源,为高电平,因此只需控制IN1~IN4控制电机的状态即可。具体的电机驱动状态如表1所示。
表1电机驱动状态表
旋转方式正转反转
M1/M3
停止停止正转反转
M2/M4
停止停止电机控制端IN1高低低高////控制端IN2低高低高////控制端IN3////高低低高控制端IN4////低高低高
当两个控制信号同时为低电平或同时为高电平时,电机都不能转动;只有一个为高电平,一个为低电平时,电机才能转动,并且输入的低电平和高电平顺序不一样转动的方向也就不一样,从而实现小车的转向控制。
2.6 LED指示电路
LED指示电路图如图6所示。本次设计LED的作用是当电源通电以后,LED先闪烁3次,然后四排灯依次流水式亮起,既起到电源通电提示作用,又可以实现流水灯的效果,还可以作为小车运动的指示灯,使得相应的前后左右排灯亮起。
1011121314151617RXTX293031323334373856BOOT044712436489U1PA0-WKUPPA1PA2PA3PA4PA5PA6PA7PA8PA9PA10PA11PA12PA13/JTMS/SWDIOPA14/JTCK/SWCLKPA15/JTDIOSC_IN/PD0OSC_OUT/PD1BOOT0NRSTVBATVDD_1VDD_2VDD_3VDDASTM32F103C8T6PB0PB1PB2/BOOT1PB3/JTDOPB4/JNTRSTPB5PB6PB7PB8PB9PB10PB11PB12PB13PB14PB15PC13-TAMPER-RTCPC14-OSC32_INPC15-OSC32_OUT18192039404142434546212225262728234+5VBOOT1C16C150.1uF100uF+12vC17C18100uF0.1uF5710126118U3IN1IN2IN3IN4EN AEN BGNDL298NGNDVSSVSOUT1OUT2OUT3OUT4ISEN AISEN B94231314115D31N4007D51N4007D71N4007D91N4007GNDMM1MotorMM3Motor+5VD21N4007D41N4007D61N4007D81N4007MM2MotorMM4MotorGNDGNDVSS_1VSS_2VSS_3VSSA2335478图5 电机驱动电路原理图
80
ELECTRONIC ENGINEERING & PRODUCT WORLD 2019.10
责任编辑:毛烁D14D16D18D24D20R10R11R12R13100100100100RXTX1011121314151617293031323334373856U1PA0-WKUPPA1PA2PA3PA4PA5PA6PA7PA8PA9PA10PA11PA12PA13/JTMS/SWDIOPA14/JTCK/SWCLKPA15/JTDIOSC_IN/PD0OSC_OUT/PD1BOOT0NRSTVBATVDD_1VDD_2VDD_3VDDASTM32F103C8T6PB0PB1PB2/BOOT1PB3/JTDOPB4/JNTRSTPB5PB6PB7PB8PB9PB10PB11PB12PB13PB14PB15PC13-TAMPER-RTCPC14-OSC32_INPC15-OSC32_OUT18192039404142434546212225262728234BOOT1APP软件,设计中采用已有的软件,通过手机的控制,最终可以实现小车的前后左右的运动功能,还可以实时查看视频。手机APP软件设置如图8所示,手机APP软件控制如图9所示。
D10D11D12D13D15D17D19GNDD21D22D23BOOT0D2544712436489VSS_1VSS_2VSS_3VSSA2335478图6 LED指示电路图
3 软件设计
3.1 软件设计的结构
本设计的系统程序包括显示程序、电机驱动程序、串口中断程序、主程序和小车运动控制程序等。控制及显示程序流程图如图7所示。软件编程是在Keil平台应用C语言来实现的。
开始图8 手机APP软件设置图
串口初始化LED初始化Y前进键是否按下?小车前进前排LED亮NY后退键是否按下?小车后退后排LED亮图9 手机APP软件控制图
NY左转键是否按下?小车左转左排LED亮4 结论
本设计是基于STM32单片机的智能电动小车,项目上增加了Wi-Fi模块,使得智能小车的控制更加完善。通过迷你路由器,Wi-Fi的覆盖面积增大,使得手机或电脑控制性能增强。安装摄像头让小车的运动具有实时监控性,让小车运动更加灵活。摄像头的使用更有利于小车避障、寻轨等。经过软硬件相结合的设计,最终实现了预计的功能。该系统设计简单,控制精度高,并且
NY右转键是否按下?小车右转右排LED亮N小车停止结束图7 系统程序流程图
扩展性好,可以应用于车间、路面的实际情况监控等场合,也可以作为智能小车进一步研究的平台,具有一定的实际意义。(下转第90页)
3.2 智能小车APP软件
本设计是用手机控制小车运动,因此在手机端需有
www.eepw.com.cn 2019.10
81
对接(如图6)。它是把算法集成好,对用户来讲,首先是找到一个事先做好的模型,选择是否也需要做压缩的算法。如果不做压缩,就把它做模型转换到Cortex-M系列里的语言里。只需要把传感器的信号输入,恩智浦的芯片(例如:i.MX RT)就会做出一个决策。
实际上,用Arm MCU芯片做成的产品已有商用化的案例。美国的Amiko公司做的哮喘治疗器(如图7)采用ML算法来做监测、统计。它的原理比较简单,其中的传感器可以识别几个内容。第一,把设备从正常的状态颠倒过来,变成放到嘴里的状态。其次,它可以监测到吸入的流量大小。实现方法是:在云端做好了一个
模型之后,它可以通过这模型来指导这个吸入哮喘剂是否正确,以及吸的量够不够。
图7 Amiko公司做的哮喘治疗器
(上接第29页)上基于云的系统的绝对优势。但是,它能够做到在没有云连接的情况下执行实时的本地化的专用机器学习。当然,它可以与基于云的系统(如Matillion或许多其他系统)结合使用,以提供具有众多优势的混合ML学习方法。
要更换。
就在2019年的Google I/O 2019活动中,Arm和谷歌宣布针对Tensorflow Lite和 μTensor项目建立合作伙伴关系,这些项目将在Tensorflow Lite Micro Project下进行合并。现有一个在Arm mbed上使用ML进行关键词搜索(KWS)的开源项目[1],如果你有兴趣,请在这里查看。
机器学习的发展如日中天,日后我们会继续为你更多有关Cortex-M和Nordic器件之ML应用的信息。
参考文献
[1]ML-KWS-for-MCU[EB/OL].https://github.com/ARM-software/ML-KWS-for-MCU/blob/master/Deployment/README.md
5 用于嵌入式Cortex-M MCU的ML工具
现在有某些工具可以为ML创建学习集。Tensorflow与其相关的Tensorflow Lite可能是最广为人知的工具。这款工具是谷歌开发的,是为ML用途设计的开源库框架。谷歌将其用于自己的人工智能用途,具有足够强大的图像识别功能。工作流程沿袭使用python和程序库来构建模型和训练集的多个阶段。而后,Tensorflow将生成在设备或系统上实施的C++代码。用户可从Apache MXNET、Microsoft CNTK和Pytorch获取其他ML程序库。
(上接第81页)
6 目前发展状况和未来展望
迄今为止,ML仍然是一个前沿领域,还有很多的道路要走。但笔者认为,预计未来数年我们将看到ML出现在大量的嵌入式系统中,有些是相当粗浅的,有些是非常复杂的。声音和语音识别应用显然具有吸引力,机器中的音频识别也是如此。在这些机器应用中,可以通过音频识别发现轴承或电机可能接近使用寿命,并需
参考文献
[1]郑大明.基于单片机的智能玩具小车的设计[D].成都:电子科技大学,2014.
[2]赵新颖,罗坤.基于80C51控制的智能电动小车系统的设计与实现[J].微型机与应用,2011.
[3]向楠,邹华东.基于STC89C52RC单片机智能搬运电动小车设计[J].湖南工程学院学报(自然科学版),2014.
[4]韩宗延,钱伟康,何福玉.基于无线路由器Wi-Fi技术的遥控智能小车设计[C].2015航空试验测试技术学术交流会论文集,2015.
90
ELECTRONIC ENGINEERING & PRODUCT WORLD 2019.10
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- yule263.com 版权所有 湘ICP备2023023988号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务