南昌航空大學信息工程學院 曾 建 榮聯城 姜水明 余蘇明
Arduino是一個能夠用來感應和控制現實物理世界的一套工具,是一個基于單片機并且開放源碼的硬件平臺和Arduino板編寫程序的開發(fā)環(huán)境組成。Arduino可以用來開發(fā)交互產品,比如它可以讀取大量的開關和傳感器信號,并且可以控制各式各樣的電燈、電機和其他物理設備。arduino的應用很廣泛,智能遙控小車就是其中一個很有代表性的應用。并且智能小車作為現代的新發(fā)明,可以按照預先設定的模式在一個環(huán)境里自動的運作,不需要人為的管理,可應用于科學勘探等等的用途。
該智能遙控小車基于Arduino平臺。但和通常的Arduino小車不同,Arduino系統(tǒng)在這里只是為了能讓小車動起來。真正遙控小車,并透過小車來觀察這個世界的,是安裝在小車上的攝像頭和作為遙控器的手機,框架設計如圖1所示。
圖1 智能遙控框架設計
接收裝置由小車、Arduino主板、云臺、WiFi模塊和攝像頭組成,是一個被控制的對象,具體內容:(1)動力部分采用了4個電機來驅動輪子;(2)照明部分采用LED燈來實現小車的照明問題,使其更加美觀炫目;(3)云臺部分使用2自由度云臺,2自由度的意思就是可以同時上下和左右轉動,用以支撐小車;(4)底盤部分的設計采用設計好電路及設計圖,完成各模塊的放置及安裝問題;(5)手機通過WiFi來接收數據并控制小車。
主要實現對小車的控制,完成相應的動作,具體由手機B實現。WIFI板上運行著一款程序,叫做mjpg-streamer,這個程序可以把USB攝像頭的視頻進行編碼,然后通過WIFI返回給上位機,這樣,我們就可以看到來自機器人的視頻了。
同時路由一般都預留有TTL串口,TTL串口是用來調試或者刷機用的,通過TTL串口引出來,然后通過安裝在路由里面的Ser2net軟件,就能把來自WIFI信道的指令轉到串口輸出,而串口在這里的作用就是與單片機芯片MCU通信,讓單片機知道用戶要讓他做什么動作。WiFi模塊如圖2所示。
圖2 WiFi模塊
硬件使用Arduino的Motor Shield來驅動小車的馬達和攝像頭的云臺舵機。同時完成:(1)工具的準備,斜口鉗、尖嘴鉗、3毫米套筒、2毫米一字螺絲刀、3毫米十字螺絲刀、5毫米十字螺絲刀、萬用表電烙鐵、焊錫、膠帶、鑷子、壁紙刀等;(2)配件的認識,pcDuino作為智能控制板和控制核心,主要實現視頻傳輸以及控制小車上所有的模塊和機械部分,發(fā)揮小車大腦的作用。
云臺攝像頭是由2個舵機組成,進行上下180度和左右180度旋轉控制,USB攝像頭線直接插在pcDuino上。
小車底盤(固定小車配件),電機,電機驅動板motor shield,電機固定支架,萬象輪(支撐小車后面的底盤),T-board(連接pcDuino和motor shield),WIFI Dongle和車輪等部件。
采用Ubuntu操作系統(tǒng),所有Arduino擴展引腳可以通過API訪問,包括UART、ADC、PWM、GPIO、SPI、I2C;編程語言能支持C,C++ with GNU tool chain,Python,Java等各種流行編程語言。
使用pcDuino的Linux系統(tǒng)實現了WiFi路由器,視頻服務器和TCP/IP通訊。把pcDuino作為一個WiFi路由器,視頻服務器,可以傳輸實時視頻并接受客戶端的控制命令,實現從客戶端控制小車的移動和攝像頭的旋轉。具體步驟為:(1)完成安裝并配置好pcDuino的iptables,下載然后編譯hostapd,安裝并配置dhcp服務器,設置NAT等步驟;(2)安裝視頻流傳輸服務器。用開源軟件包mjpgstreamer來實現視頻流傳輸服務器,客戶端可以是瀏覽器或者是專門的APP;(3)安裝小車控制程序;(4)用手機端控制智能小車。安卓應用軟件通過Wi-Fi與機器車實現通信,可控制機器車的前后左右移動、車上舵機的水平方向和垂直方向的轉動以及車上照明燈的開關,同時,安卓應用還可以接受機器車上的攝像頭拍攝視屏并實現同步實時播放。
在機器車操控方式上,安卓客戶端控制機器車的運動的方式有兩種。一是通過按鍵的方式,另外一種是通過安卓手機上的重力感應傳感器的方式,具體方式可通過勾選框進行選擇。
同樣在舵機的控制方式上,安卓操控方式也有兩種。一種是通過按鍵的方式,另外一種是通過進度條的方式,具體的選擇方式可以通過勾選框進行選擇。
通過對硬件和軟件的設計,組裝和實驗的小車如圖3所示。
圖3 組裝完成后的小車
本文提出了一種經濟實用的智能小車系統(tǒng)設計方法,完成了智能小車硬件設計及軟件開發(fā),在工業(yè)智能機器人領域具有一定的實用價值。此設計通過智能小車監(jiān)測周圍環(huán)境,系統(tǒng)設計簡單、成本低、實時性好,取得預期的實驗結果。但是該智能小車還存在只能對正前方一定角度內進行探測,存在盲區(qū),這些都有待進一步發(fā)展和提高。
[1]朱廣俊,尚春明,郭強,劉定楊.通過Android手機控制Arduino互動機器人下[J].無線電,2013(1).
[2]張劍銳.動手簡單,廉價實用——利用Arduino電子積木搭建APRS簡易個人氣象站[J].現代通信,2012(6).
[3]紀欣然.基于Arduino開發(fā)環(huán)境的智能尋光小車設計[J].現代電子技術,2012(15).
[4]鄭昊,鐘志峰,郭昊,許駿.基于Arduino/Android的藍牙通信系統(tǒng)設計[J].物聯網技術,2012(5).