遥控式可移动物联网实验平台设计与制作
2022-02-17张保新黄闽华
张保新,黄闽华
(广东岭南职业技术学院,广东广州,510663)
0 引言
随着电子信息化与各行各业的不断融合,特别是物联网应用不断深入,对掌握嵌入式、通信、信息处理等广泛综合知识和技能人才的需求快速增加。但相关领域的人才培养所需要的教学与创新实践条件却无法跟上快速发展的步伐,现有教学平台及环境,过于程式化、缺少灵活性和适应性,民办院校中问题尤为突显。如何利用现有的主流设备、器件、开发手段,综合设计开发出针对性强、灵活性好、便于获得的物联网综合实验平台,成为迫切需要。基于此,通过大量实践活动及综合分析,设计开发了本平台。该平台(也可以看成是一种理念平台)可以由最基本的部分搭建,随着学生的知识不断丰富,该平台也可以进行扩展。通过购买各种元件、组件来构建本平台,从最底层开始,锻炼学生的自主解决问题的能力。与物联网应用技术相关的三层体系中,该平台可用于嵌入式系统的学习开发、传感器的使用、执行机构的控制、通信的建立、应用软件开发设计等多个方面的教学与创新活动。本平台与常见的多功能试验箱相比,更侧重于实践性、创新性及易获得性。
1 平台总体设计
本平台的机械结构基于四驱小车套件构建,通过控制两组(左、右各一组)减速直流电机,实现平台的移动性,包括前进、后退、左转、右转、驻车等运动状态,速度可调。这些工作,受控于通过蓝牙通道无线连接的,位于移动智能终端(遥控器)上的APP。移动平台的运动状态和温度(或其它类型)数据,显示在信息显示模块的同时,也可以通过蓝牙无线通道,传递给APP显示。由于直流电机驱动和主要逻辑电路所需的电压、电流均不同,本平台使用由三只锂电池构成的电池组,经电源适配模块处理后分别供电。其总体逻辑框图如图1所示。
图1 移动平台总体逻辑框图
2 硬件电路设计
下述的硬件设计过程中,不包括信息显示、传感器、电池适配模块。这些基础性和通用性强的模块设计,可参考通用资料。
2.1 控制中心模块设计与资源分配
基于STC89C52(替代AT89C52)型号单片机设计。该单片机具有片内Flash存储器,用于程序及数据表格的存储,可通过在线编程(ISP)实现了程序下载及运行,方便单片机硬件的开发调试,使环境拥有门槛降低。使用包括时钟电路、复位电路的STC89C51的最小系统+CH340芯片构成的USB-TTL接口,可以满足本系统要求。为方便装配,尽可能将P0~P3端口通过接插件输出。可增加通过P0口+P2口构建的LCD并行驱动接口。如图2所示。
图2 控制中心电路
USB-TTL(UART/CH340)接口电路,除了具备程序下载、调试功能外,还可以用作为供电接口,电源参数为:电压+5V,电流: 不小于500mA。 单片机资源的分配参见各分模块设计说明。
2.2 可移动载体的选用及电机驱动模块电路设计
由四驱小车机械套件构建移动平台。为了简化设计,采用电机独立驱动、同侧同步运行的设计方案。通过L298专用驱动芯片将单片机的驱动命令转换成高压、大电流驱动信号,控制直流电机按需运转,具体电路连接如图3所示。通过IN1~IN2,IN3~IN4的控制信号的不同组合,经L298通过差分驱动电机正转、停止、反转,实现移动平台的停止、前进、倒退、左转、右转等行为状态;电机速度调控电路参见图3中的enx信号,该信号使用PWM脉宽调制格式,信号的周期采用500Hz。通过改变PWM的占空比,经过L298的使能端ENA、ENB对电机提供不同的电能,达到调速的目的。L298正常工作需要+5V和+12V电源,分别给逻辑电路及驱动电路供电,驱动电路的瞬时电流可达3A,确保了电机具备良好工作性能。
2.3 串口通信及蓝牙模块的设计
受AppInventor2(简称AI2)软件开发工具限制,选用2.0版的蓝牙模块进行设计。这些模块出厂时缺省设置为直连模式,只需将单片机的UART接口按需设置,即可实现蓝牙通信。设计过程中,要注意接口电平之间的匹配(TTL 5V<-->LVTTL3.3V),具体设计如图3所示。
图3 直流电机驱动及蓝牙模块连接电路
3 软件设计
3.1 嵌入软件
使用KeiluVision+C51软件工具编写由多文件(模块)构成的嵌入式程序。
3.1.1 主程序设计
在初始化部分,定义了结构类型Car、对应的变量(smartCar)及指针(pCar),用于表示平台运动部分数字模型,参考程序如下:
嵌入程序将围绕该变量展开设计。主流程图如图4所示。
图4 嵌入式主程序流程图
3.1.2 200μs定时中断及驱动函数程序设计
基于51单片机定时器1实现。自动装载为200μs的周期性定时,在计数溢出时发出中断申请;对应的中断处理程序完成时基的累积(为系统提供节拍器)及调用平台驱动函数,根据smartCar参数(如收到的操作指令)来改变平台的运动状态。Timer1中断处理流程图参看图5,关键程序参考如下:
图5 Timer1中断处理流程图
3.1.3 串口通信程序设计
使用蓝牙模块出厂默认设置(直连模式);在通信连接之前,需要事先完成蓝牙设备之间的配对工作。所有对通信口的编程工作,均仅对单片机UATR接口展开,共包括三部分:其一:初始化,将串口按9600-8-N-1的格式设置;其二:数据发送部分,由于其实时性要求不高,使用查询方式进行;数据接收部分:移动平台的实时性,在本平台中具有最高级别,因此采用中断方式进行处理,并对smartCar变量进行赋值。其三:数据格式设计,由于来自APP的指令比均由单byte数据组成(单ASCII字符),加之蓝牙通信的特点,数据接收部分,未做特殊处理;发送信息由字符型数组构成,长度为18,具体信息如图6所示。
图6 发送数据帧结构
3.1.4 传感器相关程序设计
BS18B20传感器采用1wire的接口方式,其初始化过程和数据采集读取去方式采用常规方式即可。这里需要注意两点:其一是时隙配置问题。使用软件来模拟来1wire接口,通过软定时加上适当的参数配置可较好满足要求。其二是数据处理的问题,下面程序可作为参考:先将两个8bits数据合成为有符号的int型数据,再乘以加权值“0.0625”。
这种算法适用于12bits温度数据格式,此时的采样间隔最好大于1秒。
3.2 APP设计
移动平台的遥控及数据显示APP,使用图形化的AI2编程工具设计开发完成。非常适合非软件专业的人员快速开发特有移动应用APP。
4 系统调试
4.1 电路方真
使用ProteusEDA工具绘制主要功能电路图(51系列),如图7所示。
图7 平台主要功能仿真电路
示波器(T2)用于电路工作波形观察;虚拟终端(T1)可用于仿真串口通信,RS232仿真器件(P1)可实现与PC机物理串口连接,实现虚拟与现实相结合,再配合“串口助手”等工具,可以完成与通信相关的功能测试及故障定位。
4.2 APP调试调试
通过独立的蓝牙模块+串口助手,直接观察各种收发数据传递的过及其正确性。
4.3 实物装配及联调
模块装配布局优先考虑平台移动时的稳定性、方便安装维护及美感。如电池组尽量放置在移动平台的几何重心上、两块带有散热片的L298组件放置在平台头部,LCD显示器放置在尾部等布局,蓝牙模块的天线部分不要被遮挡。使用杜邦线按设计图连接各模块,通过热熔胶对各模块进行固定。实物图如图8所示。
图8 移动平台实物图(右侧 APP界面)
实际电路与仿真电路存在着一定差别,实物参数的离散性,可能导致各模块之间的配合失当,这主要是程序运行时间分配不合理造成的。通过适当调整定时器、中断选则及处理、时延函数的偏差等方式,来满足各模块实时性要求,直至全部模块能够正常稳定工作。
5 结束语
由于51单片机的资源限制,增加过多功能,可导致系统设计失败。如需要可更换性能更强的单片机做控制中心(如增强型51系列、arduino系列、Cortex-Mx系列、RISC-V系列等);也可以增加通信和应用处理能力(如WIFI+中移物网OneNet/阿里云Iot等),以适应更广的需求。
本平台还何以用于产品安装工艺的训练。一个良好的产品,没有必要的生产安装工艺作保障,是达不到预期目的的。贴近产品开发设计的实战过程,也是初衷之一。