简单循迹小车实验心得_简单循迹小车的制作
一、設計思路分析
前置的數據采集裝置(眼睛)采集道路信息并送到單片機(大腦)進行分析,根據小車相對黑線的不同位置做出控制策略,再將處理信號后發出的命令輸出給小車電機,分別控制小車的兩個電機轉向和轉速,實現根據道路情況而直走、轉彎、停車。
采用MSP430F148單片機作為數據采集、處理、控制,系統的總體設計如圖1所示,MSP430的開發平臺為IAR Embedded Workbench EW430,它界面操作易上手。芯片內部JTAG對外的端口稱為JIAG端口,該端口是一個雙向串行端口。通過它可以控制MSP430進行在線仿真調試。因此,將JTAG電路集成到CPU內就相當于將仿真器集成到了CPU內部,只需要一個接口電路,將JTAG信號傳送到調試終端(PC機)就可以實現在線調試了。
二、硬件設計
系統的組成主要有小車、信號采集模塊、控制模塊、供電模塊和驅動模塊,以下將分別介紹。
1. 基礎小車
市面上小車多種多樣,如有兩個電機的四驅小車:適合爬坡、走沙石路等,但是過彎容易卡死;后輪有兩個電機的三輪小車,過彎靈活但是重心不穩;兩個電機的四輪后驅小車,過彎靈活且穩定。
結合了前面兩種車的優勢,被我選用。
2. 信號采集模塊
選擇ST168光電對管來制作路面檢測的傳感器模塊,見圖2,當光電對管下方是深色的時候,由于深色吸收光線,接收管不受光照,因此不導通,A端輸出電壓為3.5V左右,被單片機識別為邏輯“1”,同理,白色的時候接收管導通,輸出電壓為0V左右,單片機識別為邏輯“0”。也可在信號輸出前連接一個比較器以便獲得更靈敏的輸出。R1限制發射二極管的電流,發射管的電流和發射功率成正比,但受其極限輸入正向電流50mA的影響,用R1=150Ω的電阻作為限流電阻,電源電壓為5V,測試發現發射功率完滿足檢測需要??勺冸娮鑂2可限制接收電路的電流,一方面保護光電對管;另一方面可調節檢測電路的靈敏度。
3. 控制模塊
為了使系統更容易設計和增加系統的穩定性,我們使用在電子器件市場上很方便購買的MSP430系列的最小系統板(見圖3)。
4. 各模塊供電方案
供電單元是9V直流電池組,根據各個模塊對電壓的不同需求通過穩壓模塊分別為其供電。單片機系統、各模塊系統以及電機的工作電壓不同,我們需要使電壓滿足各自的要求。
除單片機外其他模塊的工作電壓均為5V,可用REG1117-5(輸入3.8~12V,輸出5V)將9V電壓降為5V為這些模塊供電,MSP430系列單片機具有超低功耗特性,工作電壓僅為3.3V,故需要一塊REG1117-3.3(輸入5V,輸出3.3V)為其供電。兩個穩壓模塊電路相同,只是穩壓芯片不同,再參見REG1117典型電路便可確定如圖4所示的穩壓電路。
5. 電機驅動模塊
采用常用的H 橋電機驅動芯片L 2 9 8 N 驅動小車電機, L 2 9 8 N 第9 腳為邏輯控制部分的電源(4.5~7V),第4腳為電機驅動電源(此系統中為9V,為46V),第5、7、10、12腳輸入標準TTL邏輯電平,用來控制內部H橋的開和關,第6、11腳為使能控制端(我們將兩個使能端都接高電平,直接通過PWM波控制電機。若為低電平,驅動橋路上的4個晶體管全部截止,電動機自由停止),第1、15腳用來連接電流檢測電阻(見圖5)。
通過單片機產生PWM波來調整直流電機電樞繞組兩端的電壓控制轉速。脈沖寬度調制波由一列占空比不同的矩形脈沖構成, PWM波的占空比越大,輸出電壓越高,利用占空比的變化調整加在電機電樞繞組上的電壓,改變電壓隨即改變電機電流,從而改變電機的轉速。圖中C1與C2,C3與C4分別并聯后接地起濾波作用,防止在開機的時候產生的沖擊電流損壞L298N。D1~D8是常用1N4007二極管,可防止電機中電感產生的反電勢擊穿L298N。根據L298N的輸入輸出關系,通過輸入PWM信號可以控制電機的正反轉,輸入端IN1為PWM信號,輸入端IN2為低電平,電機正轉;輸入端IN2為PWM信號,輸入端IN1為低電平,電機反轉。同理,IN3和IN4能共同控制另外一個電機。
三、軟件設計
為便于描述,此處將四只光電對管左到右分別編號為1、2、3、4。分為兩組置于車前,將黑色引導線“夾”在中間,內側兩個光電對管起主要的定位作用,優勢在于外側的兩支管可以有效地解決小車由于慣性略微沖出軌道導致內側的兩支管子檢測到白色而沖出去的危險。相比于其他用更多管子的方案,此方案簡單有效,避免了很多復雜情況的產生(見圖6)。
當小車入彎前(以右轉為例),四支光電對管均檢測到白色(直走),入彎時,3、4號管將檢測到黑色,此時便調用“右轉”函數,當四支管子重新檢測到白色信號時,調用“直走”函數;當四支對管同時檢測到黑色信號時,調用“停車”函數。
在此過程中,使用一個while(1)的死循環使單片機不停地對道路信息進行判斷,并時刻糾正小車的前進方向。
轉彎策略
變量定義:temp1~temp4為1~4號光電對管采集到的路面邏輯信息,見圖7。
為了更好的實現轉彎,防止小車在過急彎時沖出路徑,設計了強弱不同的兩重轉彎策略,同樣以右轉為例:車剛入彎時,必然是3號管先檢測到黑色,而其他三個管均檢測到白色時,啟動重轉彎程序;當車轉急彎或由于小車略微沖出軌跡使3號管檢測到白色時,4號管會檢測到黑色,此時將啟動第二重轉彎程序,此程序能將小車拉回到執行一重轉彎程序的位置上。
直線行駛:用PWM對兩個電機輸出相同的占空比(350/512),使兩輪速度相同。
重轉彎策略(以右轉為例):調整PWM使右輪停止轉動,左輪全速(占空比512/512)轉動。
第二重轉彎策略:調整PWM使右輪反轉(占空比300/512),左輪全速轉動。
四、制作與調試
具體制作時,條件有限的讀者可以根據前面給出的各模塊電路圖在面包板上分別進行焊接,將芯片的管腳和與其他模塊的接口用排針引出。對各模塊進行調試時可在各管腳上加需要的電壓,測試其輸出端的波形。有條件的讀者可以將各個模塊制作在一塊PCB板上,可以大大簡化小車的結構。
1.用萬用表檢查板的焊接情況,確保管腳的引出情況良好,無虛焊、短路。
2.調試供電模塊,在輸入端加上額定電壓,測量輸出端的電壓是否合格。
3.調試電機驅動模塊時,在5、7腳上加5V直流電壓,電機能夠正向轉動,交換兩極后能反轉(在10、12腳上進行同樣的操作)即調試通過。
4.調試信號采集模塊,加上5V的直流電壓,測試每一個光電對管在面對黑色(3V以上)和白色(0V)時A端的輸出電壓。ST168的檢測距離很小,一般為8~15mm,因為8mm以下是它的檢測盲區,而大于15mm則很容易受干擾。
筆者經過多次測試比較,發現把傳感器安裝在距離檢測物表面10mm時,檢測效果。將地面監測模塊放置在離前輪5cm處效果比較理想。
5.用杜邦線將各模塊的輸入輸出連接起來,形成一個完整的系統。
6.編寫、下載程序。首先編寫直走程序使小車能動起來,在此基礎上再加入轉彎功能,進行參數的調整。
7.小車的底盤一定要調平,保證小車始終都是“四腳著地”。電池組的位置將直接影響小車的重心位置,會對小車的轉彎性能產生影響,放在靠后的位置效果較佳。檢查車輪軸與輪胎的連接嚴實,以免小車打滑或意外轉彎。
8.不同等級的電壓一定要共地,注意5V或者9V電壓千萬不能給單片機供電,會直接將單片機燒壞!
直線行駛的時候占空比為350/512,這樣可以避免速度過快小車由于慣性沖出了可識別路徑,也可以使小車在轉彎時有足夠的速度不至于轉不過去。當彎道比較平緩的時候重轉彎策略能夠滿足過彎的需求,此時將一邊車輪停轉一邊全速轉動(占空比為1),使兩邊的車輪差生一個比較大的差速使小車轉彎。當彎道比較急,僅僅依靠上述的策略小車可能轉不過去而卡住,甚至沖出路徑。此時使原本停轉的那邊車輪反轉(占空比300/512,經實驗得到的優化數據),就能夠獲得更大的差速,小車產生一個瞬間的擺動。如果小車的路徑識別足夠靈敏、轉彎能力夠好,讀者可自行取消第二重轉彎策略。
總結
以上是生活随笔為你收集整理的简单循迹小车实验心得_简单循迹小车的制作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C语言队列(排队)先进先出.实现全部函数
- 下一篇: 华硕飞行堡垒atk驱动在哪_11月8日华