孙应,陈岸奇,王振光,贾巍
(湖北文理学院 汽车与交通工程学院,湖北襄阳,441053)
垃圾分类得到大众的广泛关注和积极响应。我国垃圾分类处理整体处于高速发展阶段,在国家的大力推行下,垃圾分类制度日趋完善。传统的垃圾分类步骤繁琐,消耗人力物力大。我们的项目致力于从基本的分类环节解决问题,将智能制造运用于生活当中,节省人力物力。
本小车系统主要由以下几部分组成:(1)OpenMV4 H7 plus 智能摄像头识别模块;(2)主控STM32F407 单片机最小系统;(3)GPS 惯导姿态检测定位模块;(4)通讯模块;(5)无线充电模块;(6)摄像头机械驱动模块;(7)行进结构驱动模块;(8)机械臂结构驱动模块。
本系统以 STM32F407 单片机为控制核心,运行时通过使用多个OpenMV4 H7plus 智能摄像头识别周围的垃圾与杂物,与内部ROM 存储的识别数据比对,通过用户自定义权重来规划行进路线来拾取并分类垃圾。整车主要采用机器视觉技术应用图像智能识别技术,使用多种智能模块,可实现自动拾取或者远程操控对垃圾进行识别,拾取,分类,投放。小车安装了多个摄像头采集数据,可进行全方位地识别周围的物品,并可进行全向行进,自动规划路线,灵巧地拾取垃圾并进行分类。
OpenMV 摄像头是一款小巧,低功耗,低成本的模块,可以很轻松地完成机器视觉应用。通过 MicroPython 很容易在机器视觉算法中处理复杂的输出。使用外部终端触发拍摄或者执行算法,也可以把算法的结果用来控制 IO 引脚。
摄像头采用ANN 人工神经网络结合edgeimpulse 对各类垃圾进行识别训练,各类垃圾图片基数在2000 张以上,通过感光、特征点、色块等参数进行判别。
本系统使用 STM32F407单片机作为主控部件,实现对摄像头,GPS 等数据的分析处理,然后完成对电机,机械臂等外设的控制输出。STM32F407 单片机最小系统板包含电源电路、复位按键、串口下载等模块,同时将单片机的所有 IO 口通过排针的方式全部引出,便于在做嵌入式开发时,其他外设设备的连接。
图1 OpenMV 摄像头模块
定位模块采用了组合导航(GPS+惯导)模块,GPS 采用NEO-7N GPS 模块,具有高灵敏度、低功耗、小型化、极高追踪灵敏度等特点。用于车载,手持设备如 PDA,车辆监控、手机、摄像机及其他移动定位系统的应用。惯导模块采用维特智能JY901 姿态传感器,该产品是一款专业的姿态角度测量模块,产品通过读取传感器的三轴加速度,三轴角速度,三轴磁场等原始数据,运用姿态动力学核心算法,结合卡尔曼滤波融合算法解算出实时稳定的三轴姿态角度。
图2 NEO-7N 模块
图3 J Y901 处理器
通讯模块采用SIM800C 模块,SIM800C 是一款四频GSM/GPRS 模块,性能稳定,外观小巧,性价比高,能满足客户的多种需求。SIM800C 工作频率为GSM/GPRS 850/900/1800/1900MHz,可以低功耗实现语音,SMS 和数据信息的传输。SIM800C 尺 寸为17.6mm×15.7mm×2.3mm,能适用各种紧凑型产品的设计需求。
图4 电机直流驱动模块电路图
图5 无线充电接收线圈电路图
本项目电机采用L298N 驱动模块实现对电机进行控制。该驱动模块供电电压范围为+5V~35V,最大工作功率20W,可以实现同时对两路直流电机的驱动控制。使能端口ENA 为高电平时处于有效控制状态,低电平时无控制信号输出。在进行电机调速时我们根据电机工作状态表使设置 IN1和 IN2,确定电机的转动方向。单片机 输出 PWM 波对驱动模块使能端进行调速控制。
本项目采用了电池供电+无线充电的组合,在电池电压不足的时候可以通过自动寻找安装的无线充电器充电,也可在停机休息时使用无线充电器充电。无线充电模块由充电线圈和超级电容构成。采用半桥方式控制恒功率充电,半桥控制芯片为IR2104s。
本项目机械结构采用3D 打印构建。机械结构整体分为驱动,底盘,机械臂三大部分。车体采用麦克纳姆轮进行移动,可在狭小的空间内快速旋转和调头以及横向移动,驱动部分和底盘采用可调弹簧连接,保证了整车的稳定性,底盘采用树脂材料和铝合金材料制作,在轻便的基础上保证了坚固性。机械臂拥有4 自由度,可以实现全方位的抓取,机械爪驱动使用两个25Kg 舵机,保证了机械爪抓取时的稳定。小车整体拆装简单,便于更换损坏零件。
系统采用STM32F407 单片机作为控制核心,引出单片机上的外部IO 连接到其他的传感器和外围设备,并对这些数据进行处理。主程序分为以下几个部分:(1)初始化部分,负责建立单片机对各模块的控制,确定数据传输的格式与方式。(2)驱动控制部分,主要控制电机和舵机,包括整个小车的运行,机械臂的姿态调整,机械爪的抓取。(3)姿态解算部分,此部分主要是处理GPS 和惯导的数据,主要是用于跟驱动部分联动,调整小车的姿态,还可以根据用户设定的规则汇报到上位机。(4)视觉识别部分,视觉处理是程序最重要的一部分之一,通过对多个摄像头的图像进行融汇处理,构造一份小车周围的270°左右的全景图,可以同时对多个目标进行识别归类。(5)通信部分,主要把各个模块收集的数据和运算的结果给到上位机和对上位机发送的指令进行解码实现对模块的控制。主程序流程大概如图所示,开机载入ROM 中的设置,对硬件分步初始化,状态汇报给单片机做处理,摄像头部分可以直接串流到通信模块输出到上位机。硬件模块初始化有错误则停止初始化并汇报。若无错误则继续初始化下一个设备,每个设备都有不同的中断优先级。当所有硬件的初始化都无错误完成后,进行软件初始化,载入ROM 中的用户配置,根据用户配置来进行程序的运行。软件部分程序的运行流程主要是对摄像头和单片机数据的处理,首先各个摄像头捕获图像,对视野内的物品进行分类判断,与用户定义的杂物进行比对,采用比例图像和深度图像融合处理计算出距离,若目标距离小于机械臂获取范围则进入机械臂姿态处理部分,尝试获取物品。如果机械臂无法获取,则进入车体姿态处理部分,尝试移动车体靠近,直到机械臂可以获取物品为止。当机械臂获取物品后,将物品放入置物篮中,程序循环判断置物篮状态,当达到一定重量或者超出置物篮高度,进入卸载模式,卸载模式停止底摄像头扫描杂物,仅判断障碍物,小车朝着目标卸载点前进。卸载时机械臂循环抓取置物栏内物品,判断物品类型分类卸载。当置物篮为空时停止卸载,底盘摄像头回到杂物扫描模式,重新进行装载。当视野内杂物全部清空或者无法获取时,进入待机模式。电量等状态信息会实时反馈通过通信模块汇报给上位机或者用LED 灯光提示。当电池不足时,小车会尝试寻找无线充电器进行充电,当在范围内无法寻找到充电器时,会给上位机汇报,当电池耗尽时会自动关闭停止运行。
图6 超级电容充电电路图
图7 结构模型图
图8 系统主程序流程图
图9 系统运行状态切换流程图
实行垃圾分类处理既可以有效地改善城乡环境,又能让资源回收利用更有效率,可持续发展水平进一步提高。小车具有多种识别方式,默认模式为通过单片机存储内摄像头学习的数据进行分类识别,也可以在上位机设置对不同物体的分类。小车在工作时会先通过摄像头判断目标位置并规划接近路径,再通过多摄像头实时定位来规避障碍物,车载智能节能系统,在没有工作时小车会自动寻找最近的无线充电器自行充电,在工作完成时会自行到角落休眠以节约电能。