今天的作品(來自Instructables)是一臺搭載了相機,并可由Wi-Fi控制的遙控車,你可以通過互聯網駕駛它。這臺遙控車比較特別,因為它的“遙控器”是無線路由器,而不是我們熟悉的手柄。好吧,言歸正轉,跟著我一起熟悉下制作步驟吧。 第一步:設定
第二步:需要準備的原材料
第三步:原理圖如上圖所示,無線路由器起到了中樞的作用,它可以控制所有部分。網絡攝像頭通過支持流媒體視頻的USB接口連接到無線路由器,電機控制板則直接通過通用輸入輸出接口(GPIO)與路由器相連,這樣,即使沒有了遙控器,我們也可控制小車。 第四步:無線路由器在這個項目中我采用了GL.iNet 6416A無線路由器,因為它體積十分小巧(三維只有58*58*22毫米),其機身上的五個接口使用起來也十分方便。 如果存儲空間能過關,其他支持Openwrt的路由器也能勝任該項工作,你可以在OpenWrt的官網上找到支持該標準的路由器名單。 多數路由器的接口數量都稍顯不足,無法滿足控制電機的需求。你可以在路由器上使用類似LED pin的其他引腳,不過你要卸掉LED的接口模塊或者手動控制LED。 第五步:網絡攝像頭我手頭上就有一臺微軟HD-5000攝像頭,它可以錄制720p的視頻。不過攝像頭的自動對焦弄得我煩煩的,小車上這功能沒什么意義,所以干脆直接關掉這一功能了事。不過攝像頭還是要找個支持UVC的。 第六步:電機控制板電機對電流的需求比路由器提供的要高的多,如果你操控電機時沒有使用H橋,就有可能會對路由器造成損害。我在該項目中使用L298N電機驅動控制開發板就是為了控制兩臺直流電機的速度和方向。 在實驗過程中我發現,輸入電壓和L298的輸出電壓之間有一個約為1.5伏的電壓降。 第七步:多功能DIY直流對直流轉換器(可自動降壓升壓)這是一臺可自動降壓升壓的轉換器,它具有輸出電壓調幅功能,可以讓輸出電壓高于或低于輸入電壓。 與線性調節器相比,直流對直流轉換器的優勢在于其轉化效率,該效率可達95%以上,因此它的能耗相對來說要低得多。為此我還做了一個簡單的實驗,我將該模塊的輸出電壓改為5伏,而輸入電壓則在2伏到24伏間調節,但無論輸入電壓如何(除非輸入低于2.6伏),輸出電壓都穩定的保持在5伏。 第八步:智能小車Chassis KitChassis Kit由丙烯材料制作而成,其尺寸為19.8 x 14.0 x 6.5厘米,比我想象中要小巧許多。裝配過程可不簡單,我絞盡腦汁才把各個零件、模塊和設備的位置搞清楚。 套件包含兩臺減速電機,兩個塑料輪子,一個能容納4塊AA電池的電池夾,此外還有兩個高速編碼器,不過在這個項目中我們用不到它倆。 據 Gearbest.com上的數據顯示,電機的輸入電壓為3伏到12伏,下面幾點是我在網上找到的其他相關信息。
這玩意相當有趣,那兩個減速電機體積很小,但性能強勁,甚至可以推動一把塑料椅。 第九步:電池和電壓問題在整個項目中,我使用了4節3.7伏的18650鋰離子充電電池,其中兩塊串聯,另外兩塊則采用并聯的方式,這樣電壓就提升到了7.4伏。若使用或充電方式不當,有可能會引發電池爆炸或火災,所以我推薦大家購買內置保護電路的電池。 由于電機的輸入電壓可變,所以遙控車需要兩種不同的電壓,5伏來支持無線路由器,其它的則供給給電機。 在組裝遙控車前,我訂購了雙USB降壓調壓器模塊和直流對直流轉換器(可自動升壓降壓)。前者通過USB線為無線路由器和網絡攝像頭提供穩定的5伏電壓,后者則會在輸出之前將電壓調整到電機所需的大小。 在測試過程中,我發現電機的輸入電壓不能超過5伏,要不然遙控車會速度過快,或者由于電路保護而直接停掉。 基于這一測試結果,雙USB降壓調壓器模塊就被我棄用了,而直流對直流轉換器則被我留了下來,它可以將輸出電壓穩定在4.5伏左右。這樣一來,路由器和攝像頭電壓就變為4.5伏,兩臺電機則只有3伏的輸入電壓了。 第十步:OpenWrt——路由器的LinuxGL.iNet無線路由器出廠就自帶OpenWrt Barrier Braker軟件,它擁有全新設計的易用網頁界面,你可以在這里對路由器進行設置。請跳轉到http://192.168.8.1并登錄你的網絡賬號。 此外你還可以點擊高級選項(或者打開http://192.168.8.1/cgi-bin/luci)來進入傳統的Luci網絡界面對路由器進行設置。 在測試中我發現,如果不登陸到路由器,視頻流就無法正常工作,為此我不得不從OpenWrt的網站上下載相關文件并將其傳送至路由器。 如果你的路由器上還沒安裝OpenWrt的固件,請參閱相關教程并對你的固件進行升級。 第十一步:網絡連接安裝相關軟件時路由器需要網絡連接,所以你得先對路由器進行設置,具體步驟點這里,學習一番之后你就能為路由器設置好網絡了。此外,你還可以為路由器創建一個新的SSID,這樣你的各類設備都能連上互聯網了。 第十二步:為路由器安裝額外的軟件默認條件下,OpenWrt包括一些標準軟件,借助它們你可以建立無線網絡或者加入現有網絡,不過你需要在路由器上安裝一些額外的軟件。下面的步驟詳細介紹了攝像頭所需軟件的安裝過程,如果你沒有攝像頭或不需要視頻流,盡可以略過這部分。 使用SSH將軟件傳輸至路由器,然后逐行執行下列命令,推薦使用名為PuTTY的工具。 在安裝軟件前,你需要從本地軟件庫中下載當前列表中的軟件包。
對攝像頭進行設置時,請參閱相關教程。
若要開啟視頻,請對/etc/config/mjpg-streamer文件進行編輯,在這里我是用的編輯工具是WinSCP。
如果你想打開或關掉攝像頭的自動對焦,請安裝uvcdynctrl。
如果想隨時獲知攝像頭的狀態,請安裝Isof。
要開啟視頻請重啟路由器。
重啟路由器后你就可以使用視頻功能了。 下面一行命令可以暫時關掉自動對焦功能。
通過lsof命令來查看攝像頭狀態。
第十三步:啟動時禁用自動對焦將下列代碼保存到/etc/init.d/disableAutoFocus。
將文件系統權限設定為0755,你也可以通過WinSCP修改權限。
需要時可關掉自動對焦
激活服務自啟動能
第十四步:電路圖第十五步:源代碼該項目的核心代碼由Lua腳本語言撰寫而成,網頁界面則使用了html和javascript。作者已經將所有文件整合進了一個壓縮包,請點擊此處下載。 Lua是一種解釋性語言,對腳本進行修改也并不需要重建整個項目,它的代碼在保存后就會立即執行,所以Lua在升級和維護上十分方便。如果你對Lua感興趣,可以仔細閱讀下列Lua文檔。
控制路由器上各類接口的讀寫工作。
與gpio.lua協同工作,可控制小車上的兩臺直流電機。
該程序可作為瀏覽器和路由器之間的一個接口。 之前我們提到過,網頁界面的編寫使用了html和javascript。如果你想開發自己的界面,可以參考下列文檔。
主程序,可加載外部js & css文件并實現圖像的onClick事件。
主程序,可帶來更大的視頻分辨率。
控制選項布局,如圖片位置,顏色和字體等。
該文檔包含有一部分javascript函數。
網頁上一個裝滿圖片的文件夾。
該文檔中包含了一部分javascript的元素,開發者可以用它來制作滑塊。 第十六步:軟件安裝(1)實際上你并不需要費勁安裝軟件,只要把它們放在路由器的相關文件夾中就行,在項目中我是用WinSCP來管理文件和文件夾。 WinSCP是Windows下的SFTP/FTP/WebDAV/SCP客戶端,你可以利用它在電腦和路由器間傳輸文檔和管理文件夾。 第十七步:軟件安裝(2)若你的電腦上已經安裝了WinSCP并建立了與路由器的連接,就可以解壓縮下載的文檔(2W_WiFi_car.zip) 到你的電腦并將其傳送至路由器上相應的文件夾(如上圖所示)。 第十八步:軟件安裝(3)名為 /www/cgi-bin/control的文件需要執行權限,請將其權限修改為0755 (rwxr-xr-x)(如上圖所示)。至于修改權限的相關步驟,你可以參考WinSCP的相關提示。 第十九步:脈寬調變(PWM)-速度控制 GL.iNet無線路由使用了一塊Atheros AR9331 CPU,不過它在硬件上卻不支持脈寬調變,想要實現該功能,只能通過安裝相關軟件來支持。 在內核升級到3.14之后,許多OpenWrt的軟件如Barrier Breaker和Chaos Calmer都不再支持輸入輸出接口端的脈寬調變了。所以你得自行對OpenWrt的固件進行修改,以便使用脈寬調變功能。 我跟著教程試著對固件進行修改,但當我將修改好的固件上傳至路由器后,它卻直接變磚了,還好路由器恢復起來比較簡單,真是驚出我一身冷汗。 我上手gpio-pwm-ar9331時間不短了,之前下載了先行編譯版的程序并上傳至我的路由器,不過安裝缺總是出錯,顯示的錯誤信息如下:
此后,我從源碼對gpio-pwm-ar9331進行了重新編譯,這次安裝成功了,但它卻完全無法工作。 于是我從網上找了一些軟件端脈寬調頻教程,經過不斷地測試,我終于取得了成功,希望在使用過程中不要出現bug。 不過我的擔心還是發生了,路由器上的脈寬調頻還是廢了,希望未來幾周我能搞定這個問題。如果各位有什么高見,我洗耳恭聽。 第二十步:試著操控車輛你可以通過網絡瀏覽器(別用萬惡的IE,我推薦你們使用Chrome)或者安卓應用來控制小車。 打開瀏覽器并跳轉到http://routerIP/car/(一般是http://192.168.8.1/car/)或者http://routerIP/car/pantilt.html(如:http://192.168.8.1/car/pantilt.html)。 在界面中點擊相關按鈕或使用鍵盤對校車進行操控。 狂點鍵盤上的一個鍵就可以讓小車跑起來,松開按鍵小車就會停下來。 第二十一步:鍵盤快捷鍵第二十二步:Wi-Fi遙控車完成我的名字叫Wi-Fi遙控車,我于05年十月誕生于馬來西亞。我能跑能看,身強力壯長得又帥,熟悉我之后保證你會愛上我。 |
|
來自: 昵稱29273511 > 《待分類》