基于STM32的蓝牙控制无人清理船设计
2021-11-24徐洪波陈莹王涌霖冯焕程
徐洪波 陈莹 王涌霖 冯焕程
摘要:在现代化社会进程的高速发展下,人们的生活水平得到很大程度的提高,但与此同时,生活中产生的垃圾量逐年递增,大量水上漂浮的垃圾逐渐引起社会大众的重视。而当前人工清理垃圾的方式一方面效率较低,另一方面也存在很大的安全隐患,相对的工业自动化的发展给现代社会各个层面都带来了突破性的改变。基于此,本文主要研究基于STM32的蓝牙控制无人清理船,以期实现对水上漂浮垃圾的安全高效处理,保护生态环境。
关键词:蓝牙;水上垃圾清理;STM32
引言
随着我国现代化进程的加快,垃圾产量指数增加,于此水上漂浮垃圾的数量也日益增多。城市生态环境在很大程度上受到水域环境的影响,保障水域环境的环保无污染是建设生态城市的重要基础。
我国很多旅游景区、城市内河等狭长的静水水域存在垃圾堆积的情况,由于缺少专业的水上垃圾收集设备,常见的水上垃圾打捞设备在体积较小的水域不能实施打捞工作,打捞的同时需要劳动人员在船上实时监控,这使水上垃圾的打捞过程变得繁琐,人员工作量大。针对上述水域以及打捞过程遇到的部分问题,设计基于STM32的蓝牙控制无人清理船。融入无线遥控技术、视觉识别系统、超声波避障技术,结合单片机、电机伺服及 PWM 控制等技术实现系统、可靠、 精确地控制。系统具有安全可靠、操作简单、收集 彻底、效率高和打捞范围广等优势。
本设计可以通过识别系统对水面上的垃圾进行识别,并通过无刷电机控制螺旋桨给船提供给动力,将捞取的垃圾放入垃圾储存箱中,既提高了水面垃圾的清洁效率,也降低了劳动人员的工作量。
1 系统整体设计
本设计的目的在于针对性的解决景区小面积水域以及不适合现有大型垃圾清理船工作的水面垃圾清理问题,代以往在这些水域使用的人工打捞方式,可以通过垃圾识别和遥控器操纵实现简便高效的清理工作。因此清理船利用STM32F单片机主控结合硬件设计,能提供足够的算力和精度,实现更多功能。船体硬件电路主要包括STM32F103C8T6单片机、Ardunio单片机、LM2596稳压电路、ESP8266蓝牙模块、HC-SR04超声波模块、GPS传感器、GSM模块、电压检测电路、OPENMV摄像头模块和光电开关等。
2.MIT APP INVENTOR介绍
MIT APP INVENTOR是谷歌推出一款名叫Google App Inventor的工具软件,Google App Inventor用户能够通过该工具软件使用谷歌的Android系列软件自行研发适合手机使用的任意应用程序。在此之前有关这款软件测试版本的使用细节已经由谷歌实验室(Google Labs)以教學视频的形式向网友公开,用户使用浏览器打开ai平台网站(App Inventor 2 WxBit,简称WxBit版,提供高德地图、高德定位、百度语音合成与识别、相机预览框等组件,支持多点触控、动态创建组件和通用事件,还有更多细节优化,汉化并增强的 App Inventor 2 服务器。),通过拖拽组件和逻辑块,即可完成安卓应用的制作。如果用户有scratch的使用经验,ai上手更是完全没有障碍。ai和scratch都使用了blockly,实现积木式拖拽编程,用户只需要根据自己的需求向其中添加服务选项即可,可以通过简洁的模块化编程即可实现手机APP的开发使用。
3.手机蓝牙APP的开发
本设计使用MIT APP INVENTOR 来开发手机app、AT指令配置蓝牙模块,并可以在app显示清理船的实时电量与坐标位置,MIT APP INVENTOR的基本组件如下:
1、组件面板,选中所需的组件后,使用鼠标拖拽到中间的手机界面区域,就能在项目中使用该组件。点击组件右边的问号,查看组件的介绍。熟悉APP INVENTOR内置组件后,会发现组件不够用,那么就可以通过上传“扩展”加入其它用途的组件,扩展MIT APP INVENTOR的功能,制作更加丰富的应用。
2、MIT APP INVENTOR中有“组件设计”和“逻辑设计”两项重要功能。在“组件设计”视图中,选择合适的组件设计应用的界面;在“逻辑设计”视图中,设计组件对应的事件逻辑。比如点击按钮更新标签的显示文本等。
3、“组件属性”区域,不同组件会有不同的属性,“Screen1”组件的属性中,可以设置应用安装到手机中的显示名称、应用图标等。属性具体的用途,通过属性名称基本理解,少数不能理解的属性,设置后连上MIT APP INVENTOR即可看到。在项目编辑界面,点击打包文件,可以看到一个二维码和6位数字的连接码。使用手机扫描二维码,或者在电脑版MIT APP INVENTOR中输入并点击连接,即可在MIT APP INVENTOR中看到正在制作的应用,手机APP部分开发过程如图1所示。
4.清理船工作过程控制设计
4.1STM32主控部分
采用STM32F103C8T6微控制器作为主控制器,它用来接收GPS传感器采集到的位置信息和电压检测电路检测到的船体电源的电量信息以及超声波传感器反馈回来的信号,然后通过GSM模块把这些信息上传到计算机。此外,用一个光电开关固定到垃圾箱的顶部,当垃圾收集箱被装满时,微控制器通过GSM模块向管理员报警。电压检测电路由一个分压电路组成,分压电路把电源电压的范围转换到0-3.3V的范围内便于数模转换模块测量电源电量。
4.2清理船控制部分
要保证清理船的基本正常行进,本设计使用了推力强的无刷电机作为螺旋桨的动力来源,以无刷电机和螺旋桨构成的水下推进器能更让清理船前进更加稳定。推进器外壳以及螺旋桨均采用玻璃纤维增强改进的尼龙材质,具有强度高,耐腐蚀,耐海水等特性,内置的螺母嵌件都是不锈钢定制的,外壳完好的密封可以让推进器在水下流畅工作。清理船可以通过手机APP控制运动,亦可通过STM32F103C8T6微控制器发送一定频率和脉宽范围的PWM给电调,电调根据脉宽和设置控制电机。清理船电调采用的是双向电调,需要从中位启动不需要设定电调行程,当设置为1500us—2200us无刷电机正转,1500us—800us无刷电机反转。并在船头安装两个探照灯,当前方光线暗时会自动打开提供照明,通过stm32单片机控制发出不同占空比高低信号,实现船在光线较暗环境下前进、停止、转向等基本行进功能。
清理船可通过手机APP控制船体前后左右移动,如果计算机没有发来指令,就执行自动控制程序,船体通过传感器得到的信息进行判断。傳感器信息采集程序先通过串口通信接收GPS模块的信息,通过STM32单片机的AD/DA采集电压检测电路的电量信息,通过中断函数接收超声波模块的测距信息,用单片机的普通I/O口检测光电开关输出端的高低电平信息,然后把这些信息存储下来并打包。与计算机交互程序主要通过串口通信向GSM模块发送AT指令来实现向计算机发送和接收信息。单片机通过AT指令把打包好的数据发给服务器,然后通过串口中断函数检测计算机是否发来指令。如果没有接收到计算机的指令,自动控制程序根据超声波的距离信息判断前方是否有障碍物 (通过设定阈值实现,当距离信息大于阈值时,前方无障碍物;否则前方有障碍物),如果没有障碍物,就控制单片机输出相应的PWM前进;如果有障碍物,根据上次的转向信息这次做出相反的转向操作并记录转向信息。
5 结论
本文设计基于STM32的蓝牙控制无人清理船,实现自动避障,自动清理垃圾,并在手机APP上实时显示船体电量和坐标的功能,还实现了通过手机APP手动控制船体功能。无人清理船具备原理简单,成本低廉等特点,相比于现有的同类产品,具有续航能力强、工作半径大、承载能力强、工作效率高的优点,能够在景区湖面、河面、游泳池等低水流速场合使用,切实解决目前缺少方便高效、安全系数高的打捞设备,给旅游景区、城市内河等狭长的静水水域水面垃圾清理带来的种种问题,可以代替传统的人工清理水上垃圾方法,减轻了劳动量、提高了垃圾清理效率。
参考文献:
[1]聂影.一种水上垃圾清理机器人[P].广东省:CN213740955U,2021-07-20.
[2]姚志强,赵恩铭,杨松,杨燕婷,刘光宇,周豹,王辰,朱晓栋.基于OpenMV的目标方位追踪算法[J].牡丹江师范学院学报(自然科学版),2021(03):14-18.
[3]董志,李春.一种远程控制清理收集水上垃圾机器人[P].江西省:CN212313814U,2021-01-08.
[4]路天天,叶宇程,刘岩,赵壮壮,阮治纲,高爽.全自动水上垃圾清理系统[J].山西电子技术,2019(04):17-19.
基金项目:国家级大学生创新创业训练计划项目“水上清理工”(项目号:202110066019)
作者简介:徐洪波(2000-),男,本科生,自动化(电气技术教育方向)专业。