Webduino 讓網頁工程師不用學C++,用HTML就可撰寫開發板程式

Webduino 讓網頁工程師不用學C++,用HTML就可撰寫開發板程式

目前想要確實掌握開發板,沒有紮實的C++程式語言基礎根本做不到,但是現在網頁工程師和C++工程師的比例是9:1,因為如果可以讓廣大的網頁工程師也能用他們熟悉的語言來為開發板開發各種應用,那麼對於物聯網來說就會有更多的人加入,也可以加速物聯網的開發。

Webduino 讓網頁工程師不用學C++,用HTML就可撰寫開發板程式
▲這就是Webduino的開發板,馬克一號。(圖片來源

基於這樣的想法,Webduino在今年五月成立了。一開始主要是面向大專院校的教育市場,提供具有wifi功能的開發板和開發教具。但是和傳統從硬體出發的角度不同,Webduino提供的解決方案是,開發者只需要利用HTML的語法,大概在3個小時之前就可以掌握基本的開發。

Webduino是一套程式開發的工具,它是在Google Blockly的基礎上再做延伸開發。Google Blockly和Scratch一樣,都是一種圖像式的程式語言,用拖拉的方式就可以撰寫程式。美國已經把程式語言列入小學生的課程之中,而圖像式的積木拖拉撰寫方式則是入門的的第一步。

Webduino 讓網頁工程師不用學C++,用HTML就可撰寫開發板程式▲許益祥純軟體的背景,讓他在思考物聯網的時候,也是從軟體和雲端的角度切入。

Blockly是一套基於Webbase的開源軟體,Webduino則是Blockly上再做強化和功能的延伸,在原有的基本功能上,加入了一些其他的功能,像是人臉追蹤和顏色的判別等等。而同樣都是用圖像化拖拉的方式來撰寫程式,Webduino和Scratch有什麼不同呢?最主要的差異有二點:

Blockly本身就是web化的軟體,所以在瀏覽器裡就可以運行,因此和Scratch相較之下更容易整合像Youtube、Google map之類的網路服務。而Scratch本身是應用程式,需要裝在電腦裡才能執行,整個使用環境是較為封閉的。

另一個最大的差別是,雖然同樣都是用拖拉積木方式來寫程式,但是Webduino會產生程式碼。

雖然圖像式的拖拉很方便入門,但是業界在使用時,還是需要真正的程式碼來做修改或其他的應用,Scratch只能使用既有的積木,也沒法看到程式碼,而Webduino則會產生真正的程式碼。這些程式碼可以被複製出來,再放到程式碼編輯器裡去做延伸性的使用。這對於工程師來說,才能做更多的應用和微調。

Webduino 讓網頁工程師不用學C++,用HTML就可撰寫開發板程式▲Webduino在Blockly原有的基本功能上,加入了進階的功能。

Webduino 讓網頁工程師不用學C++,用HTML就可撰寫開發板程式
▲Webduino雖然可以用拖拉的方式來撰寫程式,但也會同時產生標準的程式碼,開發者可以做更多的修改。

Webduino執行長許益祥之前的背景就是純軟體,系統整合,因此思維方式都是從軟體和雲端出發。他舉例,以往想要讓開發板上的LED燈發亮,用傳統的方式工程師必須要知道訊號腳、數位訊號和ROM之間互動的方式,他才能點亮這個LED燈。

但是HTML的語法都是標籤式的,放表格的標籤叫table、放圖片的標籤叫image,所以Webduino已經把開發板上要控制的元件都變成一個個的標籤封裝起來元件化,當想要控制LED燈時,只要只要寫個「LED」就可以控制LED燈了。網頁工程師只需要利用原有的知識,像以前一樣寫個「LED ON」就可以點亮LED。


▲在Youtube上可以找到許多用Webduino的影片。這是示範如何利用人臉追蹤來點亮燈炮。

許益祥強調:「我們不是要取代C++來開發,畢竟如果如果想學得比較深、比較紮實還是得使用C++,我們只是提供一個門檻比較低的入門方式。」

以往要控制開發板都必須去寫C或 C++這些生硬的程式語言,這必須對硬體有全盤的掌握才能辦到。但是寫網頁的人一開始出發點不是為了控制板子,所以Webduino提供了這樣的工具和技巧,讓這些原本寫軟體的人,也可以用他們熟悉的方式控制開發板。而Webduino技術也是Open Soruce的,如果有興趣深入研究的人,也可以自己再深入去理解這些是怎麼做出來的。

Webduino 讓網頁工程師不用學C++,用HTML就可撰寫開發板程式▲在https://github.com/webduinoio/wafirmata可以下載到Webduino的軔體。

Webduino 讓網頁工程師不用學C++,用HTML就可撰寫開發板程式
▲其他的原始碼都可以在https://github.com/webduinoio下載

許益祥認為在物聯網的時代,重點在雲端而不是開發板本身,開發板是一個配角,雲端才是主角。

硬體廠商的想法是,在開發板裡寫程式,提供雲端的API,然後再去呼叫這些API後板子可以串雲端,再把資料往雲端抛,這是很正規的方式。因為Webduino要做的是用網頁、雲端的技術來控制開發板,所以想法是在雲端上寫程式,直接控制開發板,和以往用C++的技術來控制板子,再將資料抛送到雲端是完全不同的技術呈現方式。但是C++本身是很紮實的技術,如果想要完全的控制硬體,那C++是必須要學的。只不過Webduino可以讓你在剛入門的時候很快的控制這些硬體。因此Webduino想要推廣這樣的技術。

Webduino也有推出自己的開發板,最主要是具備了wifi上網的功能,只要有個USB的電源,就可以讓Webduino開發板上網。但是如果你原來就有Arduino的板子,也可以透過連接電腦的方式,使用Webduino的開發工具來做開發。只要開發板是透過有線連接的,使用上沒有任何的限制,但是如果想要有wifi上網,使用Webduino的開發板是最簡單的方式。

Webduino 讓網頁工程師不用學C++,用HTML就可撰寫開發板程式▲這是Webduino UNO雲端擴充板,可以安裝在Arduino UNO板子上,讓開發者使用Webduino雲端技術來操控硬體。

以往談論的物聯網是大多應用在工業領域machine to machine,但是在現在網路無處不在,萬物皆可上網的時代,物聯網才開始走入商業端和消費端。像是以前在做倉儲管理時車上的電池需要監控、大樓電梯需要維護,但以往可能半年才例行的檢修一次,但是在物聯時代,只要透過各種開發出來的產品放在裝置上,裝置有了異常的狀況,就可以主動回報,減少各種意外狀況的產生。

許益祥說,Webduino在軟體的部分會持續的更新加強,往前端強化圖像式拖拉產生程式碼的功能,往後端就是做更多的流程管控、事件觸發、讓廣大的網頁開發者都可以用雲端的技術來控制開發板。

Haopeng
作者

T客邦產業編輯,techpodcast主持人,長期關注電子書閱讀器、電子書商城、硬體元件等相關領域,負責電子書相關軟硬體測試、提供電子書格式比較、評比。歡迎聯繫來聊聊業界最新訊息。

使用 Facebook 留言
發表回應
謹慎發言,尊重彼此。按此展開留言規則