• 沒有找到結果。

程式語言與開發環境

第二章 文獻探討

第六節 程式語言與開發環境

本節將介紹本研究使用到之程式語言與開發環境,將分成 Arduino,

Arduino Yun,Temboo,Python,HTML、CSS 與 JavaScript 和 App Inventor 來說明。

壹、Arduino

Arduino 是由義大利 Ivrea 鎮一家高科技設計學校的老師 Massimo Banzi 所發起,發起的原因是因為他的學生們經常抱怨市面上可用的微控 制器與零件太過昂貴,於是在 2005 年 Massimo Banzi 與 David Cuartielles 討論後決定設計自己的電路板,且引入 Massimo Banzi 的學生 David Mellis 設計電路板及編寫程式,並以 Ivrea 鎮有名的歷史人物 Arduin(11 世紀北 義大利國王)為名,這才開啟了 Arduino 的一切(趙英傑,2013)。

Arduino 使用了 Atmel AVR 單晶片,採用了基於開放原始碼的軟硬體 平台,此平台不只包含了一塊簡單 I/O 功能的電路板,也使用簡化的 C/C++

程式語言,提供眾多函式庫,方便開發。比起其它微控制器,Arduino 具 有下列的優勢:

一、開發成本低:因 Arduino 的硬體電路圖在網路上開放下載,使用者 可以自行焊接組裝,或是直接購買 Arduino 官方或第三方廠商製作的開 發板,比起其他微控制器 Arduino 板相對便宜的;而程式開發軟體 Arduino IDE 則可從網路上免費下載使用,將學習與開發成本降至最低。

二、跨平台:Arduino 的開發軟體可在不同的作業平台下執行,包含 Windows,Macintosh OSX 和 Linux。

三、簡單與清晰的編程環境:Arduino 將單晶片編程的繁瑣細節包起來,

也簡化了與微控制器的工作,讓開發流程適合教學與學習的環境。

25

四、開放源碼:Arduino 軟體採用開放原始碼的方式,任何經驗豐富的 程式設計師都可從官網下載後,根據自己的需求予以擴展;Arduino 的 函式庫由 C++撰寫,若想了解技術細節可從中學習。

五、可擴展的硬體:Arduino 是基於 Atmel 的 ATmega168、Atmega328 微處理器,其開發板的設計電路圖允許在創用 Creative Commons 的許可 下,讓經驗豐富的電路設計者依自己的設計予以擴展和改善,由於官方 網站的教學內容豐富,社群分享的參考資料多,讓即使缺乏經驗的用戶 也能自行建立電路板,節省金錢。

由於上面的因素,所以本研究使用 Arduino 當作主控制板,進行智 慧居家控制的主要核心。

貮、Arduino Yun

Arduino Yun 為 2013 年所發表的新款 Arduino 開發板,其優點為具有 雙處理器,ATmega 32U4 負責處理 Arduino I/O 的功能,Atheros AR9331 處理器則可使用 Linux 作業系統來開機,此作業系統支援 python 且可以透 過指令進行軟體的安裝,且具備了一個乙太網路接頭與 Wifi 功能,其無線 與有線的通訊能力都很強大,本研究選擇此開發板的原因是 Arduino Yun 可以很容易地架設 Web Server,讓我們可以很容易透過網頁進行 Arduino I/O 的控制,在開發上有很多的彈性(曹永忠、許智誠、蔡英德, 2015)。 參、Temboo

Temboo 為一網路服務 API,透過 Temboo 我們可以很容易地將 Arduino Yun 的資料送到 Google 試算表或將照片上傳到 Dropbox 等,但其免費帳號 的限制為每個月只能上傳 750 筆資料。

肆、Python

在進行照片的拍攝或錄影我們必須撰寫 Python 程式到 Arduino Yun 的

26

SD 卡中,以進行拍攝或錄影的動作,利用 Python 整合 arduino,可以作到 軟體和礎體上的結合,讓學生的專題更加多元。

伍、HTML、CSS 與 JavaScript

本研究將把家電的控制以網頁呈現,所以需要透過 HTML、CSS 與 JavaScript 來撰寫網頁。

陸、App Inventor

App Inventor 是由麻省理工學院 (Massachusetts Institute of Technology, MIT) 發展基於區塊編程的工具,讓任何人即使是初學者也都能很容易規 劃與建置功能齊全的 Android 應用程式。App Inventor 最初是由 Hal Abelson 教授在 Google 休假時與 Google 教育團隊開發的,2012 年 1 月 1 日 Google 實驗室將整個 App Inventor 計畫移交給麻省理工學院行動學習中心維護,

並持續免費與開發原始碼的精神,在 2013 年 8 月 MIT 行動學習中心發表 了將 Blocks Editor 整合在網頁中並大幅提升功能的 App Inventor 2,簡稱 AI2,並將原來的 App Inventor 更名為 App Inventor Classic,App Inventor Classic 與 App Inventor 2 程式設計概念是相同的,一樣是於 Designer 頁面 設定好元件配置後至 Block Editor 撰寫程式以決定程式的行為(蔡宜坦,

2015)。

本研究透過 App Inventor 進行手機端程式的撰寫,其區塊編程的方式 讓學生比較容易入門,降低手機端程式開發的難度。

27