國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
2.3 圖型化程式語言環境案例
圖型化程式語言的工具,常針對科學家、設計師、藝術家、音樂家、兒童等 族群,被運用在科學運算、機器人控制、影像處理、聲音處理、甚至是3D 遊戲 與手機程式設計等領域。不需閱讀厚重的程式語言書籍,不用寫任何一行程式的 前提下完成工作,減少程式知識上的負擔。以下介紹10 款圖型化編寫工具的案 例:
圖 26 右側為 labView 的圖型化程式編寫空間,左側為使用者介面
LabVIEW 為 Laboratory Virtual Instrument Engineering Workbench 的簡稱,
是由美國國家儀器公司所開發的圖形化程式編譯平台,軟體最初於1986 年在蘋 果電腦上發表。LabVIEW 早期是為了儀器自動控制所設計,至今轉變成為一種 逐漸成熟的高階程式語言。
20多年來,LabVIEW 已超過數百萬名的工程師與科學家使用,它可用來設 計圖形化程式,整合各種硬體測量設備,有助於快速設計開發,完整佈署量測與 控制應用。LabVIEW 主要有二種特點,它所使用的G程式語言是運用圖型式程 式模組相連結,可被直接編譯為 Machine code,讓電腦處理器執行之。G語言雖 然是以圖形化的方式替代文字,但仍具備大多數傳統程式語言的程式設計概念。
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
舉例來說,G包含所有標準結構,有資料類型、迴圈、事件處理、變數、遞迴,
與物件導向程式設計等。
另一特點,即是可根據資料流的規則而執行,不同於 C 與 C++ 的大多數 文字架構程式設計語言,必須依序執行指令。如 G 的資料流程式語言,均可於 所有程式背景之後將資料推升為主要概念。程式節點之間的資料流,將決定執行 作業的順序,而非文字行列的順序所決定。
圖 27 G 程式語言簡單將兩輸入數值相加
而在校園中,大多數的程式設計語言,學生均需耗時了解特定語法,再對應 該語言的架構,才能解決問題。G 圖型化程式設計有更好的處理方法,以人的 直覺觀察並處理圖像,而不需耗時建置大量程式碼。
另外,LabVIEW也率先引入特別的虛擬儀表概念,使用者可透過虛擬人機 介面直接控制自行開發之儀器,LabVIEW也包含眾多函式庫,像是訊號擷取、
訊號分析、機器視覺、數值運算、邏輯運算、聲音震動分析、資料儲存...等。目 前也被廣泛的應用於工業自動化之領域上,受到系統開發及研究人員的喜愛。
(Labview,1986)
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
圖 28 Max 的編寫環境,左半邊是編輯區,右半邊是可使用的物件
Max 圖型化程式設計軟體內,每個圖型化物件都包含了一段小程式,只保留 輸入與輸出的接口,讓使用者只需在乎輸入端與輸出端,不用了解物件處理邏輯 的過程,只要簡單地把物件放在畫布當中,用連接線把物件連結在一起,不用寫 任何程式碼,就能創造出互動軟體。電子音樂家們用 Max 做出自己獨特的聲響,
特殊的樂器,以及專屬的演出系統,現場視覺藝術家用 Max 做出能與聲音或其 他輸入互動的視覺特效,展場設計師則用 Max 做出豐富而有教育性的展出,來 吸引美術館的觀眾,互動媒體藝術家則結合不同科技,感應現場的變化,來挑戰 觀眾,或讓他們會心一笑。科學家與研究者則能利用 Max 的快速原型及相容性,
來發展實驗及記錄數據。電玩設計師與聲音設計師則用 Max 創造電玩音效,研 發客製化的開發工具,並測試新控制器的原型機。
圖 29 利用Max 與 Kinect 結合,做到肢體互動的表演
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
在世界許多大學中都使用 Max。無論是電腦音樂,互動媒體與新媒體,聲音 設計等等不同科系,針對不同背景的學生,都能夠簡單上手。 Max 的圖型化程 式語言,降低初學者的學習門檻,能讓學生不對程式碼心生卻步,從而獲得駕馭 電腦運算的強大力量。(Zicarelli, 2003)
圖 30 利用 PureData 製造聲響且同時與影像互動
Pd ,全名為 Pure Data,是一種即時圖形化編寫程式環境,針對音頻、視頻 和圖形的處理。最初是由 Miller Puckette 所開發,同樣為 Max/msp 的作者,pd 原本只處理聲音的部份,而後很多創作者、程式設計師將它另外擴充了其他領域 的功能,像是專門處理圖形的GEM。因此 Pd 不僅可以處理聲音也可以處理影像。
比起過去的文字程式語言,像是C++,它能夠更快速的開發,塑造想法,並且更 容易讓初學者入手且了解。也因為他開放原碼的特性,讓他與Max/msp 相較起 來,介面更簡單,更有彈性支援到不同的平台上。在創作上,使用者可以透過 pd 做聲音合成、用聲響控制影像,做到現場聲音及影像的的表演,或是影像處 理,也可透過網路讓多台電腦同步、網頁互動,以及做到各種感測器的互動,互 動裝置、視訊的控制,或是控制機器人。(PureData, 2010)
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
圖 31 Synthmaker 的編輯環境,圖型設計上利用很多實體物件
SynthMaker編寫方式與Max相似,是一個專注於聲音創作的工具,讓創作者 可透過許多圖型化儀器、效果控制器,在編輯空間中配置,相互串聯,創造自己 的聲響,而不用寫任何一行程式,就可即時聽到反應的效果。(SynthMaker,2007)
圖 32 利用 Lily 抓取xml 網頁的照片
Lily是一個基於網頁的圖型化程式語言,他利用資料、影像、文字之前的連 線來完成程式,不用寫任何文字的程式,操作起來與Max、PureData相似。Lily 由JavaScript撰寫,且開放原碼,只要在Firefox瀏覽器上安裝Lily的外掛,就可以 創造網頁的原型、產生圖型、動畫,或是播放音樂,連結網路上的其他電腦,在 網頁瀏覽器中。
Lily的每一個物件都被稱為external,每個external物件擁有單一的功能,像
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
輸入以及輸出的連結,就可以完成很多互動。特別的是,總共有超過180種的 external物件,部分有使用到Twitter、Amazon、Flickr、Wikipedia、Yahoo的API,
也可透過Open Sound Control的訊息與Arduino開發板溝通。(Lily, 2012)
圖 33 Scratch 的動畫編輯環境
Scratch 是一款適合 8 歲以上兒童,作為學習程式設計的入門軟體,他可以 透過圖型化的設計,讓使用者輕鬆的規劃劇情、製作動畫、遊戲、音樂等,並且 上傳分享到網路平台上。每個圖型化物件如同拼圖一般,相互拼接堆疊,產生一 連串的程式邏輯,與Max 不同的是,他沒有線斷連接,由彼此緊密的物件由上 而下的先後排序,決定邏輯順序,至今已發展出多種版本。
開發團隊希望能用Scratch 來幫助 8 歲以上的兒童發展二十一世紀的學習技 能。使用者可以在學習過程中了解數學、電腦概念,同時也學到如做有創意的思 考、系統化的推理,以及與他人合作。(Resnick et al., 2009)
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
圖 34 Modkit 可透過圖型化設計設定電子電路連接的腳位
Modkit 是一個圖型化編寫環境,他可以讓兒童、藝術家、發明家去創造電 子電路作品,控制像是馬達、感測器、LED 燈泡、到最流行的 Arduino 電路板。
創作者最初是受到Sratch 程式編輯環境的啟發,不同的是,他是針對硬體的控制,
簡單的透過拖拉虛擬程式的圖像、硬體腳位設定也將之圖像化,與Max 所有物 件都是方塊圖型不同,也不是利用線來連接彼此。Modkit 在程式連結的過程中,
仍然保留Arduino 程式語言的結構,利用像是拼圖的方式將每一塊物件給組合起 來,擁有函式概念的物件,也會將內部程式碼前後框住,最後呈現的圖型架構與 真實語言相同,還可以輸出真正的程式碼,對於學習Arduino 程式語言的使用者,
是一大幫助。(Millner & Baafi, 2011)
圖 35 利用Modkit 撰寫基本 LED 閃爍程式
創作者希望大家都可以利用程式以及工程來解決問題、表達他們自己、製造 一些娛樂、分享知識、最後增進他們的生活樂趣。目前提供給使用者網路版本,
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
以及電腦軟體版本。
圖 36 Alice 3D 編輯環境
Alice 是針對程式初學者所設計的軟體,可透過圖型化程式語言簡單創造動 畫去講述一個故事、創造一個互動遊戲、或是一個可分享到網路上的影片,教學 目標是希望幫助第一次學習物件導向程式語言的學生入門。在Alice 環境當中,
3D 物件都可以透過圖型化物件的拖移來創造動作,且立即得看到程式編輯後的 反應,從動畫或是簡單的遊戲中學到程式語言的基本觀念。(Alice,2003)
圖 37 LEGO MINDESTORMS Education NXT Software 編輯環境
至今可以編寫NXT程式的軟體有很多,主要的圖形化編輯軟體有LEGO MINDESTORMS Education NXT Software、ROBOLAB、 Microsoft Robotic
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
Developer Studio等等,這裡主要探討的是LEGO官方出的NXT Software。在圖型 化程式的編輯中,由一個主要軸線串起所有圖型化的物件,物件包含馬達、聲音、
螢幕為主要輸出硬體,加上邏輯物件,迴圈、等待、Switch,而邏輯物件又可選 擇,要從何感測器來做邏輯判斷。互動操作上,會將物件插入樂高接榫點來進入 邏輯順序中,回饋與真實世界相呼應,使用上雖然限制邏輯物件的排列方式,但 在物件數量多時,比起Max、PureData等軟體的連線式互動,畫面上會更加整齊,
比較容易觀看整體的邏輯。搭配圖案的物件,也比Modkit將程式語言變為拼圖的 方式,更貼近NXT的使用族群,10~14歲的兒童。讓使用者不像是在撰寫程式,
而是在接力拼圖一般。
NXT Software使用族群廣大,也造就背後的社群知識平台完備,美中不足 的是,造價昂貴,不是一般使用者都負擔得起。(Lego, 2003)
圖 38 App Inventor 的軟體開發流程
App Inventor 原是Google實驗室的一個子計畫,由一群Google工程師與使用 者共同參與。Google App Inventor是一個完全線上開發的Android程式環境,拋棄
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
除此之外它也正式支援樂高NXT機器人,讓使用者透過App Inventor的簡易開發 方式,也可以使用藍牙來控制NXT機器人。對於想要用手機控制機器人的使用者 而言,剛開始也只需要使用基本元件例如按鈕、文字輸入輸出即可。App Inventor 於 2012年1月1日移交給麻省理工學院行動學習中心,並已於3月4日公佈使用。
除此之外它也正式支援樂高NXT機器人,讓使用者透過App Inventor的簡易開發 方式,也可以使用藍牙來控制NXT機器人。對於想要用手機控制機器人的使用者 而言,剛開始也只需要使用基本元件例如按鈕、文字輸入輸出即可。App Inventor 於 2012年1月1日移交給麻省理工學院行動學習中心,並已於3月4日公佈使用。