采用Cortex-M3单片机设计的WiFi物联网小车
扫描二维码
随时随地手机看文章
WiFi物联网小车设计方案,采用电脑上位机软件通过无线WiFi 控制小车的运动,采集小车的信息。与传统的“智能小车”相比,主要特点在于使用32 位高性能单片机控制、互联网通信机制和电脑上位机软件控制。此方案融合了电脑软件、网络通信、图像处理、图形显示、运动控制、速度采集和温度采集等技术,具有“物联网”的相关特点。传统的小车控制大多使用红外通信,使用遥控器进行控制,不但受到距离的限制,而且远没有电脑软件直观美观。互联网通信使小车具备远程控制的能力,这是红外通信望尘莫及的。此外,本方案小车控制芯片采用Cortex-M3单片机,该单片机具有极丰富的外设,这给小车以后功能升级和扩展奠定了基础。
1 总体设计方案
WiFi 物联网小车设计方案需要达到的目的是使用电脑软件(简称上位机)通过互联网与小车控制端(简称下位机) 进行通信,从而控制小车的运动,采集小车的速度、温度以及视频监控等功能。总体设计方案如图1 所示。图中有2 种通信模式可选,其中“WiFi 局域网小车控制”是采用局域网的方式,将上位机、无线路由器和小车组成一个局域网,实现上位机控制小车的目的。“互联网远程小车控制方案”是采用远程互联网的方式,将上位机与小车组成一个互联网,从而实现远程控制小车的目的。2 种方案的技术类似,由于受到实验条件的限制,本设计以局域网小车控制为例进行讲解说明。
图1 总体方案设计
从通信的角度来讲,无线路由器是上位机和下位机的数据中心,上位机通过Winsocket 套接字编程创建一个网络接口与路由器进行连接,小车端通过一个串口转WiFi 模块,将串口数据通过WiFi 模块转换成WiFi 信号与路由器交互。此过程中,上位机和下位机WiFi 模块均有一个独立的局域网IP 地址。通过这个IP 地址上位机和下位机便可以实现网络通信。
从控制的角度来讲,上位机是小车的控制中心,上位机通过“按键”发出指令给小车,小车收到指令后回传相关数据给上位机,上位机收到小车回传的数据,经过解析,将其显示出来。
1.1 上位机软件设计
上位机主要功能是控制小车运动,显示小车的速度、周围的温度以及小车采集的摄像。如图2 所示,这些功能由2 个线程来完成分别是“图像、声音处理线程”和“小车运动控制,速度、温度采集线程”等。前一个线程主要负责接收并处理有小车WiFi摄像头传过来的图像信息和音频信息,此部分主要涉及到DirectShow 相关技术。后一个线程主要负责小车运动的控制,包括“前进、后退、左转、右转、停止、加速、减速、转向灯和喇叭”以及接收处理小车回传的温度和速度信息等,并用虚拟图表显示出来。上位机软件2 个线程都创建了一个互不相干的套接字,前者用于与小车WiFi 摄像头进行数据交互,后者用于与小车串口转WiFi 模块进行数据交互。
图2 上位机软件设计方案
1.2 下位机软件设计
下位机软件设计,即Cortex-M3 核心处理器的程序设计,如图3 所示。设计方案主要包括:摄像的控制、小车4 个电机的控制、DS18B20 温度数据的采集、红外对管速度模块数据的采集以及采集到数据后数据的处理打包发送等内容。其中摄像的控制、电机控制以及温度和速度的采集均以函数的形式获取,当下位机收到上位机的相关命令后,便调用相应的函数获取到结果后用固定的格式发送给上位机。
图3 下位机软件方案
下位机实现WiFi 与无线路由器通信的核心是串口转WiFi 模块,通过这个模块可以将下位机发送的串口数据直接转换成WiFi 信号发射出去。在使用此模块之前可以通过多种方式进行配置,只要配置好了,便可以与制定的WiFi 接入点进行网络通信。
2 设计方案特点及扩展说明
2.1 特点介绍
本方案是基于将电脑软件、互联网通信以及单片机技术相结合的理念构想设计的。从单片机的选型、通信方案的确定以及上位机软件的设计等都与传统的“智能小车”有很大的特别之处。以下是本设计方案的3 大特色:
① 小车的控制芯片采用功能强大的Cortex-M332 位高性能、低功耗的处理器,该芯片具有丰富的外设,芯片还支持ARM 公司提供的RLTx 实时操作系统,使用起来非常方便;
② 通信方式采用TCP / IP 通信协议,使用无线WiFi 技术,实现对小车的控制。此通信方案(如图1),在具有私有IP 的情况下可以连接远程网络,可以通过远程网络遥控小车,这在“智能家居”和“远程医疗”等领域将会有不错的使用价值;
③ 利用电脑上位机管理软件,使单片机控制、网络通信和计算机软件有效地结合。此方案设计上位机软件来管理小车,符合将复杂的控制简单化、界面化的设计理念。[!--empirenews.page--]
2.2 扩展说明
Cortex-M3 单片机强大丰富的外设资源为本设计的扩展奠定了强大的基础。除了已实现的功能外,单片机还剩下2 个串口未用,这使小车还可以添加如下功能:GPS 导航功能、语音功能以及GSM/GPRS 发短信、打电话和无线上网功能。
3 方案难点及关键技术
方案难点有:
① 上位机控制小车的运动对实时性的要求很高,而采集小车的速度并用表盘显示出来,这对通信的稳定性又提出了要求,而对于本来就存在延时的TCP / IP 通信来说更是难上加难;
② 图像处理主要是借鉴网上DirectShow 开发指南中提供的技术,很多内部的处理机制和信号过滤器的使用是难点;
③ 上位机速度表盘显示速度不连贯,偶尔还有“卡死”的现象。
关键技术有:① 通信协议的制定;② 下位机采集并处理信息的方法;③ 上位机套接字编程,速度表盘动态显示速度;④ 上位机显示小车监控视屏;⑤ 小车作为WiFi 接入点接入网络。
4 系统仿真结果分析
4.1 WiFi 物联网小车整体外观
小车整体外观如图4 和图5 所示,系统由上位机和小车组成,小车控制电路放在小车上。小车控制器主要包括:电机控制、测速、测温、通信、图像采集和无线路由等。
图4 WiFi 物联网小车
图5 小车俯视图
4.2 系统整体调试
WiFi 物联网小车控制系统上位机界面主要包括:网络设置、功能设置、视屏监控区、运动控制区、速度显示区、温度显示区以及调试窗口。网络设置用于上位机与小车进行网络连接,输入小车IP 地址,点击“连接”即可。视频监控功能需要小车端安装WiFi摄像头,通过点击视频显示框下面的“Call”按钮可以连接WiFi 摄像头的IP 地址,连接成功即可获取摄像头采集到的图像。运动控制区用于控制小车的运动和显示小车的转向灯、喇叭等。速度显示区是一个速度表盘用于显示小车的实时速度。温度显示区是一个温度计的图形界面,可以显示小车上DS18B20 传感器的温度值。通信调试窗口在调试程序时使用。
4.2.1 网络连接
网络连接调试使用网上下载的TCP网络调试助手,首先设置TCP调试助手为服务器模式,设置服务器监听IP为192.168.16.110,端口设为345,连接网络,此IP 地址和端口号是UART 转WiFi 模块的IP地址和端口号,通过单片机用AT 指令设定。网络连接成功后,小车上位机会不断的发送“014,SR1,TE1,029.6”,表示小车端当前的温度是29.6 ℃。
4.2.2 小车运动
小车运动控制部分的调试同样采用上位机和TCP 网络调试助手进行调试。连接好网络后,在上位机上分别点击“↑”,“↓”,“←”,“→”,“█”,“加速”,“减速”。在调试助手接收窗口上依次接收到“:014,SG1,UP1,;” 、“:014,SG1,DO1,;”、“:014,SG1, LE1,;”、“: 014, SG1, RI1,;”、“: 014, SG1,ST1,;”、“: 014, SG1, AD1,;” 和“: 014, SG1,SU1,;”,分别表示“前进”,“后退”,“左转”,“右转”,“停止”,“加速”和“减速”。
4.2.3 温度和速度的显示
温度和速度的测试直接在小车的实际运动过程中进行测试。打开小车,连接上位机,用手捂住小车上的DS18B20,观察上位机上温度显示区模拟温度计的度数变化,然后用手转动小车的轮子观察上位机速度显示区速度表盘指针的变化,改变温度和速度的大小,发现速度表盘指针和温度指示相应发生变化,因此可以判断温度和速度的传输没有问题。
5 结束语
通过反复调试和修改代码,可以实现预想的功能。通信稳定,小车的控制可靠,数据采集的准确度和灵敏度达到要求。在不涉及到远程联网控制的情况下,系统的稳定性和可靠性已经远远超过普通的红外遥控小车和无线射频遥控小车。方案的意义在于将电脑软件技术、网络技术和单片机技术有效结合,突出体现并且深化了“物联网”的含义,未来必将广泛应用于社会生活和生产中。方案的应用领域主要有无人驾驶、远程监控和智能家居等。