徐健
(貴州工業(yè)職業(yè)技術學院 電子與信息工程分院,貴州 貴陽 550008)
月球車循跡控制模塊總體框圖,如圖1所示(比賽還要完成圖像采集與無線傳輸,這里是其中循跡功能),采用ARM9 芯片S3C2440為主控芯片,通過單片機來控制電機和讀取并處理編碼信息,ARM9 與單片機之間,通過串口通信來控制所輸出的PWM 參數和讀取單片機處理后的當前速度值[1]。
圖1 系統(tǒng)總體框圖
S3C2440 采用ARM920T的RISC處理器,0.13 μm的CMOS 標準宏單元和存儲器單元,ARM920T實現了MMU、AMBA、BUS 和Harvard 高速緩沖體系結構,具有獨立的16KB 指令Cache 和16KB數據Cache,同時提供一套完整的通用系統(tǒng)外設[2]。
采取紅外探測法,利用紅外線在不同顏色的物體表面具有不同的反射性質的特點,在小車行駛過程中不斷地向地面發(fā)射紅外光,當紅外光遇到白色紙質地板時,發(fā)生漫反射,反射光被裝在小車上的接收管接收;如果遇到黑線,則紅外光被吸收,小車上的接收管接收不到紅外光。單片機就是否收到反射回來的紅外光為依據,來確定黑線的位置和小車的行走路線。紅外探測器探測距離有限,一般最大不應超過15 cm。紅外光的發(fā)送接收,選用型號為RPR220的對管。其循跡模塊如圖2所示。
圖2 循跡電路圖
當小車在白色地面行駛時,裝在車下的紅外發(fā)射管發(fā)射紅外線信號,經白色反射后,被接收管接收,一旦接收管接收到信號,那么圖中光敏三極管將導通,比較器輸出為低電平;當小車行駛到黑色引導線時,紅外線信號被黑色吸收后,光敏三極管截止,比較器輸出高電平,從而實現了通過紅外線檢測信號的功能。
將檢測到的信號送到單片機I/O 口,當I/O 口檢測到的信號為高電平時,表明紅外光被地上的黑色引導線吸收了,表明小車處在黑色的引導線上;同理,當I/O 口檢測到的信號為低電平時,表明小車行駛在白色地面上。
此種方法容易受到周圍環(huán)境的影響,對檢測到的信號有一定的影響。為消除其影響,制作好以后,將賽車放置賽道白色區(qū)域,用萬用表讀取白色的信號輸出(大概為1 V 左右),同理,將傳感器放置黑線上,讀取黑點值(大概為4 V 左右)。8個傳感器依次檢測一遍,以確保所有傳感器都工作正常,并根據實際檢測結果設定一個閾值電壓,用以區(qū)分黑白。調節(jié)電位器,同時檢測比較器上參考電壓的值,使賽車能夠很好地區(qū)分被測物體的黑白(大概為3~4 V)。
采用常用的H 橋電機驅動芯片BD6225 驅動小車電機,S3C2440 通過串口通信通過單片機產生PWM 波來調整直流電機的電壓從而控制小車的轉速,PWM 由一系列占空比不同的矩形脈沖構成,PWM 波的占空比越大,產生的電壓越高,通過其比的變化調整電機電壓,以致使電流發(fā)生變化從而可以很好地控制電機的轉速[3]。
在月球車循跡行走過程中,為了能精確測定黑線位置,并確定小車行走的方向和速度的控制,根據比賽黑線的寬度,在小車底盤并排裝設8個紅外探測頭,在電路板制作過程中,根據實際需要調整了紅外探測頭之間的距離,使得小車在黑線行駛時確保剛好有2個探頭在黑線上(當中間2個探頭在黑線,可以使小車以最快速度向前行走),提高其循跡的可靠性。
小車行走時,為了保證小車始終在8個探頭的其中2個下面,程序設計過程中,定義了一個數組
const unsigned char table [7]= {0x3f,0x9f,0xcf,0xe7,0xfc,0xf9,0xf3},
這個數組是把小車能在兩個探頭下行駛的情況包含進來,例如:當小車處于8個探頭的中間2個行駛時(0xe7),根據算法使小車行駛速度達到最快;當采集到傳感器信號值為0x3f 時,表示小車偏離正中心處于靠右,這時根據算法不斷調整小車行走方向和速度,通過不斷的修正,最后使小車處于正中央行駛同時保持最快速度行駛。圖3是循跡程序的流程圖。
圖3 程序流程圖
程序設計主要用到以下幾個函數:
read(fd_sensor,&sensorData,sizeof(unsigned char));讀取傳感器信息
calc_sensor(sensorData,&biasValue,&blackSum);計算出小車偏移黑線值和在黑線上的傳感器數目
calc_motor(pMotor_L,biasValue);根據目標位置做調整算法
calc_motor(pMotor_R,biasValue)
程序首先通過讀函數讀取傳感器采集到的信息,根據傳感器參數計算出小車方向,小車偏移的黑線值和在黑線上的傳感器數目,通過這些信息計算出小車的行駛方向,通過調整算法使小車以最快的速度行駛在準確的方向上。
比賽結果表明本設計具有結構簡單,容易實現等的特點。小車能按照控制要求平穩(wěn)快速的循黑色軌跡運行。
[1]徐 瑋,沈建良.單片機快速入門[M].北京:北京航空航天大學出版社,2008.
[2]馬忠梅.ARM&Linux 嵌入式系統(tǒng)教程[M].北京:北京航空航天大學出版社,2004.
[3]張黃鵬.智能循跡小車的研究[J].科技向導,2011,(32):116-117.