哈尔滨工程大学智能科学与工程学院 黄新源 宋子涵
如今,人工智能正朝着低成本,多功能,高精度等方面发展,物联网技术以及自动驾驶是国内外研究的热点话题,目前正处在飞速发展的关键阶段,且在信息技术飞速发展,多设备协同服务下具有广阔的应用前景。而智能小车作为一种自动化技术的载体,在当今世界的应用也十分广泛。例如在新冠疫情期间,为防止疫情大范围传播,可以使用一种感应互联的运输装置,将各种物件自动送给所需要的顾客,减少人员接触,这会对疫情防控带来很大的帮助。
本文将介绍一种基于stm32单片机且具备多种传感器感应、物联网互联等特点的智能运输装置。本装置将搭载stm32f103rct6处理器和OpenMV摄像头、ESP8266、DHT11温湿度传感器、超声波等模块,并且基于TCP协议进行手机终端-整车硬件的联网消息交互,实现货物的智能运输。
此运输装置总体设计分为三大部分,分别为机械结构设计、硬件设计以及软件设计。机械结构采用可摆式的悬挂底盘并配备麦克纳姆轮;主要的硬件结构为stm32f103rct6单片机、OpenMV摄像头模块,超声波测距模块,ESP8266WiFi模块,LM2596直流稳压模块、双通道直流有刷电机驱动器和MD36N行星减速编码器电机;软件设计主要为电机PID控制的程序设计、超声波避障的程序设计和物联网系统的软件开发。总体设计框图如图1所示。
图1 总体设计框图
此装置的工作流程大致为:我们将需要运输的物品放置在此装置的载物区,然后给系统上电。系统上电后通过WiFi模块向远程终端请求连接。操作者通过手机或电脑设备登录终端,并且WiFi模块进行配对。配对成功后操作者通过终端向系统发送工作指令,此装置开始在相应工作指令下运输物品。同时OpenMV进入图像识别状态,此装置的运动状态会随着OpenMV识别到的物体的不同而发生改变。在运输的过程中,此装置会将各传感器采集的数值通过WiFi模块上传至手机或电脑终端。如果在运输的过程中遇到障碍物,此装置会优先执行避障功能。当OpenMV识别到相应的结束运输标志或者终端向此装置发出结束指令时,此装置停止运动,结束运输。
该轮主要由轮毂和围绕轮毂的辊子组成,轮毂轴与辊子转轴呈45°角。其中辊子是一种没有动力的小滚子,各个小滚子的包络线为圆柱面,所以该轮能够连续地向前和左右滚动。此种运动方式能适应复杂的工作环境,克服了传统轮胎转弯需要较大空间的局限性。麦克纳姆轮实物图如图2所示。
图2 麦克纳姆轮实物图
由于在平面几何中,三点确定一平面,所以一般的四轮小车只能在三个轮胎底部确定的平面内运动。如果地面不是绝对水平,这种结构会导致总有一只轮胎悬空,造成小车的运动受到干扰。摆式悬挂结构的底盘可以有效地解决这一问题。此摆式悬挂结构的底盘由两块铝板和一个改装后的联轴器构成,每块铝板的两侧配有两个麦克纳姆轮。由于两块铝板之间可以绕联轴装置转动,当有一个轮胎悬空时,通过受力转动此轮会马上着地,故不会出现轮胎悬空的情况。这种摆式悬挂结构对室外一些环境复杂的地形会有较强的适应性。
HC-SR04超声波测距模块可提供2cm-400cm的非接触式距离感测功能,测距精度可达3mm,包括发射器、接收器与控制电路。通常来说,HC-SR04有四个引脚,分别是VCC、GND、trig和echo。在进行硬件连接时,VCC与电源稳压模块的5v相连,GND与电源稳压模块的负极相连,trig角与单片机上的一个gpio输入口相连,echo角与单片机上的一个gpio输出口相连。
此模块的使用原理十分简单。给此模块上电后,通过单片机的gpio口给echo角一个20us的高电平信号,触发此模块发出超声波,并且使此模块的trig口开始输出高电平。当此模块接收到返回的超声波后,trig口停止输出高电平,开始输出低电平。单片机可以通过定时器来测量接收到高电平的时间从而推算出被测量的物体与此模块之间的距离。
被测量距离(d)=接收到高电平时间(t)*声速(v)/2。超声波模块工作原理图如图3所示。
图3 超声波模块工作原理图
OpenMV是一个开源,成本低,却功能十分强大的摄像头模块。OpenMV以STM32为主控电路板,集成了OV7725摄像头芯片,内部已经装载了大量机器视觉算法。使用者用简单的micopython语法编程就能使用OpenMV的机器视觉功能,包括颜色与形状辨别、人脸识别、边缘检测、目标跟踪等。只需要几行简单的python代码,使用者就可以将这些视觉功能移植到其他控制系统中所需要的位置。其移植过程具有开发周期小,成本低,操作简单且效率较高的特点。
例如,此装置就需要使用OpenMV进行目标识别。在运输的过程中,我们会在中途各个关键点设置一系列图标,不同的图标对应这不同的运动状态。例如,如果黄色圆形对应左转,当OpenMV识别到黄色圆形时,就会向此装置发出左转的指令。OpenMV与32单片机之间使用串口通讯。
双通道直流有刷电机驱动器每通道具有持续输出7A大电流能力,可驱动最高135W的直流电机。此驱动器有两个电机接口分别连在两个直流电机的正负极上。此外,此驱动器还有十个控制端口,分别控制两个电机的制动与旋转方向。电机接口的强电与控制端口的弱电采用光耦隔离,故在使用时不得将电机端与控制端共地。为了更好的观察与检测电机的运动状态,此驱动器还配备了两个双色的指示灯。此驱动器的使用原理框图如图4所示。
图4 双通道直流有刷电机驱动原理框图
软件设计主要由超声波避障程序、PID算法控制算法程序和物联网系统开发几个部分构成,总体软件运行流程图如图5所示。
图5 软件总体运行流程图
PID控制算法是控制系统中最为经典的控制算法,也是智能小车电机控制的设计核心,此运输装置采用的是速度控制中比较常用的PI控制。P是比例部分,可以成比例地反映系统的偏差信号;I为积分部分,主要用于消除静差提高系统的无差度,且积分效果与积分时间呈负相关。此装置的PI控制是一种闭环的线性控制,我们需要通过个编码器测量出每个电机和车轮的转速。将测量出的转速与给定的转速做对比并使用pi控制公式算出pwm波的占空比,通过单片机将pwm波输出给驱动器。
超声波测距模块能对距离超声波400cm范围内的物体进行距离检测。当检测距离小于20cm时,我们认为此超声波模块前方存在障碍物。此装置前部配备有三个并排放置的超声波模块,用于无缝检测障碍物与装置间的距离。超声波1号放置在最左部,超声波二号放置在中间,超声波三号放置在最右部。我们可以根据三个超声波模块检测到的情况来判断前方障碍物相对于此运输装置的方位,然后自主规划路径进行避障。当障碍物位于此装置的正前方或者右侧时,此装置选择向左移动绕过此障碍物。当障碍物位于此装置的右侧时,此装置选择向右移动绕过此障碍物。只有当三个超声波模块的检测距离都大于等于20cm时,我们认为一次避障完成。一次避障完成后,此装置进入正常运输工作模式,并开始下一次距离检测。具体避障运动状态逻辑表和避障子程序框图如图6和图7所示。
图6 避障运动状态逻辑表
图7 超声波避障子程序框图
ESP826是一款高性能低功耗的串口转WiFi透传模块,通过简单的AT指令编程能使此模块连接到互联网进行通讯。此装置实现物联网的方式是将ESP-8266WiFi模块作为客户端连接到已经开发好的云服务器平台上。这样操作者就可以通过云平台与此装置进行通讯,从而实现了此运输装置的物联网。云服务器平台的用户界面以及云服务器平台与WiFi模块的通讯内容需要用户自行设定。现在常用的云平台有TLink、机智云、阿里云、深智云等等......此装置使用的云平台是TLink。
本文从机械结构,硬件,软件等三个方面介绍了一种感应互联的智能运输装置。此装置以麦克纳姆轮、摆式悬挂底盘结构为机械支撑,搭载stm32单片机以及OpenMV、温湿度传感器和超声波等传感模块实现对环境的感知,通过ESP8266模块和TLink云服务器平台进行物联网系统开发,最终能在特定的环境下实现对物品的智能运输,具有一定的实际应用能力。