顧菊芬
(蘇州信息職業(yè)技術學院 江蘇 蘇州:215200)
職業(yè)院校致力于培養(yǎng)服務于行業(yè)一線、實踐能力強的高素質技能型應用人才。以綜合項目訓練為載體開展課程教學,可以在項目實施過程中對學生進行工程知識、技能、素養(yǎng)教育的無痕滲透,是實現(xiàn)高素質高技能人才培養(yǎng)的重要抓手[1]。我校電子創(chuàng)新社團“創(chuàng)客島”以專業(yè)社團的興趣班模式,在第二課堂通過專業(yè)教師指導學生開展綜合訓練項目,激發(fā)學生的專業(yè)學習熱情。本文以智能送餐小車控制系統(tǒng)設計綜合訓練項目為例開展教學,在此過程中培養(yǎng)學生的設計思維和工程實踐能力[1-2],并滲透科學精神、工匠精神等。
智能送餐小車是一種能夠自主或半自主地提供客戶送餐服務的智能機器人。智能送餐小車面向餐廳完成自動送餐,可以緩解服務人員數量不足、服務人員的工作強度過大等問題[2-8]。智能送餐小車設計制作對于培養(yǎng)學生自上而下的工程設計全局意識、自下向上的回歸迭代思維、模塊化原則、等價原則、成本與表現(xiàn)的平衡思維是一個較好的綜合訓練項目載體。
智能送餐小車考慮到送餐過程的平穩(wěn)性和承重選用四輪驅動的麥克納姆輪底盤(見圖1),當兩側的輪子同速度相反速度運動時,能夠實現(xiàn)向左或者向右的平行運動、前進、轉彎等。
圖1 小車底盤
小車底盤采用麥克納姆輪,使用的是520直流減速電機帶編碼盤。自動送餐服務車總體結構包括外殼、底板、底盤和抓取機構。自重小于等于10 kg;負載能力為10 kg;供電方式為鋰電池供電。底盤尺寸參數360mm×238mm。
選用電機參數:
額定電壓:12V 減速比:1:56
額定功率:4.32W 電機類型:永磁有刷
額定扭力:6.5kg·cm 最大扭力:9kg·cm
電機帶編碼器,AB相增量式霍爾傳感器,線速:360
智能送餐小車前后各有8位的循跡傳感器;車身中間兩側有定位檢測傳感器,用于定位檢測;電機驅動采用PWM調速;車循跡速度可設置;車旋轉速度可設置。為此,在小車底盤上需要設計相應的電控系統(tǒng)、驅動電路、傳感器電路,線路板大致布局見圖2,保證小車重心穩(wěn)定,反應迅速。
圖2 小車電控板總體布局
根據方案設計,電控系統(tǒng)組成如圖3所示,系統(tǒng)組成部分如下:
圖3 電控系統(tǒng)示意圖
(1)主控制器STM32F103ZET6,該芯片具有2個基本定時器、4個通用定時器、2個高級定時器、112個通用IO口,資源充足,定時器可以配置產生2路PWM提供電機調速信號;
(2)傳感器模塊。使用白光LED發(fā)射強大光線,用8個光敏傳感器采集路面信息,將信號反饋給控制單元,由控制單元判別黑線位置以控制車的速度、轉向和制動;
(3)電機驅動模塊和速度控制模塊。根據碼盤反饋信號,用集成橋式驅動電路驅動電機的運轉狀態(tài),形成閉環(huán)控制,對電機的速度進行準確快速的調節(jié)。
小車電控板采用單片機作為核心控制單元,安裝在車前后部的光電傳感器負責采集信號,并將采集到的信號傳入核心控制單元,核心控制單元對信號進行判別處理后,由內部模塊發(fā)出PWM波,分別對兩側的直流電機進行控制,完成小車的轉向、前進和制動。液晶顯示模塊可以實時顯示小車的狀態(tài)。
電源系統(tǒng)如圖4所示,采用外部16.8V鋰電池供電,經LM2596-12轉換為12V直流電供直流電機電源,經LM2596-5轉換為5V直流電供編碼器、集成電路芯片電源,5V經線性穩(wěn)壓電源AMS1117-3.3V轉換為3.3V供單片機電源,以滿足系統(tǒng)的供電要求,同時通過采用線性穩(wěn)壓電源可以減小電源紋波,保證系統(tǒng)工作的可靠性。電源部分加過流、過壓和防反接保護、軟啟動電路等;電源部分電解電容越大越好,儲能充放電用,否則負載電流太大會把電源電壓拉下來幅度較大,影響系統(tǒng)運行。
圖4 電源系統(tǒng)原理圖
直流電機驅動控制電路主要包括改變直流電動機兩端的電壓控制直流電動機的轉動方向的H橋電路和改變電機轉動速度的PWM控制電路[2-8]。
常見的電機驅動主要有兩種,一種是專用的驅動電路加MOSFET管設計,一種是采用專用的集成電機驅動芯片[2-11]。LMD18200T是一款專用于直流電動機驅動的H橋組件集成芯片,芯片外形封裝和內部結構如圖5所示,在同一個芯片上集成了CMOS控制電路和DMOS功率器件,可以非常方便的與單片機、電機、增量型編碼器構成一套完整的運動控制系統(tǒng)。
圖5 LMD18200T芯片外形和內部結構圖
LMD18200T內部集成了一個標準的H型驅動橋,由四個DMOS管組成。上橋臂的2個開關管的通斷是通過充電泵電路提供柵極電壓進行控制。第二個充電泵電路可通過引腳1、11外接電容構成,如果需要提高工作頻率,則需要提高外接電容的容量,這時充電泵電路向開關管柵極輸入的電容充電速度越快,電壓上升的時間越短,從而達到提高工作頻率。直流電機電樞接在引腳 2、10之間,電樞電流的方向從引腳2至引腳10則電機正轉;反之,電樞電流的方向從引腳10至引腳2,則電機反轉。如果需要檢測芯片輸出是否過流,可以在電流檢測輸出引腳8接一個對地電阻,從而通過電阻來輸出過流情況。芯片內部有過電流和過熱保護電路,過電流閾值10A,當超過該值時芯片自動封鎖輸出,并按照一定周期自動恢復輸出。若過電流持續(xù)時間較長,則啟動過熱保護,芯片自動關閉整個輸出。過熱信號可通過引腳9輸出,當結溫達到145℃時該引腳有輸出信號,結溫達170℃時,芯片關斷。具有良好的抗干擾性。輸出引腳2、10峰值輸出電流高達6A,連續(xù)輸出電流達3A;工作電壓高達55V。LMD18200T芯片引腳功能詳見表1。
表1 LMD18200T芯片引腳功能
服務小車雙側電機驅動原理圖如圖6所示,采用兩片LMD18200T分別進行驅動雙側電機,需要注意的是,在電機的兩個輸入端口之間應并入一定容量的電容,而且電源中也應并入一個大容量的電容,這兩個電容的作用在于濾波,可以在電機的啟動過程中降低沖擊電流的幅度,防止電機電流太大而對主板產生的電磁干擾。電機和驅動電路的散熱問題會影響小車的正常工作,因此在電機和驅動電路上都加上了散熱片。兩片專用集成電機驅動芯片LMD18200T的4腳剎車信號均接地,根據LMD18200T芯片電路功能,左右側電機控制信號分別為PWM調速信號和DIR方向信號,電機控制信號真值表如表2、表3所示。
圖6 雙側電機驅動原理圖
表2 左側電機控制信號
表3 右側電機控制信號
在實際設計中,針對左右側電機編寫底層函數分別控制左側電機、右側電機的正轉、反轉、停止、速度控制的函數。在后續(xù)的小車動作函數編寫中,可以調用底層函數,以實現(xiàn)小車左拐、右拐、直行、后退、掉頭等動作函數。
在智能小車系統(tǒng)中,巡線傳感器就是整個系統(tǒng)的“眼睛”,其對于路徑的識別在控制系統(tǒng)中尤為重要。光電檢測方式和攝像頭檢測方式各有優(yōu)缺點。攝像頭檢測方式檢測前瞻距離大,但是電路設計復雜,軟件處理數據量大,檢測信息更新速度慢,綜上所述,選擇性價比更高的光電檢測方式[2-11]。
巡線傳感電路原理圖如圖7所示。采用高亮度白光LED和光敏電阻、比較器等組成,采用高亮度白光LED的目的是為了抗場地的環(huán)境光干擾。巡線傳感電路檢測路面信息的原理是:黑色物體與白色物體對光的吸收程度不同,導致兩者的反射系數有很大差別。由于白光照射到黑色物體上的大部分被吸收掉了,只有少量被反射回;而白光照射到白色物體上的大部分光線被反射回來,所以白光照射在黑色和白色物體上后光敏電阻接收到的反射光強不一樣,根據光敏電阻的特性曲線光敏電阻阻值發(fā)生變化的程度不同,因此光敏電阻和1K阻值的電阻組成的分壓電路取出的電壓不一樣,從而區(qū)分出黑白路面。光照射電路與光接收電路一一對應,在不同背景下反光強度不同,光敏電阻的值變化不同,為了減輕CPU處理壓力,通過比較器信號處理電路轉換為高低電平信號,送主控板檢測。
圖7 循跡傳感器信號處理電路電原理圖
巡線傳感器的布局采用一排安裝或多排安裝的形式。由于直線排列的控制策略較為簡單,檢測效果良好,故本系統(tǒng)采用“一”字型直線布局的排列方式。
服務車采用左右側電機驅動,沒有專門的轉向系統(tǒng),故采用左右側電機控制差速控制轉向角度。為了更好的實現(xiàn)車輛轉向的控制品質,小車裝有前后兩排灰度傳感器,通過感知小車位置偏差,調節(jié)控制小車轉向角度,實現(xiàn)小車穩(wěn)定可靠的巡線工作。
在小車運行過程,主要動作包括:小車巡線直行、巡線左拐、巡線右拐、盲走直行、盲走左拐、盲走右拐、遇到地圖標志處理判斷等。其中巡線直行是非?;A且重要的動作,在巡線直行過程最重要的是對位置偏差的采樣和分析,并調整處理。
小車裝有前后兩排灰度傳感器,通過信號處理電路輸出高低電平。小車在巡線過程,前后排灰度傳感器應有分左偏、右偏、居中和不在線上,具體應至少16種情況,表5所列出的是小車巡線左偏的情況。根據偏移情況,左偏移增量分別為-7~-1,右偏移增量分別為+1~+7,不在線上的為99,單獨處理。
表5 小車左偏情況
左偏情況分析,類似的右偏情況也是一樣的。按照表格所示,小車巡線過程和線的位置共分16種情況,居中,無需調整,左偏,右偏,需要根據偏移量進行調整。如果不在線上采取盲走策略。巡線直行過程采用采樣數據-分析數據后進行增量式PID調整小車轉向角度策略,核心代碼如下:
j=speed/15;
if((i>=-8)&&(i<=8))
{
error_left = speed-i*j;
error_right = speed+i*j;
PID_Speed_Left = error_left-gyro[1]*0.4;
PID_Speed_Right = error_right+gyro[1]*0.4;
Motor(left,backward,PID_Speed_Left);
Motor(right,backward,PID_Speed_Right);
}
else
if(i==99)
{
Motor(left,backward,speed);
Motor(right,backward,speed);
}
小車在巡線過程還需判斷運行標志,根據設計的地圖,小車運行標志包括左丁字口、右丁字口、前T路口、后T路口、十字路口等標志,如圖8所示。根據前后兩排灰度傳感器反饋的高低電平值判斷得出當前所處的地圖標志,從而確定小車下一步的動作:直行、后退、左拐、右拐。
圖8 送餐小車運行地圖標志
設計編寫送餐小車動作函數如下:
void Track_Forward(uchar speed,uchar exit); //向前 循跡;speed速度;tuichu退出條件;
void Track_Backward(uchar speed,uchar exit); //向后 循跡;speed速度;tuichu退出條件;
void Track_Forward_Delay(uchar speed,uchar time);
void Track_Backward_Delay(uchar speed,uchar time);
void Online_Forward(uchar speed,uchar exit,uchar xiuzhengl,uchar xiuzhengr);
void Online_Backward(uchar speed,uchar exit,uchar xiuzhengl,uchar xiuzhengr);
void Online_Forward_Delay(uchar speed,uchar time);
void Online_Backward_Delay(uchar speed,uchar time);
void Turn_Left(uchar speed,uchar b_a);
void Turn_Right(uchar speed,uchar b_a);
void Turn_Compass(uchar speed,int jiaodu);
void Forward_Analyse(uchar speed); //前方數據處理;speed 為速度
void Backward_Analyse(uchar speed);
為了進行智能送餐小車的測試,搭建了一個模擬餐廳的工作環(huán)境,在地面事先規(guī)劃好一定寬度的白線路徑,每個餐桌邊上的白線為“”字線,作為餐桌定位標志。智能送餐小車調試環(huán)境如圖9所示。
圖9 智能送餐小車調試環(huán)境
自動送餐服務小車實際運行效果如圖10所示,具體運行調試過程如下:實驗人員將放置于餐盤在小車托盤上,啟動服務小車送至某號餐桌;隨即沿回型路線返回待命區(qū)。依次調試其他餐桌號,功能均正常。
圖10 智能送餐小車實際運行效果
自動送餐小車能夠正確引導操作、定位、停車和裝運餐具,自動化程度和智能化水平較高,具有一定的實用價值,由于采用硬件模塊化、自制傳感器線路板等措施,工程成本較低、性能表現(xiàn)較高。在電子類專業(yè)綜合項目訓練的實踐教學過程中,作為教學載體具有較好的展示效果,可以充分調用學生的學習興趣、激發(fā)學習動力。學生基于問題開展有效學習,在發(fā)現(xiàn)問題、解決問題過程中提升了工程素養(yǎng)。社團學生在面向工程的綜合訓練中得到較好的鍛煉,在各類電子創(chuàng)新競賽、省大學生機器人大賽取得不俗的成績。