自造者運動風潮的主角 — Arduino
自造者風潮
當網路和實體相遇,吹起了一股自己動手做、改造世界的自造者風潮(maker movement),Arduino正是這波風潮最主要的推手。開放的硬體和軟體吸引喜歡動手做的Maker,創作出許多眼晴一亮的作品,這篇文章從Arduino 出發,讓這波動手做風潮和中小學的科學教育合作,創造出更多不同的可能性。
Arduino介紹
2005 年時,義大利一所設計學校老師和學生共同合作,一起動手設計出自己的第一張電路板,使用ATEML AVR 的單晶片微電腦為核心,幾乎任何人,即使不懂電腦程式設計,也能用 Arduino 做出很棒的互動裝置,像是對聲音做出燈光的反應,或是控制馬達,創作出不同有趣的作品。
Arduino 採用開放硬體的方式,將設計圖放到了網路,使用創作CC授權許可,讓任何人都可以自由地參考,容易地改變原有的設計,加上自己的想法。基於Arduino硬體設計的改造版本也必須公開,以保證新版本的Arduino 電路板也會跟原來版本一樣的自由和開放。使用者在 Arduino 板子上接上各種電子裝置,例如 LED RGB彩色燈、喇叭、馬達、開關、溫濕度感測器、紅外線發射與接收器、LCD 顯示裝置, 也可以接上Ethernet、WiFi、XBee、Bluetooth、RFID、GPS、GSM 等無線通訊模組,創作出不同的作品(圖1、圖2)。


引領新風潮
經過多年的發展,Arduino 在自造者運動中引領風潮,像是3D 列印和多軸直昇機兩類新科技,這些產品都是使用Arduino為產品的核心:
3D 列印- 屬於快速成形(rapid prototyping)製造技術的一種,利用電腦軟體技術將數位模型檔透過新興材料科技,直接製造出三度空間中的實體。3D列印與傳統的機械加工技術不同,3D列印採用增材的方式生產,傳統機械加工通常採用切削或鑽孔技術(即減材方式)實現。傳統方法要先有模型再使用模具製造,而後再進行大量生產。3D列印一開始在工業設計等領域被用於製造模型,後來也逐漸用於一些產品的直接製造,達到少量多樣個人客製化的目的。3D 列印目前除了可印出精細的塑膠模型外,還有3D 列印電路板、3D 列印食物、3D 列印房屋、3D 列印樂器等等,幾乎無所不印,總是有令人意想不到的新作品被印出來。RepRap 是3D 列印重要的開源平台,強調可以進行「自我複製機」,簡單來說就是可以使用自己這台3D 列印機,印出下一台3D 列印機所需要的零件。這些開源的列印機,通常都是使用Arduino Mega來控制三軸的馬達和噴頭。
多軸飛行器-近幾年來得到快速的發展,主要突破是使用電傳飛行控制系統以及反應迅速的電動機作為動力系統,簡單來說就是精密的小陀螺儀和強而有力的電動馬達,克服了多軸飛行器的主要缺點。多軸飛行器中最常見的組態就是四軸的版本,馬達數量少、體積小而重量輕、攜帶方便、飛行穩定、操控靈活、可以在戶內和戶外使用、和能輕易進入人們不易進入的各種惡劣環境。飛行器常用來製作模型,也用來執行航拍電影取景、實時監控、地形勘探、工地量測等飛行任務。目前常見的飛控板中,APM Copter 和MultiWiiCopter 是基於Arduino 來開發(圖3)。相較於其它飛控板,使用Arduino 的最大好處就是可以吸引更多開發者的目光,進而加入專案,使專案功能更完整。

Arduino家族
經過多年發展,Arduino 開發板已經超過10 種,以下介紹常見且重要開發板:Arduino Uno - Uno 是拉丁文數字「1」的意思,正是Arduino 的第一張開發板,開發者一定要有的基本款,目前發展到了第三代(Rev3),有14 組數位輸出輸入IO 腳、6 組類比輸入腳、32k 的Flash 記憶體,可以滿足90% 專案的需求,和手掌大小不多的尺寸,相當適合學生學習使用。Arduino Mega 2560 - Mega 是大的意思,硬體設計上非常有巧思,左半邊就和Uno 板是一樣的接腳,可以沿用ArduinoUno 的Shield,右邊多出來的一塊就是提供更多IO 接腳,共有54 組數位輸出輸入腳(14 組可以設定為PWM)、16 組類比輸入腳、4 組UART,可以用來做比較大型的專案。雖然腳位非常多,價格也不會太昂貴。Arduino Yún -中文名字雲(Yún),是最新的Arduino 開發板,提供良好的網路功能,包括Ethernet 和Wifi。作業系統是完整的Linux,可以安裝Python 2.7 ,腳位設置和Uno 相同,包括20 組數位輸出輸入腳(7 組可以設定為PWM)、12 組類比輸入腳。因為具有網路能力,設計上適合來做網路的應用,成為物聯網中的一個裝置。
Arduino程式開發
Arduino 在程式設計方面,大多使用C和C++ 來開發,對中小學生來說有一些難度。不過因為Arduino 開源的特性,吸引許多開發者結合Scratch 做出適合國小中高年級年紀小的學生使用。網路上有許多版本用不同的方法結合Scratch 和Arduino,目前發展比較好的是Scratchbot,這個開源專案是基於Scratch Offline Editor 改寫,直接利用串列埠通信,和載有標準軟體(Firmata)的Arduino 溝通,電腦就可以執行Scratch程式遠端控制Arduino。Scratch程式相當的簡單直覺(圖4),國小學生在經過幾堂課程學習後都應該可以上手,與遊戲相結合,進一步創作出有趣的互動作品,比如透過光敏電阻(光的感測器),在Scratch中做一個飛行的遊戲,主角在白天的時候(光敏電阻有收到亮光),是一隻老鷹飛翔,捕捉獵物;夜晚時(光敏電阻沒有收到亮光)就變身成蝙蝠,要躲開會攻擊它的敵人。
親自動手操作Arduino的課程設計上,常常因為材料準備不易,多以套件的方式出現,讓學生可以按步驟一步一步的做出具像的作品。套件式的組裝學習會限制創作的可能性,這種實施方式無法讓學生進行真正的創作。教學應該著重在基本能力的指導,再給學生足夠的材料自由發揮。以LED燈作品為例,教會學生如何接LED燈的線,和程式如何撰寫後,就可以請學生拿一個紙盒或容器,將LED燈固定在盒內,讓亮光透出,再加上自己的創意,做出不同的造形和用途。有的學生可以做出機器人,有的學生可以做出小動物,動手做教學的目的應該是激發學生創作的能力,而不是教會學生製作完成那一個作品而已。讓學生愛上自己獨一無二的作品,才會引發親自動手做的動機,也才會有一個又一個好的作品(圖5),也才能讓創新及創作成為學生成長中一定要具備的DNA !

