小型水面垃圾清理船的设计与实现
2017-03-02袁斌华高晓红林宏烨
袁斌华,高晓红,张 彬,林宏烨
(陇东学院电气工程学院,甘肃庆阳745000)
小型水面垃圾清理船的设计与实现
袁斌华,高晓红,张 彬,林宏烨
(陇东学院电气工程学院,甘肃庆阳745000)
基于STC12C5A60S2为主控制电路,使软硬件相结合,通过控制动力模块、清理模块、传输模块来实现清理垃圾、传输垃圾的功能;通过遥控模块实现小型水面垃圾清理船的智能控制。经实际测试,设计中的各组成部分协同工作实现小型水面清理船的智能便捷操作,达到节约人力资源、减轻劳动强度和高效节能环保的目的,且系统安全、稳定,具有一定的实用价值。
STC12C5A60S2;智能控制;动力模块;清理模块;遥控模块
当前,随着我国经济的发展和人们对生活质量要求的提高,各处小区、游乐场都建立了假山以及人工湖,水面垃圾清理问题也随之而来。传统水面清理为人工清理,效率低而且安全性不高,很多大型清理设施无法进行清理,为了实现对人工湖水面垃圾清理的机械化与自动化,创造出更好的环境,并且提高效率,降低安全隐患,因此设计出一款具有环保、高效、技术先进的环保型水面垃圾清理船,可同步完成水面垃圾等漂浮物的集拢、提升和储运等作业,对营造绿色的生态环境有着重要的科学意义和良好的应用前景[1-5]。
正是在这种背景下,论文从实际出发,基于STC12C主控制电路并结合软硬件,通过控制动力模块、清理模块、传输模块和遥控模块实现水面垃圾的清理和传输的功能,来达到清理船的智能控制,使之简单轻便,美观大方,增大承载容积和载荷能力的同时,降低本身重量,提高使用寿命,减少噪声,使清理船更加人性化、自动化,更加方便人们的使用和适应时代的发展,对营造绿色的生存环境有着重要的意义与积极的作用。
1 方案的设计
图1 总体方案设计框图
系统以聚丙烯为船身主要材料,由空气压强将垃圾压入船内收集垃圾处更加方便,两侧的垃圾收集装置使清理垃圾更加彻底,避免了垃圾的遗漏,提高了收集垃圾的效率。主要包含动力模块、清理模块、传输模块、遥控模块以及控制模块。
2 系统设计
2.1 系统硬件设计
2.1.1 动力模块的硬件设计
动力模块包含太阳能电池(太阳能电池提供动力,既环保又高效)和蓄电池。太阳能作为一种新型清洁能源备受环保人士的推崇,但“月有阴晴圆缺,天有刮风下雨”,在没有太阳时,蓄电池就可派上用场。直流电动机主要为清理装置及在遥控工作状态下的船提供动力;步进电机主要为清扫装置提供动力。
此船采用三块12V蓄电池来提供动力,以便装置可以更长时间地工作。控制电机的转动、转速,以便更好地控制船的走动以及走向。船身整体采用快艇式结构,更加减小了船在水中的阻力,使船更加灵活。
2.1.2 清理模块的硬件设计
清扫模块由两部分组成,第一部分主要为弯曲筛网、直筛网组成,筛网的底部与侧面均有滤水孔,由过滤网和铁丝网双重保护,但网孔是长条形,不是网格型,过滤网与铁丝网之间有一定的空隙,这样,浅表水层水生物可以顺着空隙游出,垃圾却不能溢出,有效地保护了生态,收集垃圾的同时净化了水体。收集轮设计采用仿形变翼偏心运动机构,带动收集板进行伸缩集拢的回转运动,增加了作业的有效幅宽,提高了工作效率,特别适用于湖面区域的清理作业。弯曲筛网固定在42步进电机/2相步进电机上,步进电机分为八步,可以360°旋转,将水中的垃圾打捞起来。两个直筛网分别固定在船的两旁,由48步进电机带动它转动,因为步进电机用程序好控制它正反转;第二部分利用风机的高速转动将船体前端部分吹成真空,由空气压强将垃圾压入船内的垃圾收集装置中[6-8]。
2.1.3 传输模块的硬件设计
传输模块对于船身的设计也是至关重要的,通过42步进电机的动力将垃圾打捞起来,当弯曲筛网顺时针旋转90°时,直筛网由48步进电机带动旋转180°至水平位置(船外面),这时弯曲筛网再顺时针旋转45°,将垃圾倾倒在直筛网上面,然后弯曲筛网逆时针旋转45°后,直筛网顺时针旋转180°,弯曲筛网继续顺时针转动,将垃圾倾倒到垃圾收集箱中,弯曲筛网继续顺时针转动,通过推送系统将垃圾推送到塑料袋中,此后的过程循环以上程序,就可实现垃圾的高效收集[9,10]。
2.1.4 遥控模块的硬件设计
当在清洁过程中由人通过手机或者电脑对装置进行遥控,此模块主要由路由器、WiFi模块及操作处理器组成,可以在20米距离内进行遥控操作[11]。遥控发射器和信号接受器采用27MHz的无线电,其主要指令包括调速控制、方向控制以及各种清洁指令操控。
2.1.5 控制模块的硬件设计
控制系统是清理船的核心,采用STC12C5A60S2STC12C片机为核心操控部件[12,13],采用简单易读的C语言编程,使各个部件有条不紊地运行全依靠控制系统的合理操控,图2为STC12C5A60S2引脚图。
STC12C5A60S2/AD/PWN/系列单片机是宏晶科技生产的单时钟/机器周期的单片机,一种低功耗、高性能的新一代8051单片机,指令代码完全兼容传统的8051,但速度快8~12倍。内部集成MAX810专用复位电路,2路PWN,8路高速10位A/D转换,针对电机控制,强干扰场合。
图2 STC12C5A60S2引脚图
2.1.6 硬件电路设计原理图
图3为清理船的硬件设计原理图,M1、M2为直流电机,给船提供动力,实现船的前进、转弯。M3为42步进电机,给船两旁的弯曲筛网提供动力,使之实现转动,M4、M5为48步进电机,给船两旁的直筛网提供动力,使之实现反转。舵机1、舵机2的作用:针对水面垃圾相对水面的高度,通过WiFi模块,在手机端改变风机吸管高度,便于收集各种垃圾[14]。由于风机在收集垃圾的同时,会有部分水进入风机内,对此我们专门对风机进行设计,把风机的收集装置分为上下两部分,中间为过滤网,将垃圾储放在上层,把吸进去的水过滤到下面,通过水泵工作把水抽到船外,减轻船的负重,提高收集效率。
图3 硬件设计原理图
2.2 系统软件设计
2.2.1 系统软件设计流程图
检查电路连接是否正确,然后接上电,发送数据,将WiFi模块启动,打开手机无线,连接之后检查每个部分是否正常工作,排出故障之后,才可下水进行清理工作。根据现实中船的变速机构设计了控制方案,控制方案实现了船的三级调速、倒车和左右转弯。考虑到我们设计的是水面垃圾清理船,清理垃圾时速度不应过快,在不清理垃圾时快速行驶,所以我们设计了三级变速,即起步直行,加速和减速,左转、右转和倒车,这些工作由直流电机M1、M2实现。区域清扫包括筛网清理和风机针对垃圾清理,主要由步进电机M3、M4、M5完成。各电机之间相互协作,完成垃圾清理。
图4 系统软件总设计流程图
2.2.2 设计总程序
#include
#include
#include
#define uchar unsigned char
#define uint unsigned int
uint URTAReceivedCount=0,n=1;
uchar data Tempdatatable[5],CommandDatatable[5];//数据包
uint pwm[]={1382,1380,1382,1382,1382,1382,1382,1382}; //初始90度,(实际是1382.4,取整得1382)
uchar pwm_flag=0;
uint code ms0_5Con=461; //0.5ms计数(实际是460.8,取整得461)461
uint code ms2_5Con=2304; //2.5ms计数2304
sbit servo0=P1^0; //舵机控制
sbit servo1=P1^1;
sbit servo2=P1^2;
sbit servo3=P1^3;
sbit servo4=P1^4;
sbit servo5=P1^5;
sbit servo6=P2^2;
sbit servo7=P2^3;
sbit ENB=P0^0;
sbit ENA=P0^1;
sbit LiftTwo=P0^2;
sbit LiftOne=P0^3;
sbit RightTwo=P0^4;
sbit RightOne=P0^5;
sbit WaterCannon=P2^7;
sbit Siren=P2^6;
sbit RopeUp=P0^7;
sbit RopeDown=P0^6;
sbit BucketUp=P1^7;
sbit BucketDown=P1^6;
sbit MCUTwoP21=P0^6;
sbit MCUTwoP20=P0^7;
sbit MCUTwoP23=P1^6;
sbit MCUTwoP22=P1^7;
sbit MCUTwoP25=P3^4;
sbit MCUTwoP24=P3^5; // 超声波接口
sbit InfraredOne=P3^7;
sbit InfraredTwo=P3^6;
void Delay_1ms(uint i)//1ms延时函数
void Send_Data(uchar type,uchar cmd,uchar dat) //向上位机传送字符函数
void Com_Int(void) interrupt 4 //串口中断子函数
void Com_Init(void) //串口初始化
void Moto_Forward() //电机1、2启动,都是前进,整车表现为前进。
void Moto_Backward() //电机1、2启动,都是后退,整车表现为后退。
void Moto_TurnLeft() //左轮后退,右轮前进,整船表现为左转。
void Moto_TurnRight() //左轮前进,右轮后退,整船表现为右转。
void Moto_Stop() //左轮1停止,右轮2停止,整船表现为停止。
void SteeringGear() interrupt 1 //舵机控制函数
函数功能: 主函数:
void main()
{
BucketUp=0;
BucketDown=0;
Siren=0;
RopeUp=0;
RopeDown=0;
WaterCannon=0;
Moto_Stop();
ENA=0;
ENB=0;
Delay_1ms(6000);
Com_Init();//串口初始化
Timer0Init();//舵机PWM中断初始化
while(1)
{
if(CommandDatatable[0]==0XFF && CommandDatatable[4]==0XFF)
{
switch (CommandDatatable[1])
{
case 0X00: //类型位0X00,表明是控制数据包,进入控制数据case
switch(CommandDatatable[2])
{
case 0X00:{Moto_Stop();ENA=0;ENB=0;}break;
case 0X01:{Moto_Backward();ENA=1;ENB=1;}break;
case 0X02:{Moto_Forward();ENA=1;ENB=1;}break;
case 0X03:{Moto_TurnLeft();ENA=1;ENB=1;}break;
case 0X04:{Moto_TurnRight();ENA=1;ENB=1;}break;
default : break;
}
break;
case 0X01: //类型位0X01,表明是舵机数据包,进入舵机case
switch(CommandDatatable[2])
{
case 0x01:SetSteeringGear(0,CommandDatatable[3]);break;
case 0x02:SetSteeringGear(1,CommandDatatable[3]);break;
case 0x03:SetSteeringGear(2,CommandDatatable[3]);break;
case 0x04:SetSteeringGear(3,CommandDatatable[3]);break;
case 0x05:SetSteeringGear(4,CommandDatatable[3]);break;
case 0x06:SetSteeringGear(5,CommandDatatable[3]);break;
case 0x07:SetSteeringGear(6,CommandDatatable[3]);break;
case 0x08:SetSteeringGear(7,CommandDatatable[3]);break;
default : break;
}
break;
case 0x09: //类型位0x09,表明是操作系统控制命令:
switch(CommandDatatable[2])
{
case 0x09:
switch(CommandDatatable[3])
{
case 0x00:WaterCannon=1;break;
case 0x01:WaterCannon=0;break;
case 0x02:Siren=1;break;
case 0x03:Siren=0;break;
case 0x04:{BucketUp=1;Delay_1ms(1000);BucketUp=0;CommandDatatable[3]=‘ ’;}break;
case 0x05:{BucketDown=1;Delay_1ms(1000);BucketDown=0;CommandDatatable[3]=‘ ’;}break;
case 0x07:{RopeUp=1;Delay_1ms(1000);RopeUp=0;CommandDatatable[3]=‘ ’;}break;
case 0x08:{RopeDown=1;Delay_1ms(1000);RopeDown=0;CommandDatatable[3]=‘ ’;}break;
default:break;
}
default :break;
}
break;
default : break;
}
}
if((InfraredOne==0)&&(CommandDatatable[1]==0x00)&&(CommandDatatable[2]==0x01))
{
Moto_Stop();
CommandDatatable[2]=0x00;
}
if((InfraredTwo==0)&&(CommandDatatable[1]==0x00)&&(CommandDatatable[2]==0x01))
{
Moto_Stop();
CommandDatatable[2]=0x00;
}
if((MCUTwoP24==1)&&(CommandDatatable[1]==0x00)&&(CommandDatatable[2]==0x02))
{
Moto_Stop();
CommandDatatable[2]=0x00;
}
}
}
3 结论
为了实现小型水面垃圾清理船的便捷操作和智能化,达到节约人力资源的目的,以STC12C5A60S2为控制核心的高效智能小型清理船,由动力模块、清理模块、传输模块和遥控模块组成,采用基于单片机的C程序,软硬件相结合,各组成部分协同工作实现自己的功能,实现清理船的合理配置,达到高效节能环保效果,并且该系统稳定、安全。
[1]林道.吸入式自动采果机[J].农业机械化电气化,1995,6:20.
[2]张晓玲.无线路由器管理系统的研究[D].北京:北京邮电大学,2014:18-45.
[3]邱江.机械化清扫船设计中几个关键问题的探讨[J].环境为生工程,2006,8(2):52-55.
[4]胡君智.小型多用途打捞装置的设计[J].上海造船,2008,25(4):69-70.
[5]曲建辉,孙群.双体清污船清污臂虚拟设计[J].装备制造技术,2015(5):38-40,66.
[6]曾义聪.水面漂浮垃圾清理机的设计研究[J].徐州工程学院学报(自然科学版),2013,28(1):69-73.
[7]丁丽佳,刘鑫,赵岳,等.遥控水面垃圾自动清理船[J].机械与电子,2009(11):108-109.
[8]王鹏,屠伟峰.电力推进装置在清扫船上的应用[J].上海船舶运输科学研究所学报,2010,33(1):74-77.
[9]戴云霞,臧巨田,邹炳燕.水面清扫船液压系统及喷水装置的研制[J].液压气动与密封,2004(6):17-19.
[10]吴荻.双体船船体结构的直接计算法[D].武汉:武汉理工大学,2004:34-56.
[11]黄乐华.双体船型结构强度研究[D].武汉:武汉理工大学,2006:12-31.
[12]江达飞,毛玉青.景区水面垃圾清理船设计[J].科技视界,2016(5):254-255.
[13]谢家兴,邱冠武,陈武瑞,等.基于景区湖泊污染的多功能水域清理船设计[J].环境工程学报,2014,8(6):2371-2375.
[14]戴毓.探讨城市水面垃圾清理船设计研究[J].设计艺术,2015(11):92.
【责任编辑 朱世广】
The Design and Realization of Small-sized Water-surface Garbage Cleaning Boat
YUAN Bin-hua, GAO Xiao-hong, ZHANG Bin, LIN Hong-ye
(CollegeofElectricalEngineering,LongdongUniversity,Qingyang745000,Gansu)
Based on STC12C5A60S2 as the main control circuit and the combination of software and hardware, through a control on power module, cleaning module and transmission module, the function of waste cleaning and transmission is realized. The intelligent control of the small-sized water-surface garbage cleaning boat is realized through remote control module. The test results indicate:the every component in the design can work together to realize the intelligent convenient operation of the small water-surface garbage cleaning boat, human resources-saving and reducing labor intensity and high performance energy conservation and environment protection can be realized. The system operates safely and stably, and thus has certain practical value.
STC12C5A60S2;intelligent control;power module;cleaning module;remote control module
1674-1730(2017)01-0024-06
2016-04-06
袁斌华(1986—),男,甘肃平凉人,助教,主要从事电子信息技术及电力系统及其自动化研究。
TM614
A