陳森森 林志國


如今的中國正處于高速發展階段,而每一個國家在經歷這一階段的同時不可避免地會出現比較嚴重的環境污染;中國也不例外,然而這些污染的源頭無非就是一些生活垃圾或者化工“垃圾”,生活垃圾分為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