近幾年來,在書店中帶有“電子”、“程式設計”等關鍵字的書籍和雜誌越來越多。當您翻看這些書籍的標題時,不時地會看到“Arduino”和“Raspberry Pi”之類的詞。不過,當聽到或看到“Arduino”和“Raspberry Pi” 時,可能有不少人會想:“哦,好像在哪兒聽到過。只是不清楚它究竟是什麼”。
本文將圍繞“Arduino”,具體介紹以下幾個方面的內容:
Arduino是一款開源微控制器開發板,即便是沒有豐富的電氣和程式設計知識的電子設計初學者也很容易上手。首先,聽到“Arduino”,應該能夠想起下圖所示的外觀,對該產品有個大致印象。
這是將各種電子元器件配置在電路板上的開發板,外觀相似的產品包括在電腦和電視機等內部常用的被稱為“電路板”、“印刷電路板”、“PCB”的產品。其中,將載有能夠透過程式設計改變其工作的“微控制器”(Microcontrollers或Microcomputers的簡稱)晶片的電路板稱為“微控制器開發板”,照片中的Arduino也是微控制器開發板的一種,也被稱為“Arduino開發板”。
然而,“Arduino”這個名稱不僅僅包括“Arduino板”,還包括用來程式設計的被稱為“整合式開發環境(IDE)”的軟體。
這種用於程式設計的軟體通常被稱為“Arduino IDE”,在需要區分板卡和軟體時,可以分別稱它們為“Arduino板”和“Arduino IDE”。
“Arduino”是在2003年義大利Interaction Design Institute Ivrea(IDII,交互設計學院)的學生Hernando Barragán(埃爾南多·巴拉甘)的碩士論文研究項目“Wiring”基礎上開發而成的。“Wiring”的研究目的是透過將複雜的機制抽象化,使藝術家和設計師等在創作作品時可以在沒有電子工程知識的情況下也能操作微控制器,從而能夠將精力集中在實現最初的目的(作品製作等)上。
Arduino的開發專案始於其後的2005年。Barragán的碩士論文導師Massimo Banzi 與David Mellis、David Cuartielles等人一起開始了名為“Arduino”(拉取Wiring的原始程式碼)的項目。
“Arduino”這個名稱來源於Arduino項目的創始人Massimo Banzi喜歡去的一家名為“Bar di Re Arduino”的酒吧,是根據酒吧名稱將電路板命名為“Arduino”的。
此後,Arduino開始風靡全球,並在“創客運動”(一種推動利用3D印表機等數控設備創作作品的活動)的風潮下,成為世界上最受歡迎的微控制器開發板之一。
追溯Arduino的發展歷史,可以看到很多關於Arduino團隊(Arduino LLC 和 Arduino SRL)的內部分裂以及商標和製造權問題相關的文章。事情最終透過兩者的和解而落下帷幕,對於我們這樣的Arduino用戶來說,這個結局(從對Arduino板的流通和Arduino IDE的更新等的影響角度來說)的確讓我們松了一口氣。
如今,電子製作的新手通常是一邊參考諸如“用Arduino製作……”、“用Raspberry Pi實現……”等標題的文章和書籍,一邊進行基礎練習。
但是,這裡面也有一些人會有這樣的疑問:“那麼,我應該買哪一個比較好呢……?”不知道該選擇哪一個才好。在這裡,我首先簡單介紹一下Arduino和Raspberry Pi的區別。
Arduino屬於“微控制器開發板”,Raspberry Pi屬於“單板電腦”。前面已經介紹過微控制器開發板。我認為將單板電腦解釋為“凝聚了必備最少功能的電腦”,可能更容易理解。基於這樣的視點,讓我們從幾個角度來探討應該使用Arduino還是Raspberry Pi。
可能有人認為,“如果只是微控制器和電腦之別的話,那麼電腦不是可以向上相容嗎……?”但是,實際上還涉及到它們各自適用的用途,以及它們在不同應用中的易用性。
例如,從內部軟體的運行來看,存在Arduino沒有OS、Raspberry Pi有OS的特點區別。
這並不是可以簡單地說“有作業系統(OS)更好”,有時候,在作業系統中運行的其他應用程式也可能會影響到希望實現的目標工作,在使用電腦時,時常會發生死機等問題,這些都是需要考慮的因素。當然,如果您希望執行Linux上運行的程式,就需要選擇Raspberry Pi了,因為Arduino無法執行這類程式。
事實上,微控制器有微控制器應該做的工作,電腦有電腦應該做的工作。Raspberry Pi可以結合LED和開關等的輸入和輸出實現很多事情,因此很難透過能做什麼或不能做什麼來考量,但如果按照各自發揮的不同作用來考慮,就可以看清什麼情況下該使用Raspberry Pi,什麼情況下該使用Arduino。
例如,Arduino可以發揮以下作用:
如果您需要處理此類電氣信號(更接近硬體),選擇Arduino比較好。
此外,Raspberry Pi可以發揮以下作用:
如果您需要完成這類由電腦處理的工作(更接近軟體),應該選擇Raspberry Pi。
如果您的身邊有人能教您如何使用Arduino,能夠邊問邊學是比較好的,但是通常不好意思請人多次一對一地教自己,而且並不是每個人的身邊都有這種專業人士,所以如果可以的話,能找到自學的方法就更好了。
筆者推薦以下兩種方法:
① 買書,按照書中的內容學習
② 參考網路的文章,按照相關介紹學習
如果透過看書(技術書和入門書)來學習,就需要在書店或網店購買相應的書籍,雖然買書需要花錢,但大多數書都是面向從零開始的初學者的,內容非常細緻易懂。而且,還有一個好處是“只要按這本書學習,基本可以學會”,而如果自己在網路搜索各種資源自學的話,容易遇到一些瓶頸。書籍的好處在於,您可以透過閱讀它們獲取新知識,而無需自己在網路搜索。
下面我列舉一些講解Arduino使用方法的書,您可以參考用戶評價和相關書籍來選用。
有這本書就夠了!用Arduino開始電子製作 超簡單入門教學 修訂版第3版
如果您透過網路搜到的資源學習,會發現有很多免費的資源可用,因此比透過書籍學習的成本更低。如果能找到精心編寫的文章,就可以獲得豐富的資訊來提升技能,所以如果您習慣於在網路查找資料,就可以搜索所需的資訊,並從不同角度瞭解相關資訊的講解。
下面我列舉一些關於Arduino入門的文章,建議以閱讀這些文章為主,當遇到感興趣的關鍵字時,可以隨時搜索以進一步瞭解。
如何開啟Arduino之旅
介紹了Arduino新手應該怎樣購買Arduino主機、如何安裝Arduino IDE、以及如何使LED發光。我們可以參考這個步驟開始Arduino之旅!
Arduino – Lighting up LEDs
創建程式
使用麵包板將LED和電阻連接到Arduino,點亮多個LED並使多個LED交替閃爍。
要逐漸習慣程式和佈線的處理方法。
Arduino – Sketch, Taking a Look at Programs
使用光感測器
嘗試使用感測器來代替人類的五種感官。在這裡,使用光感測器來感知周圍環境的亮度並使之與LED的亮度建立關聯。
Let’s use Arduino with a light sensor!
下面介紹一下需要購買Arduino板時要考慮哪些要點。市場上有很多種Arduino板,不同的產品類型其價格和功能也不同。在這裡我根據常見的需求來介紹四種Arduino板。
對於沒有特別想要製作的作品,“只是想先試用一下Arduino!”的各位,我建議從“Arduino UNO”開始。
“Arduino UNO”是最基本的開發板,也被認為是Arduino系列的代表。既然是“代表”,其技術書等書籍和在網路、雜誌等上面的文章和資訊是最多的,支援Arduino的擴展電路板(被稱為“擴展板”)也很多。
Arduino UNO的輸入/輸出埠(輸入/輸出引腳)配有針座,在其中插入跳線即可與麵包板等相連接。
在網路搜索有關Arduino的資訊時,很多都是以Arduino UNO為例進行說明的,所以如果您使用的是其他類型的Arduino板,就需要透過對照引腳編號等來進行組裝接線等工作。而如果您使用的是Arduino UNO,則可以直接使用其接線資訊和程式碼。
在您想要控制很多LED、想要檢測很多開關、想要驅動很多馬達等情況下,如果“Arduino UNO”的輸入/輸出埠數量不夠,“Arduino Mega”是個不錯的選擇。它比UNO要貴。
“Arduino Mega”的輸入/輸出埠比UNO更多,使用“Arduino Mega”可以增加相應數量的感測器(當連接很多LED時,需要注意電流消耗情況。這一點不僅針對Mega,而是所有微控制器通用的注意要點)。
在UNO中,只有一組序列通訊連接埠(也用作USB介面),但在Mega中,除了一組USB複用介面之外,還有三組埠,所以當您想在微控制器之間進行通訊時,或想要進行Bluetooth/Zigbee等串列通訊時,建議使用Mega。
由於常用引腳的位置與“Arduino UNO”基本相同,因此很多與UNO相容的擴展板也適用於Mega。
與UNO相比,Mega可以進行PWM輸出的引腳較多,所以如果希望使用PWM信號驅動的馬達數量較多時,使用Mega更好。如果以後想用Arduino來控制機器人,那麼我認為Arduino Mega值得擁有。
如果您想將其嵌入尺寸很小的機器人或設備中,建議使用推薦尺寸比UNO更小的緊湊型“Arduino Micro”。它比UNO便宜一些。
“Arduino Micro”的引腳上配有排針,可以直接將微控制器開發板插入麵包板。如果將針座焊接在萬用電路板等上面,也可以在不使用跳線的情況下牢固地接線。
使用萬用電路板時,應遵循電子作品創作界中的一些預設文化,比如需要在要進行焊接的有銅箔的面(圖案面)進行佈線,在進行LED或電阻切腳時,不要丟掉這些腳,而是將其靈活運用於電路板上的佈線。
近年來,在電子作品創作界,“自製鍵盤”開始流行起來。透過自己製作電腦鍵盤,可以製作出符合自己要求的理想鍵盤,或具有有趣功能的原創鍵盤。使用“Arduino Leonardo”,可以開發鍵盤和滑鼠等HID設備。Arduino Leonardo開發板的形狀類似於UNO,但它是一種不同的Arduino板。
“HID”是“Human Interface Device”的縮寫,一般是指電腦鍵盤或滑鼠等。特別是“符合HID規範的設備”,當透過USB連接到電腦時,無需安裝產品固有的設備驅動程式即可使用。Arduino Leonardo中配備了名為“ATmega32U4”的微控制器,它可以充當符合HID規範的設備使用,因此可以用作鍵盤或滑鼠。
如果其他的Arduino板中也配有ATmega32U4微控制器,那麼也可以用來開發HID,就像前面介紹的Arduino Micro中也配有ATmega32U4,所以也可以使用Arduino Micro來自製鍵盤和滑鼠。如果您想在麵包板上製作原型,選擇Leonardo比較好,如果您想在萬用電路板上進行焊接,建議選擇Micro。
隨著Arduino的出現,微控制器控制不再僅僅侷限於製造商的家電等產品,還越來越多地被應用在業餘愛好者活躍的機器人、藝術、DIY等個人創作領域。下面介紹三種與這些領域相關的使用了Arduino的產品(作品)。
這是Arduino官方開發的機械臂套件。機械臂可以透過6個伺服馬達自由移動,並且可以使用Arduino靈活控制。教育機器人套件也有很多種,但其中大多數都使Arduino。
這是一個以海洋垃圾問題為主題的裝置,意圖讓人反思塑膠污染對自然環境的影響。該設備使用了多達600個防水伺服馬達。就像在這類作品中的表現一樣,在用電子控制創建專案的媒體藝術展覽領域,Arduino也在大展身手。
這是一種使相機自動滑動的設備。透過使用Arduino控制兩個步進馬達來實現相機的往復和旋轉。使用Arduino進行 DIY的一大好處是可以按照自己喜歡的尺寸、透過自己對運行的調整來製作自己想要的設備。
最後,我想介紹一些此前在Device Plus中發佈過的關於使用Arduino進行電子創作的文章。許多作者正在用自己獨特的創意在製作各種有趣的設備,希望這些專案能給您帶來啟發。
這是一款可以在遊戲(所謂的“小雞賽跑”)中玩的機器人,它會自動向牆壁行駛,當操作者按下按鈕使小雞賽車停下來時,比賽誰在離牆壁更近的位置停下來。該項目採用超聲波距離感測器測量距離,還具有在字元液晶顯示器上顯示距離值的功能。
在最後一刻停下來!用Arduino和距離感測器製作小雞賽車!(第1篇)
為了紀念留聲機的甜甜圈造型轉盤,作者開發了一款“甜甜圈播放機”,它可以使真正的甜甜圈旋轉,用距離感測器檢測並根據形狀發出聲音。當您想要創作一個獨一無二的獨特作品時,Arduino將會是您的得力助手。
這是一個使用FeliCa讀卡器(可以與FeliCa相容交通IC卡或智慧手機進行通訊)製作的、可以識別個人並記錄進出日期和時間的系統。當您在想“真希望有這樣的東西/功能……”時,使用Arduino來實際製作出來其實是一件很棒的事。
用Arduino Mega進行電子製作!用FeliCa讀卡器製作一個出入登記系統
透過以上內容,我們已經瞭解了Arduino的特點、選擇方法和作品實例。作為個人,我們能夠創作世界上獨一無二的作品,這也是電子作品創作的真正樂趣所在。
如果您有任何想法,比如“要是有這樣的東西就好了”或“要是能做出這樣的東西一定會很有趣吧”,那就使用Arduino來嘗試實現它吧!