李東欽,唐偉杰,劉 耀
(北京理工大學珠海學院 廣東 珠海 519088)
隨著時代發(fā)展,尋跡車在越來越多出現(xiàn)在人們的視野里。具體的模型是,將黑色環(huán)形線設置為跟蹤汽車軌跡,通過傳感器捕捉黑色路徑信息,發(fā)送給微控制器,通過一定的控制算法實現(xiàn)汽車沿黑線行駛平穩(wěn)快速。
程序的設計通常是通過文本的編程代碼實現(xiàn)的,這不僅需要一定的編程基礎,而且容易出錯。Arduino的編程環(huán)境不僅有文本式的(如Arduino IDE,見圖1),還有圖形化、積木式的(如ArduBlock,見圖2),ArduBlock是一個將圖形化程序翻譯為Arduino文本程序的一個翻譯器。本文采用的編程環(huán)境是后者,設計者只需要理解小車運行的原理,簡單的程序塊組合操作,即可完成小車運行程序的設計。
圖1 Arduino IDE編程環(huán)境
圖2 ArduBlock編程環(huán)境
這個設計的控制器是arduino mega 2560,arduino mega 2560有數(shù)字I/O端口和模擬I/O端口,有一個特殊的PWM出口。可以將設計出的控制算法直接下載至控制器中。小車為兩驅小車,電機使用普通直流電機,電機驅動選擇L298N,負責驅動兩個直流電機,傳感器選擇光電傳感器。
尋跡小車的實物圖如圖3所示,小車車頭左、中、右三個位置,分別裝有1個TCRT5000光電傳感器模塊,傳感器的輸出可以是數(shù)字信號,也可以是模擬信號。當檢測到黑線時,輸出為1,否則為0;對于模擬信號,輸出是0~5v的電壓信號,通過轉換后為0~1023范圍的數(shù)值,根據(jù)光電傳感器接收到的光線強弱的不同,輸出不同的數(shù)值,光線越強,數(shù)值越大;光線越弱,數(shù)值越小。本設計中光電傳感器的輸出信號選擇為數(shù)字信號。
圖3 尋跡小車實物圖
本設計中小車的運動狀態(tài)有三個,分別為直行,左轉,右轉。當中間傳感器感應到黑線的時候,小車加速直行;當左邊傳感器感應到黑線的時候(此時小車偏向右邊),小車左轉;當右邊的傳感器感應到黑線的時候(此時小車偏向左邊),小車右轉。邏輯關系圖如圖4所示。
圖4 尋跡小車控制邏輯圖
我們采用PWM技術調節(jié)占空比來控制直流電機的轉速,也就是小車的速度。當輸入為0時,輸出占空比為0的PWM信號,電機停止運行;當輸入為255時,輸出占空比為1的PWM信號,電機全速運行。PWM信號的頻率為490Hz。小車的轉向采用差速控制。
在Arduino的編程環(huán)境ArduBlock中搭建如圖2所示積木式程序。
將USB數(shù)據(jù)線將控制器與電腦連接起來,安裝好USB驅動。在Arduino IDE界面的“工具”菜單欄里選擇相應的“板”、“處理器”、“端口”。
根據(jù)圖4尋跡小車控制邏輯圖,拖動對應的邏輯功能塊,搭建圖2所示積木式程序。點擊ArduBlock界面內(nèi)的“上載到Arduino”,ArduBlock會將圖形化程序翻譯成文本程序并顯示在Arduino IDE上(如圖1),同時上傳至Arduino控制器中。將小車放軌跡線上,調節(jié)光電傳感器上的電位器來調節(jié)其對于黑線的感應靈敏度??梢酝ㄟ^更改程序中兩電機的PWM輸出值,讓小車能夠順利完成尋跡跑動任務。
本文以Arduino控制的尋跡小車為對象,使用Arduino的圖形化、積木式編程環(huán)境(ArduBlock)進行程序的編寫。旨在讓非專業(yè)的同學都可以理解掌握尋跡小車的控制原理,輕松掌握Arduino圖形化編程方法,提高對智能控制的興趣??梢宰约簞邮肿龀龈鞣N創(chuàng)意的智能項目。當然,在這個設計中構建的程序相對簡單。如果汽車需要更靈活和智能化,硬件或程序應該進一步改進和優(yōu)化。
[1] 唐偉杰,基于MATLAB 和Arduino 的尋跡小車[A].數(shù)學技術與應用, 2015 (7):71-72.
[2] 謝作如,張祿.Aruino創(chuàng)意機器人入門——基于ArduBlock(第2版)[M].北京:人民郵電出版社,2017.
[3] 劉玉田,許勇進.用Arduino進行創(chuàng)造[M].北京:清華大學出版社,2014.