在“當(dāng)圓夢小車遇上 Arduino ……”一文中,就提出了設(shè)計一款 Arduino 小車控制器的想法,如今兌現(xiàn)了!
在設(shè)計過程中,隨著對 Arduino 了解的深入,又發(fā)現(xiàn)了一個基于PC機(jī)的開源平臺:
Processing!
基于這個編程感覺又回到了 DOS 時代的 Basic,環(huán)境十分簡潔,不像目前基于 Windows 的開發(fā)環(huán)境,光環(huán)境設(shè)置就足以讓初學(xué)者卻步。
Processing 雖說延續(xù)了 Basic 的那種簡潔,但對 windows 帶來的資源優(yōu)勢卻絲毫沒有忽略,可以十分方便的操控屏幕畫圖,獲取鼠標(biāo)信息,乃至方便的視覺處理……,并未因簡單而“無能”,摒棄了繁瑣的環(huán)境設(shè)置后,可以讓你將思維集中于控制邏輯的構(gòu)思以及算法和數(shù)據(jù)結(jié)構(gòu)的嘗試。
最美好的是,Processing 和 Arduino 有著密切的關(guān)聯(lián),它們同出一門。
為了讓它們之間能夠“親密無間”,小車設(shè)計了一個無線通道,對應(yīng)的在PC側(cè)設(shè)計了無線適配器,使之通過無線可以暢快的交流。
小車由以下兩部分組成:
控制板核心是 Arduino 控制器,使用Mega328P:
從圖中可以看出,用無線通道代替了Arduino標(biāo)準(zhǔn)的USB轉(zhuǎn)UART接口,使通訊和程序下載均變?yōu)闊o線方式。
PC側(cè)的無線適配器細(xì)節(jié)如下:
可以看出,相當(dāng)于將原來的UART連線斷開,兩側(cè)各插入了一個無線模塊,是有線方式的UART連接變成無線方式。這對小車很重要,因為小車需要移動,拖著尾巴會大大降低使用體驗。
注意:小車控制板元件是安裝在背面的,表面很“平整”,為何?
是為了這個:
看了后面的內(nèi)容就知道了^_^ 小車使用 4節(jié) 7號 NiH 電池供電,因為 4 節(jié)充電電池電壓不足 5V,為保證 Arduino 控制器可靠工作,配置了電源管理電路,內(nèi)含升壓穩(wěn)壓,保證 5V 供應(yīng)。同時為方便使用,內(nèi)置了充電電路,可以方便的直接在小車上充電。 之所以沒有選擇鋰電池,主要是從安全角度考慮,尤其是自帶充電。 未來是軟件的世界,硬件設(shè)計已由少數(shù)人所完成,多數(shù)人只是基于現(xiàn)成的硬件編寫軟件,使其具有不同的功能。PC 時代已見端倪,而 iPhone、iPad 則將此推向極致。 從就業(yè)角度,未來軟件外包將成趨勢,國人在軟件上就業(yè)的機(jī)會將大于其它任何形式。 而編程學(xué)習(xí)通常很枯燥,無工作需求時少有人問津,導(dǎo)致編程水平難以提高。 期望小車能使編程變得有趣,讓你在娛樂中不斷提高自己。 其次: 如今娛樂東西很多,有PK反應(yīng)的,PK智力的,PK手眼協(xié)調(diào)的,還有一些完全滿足身體需求的…… 小車主要“娛樂”模式 一、全局視覺定位 典型的項目就是“機(jī)器人足球”: 二、局部視覺導(dǎo)航 利用與 Arduino 同門的 PC 開源平臺:Processing ,就可以方便的實現(xiàn)上述需求,有很多愛好者分享的視覺處理庫可以嘗試,由于是開源,會不斷有新資源分享,使你的學(xué)習(xí)過程可以不斷持續(xù)、深入。 為何如此構(gòu)思? 此次小車設(shè)計放棄了傳感器,將機(jī)器視覺作為小車的全部信息來源,相當(dāng)于人的眼睛。 小車使用傳感器主要是知道自己的位置及環(huán)境,如今機(jī)器視覺已不稀罕,借助于PC和攝像頭,很容易實現(xiàn)圖像識別。為降低難度,還可在小車上貼色標(biāo),圖像識別變成了最簡單的色塊捕捉。 微軟的Kinect出現(xiàn),證明了這是趨勢。 之所以將小車設(shè)計的很小,就是為了便于攝像頭的捕捉,因為攝像頭的拍攝區(qū)域有限。 以往 Windows 下實現(xiàn)圖像采集和識別是比較專業(yè)的事,使用了 Processing,事情變得極為簡單。 之所以沒有采用藍(lán)牙,是因為藍(lán)牙實現(xiàn)廣播困難,而所構(gòu)思的活動形式需要以廣播方式發(fā)送坐標(biāo)。 特別聲明! 本小車所期望構(gòu)建的是娛樂平臺,而非應(yīng)對專業(yè)的“機(jī)器人足球”比賽!按照目前的價位,連一個專業(yè)足球機(jī)器人的電機(jī)都買不來,當(dāng)然性能也就沒法和專業(yè)的足球機(jī)器人相比。 在所有機(jī)器人活動中,唯有“機(jī)器人足球”最有趣,最具挑戰(zhàn)性,同時也最有延伸的空間,不會像許多比賽內(nèi)容,很快進(jìn)入“飽和”狀態(tài),很難再提升。目前的“智能車大賽”就有此跡象。 做此小車是想讓“機(jī)器人足球”比賽走下圣殿,成為像棋、牌、桌球一樣的百姓娛樂內(nèi)容,在娛樂中順帶提高素質(zhì),實現(xiàn)“學(xué)有趣,玩有益”! 以下方式供參考: 1、在前后壁上打孔,固定銅柱: 2、有了這些支點,傳感器可以按如下方式安裝: 如果想加裝小機(jī)械手之類的設(shè)施,可利用: Arduino 控制板上的2個固定螺絲是經(jīng)過銅柱固定在底盤上的,所以比較牢固。 還可以: 在這樣一個小平臺上,做上述擴(kuò)展應(yīng)該夠了吧? 結(jié)語: 小車只是一個平臺。 作為學(xué)生,可以把它看成一個工程“應(yīng)用題”,期望能幫助你學(xué)會運用所學(xué)知識去解決問題,但不失趣味! 作為玩家,可以把它看成一個“可編程玩具”,讓你隨時可以活動活動大腦,但不完全是消遣!就像打球,娛樂之外還可健身。 換一種心態(tài)編程,或許能更好的發(fā)揮,刺激出靈感。 Arduino 是開源的,雖說所服務(wù)的是非專業(yè)人士,但編寫 Arduino的絕非等閑之輩,源程序中也許有你需要的思想。 由于 Arduino的簡化,使很多不想糾纏于Datasheet、但又想操控硬件與現(xiàn)實交互的人有了可能。 同時還是很好的啟蒙手段,可以陪孩子玩。目前教育中怪題、難題將孩子訓(xùn)練得熱衷于“劍走偏鋒”,而大量的選擇式答題導(dǎo)致孩子思維無序,編程將使孩子“跳躍”的思維重歸條理。 但愿小車能物盡其用!
小車設(shè)計初衷:
首先:
為學(xué)習(xí)編程者提供有趣的編程素材。
創(chuàng)建首款(至少我沒有聽說過)將編程作為PK內(nèi)容的娛樂平臺。
在無處不使用電腦的世界中,卻獨缺一個PK編程水平的游戲,希望這個平臺能補(bǔ)上這個缺!
用PC攝像頭拍攝小車的活動區(qū)域,基于小車上的色標(biāo)獲取小車的位置,通過無線通道發(fā)送給小車。
將無線攝像頭(建議選用模擬的)安裝在小車上,攝像頭的無線通道將圖像傳送至PC,由PC上的程序負(fù)責(zé)圖像識別等處理,將處理結(jié)果再通過小車的無線通道送回小車。實現(xiàn)一般傳感器所能達(dá)到的功能,如走軌跡,避障。
智能小車算是“機(jī)器人”的一種。而提到“機(jī)器人活動”,立刻想到的是“走軌跡”、“避障”等,糾纏于各類傳感器,編程反被忽視。由于傳感器的局限性(缺錢、沒時間),很多想法只能放棄,使活動總在低水平上重復(fù)。
無線通訊也是為此服務(wù),實現(xiàn)PC 和小車的信息交互。
不過,可能還是有客戶希望加裝傳感器,這個小車上可以嗎?