基于Atmegal6L單片機(jī)的智能小車的設(shè)計與制作
摘要:介紹了一款具有智能循跡、自動避障等功能的智能小車的制作方法。該小車的車體由光電傳感模塊、L298N電機(jī)驅(qū)動模塊、電源穩(wěn)壓模塊、Atmegal6L單片機(jī)控制模塊組成,可用于無人駕駛、自動探測等人工智能領(lǐng)域。
關(guān)鍵字:電機(jī)驅(qū)動;A/D采樣;PID控制;PWM
O 引言
自工業(yè)革命以來,隨著電氣的發(fā)展,人類進(jìn)入了文明的新階段。機(jī)器人已經(jīng)廣泛用于工業(yè)、農(nóng)業(yè)、服務(wù)業(yè)、軍事、機(jī)械、交通、航天航空等領(lǐng)域。智能機(jī)器人水平的不斷提高,大大提高了勞動效率,減輕了勞動強(qiáng)度。機(jī)器人與人類并肩作戰(zhàn),在征服自然,改造自然地過程中發(fā)揮著重要作用。
智能小車是集理論力學(xué)、機(jī)械結(jié)構(gòu)、數(shù)字電路、模擬電路、傳感器、單片機(jī)、控制理論和算法等多門學(xué)科為一體的綜合系統(tǒng),其內(nèi)容涵蓋機(jī)械、電子、自動控制原理、計算機(jī)、傳感技術(shù)等多個學(xué)科和領(lǐng)域。
本文設(shè)計的基于ATmagel6L的智能小車就是要求其從起跑線出發(fā),然后通過自身自動調(diào)整向角和車速,使其自動沿著一條黑色引導(dǎo)線行駛。
1 智能小車的硬件設(shè)計方案
本智能小車控制系統(tǒng)的結(jié)構(gòu)如圖1所示。其中的Atmegal6L單片機(jī)是智能小車的控制模塊,它是高性能、低功耗的8位AVR微處理器,采用先進(jìn)的RISC結(jié)構(gòu),具有16K字節(jié)的系統(tǒng)內(nèi)可編程Flash和512字節(jié)的EEPROM。工作于16 MHz時,其性能高達(dá)16 MIPS,并具有32個可編程通用I/0口和用于邊界掃描的JTAG接口,基本都能夠滿足設(shè)計要求。電路穩(wěn)壓模塊輸入12 V電壓。經(jīng)過穩(wěn)壓電路后可得到9 V、5 V兩種電壓,其中9 V電壓用于電機(jī)驅(qū)動模塊的工作電壓,5 V電壓則用于單片機(jī)的工作。圖2所示是RPR220光電傳感模塊的電路圖,光電傳感是由10個RPR220型光電對管組成。RPR220是一種一體化反射型光電探測器,其發(fā)射器是一個砷化鎵紅外發(fā)光二極管,而接收器則是一個高靈敏度的硅平面光電三極管。L298N的INPUT、OUTPUT兩端口用于提供穩(wěn)定的電壓以使電機(jī)轉(zhuǎn)動。
1.1 光電傳感模塊
圖2所示是本系統(tǒng)中光電傳感模塊的電路圖。尋線路徑一般是刻在白色平面上的3 cm的黑線,小車沿著黑線循徑,當(dāng)檢測到白線,即二極管發(fā)出的光被白線反射回來時,光電對管中的三極管導(dǎo)通,比較器6號端口輸入為低電平,經(jīng)過比較器后,7號端口輸出為高電平。當(dāng)檢測到黑線時,光被吸收,光強(qiáng)度減弱,光電對管中的三極管不導(dǎo)通,比較器6號端輸入為高電平,7號端輸出為低電平。通過PC端口將高低電平(l和0)反饋給單片機(jī)后,經(jīng)單片機(jī)處理后可用于調(diào)整車頭的轉(zhuǎn)向,以使黑線剛好在10個光電探頭的中間,從而使小車平穩(wěn)前進(jìn)。在7號端串一個0.1μF的電容再接地,這樣,經(jīng)過濾波后進(jìn)入到單片機(jī)中的方波就非常完美。將這個光電管與碼盤相連,通過光電管不斷掃描碼盤格數(shù),這樣,當(dāng)碼盤轉(zhuǎn)動且轉(zhuǎn)速較低時,6號端的信號就可變?yōu)轭l率與轉(zhuǎn)速一一對應(yīng)的方波。但是,當(dāng)碼盤速度很快時,6號端信號將變?yōu)轭l率與轉(zhuǎn)速一一對應(yīng)的正弦信號。放大器LM324可用作比較器,可將6號端處的正弦信號與基準(zhǔn)電壓進(jìn)行比較后,然后將在7號端產(chǎn)生頻率與轉(zhuǎn)速一一對應(yīng)的方波,單片機(jī)采集此信號后,即可根據(jù)公式計算出直流電機(jī)的各個參數(shù),從而精確地控制小車的轉(zhuǎn)向與位移。
1.2 電機(jī)驅(qū)動模塊
圖3所示是L298N驅(qū)動模塊的電路連接圖。L298N作為電機(jī)驅(qū)動芯片,是一款高電壓大電流全橋驅(qū)動芯片,它的頻率高,可控制兩個直流電機(jī),而且具有控制使能端,工作電壓可通過4、9引腳分別輸入9 V、5 V電壓。ENA、ENB引腳是兩個使能端口,而INT、OUT則為電機(jī)驅(qū)動引腳,通過改變OUT端的邏輯電平可控制電機(jī)的正、反、停止?fàn)顟B(tài),表1所列是直流電機(jī)控制邏輯。L298N的5、6、7、10、ll、12六個引腳可直接與單片機(jī)的PD端口相連,而通過對單片機(jī)的編程則可以實現(xiàn)直流電機(jī)PWM調(diào)速。
采用Atmel公司的Atmegal6L單片機(jī)可對小車進(jìn)行控制,該單片機(jī)具有32個功能強(qiáng)大的可編程I/O接口和4個PWM通道,并具有八路十位ADC,可對小車進(jìn)行實時控制。該單片機(jī)的PC0~PC7八個端口可與光電傳感模塊的八個光電探頭相連。設(shè)探頭檢測的邏輯實際值為P,假定值N,車輪的運動狀態(tài)分別為forward-move、right-move、leftmove、hard-right-move、hard-left-move,通過對實際值P與假定值N(0b0011-1100)的比較,可得出如表2所列的Atmegal6L單片機(jī)的控制模塊參數(shù)表,其中x為無關(guān)項。設(shè)計時,可將Atmegal6L的PD2~PD3分別連接帶碼盤的兩個光電對管,以用于精確測量車輪的轉(zhuǎn)向與位移;PD5和PD4可分別連在電機(jī)驅(qū)動模塊的使能端ENA和ENB。PDl、PD0、PD6和PD7分別于電機(jī)驅(qū)動模塊的INl、IN2、IN3、IN4相連,INl、IN2口一般用于PWM的輸入,以便利用PWM調(diào)速法,即由單片機(jī)輸出一系列頻率固定的方波,并通過功率放大器來驅(qū)動電機(jī),再通過單片機(jī)編程來改變輸出方波的占空比,這樣就可改變加在電機(jī)上的平均電壓,從而改變電機(jī)的轉(zhuǎn)速。
2 智能小車的軟件設(shè)計方案
基于AVR單片機(jī)和C語言編程的系統(tǒng)軟件流程圖如圖4所示。
3 結(jié)束語
本文著重討論了光電傳感器、單片機(jī)控制和穩(wěn)壓器原理及這幾個模塊之間的相互溝通與協(xié)調(diào)關(guān)系,本系統(tǒng)采用便宜的紅外對管,并以具有強(qiáng)大功能的ATmagel6L單片機(jī)為主控制器,同時以L298N驅(qū)動芯片通過C語言程序編寫調(diào)試軟件,從而完成了能夠智能循跡、自動避障、結(jié)構(gòu)模塊化、抗干擾能力強(qiáng)的智能小車的設(shè)計。該系統(tǒng)通過對小車的調(diào)試,能夠使小車成功平穩(wěn)地在任意給定的黑線上行駛,而且循跡效果很好,運行十分平穩(wěn),同時速度也很快,而且在拐彎處不會因速度大而產(chǎn)生離心現(xiàn)象。
智能小車在軍事、民用、科研、航天探測領(lǐng)域已得到廣泛的應(yīng)用,它的發(fā)展與自動控制、單片機(jī)開發(fā)、控制算法的優(yōu)化和微機(jī)存儲處理速度有著密切的關(guān)系,很值得進(jìn)一步的研究與探索。