自製「物理運算平台」:Arduino微電腦
Share the post "自製「物理運算平台」:Arduino微電腦"
自製「物理運算平台」:Arduino微電腦
文∕趙英傑
Arduino是一個「開放式硬體(open source)」微電腦控制板,你也可以稱它「物理運算(physical computing)平台」,聽起來很酷吧!任何人都可以在arduino.cc網站下載免費的線路圖和PCB版佈線圖,自己DIY一個Arduino,例如,底下的照片是筆者稍加修改後的自製Arduino控制板。

基本上,微電腦控制板就像是一個具有大腦和神經線,但是沒有感官和行動能力的物體。我們可以替它加上眼睛(如:紅外線或超音波感測器)、耳朵(如:麥克風)和手腳(如:伺服馬達),再加上自行撰寫的控制程式,就能做出各種自動控制應用。例如,加上溫度感測器和一些控制線路,以及判斷條件的程式碼,就能讓Arduino自動控制電風扇的運轉;加上伺服馬達∕步進馬達,以及感測器,即可組裝一台自走車或機器人。
Arduino控制板的硬體很簡潔,沒有什麼特殊的設計,除了開放式硬體架構之外,重點在於它提供了一個基於C/C++的程式語言來控制Arduino,並且有Windows, Mac OS X和Linux等跨平台環境的程式編輯工具。除了當成可獨立運作的微電腦控制器之外,它也能透過許多愛好者開發出的程式模組,和電腦上的其他程式語言通訊,例如:Flash ActionScript, Processing, Python, PHP,…等等。
微電腦自動控制的專業人士,大多優先選擇「組合語言」來撰寫程式,因為組合語言的執行速度快,而且佔用的記憶體空間小。但是對於業餘電子愛好者來說,組言語言深奧難懂,而且普通的電子專案也不需要對執行效能和記憶體空間錙銖必較。因此,以業餘玩家為訴求的微處理產品,大多選用C或BASIC等比較平易近人的高階語言來控制。
例如,基於PIC單晶片處理器、風靡歐美的Basic Stamp系列產品採用BASIC語言,麻省理工學院(MIT)的HandyBoard(同樣也提供免費的線路圖和跨平台的程式語言編輯環境)採用Interactive C(註:這個語言也有適用於樂高機器人的版本,可在BotBall網站下載)、HandyBoard Cricket更提供了圖像式Logo語言編輯環境,讓小朋友也能輕鬆駕馭微電腦!另一個知名的開放式硬體Wiring,也是採用類似C語言的語法,它的程式語言就叫做Wiring。實際上,Arduino的程式編輯器和語言,就是從Wiring借來的。
如果嫌高階語言不專業,您也可以安裝Atmel公司的AVR Studio開發工具,用組合語言或者AVR C語言撰寫Arduino的程式。
Arduino、Freeduino和Boarduino
"Arduino"取自11世紀北義大利的一個國王的名字。這個專案最早由Massimo Banzi, David Cuartielles, David Mellis和Nicholas Zambetti等人開始,目前已經發展出許多不同的版本,詳細的功能比較和外觀照片請參閱這個網頁。雖然說Arduino是個「開放式硬體」平台,但這群設計者並未完整提供歷代所有版本的PCB佈線圖。有了佈線圖,才能順利製作出印刷電路板,雖然使用者也可以自行繪製,但總不及現成的方便。如果用戶想要新版的Arduino,最簡便的方式就是在網站上購買現成的(或半成品)Arduino。
有鑑於此,有人建立了一個略帶諷刺的"Freeduino"網站,提供等同於較先進的Arduino Diecimilia版本的佈線圖免費下載。就在我製作好Arduino之後不久,Arduino的官方部落格終於在10/22日提供Arduino Diecimilia和Arduino BT(具備藍芽通訊功能)的PCB版資料,但目前還是沒有外觀尺寸類似Basic Stamp的Mini版本的佈線圖。
Arduino採用Atmel公司的AVR系列微處理器,舊版採用ATMEG8,內建的記憶體容量為8KB,新版本採用ATMEGA168,記憶體有16KB,並且多了一些輸出∕輸入埠。Wiring的硬體比較網頁提供了幾個知名微處理器控制板的功能比較。
另一個從Arduino衍生出來的控制板"Boarduino",把板子做成適合直接插在麵包板上做實驗的尺寸,也有提供PCB佈線圖,並且採用ATMEGA168處理器,若有興趣嘗試自己動手做Arduino,這也是個不錯的選擇。
相關網站連結:
- 用麵包板組裝Arduino微電腦實驗板
- 台灣的Arduino樂園
- AVR系列處理器的愛好者網站AVR Freeks
請問老師你可以賣我一個Arduino微電腦控制板嗎?
這是否是把flash程式發佈的swf檔,放到Arduino微電腦控制板USB相對應的硬碟裡,然後開啟硬碟裡的swf檔,就能送信號給Arduino微電腦控制板嗎?
老師有出有關flash控制Arduino微電腦控制板相關的書籍嗎?
或是否請老師推薦相關的書籍給我,能用flash程式透過Arduino微電腦控制板,控制電子零件硬體這很實用。
1. 我沒有在賣Arduino,如果不要求美觀或者形式,其實自己組裝一個也很簡單。拍賣網站上也可以買到現成的。
2. Flash的swf檔和Ardunio之間的通訊,需要透過Socket Server軟體來轉換。
3. 我目前仍在忙著專案開發,今年內沒有寫作計畫。
4. 國外有幾本ardunio的相關書籍,像O’Reilly出版社的 Making Things Talk, Getting Started with Arduino 以及 Programming Interactivity等書籍的評價都很好。
拍賣找不到,雖然本身略懂一點電子但是英文程度不好所以才想跟老師買一咕:shock:
既然老師無法賣我,那我也只好自己去摸索了==
老師請問像諸如滑鼠連點程式或一些類似的自動程式,下載後開啟資料夾裡面含有dll檔、DAT檔…等等檔案的這些程式是用什麼軟體做出來的呢?
相關的程式語言正確學名叫什麼?是C++嗎?
很多程式語言都可以建立「動態連結程式庫(DLL)」,C++, Visual Basic, C#, Delphi… 基本上,只要是在Windows系統的通用程式開發工具都辦得到。
真厲害!!!
大大您是軟硬通吃呀!!!
真是令我望塵莫及…
沒有啦… arduino的創造者才厲害
ps. 我認識很多前輩都沒有部落格,也鮮少露臉,他們才是真正的大內高手。
請問老師,可以賣一各板子給我嗎
其實你可以用麵包板自己組一塊Arduino,今天稍後我再更新文章。
今天更新文章時想到,如果用麵包板自行組裝Arduino,你還需要燒錄器和連接電腦的轉接線…若無焊接電子零件的經驗,建議買個現成的Arduino板。我沒有賣,但是網拍上有很多賣家。
have fun!
jeffrey