小編臻臻前陣子忙著裝修新窩,各種商場、網店逛得樂此不疲。逛家電時老婆大人對那些在地上滴溜溜亂轉就能完成掃地工作的機器人產生了極大的興趣,臻臻遂上網請回一臺最經典的Roomba,從此掃地不用手,也過上了腐朽墮落的西方資產階級生活方式。不過Roomba也有自己的缺點,只顧埋頭苦干,沒有一點21世紀的臭顯擺功能。在這個上廁所都要發Twitter的年月,過于低調也是一種罪過。什么?你說這個網站是不存在的?嗯,那你一定沒看上期《Geek》雜志第62頁……
那么有沒有方法把Roomba包裝成更能顯擺的掃地機器人呢?今兒咱們就來講講怎么改裝Roomba,讓咱不在房間的時候也能通過互聯網控制它的作息,讓它變成每次掃完地都發推特的潮人,引得親朋好友、三姑六婆都來圍觀。
改造原理
實現讓Roomba變成可遙控可發推特的掃地機器人的原理其實手并不復雜。簡單來講,我們只需要給它增加一個Wi-Fi無線通信模塊,讓它同互聯網連接,再通過編寫適當的程序代碼就可以實現了。為了達到這個效果,我們需要啟用神奇的Arduino電子積木,以它作為橋梁連接Roomba與Wi-Fi無線模塊,并利用它開源的代碼編寫程序向RoombaT達指令。Arduino是一個開放的硬件平臺,包括一個簡單易用的I/O電路板,以及一個基于Eclipse的軟件開發環境,以前的Big Plan中也多次出現過它的身影。有了這個以Arduino為基礎的Wi-Fi模塊,我們就可以寫好固定的句子讓Roomba在每次公干之后都發推炫耀了哦!
Part 1 找出Roomba的串行連接器
500系列的Roomba機器人身上都有一個串行接口,這就是我們侵入可愛的Roombo并發出邪惡指令的地方了!但這個神經中樞藏在小機器人堅實的面板之下,想看到它,你可得費點周折才行。
1 首先需要將Roomba上收集灰塵垃圾的小盒子移走,然后找到圖示上的兩個小缺口,用一字螺絲刀從這里輕輕插入溫柔撬動,嗯。
2 OK,聽到“咔吧”一聲就意味著大功告成了。現在我們就能在Roomba的啟動按鈕右側看見那個銷魂的串行接口了。當然,如果你夠精準夠暴力,也可以直接在面板上打個能直通串行接口的孔。總之無論用什么方法,讓這個連接Roomba內部結構的小洞露出來即可。
Part 2 制作數據線
下一步我們就要制作連接Roomba和Arduino模塊的數據線了,最簡單的方法就是用5類線制作一個8針DIN連接線。
下面我們來制作數據線與Arduino模塊連接的一端。首先剝掉導線外的絕緣層,之前6、7兩根導線都是地線,我們把它們連在同一根針上;1、2兩根導線都是正極,也需要連在同一根針上;其余導線各自連在單獨的插針上。如果你之前沒記下1~7號接頭對應的導線顏色,那現在就杯具了。
首先,我們要把電纜的外皮撥開露出里面的B根導線,之后用剝線鉗把導線外部的絕緣層小心地剝離掉。如果你家里沒有預備這種鉗子,那么用普通剪刀小心地在絕緣層外部輕輕轉上一圈,也可以把絕緣層剝離掉。友情提示,用打火機燒是不行的!
好了,下面的工序將更加富有挑戰性,準備好剛剛露出導線內芯的電線和8針DIN連接器,現在是它們必須合體的時候了……為了不讓這個可怕的三爪夾座在電線上留下牙印,最好在線纜上墊上一層紙。
接線方式如圖,按照數字一一焊接上去即可,記住對應不同編號接頭的導線的顏色。接好后記得要用萬用表檢查下線路是否暢通,確認導線焊接正確后,把多余的焊錫清理干凈。
在導線與導線之間填滿熱熔膠把接頭處封死固定,以防使用中發生短路或損壞。之后用電工膠帶纏好接頭處的導線,再給它戴上“安全套”,不,是接頭外殼。OK,數據線與Roomba連接的一頭就做好了。注意給它戴套之前要根據Roomba的串行連接口好好調整8個針頭的位置。
到此為止連接Arduino模塊和Roomba的數據線就算完成了。喘口氣喝杯茶獎勵自己一下,最難過的一關終于搞定了。
Part 3 安裝無線化的Arduino模塊
下面 我們就要把Arduino控制模塊和Roomba機器人連接起來了。首先我們用免焊萬用電板把Wi-Fi模塊和Arduin。板裝到一起,之后用上一步制作好的數據線將Roomba和Arduino模塊連接起來。大功告成……才怪!中間還要加工一下才行,具體請看下面的說明。
1 數據線的接法如圖所示。此外,我們還需要用一個PNP晶體管來做Arduino板的接收端(RX)到Roomba的橋梁。這一步并不太難,首先用跳線把Roomba的發射端(TX,4號線)和PNP晶體管的基極相連,然后將晶體管的集電極接地,發射極與Arduino板的信號接收端(RX)連在一起。之后將Arduino板的發射端(TX)和Roomba的接收端(RX,5號線)用電纜連在一起,最后把數據線的地線(6、7號線的插針)和Arduino板的地線連在一起。
2 這還不算大功告成,接下來我們還有一個小問題要面對。要知道通電時Roomba的輸出電壓可高達20V,雖然這處于Arduion板自帶電壓調節器的控制范圍之內,但卻超出了Wi-Fi模塊3.3V穩壓器的承受范圍。這就需要我們另外在電路板上添加一個電壓調節裝置。我們可以用7805穩壓芯片把電壓降低到5V,具體的做法是把7805穩壓芯片的地線接地,把Roomba的電源輸出(1、2號線的插針)與穩壓器的Vin引腳相連,穩壓器的輸出引腳與Arduino上的5V電源輸入端相連。OK,到這里才算是大功告成了,當把數據線插入Roomba的串行口后開機,就會看到Arduino板上的大功率LED燈閃亮起來了有木有!
到這一步,整個Roomba的實體改裝工程就算告一段落啦。記得在進行下一步編程時千萬要先把Arduino的數據線從Roomba上斷開。
Part 4 編程
完成了上面的改裝工作,到底該如何讓Roomba每次工作完畢都老老實實上推特曬成果呢?這就需要進入我們的高智商編程環節了。
1 首先,我們要讓Roomba知道在什么時間才可以開始進行發布推特的工作。Roomba既然是一個機器人,自然有與外界通訊所用的語言。Roombo采用的是iRobot’s OpenInterface(簡稱OI)編碼,它所有的機械運作都是在OI編碼的預先設置下完成的。我們自然可以按照OI的規則重新為Roomba編寫程序,告訴它在每次工作完畢都向Arduino發出一條“給勞資發推特”的指令。具體的代碼編寫說明,請移步《Geek》官方論壇(bbs.geekv5.com)下載。
2 然后就該想辦法把Roomba和網絡連接起來了。第一步就需要我們設置無線路由器,讓它給Roomba上的Wi-Fi無線模塊分配一個固定的IP地址。不同路由器的設置方法有所區別,如何完成這一步就就得麻煩你自己用度娘谷哥搜索一下嘍。完成之后想通過網絡控制Roomba就非常簡單了,只需要在電腦前輸入你分配給Roomba的IP地址,你就可以找到它。
3 然而想讓Arduino主動上Twitter發推,還需要給Arduino編寫相應的程序,設置TwitteroAuth認證的密鑰,并在Credential.h文件中設置路由器SSID和連接密碼。很幸運,這部分的代碼你可以在《Geek》雜志的官方論壇上找到。把下載的源代碼用Arduino官網提供的編譯環境軟件編譯之后通過USB數據線寫入Arduion,這樣Roomba就可以通過Arduino無線上網沖浪,隨意登陸到推特了。
最后的話
自從有了全自動的Roomba,你就可以趁GF或者LP不在家的周末找幾個兄弟隨意喝酒打屁,留下Roomba一個人在家中完成苦逼的清掃工作。過不了多久,你那正跟閨蜜們親密八卦的另一半就會發現你這個懶蛋宅男居然在推上@她通報了最新房間清掃的情況!可以預見她是如何立刻在閨蜜們面前把你包裝成天下第一省心聽話絕版訂制好男人的。這種高科技作案后的成就感真是想想都帶感啊,木哈哈哈哈……考慮到國內上推特的諸多不便,你可以參考上期雜志介紹IPv6的文章中所談到的方法進行解決。當然了,如果你是個忠實的新浪微博擁簇,只要把下載的代碼中涉及twitter.com的部分替換成weibo.com,再把oAuth認證地址換成新浪微博API的并填上自己申請的密鑰就OK了。《Geek》官方微博等著你的Roomba來fo哦。