李永浩 鄭丹丹 曹如月 張盈 楊瑩瑩
摘 要: 按照第五屆河北省大學(xué)生工程訓(xùn)練綜合能力競(jìng)賽的要求,設(shè)計(jì)并制作了一輛基于STM32單片機(jī)的物料搬運(yùn)小車。通過(guò)對(duì)小車硬件電路、控制模塊、循跡算法等方面的設(shè)計(jì)分析,得出最優(yōu)的制作方案,完成規(guī)定任務(wù),為工業(yè)自動(dòng)化的發(fā)展提供了幫助。
關(guān)鍵詞: 物料搬運(yùn);單片機(jī);循跡
由于自動(dòng)化生產(chǎn)水平的不斷提高,物料搬運(yùn)設(shè)備的需求持續(xù)上升。全國(guó)大學(xué)生工程訓(xùn)練綜合能力競(jìng)賽中,要求設(shè)計(jì)的執(zhí)行物料搬運(yùn)工作的小車正是出于發(fā)展設(shè)備制造業(yè)的需要所命題的。物料搬運(yùn)設(shè)備的持續(xù)發(fā)展,將會(huì)持續(xù)影響到生產(chǎn)效率的提高。
1 設(shè)計(jì)思路
根據(jù)任務(wù)對(duì)小車進(jìn)行系統(tǒng)化的設(shè)計(jì)的原則,確定實(shí)現(xiàn)小車各部分功能的具體方案,再對(duì)物料搬運(yùn)小車的控制系統(tǒng)具體算法部分設(shè)計(jì)分析,制作一輛基于單片機(jī)的物料搬運(yùn)小車。根據(jù)要求,物料搬運(yùn)小車的設(shè)計(jì)邊長(zhǎng)為A4的正方體大小;運(yùn)用單片機(jī)進(jìn)行算法的處理與分析;搬運(yùn)過(guò)程中精度要求較高,若因地圖不平整或舵機(jī)動(dòng)作不當(dāng)容易導(dǎo)致誤差,所以底板采用弧形設(shè)計(jì),出現(xiàn)偏差可自行調(diào)整;采用可進(jìn)行全方位移動(dòng),在不平表面性能更好的麥克納姆輪;使用激光傳感器進(jìn)行定位;攝像頭獲取物料信息、六自由度機(jī)械臂進(jìn)行物料抓取。
2 硬件電路設(shè)計(jì)
(1)主控板。采用STM32F407VET6作為控制芯片,包括FNSC液晶接口電路、電機(jī)驅(qū)動(dòng)電路、按鍵系統(tǒng)電路。(2)傳感器。此物料搬運(yùn)小車使用4個(gè)未來(lái)機(jī)器人漫反射反射激光傳感器用來(lái)檢測(cè)路面信息,判斷線停。采用GY-31 TCS230 TCS3200 顏色傳感器識(shí)別物料顏色。(3)機(jī)械臂模塊。機(jī)械臂由9個(gè)EMAX ES08A模擬舵機(jī)、1個(gè)MG99620KG舵機(jī)、機(jī)械爪、支架組成。
3 算法設(shè)計(jì)
3.1 循跡部分
循跡模塊進(jìn)行計(jì)算時(shí),其返回值極為重要,基于更高的精度要求,循跡模塊利用八個(gè)燈。循跡傳感器是一種模擬量,接在主板上A0-A8模擬量接口中的四個(gè)。多次驗(yàn)證發(fā)現(xiàn),處于黑線和白色區(qū)域時(shí)返回值分別低于1100和大于3000。
3.1.1 讀取灰度傳感器數(shù)值
取val4、val5為前進(jìn)方向的4、5號(hào)信號(hào)燈的讀數(shù),val6、val7為后退方向4、5信號(hào)燈的讀數(shù)。依據(jù)其原理,返回到小車的光線強(qiáng)度決定了光敏探頭確定顏色深淺的標(biāo)準(zhǔn),因此其準(zhǔn)確度和檢測(cè)距離、光線強(qiáng)弱密切相關(guān),物料搬運(yùn)小車執(zhí)行任務(wù)時(shí)的晃動(dòng)和四周環(huán)境可能會(huì)影響其測(cè)量精度。所以算法中采用讀取四次的方式減少偶然誤差,對(duì)此算法的調(diào)用,其誤差是小車左右輪速變化的要點(diǎn)所在。
3.1.2 前進(jìn)后退算法
電機(jī)驅(qū)動(dòng)板上控制的每個(gè)車輪,分別對(duì)應(yīng)MAp1、MAp2、MApwm。p1和p2代表傳輸?shù)臄?shù)字量,低高為后退信號(hào)、高低為行進(jìn)信號(hào),pwm的值控制速度的大小。
3.1.3 循跡算法
void yanxianzou(int a,int b){
flag = 1;
getABCD();
calc_pid();
if(val4<1000 && val5<900)//在黑線
goStraight(a,b);
else if(val4<1000 && val5>900)//偏右
goStraight(a+PID_value,b-PID_value);
else if(val4 >1000&& val5<900)//偏左
goStraight(a-PID_value,b +PID_value);
else
goStraight(a,b);
}
void yanxiantui(int a,int b){
flag = 0;
getABCD();
calc_pid();
if(val6<800 && val7<1400)//在黑線
retreat(a,b);
else if(val6>800 && val7<1400)//偏左
retreat(a-PID_value,b+PID_value);
else if(val6 <800 && val7>1400)//偏右
retreat(a+PID_value,b-PID_value);
else
retreat(a,b);
}
由局部程序代碼可以看出,將PID獨(dú)立化,簡(jiǎn)化了算法,完成了用一個(gè)函數(shù)調(diào)用不同的Kl、Km、Kn的命令。走直線時(shí),Km對(duì)小車動(dòng)作幅度影響很小,當(dāng)走圓弧時(shí),燈在白色區(qū)域的停留使Km的作用逐漸體現(xiàn)出來(lái),更加穩(wěn)定。
3.2 編碼器
在物料搬運(yùn)小車進(jìn)行轉(zhuǎn)彎時(shí),左右輪輪速的不同會(huì)影響轉(zhuǎn)彎半徑,利用編碼器的轉(zhuǎn)化功能來(lái)控制角位移,實(shí)現(xiàn)左右輪轉(zhuǎn)速相同。
4 結(jié)語(yǔ)
物料搬運(yùn)小車在完成比賽任務(wù)的同時(shí),對(duì)于制造業(yè)的發(fā)展也有著借鑒意義。隨著信息化和工業(yè)化發(fā)展的向前邁進(jìn),物料搬運(yùn)設(shè)備未來(lái)的發(fā)展將會(huì)有更多的機(jī)遇和空間。
參考文獻(xiàn):
[1]王鑫,趙文鑫,衛(wèi)國(guó)唯,李建航.基于STM32單片機(jī)的物料搬運(yùn)小車[J].科技風(fēng),2019(19):9.
[2]廖杰,譚寧寧,劉成鑫,巫幫錫,彭永康.基于STM32的智能物料搬運(yùn)小車系統(tǒng)設(shè)計(jì)[J].科技與創(chuàng)新,2019(08):146-147.