關志艷,張振宇,何茂榮,楊曉蕾
(山西大學商務學院信息學院,山西 太原 030031)
依據(jù)2018年8月全國大學生電子設計大賽山西賽區(qū)題目—自動循跡小車,2015年、2016年的全國大學生電子大賽均有智能小車題目,區(qū)別在于循跡的依據(jù)不同,如依據(jù)黑線循跡等,剛剛結束的2018年全國大學生電子大賽是以鐵絲為循跡依據(jù)。智能車控制是典型的軟硬件技術的結合體,對于電子專業(yè)和物聯(lián)網專業(yè)的學生而言,智能小車是一個很好的檢驗單片機、模擬電子、C語言等課程的實際開發(fā)例子,對于提高學生的實際動手能力有很大的促進作用[1]。
設計制作一個自動循跡小車,由一根直徑0.6~0.9 mm的細鐵絲圍成的跑道,小車能夠識別鐵絲并按時按方向跑完一圈,具體要求如下:
1) 在所規(guī)定區(qū)域小車所在的直線區(qū)任意指定一起點(終點),小車依據(jù)跑道上設置的鐵絲標識,自動繞跑道跑完一圈。時間不得超過10 min。小車運行時必須保證軌跡位于鐵絲垂直投影之下;
2) 實時顯示小車行駛的距離和運行時間;
3) 在任意直線段鐵絲上放置4個第五套人民幣的1角硬幣,硬幣邊緣緊貼鐵絲,小車路過硬幣時能夠發(fā)現(xiàn)并發(fā)出聲音提示。
如圖1所示,當LDC1000傳感器探測到金屬值實時傳給單片機,多次測定彎道金屬值變化范圍,單片機判定金屬值變化區(qū)間來給予電機驅動高低電平,進行左右轉。隨后,從單片機通過改變輸出給驅動模塊的PWM信號來對小車進行前進和轉向速度進行控制。
圖1 整體框圖
總體思路:小車驅動部分采用左右電機驅動,利用萬向輪的靈活性以及左右電機的轉速來控制小車的左右轉彎。利用LDC1000傳感器來檢測鐵絲方向、硬幣等,使小車不斷按著鐵絲路線進行前進,同時在LCD1602液晶顯示器上進行顯示行走距離與所用時間。
方案一:選用STC89C52RC單片機。采用宏晶公司的STC89C52RC單片機作為主控制器,價格便宜,控制簡單,為我們平時實驗所熟用;對于單片機初學者,STC89C52RC雖然內部資源有限,但在短時間掌握其他型號單片機又不太可能[2]。
方案二:STM32單片機則是ST公司使用ARM公司的Cortex-M為核心生產的32bit系列的單片機,他的內部資源(寄存器和外設功能)較8051都要多的多,但是同學們現(xiàn)在的單片機掌握程度不易采用,且價格昂貴,難操作[2]。
綜合考慮,自動循跡小車主控制器選方案一。
方案一:LDC1000可通過16位共振阻抗及24位電感值,在位置傳感應用中實現(xiàn)亞微米級分辨率;提供非接觸傳感技術避免受油污塵土等非導電污染物的影響,可延長設備使用壽命;采用低成本傳感器及傳導目標,無需磁體[4]。
方案二:LDC1314是4通道12位的電感傳感器,性能穩(wěn)定,但是價格比LDC1000貴。
鑒于以上分析,選用方案一。
方案一:選擇主要芯片型號為SM100K紅外對射計數(shù)器,其搭配D型孔碼盤,紅外對射計數(shù)器是否被遮擋光線,從而輸出脈沖信號觸發(fā)計數(shù)電路[5]。
方案二:采用測速發(fā)電機原理,但實現(xiàn)難度較大,需要將旋轉機械能轉換成電信號,采用電磁感應原理,對電機加以改動。
綜合以上,選用方案一
方案一:采用直流電機。直流電機轉動力矩大,響應迅速,體積小,重量輕,具有優(yōu)良的調速特性;調速平滑、方便、調整范圍廣;能滿足各種不同的特殊運行要求,價格便宜[6]。
方案二:采用步進電機。步進電機是一種感應電機,它的工作原理是利用電子電路,將直流電變成分時供電的,多相時序控制電流,用這種電流為步進電機供電,步進電機才能正常工作,驅動器就是為步進電機分時供電的,多相時序控制器[6]。
綜上所述,采用方案一
方案一:采用LCD1602液晶顯示。LCD1602液晶是我們在上單片機課程中要求學生必須掌握的一種輸出設備,它可以顯示32個字符,對于本參賽題目要顯示的內容能夠完全顯示[5]。
方案二:采用LED數(shù)碼管動態(tài)掃描,LED數(shù)碼管價格適中,但顯示的位數(shù)有限。
因此,綜合考慮選用方案一。
該循跡小車用了兩個LDC1000與主單片機連接來進行方向判斷,LDC1000的原理就是電磁感應,其只需要外接一個PCB線圈或者自制線圈就可以實現(xiàn)非接觸式電磁檢測。在PCB線圈或者自制線圈中加上交變電流,線圈周圍就會產生交變磁場。如果有金屬物體進入磁場,將會在金屬的表面產生渦流。所以當有金屬物體接近時,就會使傳感器的數(shù)值發(fā)生變化,對這一變化進行判斷便可得知小車是否在正確的軌道上。
經過實驗測定,在線圈上并聯(lián)100Pf電容,再將并聯(lián)出來的線連接到LDC1000的INA和INB引腳上,左LDC1000的MISO、MOSI、CSN和SCK分別與主單片機的P2.0、P2.1、P1.6和P1.7連接;右LDC1000的MISO、MOSI、CSN和SCK分別與主單片機的P3.0、P3.1、P2.2和P3.2連接,如圖2所示。
圖2 LDC1000引腳
SM100K測速傳感器是一款寬電壓、高分辨率、短響應速度、開關量輸出的測速模組,配合黑色碼盤可以測量電機轉速。在小車上,有兩路輪子是沒有加裝齒輪的,通過使用D型孔碼盤可以測速,如圖4所示;使用20線的碼盤,小車車輪直徑為6.68 cm,小車車輪轉動帶動碼盤轉動,每次碼盤空隙經過傳感器就會輸出低電平,就會有一個下降沿,傳感器的OUT引腳連接主單片機的外部中斷1,每個下降沿就會觸發(fā)單片機的外部中斷,通過對外部中斷1次數(shù)計數(shù),每20次就是一圈,從而可以計算車輪轉動的圈數(shù),進而計算出行駛距離。
電機驅動芯片選擇L293D。L293D采用16引腳DIP封裝,其內部集成了雙極型H-橋電路,電機停止時有微振電流,起到“動力潤滑”作用,消除正反向時的靜摩擦死區(qū)。L293D通過內部邏輯生成使能信號。每1個電機需要3個控制信號EN12、IN1、IN2,其中EN12是使能信號,IN1、IN2為電機轉動方向控制信號,IN1、IN2分別為1,0時,電機正轉,反之,電機反轉。選用一路PWM連接EN12引腳,通過調整PWM的占空比可以調整電機的轉速。選擇一路I/O口,經反向器74HC14分別接IN1和IN2引腳,控制電機的正反轉。
圖3 整體電路
本小車編程主要采用C51語言來編譯程序。循跡小車最重要的功能是循跡,圖4是小車循跡的主要程序流程圖。
一根直徑0.6~0.9 mm的細鐵絲圍成的跑道,LCD1602液晶顯示器,自動小車。
通過小車行駛路線,來觀察LCD1602液晶顯示器上的各類數(shù)值。
表1 LDC1000測試結果數(shù)據(jù)表
表2 循跡小車測量數(shù)據(jù)結果
圖4 循跡程序流程
問題分析:LDC1000檢測的數(shù)據(jù)不穩(wěn)定,應該與線圈離地面位置、數(shù)據(jù)線接口處、電容焊接處、金屬絲擺放位置等有關系,需要盡可能地固定?。患t外
對射計數(shù)器測距時使用的格碼盤,可以處理剩一個小格,減小計算壓力。
總結:從測試結果來看,該小車系統(tǒng)實現(xiàn)了題目基本部分的要求,PWM技術能夠極大地提高電動機的驅動效率,通過傳感器接收模塊解決了小車嚴格按照軌跡運行的問題,而傳感器也能夠精確測量小車與硬幣之間的距離。從運行情況看,采用本系統(tǒng)設計制作的自動尋跡小車,系統(tǒng)可靠性較高,運行穩(wěn)定,達到了設計要求;但是自動循跡的功能還需要進一步完善,使得系統(tǒng)更趨于智能化、人性化的特點。