2016年5月29日 星期日

Arduino 的 Starter-Kit Project

Arduino 的 Starter-Kit Project,跟著試做已經進行到第5個教學例子。自從跟身邊朋友講起之後,原來也有些朋友有玩過Arduino,有學過電子的同事,學電腦設計的舊同學,點子活動中的新相識,都對這個有點認識。只是大概網上資源香港還是不多,主要仍然是台灣人架的網站,書店和圖書館也有少數台灣書可以找到。而香港除了我入手的RS Components外,還有深水埗黃金對面的福仁商場G37-Tell How Technology有賣。有一個叫Dim Sum Lab 的空間可以讓香港的同好交流,有點像Maker Bay的形式,但是不同的主題。

Arduino 是一塊電路板和編程語言的整合。但它卻讓很多沒有任何電工或編程經驗的人也可以開始動手做電子硬體的控制。它也是作為一個開源項目,讓社群的人可以在它的基礎上改善和發展,出現後推動了一股稱為自做者/創客的文化。它在電路上整合了微控制器(例如Arduino Uno上的ATmega328P),輸入輸出介面(各種Pin位、USB接口);當結合各種電子元件(如開關、感測器、LED、步進馬達),和配合Arduino語言(類似C)的程式開發環境,便可以嘗試自做一些電子機器。而特別令我感興趣的,是它讓自己可以連繫起軟體和硬體。看到網上的高手可以自行開發出很酷的東西:

<駭客只要用這個USB充電器,就可以竊取你的無線鍵盤輸入資料>
http://www.techbang.com/posts/21946

<將Arduino 變成Game Boy,還可自行設計遊戲的Arduboy>
http://www.techbang.com/posts/23764

<什麼樣的工程師能上太空?13 歲少年玩 Arduino,玩到被送上太空!>
http://buzzorange.com/techorange/2013/10/14/thirteen-year-olds-hack-their-way-into-space/

<簡易Arduino機器人製作>
http://www.makezine.com.tw/make2599131456/arduino13

說它是開源項目因為當初開發團隊的決定是開放這個項目的設計,只有Arduino這個名稱、標誌以及圖案是受保護的商標(不過,現在有關於 arduino.cc和 arduino.org的分別)。硬件的電子連接都是在創意共享Creative Common Attribution Share-Alike 授權條款去公開原設計文件,可以讓人模仿、以至修改成自己所需的底板或相容系統,他們的網頁上就有教如何自製一塊Arduino。就不同的需要,它們自家開發的就有初學者入手的Arduino UNO、細小便攜的Arduino Mini、可穿戴和縫紉在衣服上的LilyPad Arduino、有WIFI和增強了運算能力Arduino Yun等,其他人仕自行開發的有Intel Galileo, Webduino, 等。Arduino的社群中,在底板以上還有著不同的擴充板(Shield)可以擴充它的功能,如Motor Shield、Ethernet Shield等。而程式方面,用家可以在提供的IDE介面自行編寫控制程式(Sketch),而且還有各種的函式庫可以引用或自建。

等待了多日後終於收到包裹,充滿期待地拆開,這盒Starter-Kit體積不大,之後也才知道Arduino電路板對初次接觸的我來就其實也蠻小巧的:

一打開包裝盒,看到的第一句歡迎辭:「......To turn idea into reality. More importantly, It provide the basic knowledge and tools that can bring out your inner genius, and fuel your creativity forever. -What's your invention going to be?」。包裝內原本很整齊地包括一本指導手冊,零部件用小盒子分類放好,特別一個白色盒子中的就是Arduino Uno 底板。把它們統統打開集結起來:

主角:Arduino UNO board rev.3。軟體部分是Arduino的另一重點,只要上Arduino.cc網站就可以下載。

Project 1
用開關制和Arduino的Sketch控制接駁的LED,做出閃動的效果。
當一般學寫 C 或 Java 的程式的第一個程式是"Hello World",這個Blink Blink LED就是Arduino的"Hello World"。Arduino 板上也內建了一顆LED連接Pin13 ,而除去所有外接零件的話,這Sketch也是Arduino初次連上電腦時是否成功接駁的測試。

Project 2
多顆LED,Sketch中的迴圈和條件控制。

Project 3
用熱敏電阻感測溫度(Analog Input)。

Project 4
用光敏電阻,感測RGB三元色的亮度,去控制一顆三色LED。(Analog Output: 脈衝寬度調變(PWM)"~" )。

Project 5
引入Servo.h函式庫,用可變電阻去控制步進馬達的轉動。
(所提供的可變電阻腳位在麵包板上的接駁不是很穩固。完成時發現如果接駁是鬆鬆的,馬達就會亂跳。後來知道原來因為當程式中analogRead()的腳位沒有接好,測量值就會亂跳。)



沒有留言:

張貼留言