陈森森 林志国
如今的中国正处于高速发展阶段,而每一个国家在经历这一阶段的同时不可避免地会出现比较严重的环境污染;中国也不例外,然而这些污染的源头无非就是一些生活垃圾或者化工“垃圾”,生活垃圾分为1.不可回收垃圾2.可回收垃圾3.有害垃圾,如果我们没有做好垃圾分类的话,不仅会浪费资源,造成污染,同时也会给一些垃圾处理部门造成不必要的麻烦。而智能垃圾分拣小车可以自主搜寻垃圾、识别垃圾种类并针对不同的垃圾进行相应的回收,节省大量的人工劳动力;并且可以在许多苛刻的环境中代替人力完美执行分拣垃圾的工作;如今关于智能垃圾分拣小车研究备受世界的关注,由于在未来人工智能将在很多领域占据主导地位,像分拣垃圾这种需要大量劳动力的工作,将完全有可能被人工智能所取代,减少人工分类、减少环境污染、让城市更加规范化。
目前,在百度AI平台里的EasyDl定制化图像识别功能已经可以初步识别常见垃圾,但并不具备循迹、分拣等功能,而我们要做的就是设法将三者合并起来,制作出可以自己寻找垃圾并识别分类的智能垃圾分拣小车。
在研究的过程中,我们采用了模拟法、功能分析法、实验法等科研方法来进行研究。
设计的任务是:小车来到垃圾分放点后,经过扫码识别和服务器判断,给小车发送指令信息,接收到后小车能够将垃圾分拣到指定位置。小车总体功能结构如图1-1所示。
本设计需要的模块有:循迹避障小车模块、识别抓取模块、定位卸货模块、无线交互模块。
主控制器单片机的选择
本设计采用STC89C52RC型号的单片机,STC89C52单片机具有以下标准功能:4个外部中断,看门狗定时器,MAX810复位电路,16位定时器3个,全双工串行口,7向量4级中断结构一个。可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。
循迹避障小车的硬件设计
实现小车基础的循迹避障功能,需要用到驱动系统提供小车行驶的动力,和循迹避障系统判断小车执行的行驶指令。本设计分别对两个模块进行论证以完成该硬件系统的设计。
驱动系统硬件设计
根据本设计的思路,由单片机根据所检测的数据进行判断,然后执行对应的功能,实现对自动分拣小车的智能控制。
L298N芯片的驱动原理
L298N芯片是一种高电压大电流的电机驱动芯片,工作电压较高,含H型全桥式驱动器两个,可用于驱动直流、步进电机。直流电机没有正负极,但为了方便设计,我们模拟电机某同一端为正,另一端为负极。该设计将芯片的5、6、7、10、11、12接脚接到51单片机的P1.1、P1.0、P1.2、P1.4、P1.3、P1.5接口。芯片的2和3输出口接到左电机正负极,13、14接到右电机正负极。当单片机P1.0信号为“1”,左电机输出电路开关打开,P1.1输出信号“1”,P1.2信号“0”,OUT1口输出一个VCC高电平,OUT2输出低电平0V,左电机正转。同样,P1.3信号“1”,P1.4信号“0”,P1.5信号“1”,则右电机反转。这样便实现了小车前进。在程序中,可以这样定义:
(1)执行左电机正转:{ P1_0 = 1 ; P1_1 = 1 ; P1_2 = 0 }
(2)执行左电机停转:{ P1_0 = 0 ; P1_1 = 0 ; P1_2 = 0 }
(3)执行左电机反转:{ P1_0 = 1 ; P1_1 = 0 ; P1_2 = 1 }
(4)執行右电机正转:{ P1_3 = 1 ; P1_4 = 1 ; P1_5 = 0 }
(5)执行右电机停转:{ P1_3 = 0 ; P1_4 = 0 ; P1_5 = 0 }
(6)执行右电机反转:{ P1_3 = 1 ; P1_4 = 0 ; P1_5 = 1 }
循迹避障系统的硬件设计
循迹系统的硬件设计
本设计中采用的红外循迹模块为TCRT5000红外反射传感器。
如图1-2为TCRT5000红外反射传感器原理图,图中红外对接管用于发射和接收红外信号。平时电源接通时,电源指示灯有电流通过,指示灯亮。LM3939是一个比较器,当正端电压大于负端,输出高电平,开关指示灯不亮。当正端电压小于负端电压,输出低电平0,开关指示灯形电流流通,灯亮。在代码中可这样设计:
(1)判断两边未检测到黑线:{P3_6 == 0 ; P3_7 == 0 } 执行 前行
(2)判断左边检测到黑线:{P3_6 == 1 ; P3_7 == 0 } 执行 左转
(3)判断右边检测到黑线:{P3_6 == 0 ; P3_7 == 1 } 执行 右转
(4)判断两边都检测到黑线:{P3_6 == 1 ; P3_7 == 1 } 执行 停车
避障系统的硬件设计
本设计采用红外发射式传感器仅用于检测障碍物。其中左避障传感器输出接P3.4,右避障输出端接P3.5,在程序中可以这样设置:
(1)判断左方遇到障碍:{ P3_4 == 0 ; P3_5 == 1 } 执行 停车
(2)判断右方遇到障碍:{ P3_4 == 1 ; P3_5 == 0 } 执行 停车
(3)判断两方都遇到障碍:{ P3_4 == 0 ; P3_5 == 0 } 执行 停车
识别抓取系统的硬件设计
系统主要包括双目摄像机、六自由度 机械臂、摄像机标定及测量子系统、机械臂控制子系统以及目标识别与定位子系统。双目摄像机由两个相同配置的CCD相机组成,充当机器人的眼睛;六自由度机械臂充当机器人的手臂,移动抓取物体;目标识别与定位系统安装在一台带有GPU的服务器上,提供图像目标检测的接口服务;摄像机标定及测量系统采集视场图像,将图像提交到目标识别与定位系统,根据其返回的物体分类信息及定位信息,计算物体三维坐标,控制机械臂移动并抓取目标。
定位和卸货系统的硬件设计
定位系统的硬件设计
光敏电阻传感器功能的设计
定位系統采用光敏电阻传感器和LED发光二极管搭配使用组成定位点的识别系统,设计中使用4个LED发光二极管和一个光敏电阻传感器,在路线中设置四个点,各点适当位置放置一个LED发光二极管,小车侧边安装一个光敏电阻传感器。四个定位点位置模拟垃圾放置点、A区、B区、C区。当小车到达第一个点,光敏电阻传感器感应到光线达到标准,输出低电平。然后判断wifi信号是否存入变量中,如果wifi变量为0,则小车停车。识别垃圾并且机械臂抓取垃圾放到小车车厢内,wifi变量不等于0,光敏信号为0,则小车循迹前进。当光敏电阻传感器感应不到标准强度光线后,输出信号“1”,此时对比变量,给另一个变量值加一。如此循环,直到小车到达wifi信息所对应的定位点后,停车卸货。在本设计中,使用P2.0接口连接光敏电阻的DO口,当光强达到阈值传感器输出“0”,强未达到阈值输出“1”,因此程序中可这样设计:
(1)判断到达定位点:{P2_0 == 0 }
(2)判断未到定位点:{P2_0 == 1 }
卸货系统的硬件设计
舵机功能的设计
本设计采用SG909g型号的舵机,用于执行卸货动作。当卸货条件达成时,舵机子程序驱动舵机旋转90度,将放置在称重模块上的货物推下。动作完成后,卸货功能完成,舵机复位,并将变量归零,程序又开始循环变量判断,小车继续循迹绕回初始点停车。舵机的工作原理
驱动舵机转动需要通过信号线给舵机一个周期性的直流偏置电压,舵机会根据输入的电压和基准电压进行比较,得到电压差输出,根据电压差正负确定旋转方向。另外,根据输入方波的周期来判断旋转的角度。
无线传输设计
无线传输系统意为通过无线连接,客户机与服务机进行信息交换,并对传输的数据进行处理。本系统分为WIFI无线模块、红外遥控模块。
WIFI无线模块的硬件设计
WIFI传输功能的设计
该设计采用的是市面上普遍应用的ESP8266WIFI模块。ESP8266模块的工作原理
在正常工作的模式下使用时,通过单片机程序发送指令,让芯片进入指定模式,这里可以通过if语句判断0和1来执行发送的指令内容,建立好TCP协议后,便可以收发数据。
红外遥控系统的硬件设计
使用遥控器时,当按键按下超过36ms,振荡器让芯片激活,红外发射口发射出一组108ms的脉冲。该脉冲由9ms的引导码,4.5ms的结果码,9ms18ms的低八位地址码,9ms18ms的高八位地址码,9ms~18ms的八位数据码和该数据码的反码构成。单片机接收到后,对信号进行判断。检测到非合法红外信号则跳出,检测到合法的红外信号,表明接收到遥控器的信号。然后等待9ms低电平过去,再判断是否为连发码,若为连发码则跳出,直到检测到是引导码,再等待4.5ms结果码高电平过去,之后接收到的便是用户码。开始对用户码进行解码。随后对已解码的用户码进行判断,判断成功则执行设定的程序,即小车的前进、转弯、倒退。
主函数的设计
void main()
{
bit ExeFlag=0;
EX0=0;
IT0=1;
EA=1;
TMOD=0X01;
TH0= 0XFc;//1ms定时
TL0= 0X18;
TR0= 1;
ET0= 1;
Init_Tim1();
#if(0)
SendString("AT+CWMODE_DEF=1\r\n");
HAL_Delay(100);
SendString("AT+CWJAP_DEF=\"SCY\",\"bilibili\"\r\n");
HAL_Delay(3000);
#else
SendString("AT+CWMODE_DEF=2\r\n");
#endif
HAL_Delay(100);
SendString("ATE0\r\n");
HAL_Delay(100);
SendString("AT+CIPMUX=1\r\n");
HAL_Delay(100);
SendString("AT+CIPSERVER=1,333\r\n");
while(1)
{
if(P3_3 == 0)
{
delay_nms(10);
if(P3_3 == 0)
{temp++ ; while(!P3_3); }
BUZZ=0;
delay(50);
BUZZ=1;
}
if(temp > 2)
{temp = 1; }
switch(temp)
{
case 1: Car_Avoidance();EX0 = 0;break;
case 2: BUZZ = 1; EX0 = 1;break;
}}}
测试与调试
循迹避障模块的测试记录
(1)试验所用模块:89C52RC单片机主板、电机驱动模块、直流电机、小车底盘和红外避障模块。
(2)试验过程:安装好小车,编写红外循迹避障程序,烧写进单片机试验。
(3)试验结果:前方有障碍物时小车停车不及时。
(4)解决方法:将障碍物检测放在循迹条件父级,让小车需要先满足无障碍才能继续循迹判断和电机转动。
自动分拣小车的整体测试记录
(1)试验所用模块:测试好的所有模块、安装好舵机、第二层车身板、LED灯4个、制作好的手机APP和印有二维码的模拟垃圾,搭建好演示环境。
(2)试验过程:完善代码并烧写进小车,分别测试遥控模式和自动模式是否达到预期要求。
(3)试验结果:遥控模式正常,切换自动模式正常,定位卸货系统正常,但出现电机驱动电压不足的问题,小车行驶不流畅。
(4)解决方法:尋找是否有短路或者串口冲突的问题,或者使用pwm调速,增大电机驱动电压。
参考文献
[1]黄启明.自动分拣系统及其应用前景分析[J/OL].百度文库.2002. https://wenku.baidu.com/view/66676dbdfab069dc50220155.html
[2]最低工资调整趋势及最低工资调整对制造企业的影响研究[J/OL].百度文库.2012. https://wenku.baidu.com/view/b7dee826482fb4daa58d4b8c.html
[3]国内外自动物料分拣机器人研究现状[J/OL].六维论文网.2018. http://www.lwfree.cn/yanjiu/20180507/15068.html
[4]李娜娜,王莉,戴建明.卷烟配送中心自动分拣系统的规划设计[J/OL].蚂蚁文库.2008. http://www.mayiwenku.com/p-5346607.html
[5]gfl2739122.基于arduino的分拣小车设计[D].道客巴巴.2018. http://www.doc88.com/p-2856482187231.html
[6]自动分拣系统国内外研究现状和发展趋势[J/OL]. 六维论文网.2019. http://www.lwfree.cn/yanjiu/20180403/12308.html
第一作者简介:
陈森森,2020,男,汉,籍贯:河南省开封市,学历:大学本科,单位:江苏大学机械工程学院,研究方向:光电信息科学与工程,单位所在省市及邮编:江苏省镇江市,212001
江苏大学机械工程学院 江苏省镇江市 212001