wanff0 2018-07-26
摘要
山西大学、国网山西省电力公司、国网甘肃省电力公司经济技术研究院的研究人员王秀丽、宋健等,在2018年第7期《电气技术》杂志上撰文,以单片机Arduino为核心,利用无线WiFi技术实现远距离通信和图像传输,PC控制端通过读取红外、温湿度、PM2.5及速度传感器传回的数据和图像监测小车运行环境和自身状态,以L298N电机驱动来控制小车行进。在此基础上加入太阳能自动追光系统,采用光电追踪方式实现对太阳能的有效利用。
构建智能化设备是当前科技发展的主旋律,而节能高效是局限所在。因此,提高可再生新能源的有效利用,对智能化发展具有重要意义。
本文设计了一种智能型太阳能追光系统,使太阳能利用装置始终保持与太阳光垂直,最大程度的提高太阳能的利用率。同时把该系统应用于基于无线WiFi通信的智能小车上,其环境感知、数据处理、控制策略及系统搭建的研究与实现,能够在一定程度上推动科考、抢险救灾的智能化发展,进一步为未来军事探测构建体系结构、初步构建智能工业的模型与理论基础提供了功能性技术价值。
1 系统简介
本设计以Arduino Mega2560核心电路板为主控制单元,通过APC220无线传输装置和主控制单元通信,其发送的数据包括除图像之外的所有模块需要传输的数据,从而实现小车移动及其他配置的功能。另外再独立有图像模块,利用发送设备TS832和接收设备RC832通过点对点的通信方式建立图像与PC上位机的传输。
为实现能量的可持续清洁利用,使用太阳能电池板来对太阳能进行转化利用,并通过舵机来使太阳能得到最有效利用。通过温度、湿度、气体、速度和红外传感器构成的多传感器系统实现多方位的检测功能。
系统的体系结构如图1所示,其工作流程为:在PC上位机的控制信号下,多传感器系统对自身状态及现实环境不同特征进行检测并传回主控制单元Arduino,利用APC220无线传输装置和图像传输系统把处理后的数据选择性传回PC上位机,PC端再根据传回信号来对智能小车实现进一步操作。系统在实现控制方式多样化的同时,根据需要进行相应的系统控制对象的改变,使整体具有冗余性和互补性[5-6]。
图1 系统结构框图
2 系统的软件设计
本系统软件部分分为两部分,其中Arduino下位机部分作为系统的控制层,其处理多传感器系统、自身状态检测装置及太阳能自动追光系统传回数据并加以实施控制信号。第二部分PC上位机实现智能小车的示教和人机交互功能,不仅能够通过感知各传感模块的实时数据对环境变量及自身状态进行分析,而且还能远距离发出决策命令,这将极大的改善智能小车系统的性能,提高系统的可靠性和可操作性。
2.1 Arduino下位机设计思路
下位机采用的Arduino开发板本身已经有完善的模板,将APC220及各种外设的初始化工作放在setup()函数中,loop()函数中直接调用各模块函数实现功能。Loop()中的函数主要有WiFi()函数,其主要掌控消息接收和发送,解析接收数据并执行;其余的函数均为各模块的处理函数,例如Wire_end_ Sun()电源和太阳能之间的关系处理及数据更新。
该系统属于普通实时系统,同上位机一样设置中断函数,并设置信号量机制避免各同优先级中断函数之间互相干扰。
此程序的设计在于模板化,针对于智能小车给出了模板类,封装为库文件,当需要添加功能时,只需将该功能加入到模板中即可。针对于小车的移动,给出了模板类,调用时只需输入相应控制引脚即可。而信息传递函数WiFi()的设置,也只需根据需要添加调用模块条件调用相应函数即可。此程序可以应用任何相同开发板的智能小车,只需修改对应引脚,对应功能也只需要写入对应模块即可,无需重新编写程序[7-8]。
图2 下位机程序流程图
2.2 PC上位机设计思路
上位机使用Matlab的GUIDE(图形用户接口开发环境)构建,其中定义了图像模块、WiFi控制模块、电源模块、遥控模块、太阳能模块、传感器模块。
图像模块的实现机理:视频采集端由FPV(First Person View)针孔摄像头和发送设备TS832组成;TS832由12V电源供电,输出5V电压给摄像头供电,而后FPV视频输出端通过信号线将视频数据传递给TS832,由其进行传输。
视频接收端,由RC832和视频采集卡、上位机组成,RC832通过与TS832相同的频率将视频数据接收,通过AV线与视频采集卡连接,视频采集卡主要起转换接口和缓存视频数据的功能,上位机软件读取采集卡的数据将视频显示,其读取和显示的核心代码如图7和图8所示,最终的cam是其接口,显示时将其捕获。
图3 读取部分
图4 显示部分
WiFi模块的实现过程:首先WiFi模块的APC220也是一对点对点的传输模块。下位机置放一个APC220,上位机处置放一个APC220。下位机传回数据时,其APC220与Arduino板进行串口通信,将Arduino板上各模块的数据根据规定协议封装后传回到上位机APC220,上位机软件通过串口与其通信,通过数据处理将数据提取显示。上位机发送数据时,其APC220将操作命令依据传输协议封装后发送给另一个APC220,Arduino板对其进行解析并执行命令。传输协议采用自定义协议,协议如下:
起始位‘SOH’数据类别 数据位位数 数据 终止位‘EOT’
当数据类别为传感器等一类事物的总称时,数据位的第一位数据将其分别标明是哪一类的传感器。由于APC220具有自带的检错功能,所以协议中没有定义检错位。
上位机与APC220的连接和数据的封装函数如图5和图6所示。
图5 连接部分
图6 封装部分
上位机软件的实现设置了3个主要处理机制,分别对应与WiFi模块的接收、WiFi发送指令、图像的接收。由于该系统属于典型的实时系统,需要无时无刻的接收和发送数据,因此就可能产生死锁问题,因此需要定义合理的中断优先级,此软件将WiFi的接收定义为最高优先级,WiFi的发送次之,最低优先级为图像的接收。通过信号量机制使系统变的稳定可靠。
WiFi接收中断,当扫描到串口有数据到来时,会触发串口终端去处理并解析数据;定时器中断扫描全局变量中断标志,当标志位置1时,有指令发送,将该指令封装发送。图像接收按钮回调,当图像为显示状态时,显示图像[9-10]。
此软件利用定时器中断和数据接收串口中断构造了一个典型的实时系统,对下位机进行检测控制。其中传输数据帧的格式模仿TCP/IP协议,自定义出一套完整的帧协议,相对于TCP/IP协议的最大优点在于不需要限制一帧数据的数据大小,简洁实用。
图像接收端也采用新颖独特的方式显示图像,使得图像清晰度和实时度相较于其他方式的视频显示大大提升。此软件的一个缺点在于当打开图像显示时,该软件会一直占用当前窗口实时显示,不过仔细思考,动态刷新图像,更好地显示了系统强大的实时性。
图8为设计出来的上位机控制软件平台界面。
图7 上位机程序流程图
图8 上位机控制平台界面
结论
本设计在含有多种传感器的无线智能小车基础上集成了一种双轴自动追光设备,经性能指标测试实验,小车能够做到远距离实时操控及环境图像的准确高效传输,追光设备实现对移动光源的自动追踪,此系统的广泛应用必然会带来可观的环境效益与经济效益。