常 安,万振凯
(天津工业大学 计算机科学与技术学院 信息化中心,天津 300387)
人工智能时代的来临,使得大部分仪器设备走向自动化以及智能化,智能设备在生活中已随处可见,并且已经被越来越广泛地应用到生活生产中。随着科技水平的提高,越来越多的传感器被应用到智能设备上,使设备可以像人一样去感知周围环境。单个传感器的功能往往会有很大的局限性,只具备单一的感应功能,不能够满足智能设备多功能的需求。因此,为满足更多需求,需要在设备上安装更多的传感器。该设计基于HC-SR04、温湿度、光照强度等传感器,并用树莓派作为控制设备,形成了具有多种功能的自感应系统。
搭载该系统的智能小车可以很好地感知周围环境,并根据环境特点作出相应的行为。例如,当光线暗时,光照强度传感器会将信息传递给控制设备并结合算法控制继电器的开、闭,完成对灯光的控制。利用传感器和L298N 的配合并根据土壤温湿度判断该地区是否可以进入,躲避地区障碍物,实现自感应功能。
图1 系统结构图Fig.1 System structure diagram
在实际工作中,有时需要进入一些危险或人力不容易达到的地方进行作业,这时为了更好地完成工作需要智能小车的帮助[1]。在可见范围内,小车可以通过操作人员控制,但当超出这个范围时,智能小车[2]的自感应功能就显得非常重要了。
系统主要由以下几个部分组成,分别是数据采集模块、数据处理模块、数据驱动模块。
数据采集模块主要负责周围环境的感知,通过传感器获取需要的数据信息。随后将这些信息传递给数据处理模块(MCU),再根据系统算法数据驱动模块给出行为上的反馈。系统结构图如图1 所示。
树莓派是一种微型电脑,起初是为了学习计算机编程教育而设计的[3]。现在它除了具备编程教育功能以外,还为许多物联网开发爱好者提供了一种选择,使他们不仅仅局限在单片机上。相对于单片机而言,树莓派更像一台微型计算机,可以完成一定的计算任务。同时它还具有更多的GPIO 接口,方便更多功能的扩展以及多种传感器之间的互联。
选用树莓派作为自感应系统的控制设备,有以下几点原因:第一点是它的小巧轻便,可以很好地安装在智能设备上;第二点是它有40 个GPIO 接口,可以连接多个传感器,方便系统后续功能的扩展;第三点是它具有独立的处理器以及操作系统,可以快速地处理来自各种传感器反馈的数据,并调用相关模块使驱动模块作出反应。
图2 L298N实物图Fig.2 L298N Physical map
图3 HC-SR04实物图Fig.3 HC-SR04 Physical map
L298N 是专用驱动集成电路[4],属于H 桥集成电路。其输出电流为2A,最高电流4A,最高工作电压50V,可以驱动感性负载,像大功率直流电机、步进电机等,特别是其输入端可以与单片机直接相联,可以很好地被MCU 控制。当驱动直流电机时,可以直接控制步进电机,并根据输入端的高低电平实现正反向的旋转。
采用L298 芯片为核心,加上简单的外围电路就可以驱动两路直流电机,L298 驱动优点:每一组PWM 波用来控制一个电机的速度,另外2 个I/O 口控制电机的转动方向,减少了硬件设计与软件编程的工作量[5]。实物图如图2 所示。
HC-SR04 传感器是将超声波信号转换成其他能量信号(通常是电信号)的传感器。超声波对物体有很强的穿透性,这一特点在不透明固体中表现突出。
图4 光照强度传感器Fig.4 Light intensity sensor
HC-SR04 传感器[6]可以广泛应用在物位(液位)监测、机器人防撞,以及防盗报警等相关领域。工作可靠,安装方便,发射夹角较小,灵敏度高,方便与工业显示仪表连接。实物图如图3 所示。
该系统使用的光照强度传感器是GY-30。GY-30 是一款数字光强度检测模块,对弱光也有较高灵敏度的传感器。输入电压为3V ~5V,可检测的光照度范围是:0 ~65535 lx,内置16bitAD 转换器。具有不区分光源,接近于视觉灵敏度的分光特性,可对广泛的亮度进行1lx 的高精度测量。如图4 是GY-30 实物图。
为了更好地测试土壤湿度,该设计选用的是FC-28 型号的检测器。该传感器利用电磁脉冲原理,依靠电磁波在介质中的传播率来检测土壤的表观介电常数(ε),从而得到土壤的湿度(θv)。利用电位器芯片可以调节测定的阈值,顺时针调节控制湿度会变大,逆时针调节控制湿度会变小[7]。传感器与电位器连接图如图5 所示。
GPIO 是Python 提供的一个接口库,可以通过代码调用树莓派上的GPIO 接口(使用pip install RPi.GPIO 命令来安装GPIO 模块)。树莓派的GPIO 接口由40 个针脚(PIN)组成,每个针脚都可以用导线和外部设备相连。
在40 个PIN 接口中,有 固 定 输 出 的5V(2、4 号PIN)、3.3V(1、17 号 PIN)和地线(Ground,6、9、14、20、25、30、34、39)。如果一个电路两端接在5V 和地线之间,该电路就会获得5V 的电压输入。27、28 号PIN标着ID_SD 和ID_SC,它们是两个特殊的PIN,属于ID EEPROM(Electrically Erasable Programmable Read-Only Memory)接口,用于和拓展开发系统功能的附加电路板通信。每个PIN 都有对应的编号,如GPIO14。开发系统的操作系统中,会用GPIO 的编号14 来指代这个PIN,而不是位置编号的8。有一些PIN 除了GPIO 功能外,还提供了高级端口功能。比如说,GPIO14 和GPIO15 就同时可以充当UART 端口。GPIO 编号方式如图6 所示。
图5 传感器与电位器连接图Fig.5 Sensor and potentiometer connection diagram
图6 GPIO编号方式Fig.6 GPIO Numbering method
将上述硬件组装,得到小车实物图如图7 所示。
图7 小车实物图Fig.7 Cart physical map
图8 主程序流程图Fig.8 Main program flow chart
图9 L298N驱动流程Fig.9 L298N Drive process
软件设计由以下几个模块构成:初始化程序、驱动程序(包括小车的运动、灯光的开闭)、数据收集程序、控制程序。
初始化程序主要开启需要用到的GPIO 口,使它们进入准备状态;数据收集程序主要是利用传感器对环境的实时监测并获取数据;驱动程序主要是根据数据收集程序的数据并结合控制程序的算法来改变GPIO 口的高低电平,并调用L298N 驱动电机运转[4]以及继电器控制灯光的开闭。主程序流程图如图8 所示。
驱动程序和收集程序的执行分为两个部分:第一部分是土壤湿度传感器和HC-SR04 传感器的数据收集。首先由土壤湿度传感器测量判断运动区域的湿度是否可以进入,然后由HC-SR04 实时测量小车周围障碍物的距离,此过程最终调用L298N 模块来驱动步进电机的运转;第二部分是光照强度传感器感受环境光照经过控制程序判断是否小于设定值,以此来改变继电器的开闭,已达到控制LED 灯的效果,使得该设计在暗处也可以正常使用。L298N 驱动流程如图9 所示,继电器驱动流程如图10 所示。
图10 继电器驱动流程Fig.10 Relay drive process
基于嵌入式设计了一款自感应系统,多个传感器共同完成对系统运行环境的感知,交由树莓派对数据进行处理,经过软件程序的驱动并改变L298N 驱动板和继电器的高低电平使小车实现自动运动的功能,以及搭配传感器实现避障功能和光照功能。在实际测试中该系统可以很好地完成预定功能的运行,达到实验要求。
多种传感器搭配使得系统具有跟多的功能,解决了单一传感器的局限性,结合树莓派较高的可拓展功能以及可编程特性,使得该系统可以很好地使用。
现如今人工智能技术飞速发展,研究和开发这款自动避障小车系统有很重要的意义。整个系统构成简单,硬件技术成熟稳定,结合树莓派的高扩展性,还可添加多种传感器实现更多功能,具有很强的实用性。在后期的改进中,还可加入摄像头模块实现更多的功能。