iPhone5來了,舊款的怎么處理?就讓它變身遙控小車的大腦吧。
iPhone變身賣萌遙控小車
iBode 2012-09-12 23:45:01
iPhone5來了,舊款的怎么處理?就讓它變身遙控小車的大腦吧。
?
???????
?????? DIYer:iBode
制作時間:只用了周末和晚上的時間,小車2~3天,寫程序10天
制作難度:★★★★☆
GEEK指數:★★★★☆
看圖不過癮,來看段視頻介紹吧!
雙向電梯
1 iRover的背景介紹
2 材料和工具
2.1 材料
2.2 設備
2.3 工具
3 小車的制作
3.1 動力部分
3.2 照明部分
3.3 底盤安裝
3.4 云臺部分
3.5 電路連接
3.6 運動控制程序燒錄
4 美化工程
5 遙控程序
6 試航上路
7 問題解決
7.1 開機后,小車沒有反應是什么原因?
7.2 遙控程序無法運行?
7.3 遙控程序無法控制小車?
7.4 小車的脖子亂轉,很難指揮?
7.5 重力感應模式下很難控制?
7.6 連接經常中斷?
8 寫在后面的話
?
1 iRover的背景介紹
不知道很多年前的小鬼當家里的遙控車大家還有沒有印象,反正我在那個時候就被這個車給萌住了,不過在那個年代,無論在技術上,還是在價格上,那種小車還 是離普羅大眾遠了點。幸好到了21世紀,電子科技飛速發展,各類開源硬件平臺也越來越多,那么是時候來完成這個孩提時代的夢想了。
iRover小車基于Arduino平臺。但和通常的Arduino小車不同,Arduino系統在這里只是為了能讓小車動起來。真正遙控小車,并透過小 車來觀察這個世界的,是安裝在小車上的一臺iPhone和作為遙控器的iPad。話說新款iPhone就要來了,舊款的就讓它變身小車的腦袋吧。
首先上一組很有i產品范的宣傳圖片。
】
然后是寫給希望也來做這么一個小車的同學的。
?
這篇教程是為讓很多沒有經驗的同學也能上手而作的,因為牽扯到的流程比較復雜,不建議所有的零件都自己手工制作,畢竟,單獨拿出一部分,比如 Arduino小車也是可以讓沒有經驗的DIYer琢磨十天半個月的話題了,教程里會直接使用一些現成模塊來加速制作過程,防止因為工期過長導致的爛尾樓 事件發生。
接著大家先站個隊,對于不同的制作者我有不同的一些建議,畢竟,如果讓個文藝青年去糾結單片機原理還是很過分的事。
文藝青年
手工水平停留在小學的手工課上,中學物理課在睡覺的間隙聽過那么幾句,還記得電壓、電流。知道9V,知道直流電有正負,有個已越獄的iphone和 ipad的。請這些青年跟著我的教程走,根據材料單去準備材料,我會寫得很詳細的,跟著做能保證做出個和iRover差不多的小車出來。
普通青年
知道單片機,會基本的電路知識,給個電池,電阻,LED,可以自己排線讓LED亮起來,稍微有點程序概念,某個時候學過vb,c++的,對于這類青年應該有一定能力根據自己的想象,去做出一輛屬于自己的遙控車了,你可以根據后面的藍色清單來準備材料。
科技青年
工科出身的青年,搞過單片機,知道PWM;說不定自己也是做過點電子玩具的,對于這類青年我想說的就是敬請自由發揮,我的小車驅動程序還是寫得比較方便二次開發的,只要遵守里面用到行動命令,你把小車改成雙足機器人都能用我的遙控器來控制。
2 材料和工具
2.1 材料
寫給文藝青年的基礎材料單:
4WD小車底盤(必要配件是幾塊板,4個輪子,4個馬達,一些連線),大約200元
一塊Arduino電路板,最基本的型號就可以,大約80元
寫給普通、科技青年的基礎材料單:
小車底盤,買4個或者2個輪子的、履帶的都可以,關鍵是左右的驅動馬達必須要分開。這樣小車才能轉向。如果你有自信自己改一些程序的,買個帶轉向輪的就更靈活了。
一塊Arduino電路板,最基本的型號就可以,如果有條件,可以考慮買帶wifi或者藍牙模塊的套件,這樣以后擴展性會更好
后面大家都一樣:
電源開關,充電二合一的套件(我買的車里送了這個,如果沒有的話,建議買一組,很方便)
6節5號電池盒和6節充電電池,外加電池組智能充電器。(如果你愿意每次把電池拿出來充電的話,就免了充電器吧)總共150~200左右
2自由度云臺外加舵機2個,我買的180元
L293D電機驅動板,必須是支持4路直流電機和2路舵機的,我買的是L293D芯片的,注意買的時候一定要買那種可堆砌設計的(就是電路板上方要預留 了各個引腳插槽的,見下圖的紅框,Bode就是買了沒有這個插槽了,結果只能在電路板上焊接,電路板上的焊接這個事情對業余選手來說實在是不是你想干,想 干就能干的)這個30元。
一塊RS232的串口轉TTL模塊,我買的20元。
一根Redpark Serial Cable線,就是把iPhone的接口轉成串口的線,這個比較貴,在官網上要賣59美刀,國內的代理更貴,有條件的可以考慮代購。
一塊8×5厘米的面包板(根據小車的尺寸買)不超過10元
一些面包板的連線,一些雙頭的杜邦線(各種長度最好都有,否則只能拿幾根接起來用也可以)10塊錢。
470歐姆電阻2個
1W的LED燈珠4~8個(裝飾用,備點彩色二極管也可以用來裝飾)最多1塊錢1個
這樣總計成本不計運費大概是1000出頭點(那根線國內買的話會貴300),但是某些人一直都說我是不會買東西的人,所以,我覺得如果多挑選挑選的話,成本還是有希望控制在1k以內的(誰做到1k以內了,記得告訴我都是哪里買的,我再做輛玩賽車了)
2.2 設備
已越獄的iPhone、iPad各一臺,后面我會提供2個IPA下載,因為沒打算上App Store,所以要破解的機子才能裝。
我用iPhone4和iPad2跑我的遙控程序,iPhone3GS不確定能不能用,個人覺得如果不開實時視頻傳輸是可以的。另外4代的iPod touch應該也完全可以。iPad1我也不確定能不能用
因為這個程序是自己寫著玩的,內存沒做太多優化,如果有人用了有問題可以聯系我,我再改改……
?
2.3 工具
一根usb數據線,一般買Arduino的電路板會送的
螺絲刀(最好是那種可以換頭的,方便)
電烙鐵和焊絲(如果不想焊接,那么買驅動板的時候要挑可疊層的,然后其他地方自己多綁綁吧)
萬用表(如果沒有,就多買幾個發光二極管,串聯了電阻也能看看電路情況,不過最好還是有個吧,尤其是想自己折騰點花樣的)
剪刀,美工刀,鑷子,尺,雙面膠
3 小車的制作
如果你和我一樣,直接用的是買來的小車底座,那么就好辦了,直接安裝組裝說明,把小車先搭出來就好了。
小車搭完后,就要把4個電機都連接上,Bode在這里推薦使用一塊面包板作為中間件,這樣之后改線路會比較簡單,如果焊死了之后發現了連線錯誤,會麻煩的多。
另外因為安裝角度問題,通常裝完的小車通上電后,輪子的滾動方向完全不可預計,所以要多試幾次,保證在連上電池后,4個輪子是往一個方向轉的。(正轉、反轉倒不要緊,這個可以在之后的程序里進行控制。)
3.1 動力部分
iRover作為一輛遙控車,最重要的功能就是可以靈活的在地上到處開動了,為了達到這個目的,我采用了4個電機來驅動輪子。
但是為了讓小車可以轉彎,我們必須要把左右的輪子的電路分開。這樣,當我們需要向某個方向轉彎時,只要讓那一邊的輪子減速,停止,甚至反轉就可以了。
3.2 照明部分
作為一輛專業的遙控車,照明部分必不可少,除了可以提供在黑漆漆環境下的工作能力,裝備了前后LED大燈的小車,還可以在外觀上瞬間的拉風起來。
這里我使用了功率1W的大功率LED燈珠,晚上4個一排打開,絕對亮如日食時的白晝啊~
注意大功率LED散熱。
然后給每個LED小燈連上線,方便之后在車上安裝。這里推薦把杜邦線中間剪開然后焊上小燈珠,這樣以后改布線的時候,直接拔插就可以了。注意LED小燈的引腳是有正負的,連線的時候可以用顏色區分好。iRover使用了6個LED燈,前4后2。
先試一試燈光效果,免得裝上去了不合適,注意輸入電壓要在5v以內。還有一點,燈珠的焊接速度一定要快,不然很容易把燈燒壞的。
?
3.3 底盤安裝
現在可以來完成iRover最重要底盤上的電路了,這里準備了一張淺顯的電路圖來解釋下iRover的連線方法。
首先我們要知道,面包板一左一右剛好各有2條垂直方向的電路,所以只要吧左右電機的連線分別插入到這兩條電路中,電機部分的連線就算ok了。
然后可以通上電,看看4個輪子的方向是不是一致。
然后,面包板中間的線都是左右分開,一個橫排之間互相連接的,因為需要連上6個LED燈,所以我們分3組連接。前方外側2個小燈的引線按正負分別各自連在一個橫排上。后面兩個小燈,和前面中間兩個小燈也分別這樣連接。
這樣我們就有了3排控制小燈的電路,但是最后我們能引出的控制線只有2組,所以,我們需要把前后2排小燈的線,正負兩路各自連接起來(一般的車,打開車燈,都是前后同時亮的吧,然后打開大光燈,才有剩余的燈加入,iRover完全模擬了這個過程)。
最后在圖上位置連接上2個470歐姆電阻,我們就把2路小燈的線路做好了,稍后等控制板做好了,直接插上底板就能工作了。
3.4 云臺部分
這是一個典型的2自由度云臺,2自由度的意思就是可以同時上下和左右轉動。
云臺是支撐iRover那大腦袋的脖子。直接買來的云臺都是一堆零件,我們可以根據說明書搭成上面的模樣,然后再安裝在車架的前方。
最后直接在云臺上粘一個iPhone殼子作為支架。
云臺的每個舵機只能支持180度范圍內的旋轉,所以 在安裝云臺時,務必先讓舵機移動到90度的范圍再繼續安裝 ,這樣才能保證最后造出來的小車始終向前看。(如果是不知道怎么讓舵機移動到90度的文藝青年們,請安裝云臺的時候螺絲先稍微擰松點。等小車上電后,用遙 控器控制視角到正前方,再調整下云臺支架的角度就可以了)
?
3.5 電路連接
iRover的電路連接還是相對比較簡單的,不過一定要細心,注意走線。如果接錯的話,對于沒有電路經驗的同學來說,可能就找都找不出來錯在哪里了。
iRover的電路大致可以分2個部分,一個是控制部分,另一個是動力部分。通俗的來說一個提供控制信號,一個根據信號提供小車行動需要的動力。
這兩個部分的結合點,就是電機驅動板。電機驅動板會根據Arduino系統提供的信號,來放大輸出到小車的各個運動部件上。
上圖所示的兩塊電路板,下面的就是Arduino版,上面的就是電機驅動板,首先將他們緊緊的疊在一起。
然后在電路控制板上引出我們需要的線路到底盤的面包板上。
?
在這里我都是使用了面包板的插線來快速的完成連線工作,不需要焊接(如果你沒像我一樣買錯板的話)。
連線后的效果圖。
最后在電機驅動板的左上角連上舵機,注意橙色的連S端,咖啡色(有些舵機是黑色)的線在-端。
云臺上的兩個舵機都要連好。1號端口連上下移動的舵機。2號端口連左右移動的舵機(我一直覺得我買的電路板有bug,和說明書上的引腳說明正好反了,但是無所謂,如果后面試機器的時候發現上下左右不對,就交換一下這里的連線)。
我在連線時,大量采用了下面這種搭配的方法,這樣,當線路需要改變時候會很方便,特別是連接到串口轉換板的TX,RX兩根,一定要方便拔插的。因為每次需要通過usb寫入程序的時候,都需要先斷開這兩根線。
最后說一下電池的安裝。iRover把電池盒倒掛安裝在了車架面板下方。這樣的好處是露在下車外部的部件會比較少。缺點是更換電池會很不方便,所以iRover采用的是可充電的設計。
?
3.6 運動控制程序燒錄
點擊這里 下載iRover配套程序,把需要的程序燒錄到Arduino芯片里。至于如何將代碼燒錄,這里就不嘮叨了,不知道如何操作的文藝青年可以去 Arduino相關的網站觀摩下,基本上第一個范例就是。iRover使用了0022版本的編譯環境,主要是為了適應驅動板的庫。如果想使用其他版本的編 譯環境,可能需要修改一些配置。最后要注意的就是,燒錄程序和通過串口調試程序的時候,都需要斷開Arduino控制板和串口轉換板之間的連線!
程序通過定義了兩個類MotorTask和ServoTask分別來控制電機(包括LED燈)和舵機。每個類都有兩個行為,一個是讀到串口命令時,進行 動作的預約;一個就是在執行期去執行預約的動作。如果你想為iRover添加更多的功能。只要按這個規則去添加新的類就可以了。
程序燒錄后,我們可以打開Arduino編譯器里的Serial Monitor。開始測試一下小車各個部分是否工作正常。
輸入GL 200$后點擊Send。如果看到下面的提示框有返回Do para : GL200。那么恭喜你Arduino板上的程序已經燒錄完成了。如果你的小車的左側輪子開始轉動(并且是讓小車向前方行進的轉動的)那么徹底恭喜你,你 距離成功已經只剩下最后的10%了。
如果很不幸,輸入命令后,沒有任何反應,那么先要看是否連線正常,是否已經斷開了串口的連接線,是否已經打開了電源(僅靠usb的電量是沒法驅動小車的輪子的)然后進一步去排查電機驅動板到電機的連線。如果有萬用表的,就開始一段段的檢查。找到哪里出了問題。
如果你的車輪子轉錯了方向,或者是錯誤的車輪,或者是車燈開始閃亮的話。那么說明你點擊驅動板導出的連線和代碼里定義的不一樣。這時候你可以修改連線,或者是更改程序里的定義。
如果一切順利,你可以依次執行如下命令,并觀察是否小車的行動如預期。
左輪前進 GL 200$
右輪前進 GR 200$
左輪后退 GL -200$
右輪后退 GR -200$
兩個輪子停止 GL 0$ GR 0$
4個大燈微亮 LF 1$
另2個大燈微亮 LB 1$
所有的燈大亮 LF 35$ LB 35$
關燈 LF 0$ LB 0$
舵機支架向上抬頭 CV 50$
舵機支架向下低頭 CV 150$
舵機支架向左搖動 CH 170$
舵機支架向右搖動 CH 10$
如果以上的操作每一步都能順利通過的話,那么你的小車已經基本上完成了,只剩下最后的一些步驟了。
?
4 美化工程
不管我們是什么青年,如果開著個只有架子的火星車出門,那么就算是火星上幾億年前存在的微生物也會鄙視我們的。
看看iRover,前后泡沫塑料的防撞結構,黑色記號筆上色,外加豪華鼠標墊變身前防撞梁蒙皮。輪轂還都上了金色的貼紙。正常車輛該有的LOGO、車 牌、新手上路標志一個都不能少。瞬間使得外觀個性不少。這里給個小提示,設計好的LOGO、車牌等標志,可以用高光的照相紙打印后剪裁,貼上后效果非常的 好。
附上各式標簽一張,可以直接拿去打印了。
?
5 遙控程序
終于輪到酷酷的遙控程序上場了,我的本分工作其實就是搞iOS軟件開發的,所以iRover在硬件上不敢自稱是最好的遙控小車,但是在控制軟件上,iRover絕對不比一些商業的遙控小車遜色。
首先你會下載到兩個IPA文件,一個是安裝在iPhone上的,一個是用在iPad上的。
iRoverServer裝在iPhone上,iRoverController裝在iPad上。
把程序先分別裝入手機和平板之后(需要是已越獄的才行),然后看看能不能打開程序,如果你能在iPad上看到方向盤的畫面,在iPhone上看到一張賤賤的笑臉,就說明程序可以運行。
接下去我們來看看如何通過遙控器來控制下車。遙控器的各個部分的功能已經在圖中顯示。
最簡單的超控方式就是觸摸式,Bode在視頻里的控制就是用了觸摸式,確認右側的檔位在T檔,并且打開了方向盤右上角的動力開關。在方向盤的范圍內拖動中間的Rover圖標。往前拖就是前進,往后拖就是后退,拖得越遠,速度也就越快。同樣的,往兩邊拖就是轉彎了。
如果選擇其他檔位,那么就可以采用擬真度更高的重力方式操控小車,在左側拖動電門大小,控制前進速度;在垂直方向左右轉動iPad,就可以控制小車行動 方向了,因為iRover使用的是差速控制的轉彎方式,所以轉彎的反應不會很靈敏,需要一些時間去適應,有條件的同學可以想辦法自己安裝轉向輪。
?
接下去介紹幾個重要的圖標的含義。
這個圖標點亮代表遙控器已經和iPhone上的程序建立了連接。不亮就去檢查網絡去吧。
這個圖標點亮代表遙控器已經和小車的硬件建立了連接。不亮的就去看看iPhone有沒有連上小車,小車的電源有沒有打開。
這個是小車的動力開關,如果這個按鈕是暗的,你的任何試圖讓iRover移動的嘗試都不會得逞。
這個是開啟iPhone實時畫面的按鈕,打開后,就可以通過iPhone觀察世界了。需要注意兩點:1,現在開啟這個按鈕后,iPhone會有不停的快 門聲,把iPhone靜音就可以了。2,使用這個功能會讓iPhone快速耗電,所以如果是在面前開的話,還是先關了這個吧。
拍照鍵,每次按下,會保存一張當前的畫面。你可以在iTunes的應用程序文件共享里找到這些保存的圖片。
燈光鍵,不停點擊,會在關燈-示寬燈-近光燈-遠光燈之間切換
點擊這個可以打開一個界面來遠程控制小車上iPhone的表情(目前預設了6個,之后會開放自定義的功能)。另外可以控制iPhone攝像頭看到的場景 效果,現在有曝光控制,火星效果、夜視效果、騎兵效果(就是馬賽克啦),圓盾騎兵(圓形馬賽克)共五種效果,并且每個效果可調細節。但是這個功能現在有個 bug,切換時可能會導致iPhone端程序異常退出。
?
6 試航上路
確保iPhone和iPad在同一個網絡內(如果你想帶出去玩,可以打開iPhone或者3G版iPad的個人熱點),然后將iPhone連接上小車并 打開小車電源。分別打開兩邊的程序,確認遙控板上兩個連接圖標都已經點亮,打開動力開關,拖動方向盤中間的LOGO,讓你的小車也跨出它的一小步,你的一 大步吧。
帶著iPhone的小車身價不菲,請勿在脫離視線的情況下在公共場所使用,由此導致的拐賣事故,Bode概不負責噢。
7 問題解決
7.1 開機后,小車沒有反應是什么原因?
正常情況下,接通電源后,小車的脖子有個優雅的上揮姿勢。如果沒有,請確認電池已經正確的給驅動板供電!注意,只給Arduino板供電,雖然通電后電 路板上也會亮燈,但是脖子是轉不動的,更不能前進后退的,這時需要趕緊關閉電源,檢查線路,否則會有把電路板燒壞的風險。
7.2 遙控程序無法運行?
安裝遙控程序需要是已經越獄的iPhone、iPod touch、iPad。并且要求系統版本在5.0以上。
7.3 遙控程序無法控制小車?
確認小車已開機,小車和iPhone之間的連線正常(特別是串口轉換器和Arduino之間的連線正常),iPhone和iPad在同一個網絡內,且各 自打開了控制程序。如果某個設備進入程序后有過鎖屏,請退出后重新打開。直到確認iPad上的連接指示圖標和小車動力圖標都點亮。方向盤的右上角有個行動 開關,只有打開這個開關,小車才能移動,否則即使連接了,也只能轉轉脖子,閃閃大燈。
7.4 小車的脖子亂轉,很難指揮?
在寫入Arduino的程序中找到這兩個地方
servoLR.attach(9,0,180); // 綁定舵機到針腳,并且設定舵機的旋轉范圍。
servoUD.attach(10);
和
//將舵機綁定到自己的舵機控制類上,需要設定座機的初始位置。
servoTask sTaskLR(&servoLR, 9, 90);
servoTask sTaskUD(&servoUD, 10, 135);
這里分別是控制兩個舵機的轉動范圍,和初始位置的。你可能需要根據你安裝的云臺的實際角度去調整這里面的值。
?
7.5 重力感應模式下很難控制?
恩,的確有點難控制,有時間的話Bode可能會做一些優化。同時推薦觸摸操控更適合iRover。
7.6 連接經常中斷?
保持wifi信號在比較好的情況下。同時保持iPhone和iPad不要鎖屏,鎖屏會斷線的,而且之后也會連不上;這個時候需要退出程序后重新進入。你可以認為這是一個bug,但是暫時不會被修改(因為種種原因)。
關于Arduino系統的其他問題可以參考Arduino相關網站。
關于iPhone、iPad越獄后安裝軟件的問題,也請參考相關網站,論壇。
8 寫在后面的話
現在iRover還只是一個開始,接下去Bode會通過軟件給小車增加更多的功能。如果你對這其中的任何一部分有興趣,都可以加入對iRover后面發展方向的討論。Bode在這里希望iRover是一輛可以讓宅男,讓孩子玩得開心的開放平臺小車。
?
評論