|

伸手抓起 Arduino Yún 我看見曙光!

   

作者:Michael Huang

0425 Arduino Yun工作坊

0425 Arduino Yún工作坊

筆者有幸受邀參加 MakerPRO 主辦的「用 Arduino Yún 自造智慧家電」工作坊,與大家玩了一整天之後,有了一些奇妙的想法。其實我覺得這部分應該由資深的 Database Developer / Backend Engineer 來介紹比較好,不過既然 Arduino 本來就是開源、開放給大家用的,那麼我就我所感受到的來拋磚引玉、做個討論。

我想應該會有其他先進們針對這次的活動作介紹,甚至是介紹 Arduino Yún 這片新的控制器,所以我就簡單提幾個與後續討論相關的重點就好。

首先,我們可以看到下方 Arduino Yún 的實體圖:

Arduino Yún 的正面實體圖。

Arduino Yún 的正面實體圖。

Arduino Yún 的背面實體圖。

Arduino Yún 的背面實體圖。

還有另外一張架構圖(死改不了工程師個性,就是要看到硬體架構圖~):

Arduino Yún 的架構圖(圖片來源:<a href=

我們可以看到 Yún 在這方面分成兩個區塊:一個是原本的 Arduino core,另一個是 Linux core(Linino,基本上把它想成一種 Linux 版本就好)。而板子上面只有原本就是用來燒錄的 USB(這次使用 Micro-USB)是 Arduino 這邊能控制的,其他周邊像是乙太網路、USB、micro-SD 卡槽等等,都是屬於 Linux core 來控制,兩個 core 靠中間的 Bridge Library 來溝通連接。

基本上,要了解這一片板子,需要知道的大概就是上述這些,剩下要如何操作使用、如何設定配置等等,在網路上有非常多的教程,有興趣的人可以照他們所介紹的步驟去作,就可以完成連接(像是:國外圖文並茂帶影片的介紹或者是國內教學一等一的CAVEDU所寫的一些課程教案範例專案等等甚至是Arduino官網上也有詳細的步驟教學)。

嘗試任何東西之前,必須要先了解它

就像我之前所提到的,我們不能看到有新玩意就一股腦兒的要用它來做些嘗試,事前的分析與討論,其實有助於發揮材料的最大價值。就上面所介紹的那些教程裡頭的操作流程,我們可以發現要真的如我們想像中能輕鬆操作 Yún,事前的準備與設定其實頗為繁瑣(先連它、設定好、斷開、再連它、再更改、然後就暈了)。

這部分的操作讓我想起以前在設定網路路由器的時候,要先將硬體連線,之後才能更改內容,但是又需要用另外一種方式來使用;另外在前幾年,要把印表機連上路由器,才能夠方便進行網路列印的時候,也是一下要進去印表機設定、一下又要去路由器設定,然後電腦端也要改,這些時候就能夠體會工程師異於常人的一面(喂,Arduino Yún 就是要給常人使用的耶!)。

所以說囉,現在印表機要設定網路列印,只需要按個鈕,然後再去路由器按個鈕就好,Yún 做不做得到呢?

從工程角度來探討 Yún 的發展性

再來就是我露出工程師個性的黑暗面的時候了(咦?)…我是說,再試著以工程角度來說,Yún 有可能怎麼樣發展?

如果撇開 Linux core 不看,那麼 Yún 根本就是雞肋,處理器沒有 Arduino Due 強、大小卻比 NANO 或 ATTiny85 系列板大那麼多,因此可以看出 Linux core 這邊,才是整個新產品的核心。

由於這個 Linux core 的硬體只有 64MB 的 DDR2 以及 16MB 的 Flash(呃…拿來當手機還會被我丟去馬桶沖水),所以目前幾乎只能拿來作通訊連網功能,不過因為是第一代產品,我想這個可以很容易解決的問題應該不是重點(大不了花錢而已嘛),重點應該是在於 Arduino core 與 Linux core 之間溝通方式的建立,有了這個大家方便使用的溝通方式,之後要由什麼樣的 Arduino core 與什麼樣的 Linux core 溝通,應該就非常容易了。

舉個例子來說,現在的 Database 大多是採用 Linux 架構,因此要由 Database 的資料來做出決定,使得某個物理現象發生(例如說當 Database 發現自己容量不夠的時候,跑去把插頭拔掉),未來就可以輕鬆地透過 Linux core 下指令給 Arduino core 來達成。

另外,又因為設定好之後的 Yún 可以透過 Wi-Fi 燒錄,如果遠端發現一個機器人的 Arduino core 收集到的資料顯示遇到麻煩時,比如說遇到一堵牆,走不過去而只能跳過去時,可以透過線上重新燒錄來達成新的功能(這根本就是駭客任務的梗啊!)。

那麼,反過來呢?當然也要有可能才行!(謎之音:不然怎麼跟 Raspberry Pi 2 比輸贏!)

Arduino Yún 其實同時做很多事情

兩個 core 的溝通函式庫 Bridge Library 中,有一個 File IO library,就可以從 Arduino core 下指令到 Linux core,而且還能夠從 Arduino core 這邊命令 Linux core 來執行它裡面的程式(Shell、Python 皆可)。

再加上 Linux core 掌握了儲存功能的 micro-SD 以及溝通用的 Wi-Fi,這就像是 Arduino core 是大腦,而 Linux core 是腦幹啊,腦幹可以負責後端處理資料的部分,以及對外溝通、存取資料等等,而大腦可以保留下來,以便應付突如其來發生的狀況。

我們試想,當某一天,四軸飛行器用來幫助警察巡邏用的時候(雖然說他們會開紅單,很討厭,但還是幫他們一下~),突然遇到有壞人要先攻擊四軸飛行器,才方便襲擊被害人的話,Arduino core 可以專心用來負責躲避攻擊,而 Linux core 趕緊通知中心,請求支援。換成只有一顆大腦來處理全部的事情,要是在呼叫對講機的時候被打到了,那還真糗。

這麼有趣的事情,真是叫人熱血沸騰到手指都可以發射空氣砲了!(喂,老梗!)

那麼各位 Maker,快來做些有趣的 Project 吧!

Michael Huang
Michael Huang

Author: Michael Huang

即使國中便進了數理資優班,但仍然星期一到六天天至補習班報到。到了師大附中數理資優班,累積了這麼幾年過程困難的訓練,卻也因此而對事物有自己的一套理解方式。 有幸在台大電機努力四年後,在美國密西根大學挑戰機器人的衝擊,也因此更深刻體會台灣教育與學生的不足。我還不知道哪一條路會成功,但是至少我看過比較多失敗的方法。 現在致力推廣機器人及其教學,為全國機器人競賽「PowerTech全國青少年科技創意創作競賽」首席研發及講師。另一方面將以深入淺出的方式來引導實作方面的技術軟實力。 部落格:輕鬆動手

Share This Post On

Submit a Comment

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *