前言
感謝MTK聯發科提供機會讓我有幸能參予Linkit One的測試
這是我在這一段時間的體驗,其中包含了很多我自己的看法,若有不足之處還請多包涵~
因為已經有相當多的開箱文及介紹 所以我大多只紀錄一些比較印象深刻的地方囉!
希望能藉由這篇心得快速的來帶大家認識Linkit One及上手開發~
如果有任何問題或指教歡迎來信: [email protected]
本篇心得
優點
定位
問題
LinkitOne & Socket
總結
> Linkit One
過去有玩過Arduino Uno所以當發現Linkit One時,有種很親切的感覺
可以說是衝著廣大Arduino族群來的,能否獲得青睞還有待觀查
絕大多數能在Arduino執行的範例都能相容到Linkit One執行
少數專案只需要小量修改(部分library)便可以無痛轉移~ 甚至連IDE都可以相容~
Code可能只微調25%左右 然而底層的實作可能大不相同 (這句話最近有點耳熟…? 錯覺吧?)
不過Linkit One核心因為涉及商業機密所以沒辦法完全 Open Source 這點要知道一下~
優點
上述提到大多數的code與IDE相容之外
Linkit One有的還提供一些進階lib讓你可以做更細膩的操作
以呼吸燈會用到的analogWrite為例:
analogWrite 只提供 0~255的調整
**analogWriteAdvance** 可以 0~1023
目前正式支援了Windows & OSX已有人實際hack出Linux的開發環境(非官方)
不過相信不需要太長的時間三大平台就都能夠加入Linkit One的開發
> Linkit One 支援OSX開發環境
使用Linkit One的好處之一就是,大部分在開發的情況下我可能會使用到的模組
已經在開發版上,所以開發版一到手上,接上感測元件就可以進行資料傳輸~ 這相當方便
有點像是All in One的感覺,列出一些玩過後比較有印象的部分~
- GSM: 發簡訊、行動上網、打電話
- Wifi上網
- 藍芽傳輸
- GPS
- SD卡
上述提到的部分都是已經附帶在Linkit One之中(附贈模組要接上)
> 背面: 可供SIM卡、SD卡插入
另外也是MTK一直想強調的點XD 就是記憶體比較大,連SSL加密傳輸都可以支援!
定位
開發者們往往容易忽略了硬體實際產品化的問題及難度,所以MTK推廣Linkit One最主要的目的
並不是要打造MTKLab的自我品牌,而是希望能夠透過聯發科的資源協助開發者們尋找廠商,
能夠做到小量的產品化並進行創業,讓實際問題的解決方案變的可行
這也是為什麼在Linkit One上,像是把電流壓低至手環能接受的程度等等的做法
可是對開發者來說呢?
Linkit One的一些設計可能不見得是部分開發人員想要的
就像有人會覺得電流太小 需要外接電源,而非是以手環為準,可能是其它物聯網裝置
通訊功能是MTK的強力主打,雖然人手一機,但現階段需要有多的SIM卡來插在物聯網裝置上,可能不是使用者樂見
不過能藉機把玩一下通訊功能也是一個不錯的經驗啦XD
說到這個倒讓我想到大二曾經在Server端或APP上用Python玩過發送電話及簡訊
下面有兩家比較有名的服務商:
Nexmo: https://www.nexmo.com/pricing/
Twilio: https://www.twilio.com
申請後可以拿到約200封免費的簡訊扣打,不過一封頂多換算約台幣0.3~0.5 所以也不太痛~
這頂多算是我預想得到要用上通訊的硬幹玩法XD 應該不太可能真的這樣搞…
Linkit One可能被擺在天邊某一角又沒網路不過電信服務剛好有訊號 需要透過Server跟它溝通去觸發某件事
或許最終手段就是發簡訊來讓它收到XD 當然是少量間隔長適用…不然簡訊送太多心會痛
期待也許有人有其它惡趣味的玩法也說不定 哈
Linkit One的CP值很高,主打Arduino相容,但對於廣大的Arduino族群或不少Maker來說
目前Linkit One許多的功能要在Arduino上做到也不算太難,再加上價格相對高些,
反而使得Linkit One處在一個相當尷尬的狀況下,這就得看未來MTK是否能讓Linkit One的定位有所區別
當然相容於Arduino也會伴隨著開發環境問題跟包袱存在,好不好就看人了
或許將Linkit One最小化到極致是個不錯的選擇,我妄想著開發可能超級麻煩,開發時什麼都要外接,
麻煩歸麻煩,開發者只要不是bug就不是問題,可能3D列印外殼然後直接將Linkit One包裏至其中
就直接當作成品來向大家穿戴展示,一般DEMO其實也都這麼做,也許可能與最終產品有所出入、看起來稍為大點,
但是至少在穿戴展示不會那麼大一塊,”看起來”似乎那麼可行,或許DEMO就更有說服力
不過這都只是癡人說夢XD 可能都有考量過跟其它難度在,總之MTK加油吧!
問題
1
一般接觸新的技術與事物我習慣直接去看Document與Tutorial
然而Linkit One的Developer Guide仍然停在相當舊的版本,這也使得我最初碰上相當多的問題…快更新啦T_T
我目前的環境是 OSX Yosemite 10.10 Arduino IDE 1.6.4 LinkIt SDK 1.1.09 Beta
下述狀況皆以OSX環境為例
那最初參照Developer Guide在OSX上裝Linkit SDK及驅動 都有狀況發生,後來才在MTK討論區找到可行解法
建議新加入的朋友對Linkit One有任何問題或者第一次使用,不如就直接到這裡去找最新的解決辦法
任何的最新進度或者還是測試階段的SDK都會在置頂文章
https://labs.mediatek.com/forums/posts/list/559.page
不過一段時間後其它OSX使用者在安裝上發生了 因為產生302跳轉導致讀不到而驅動裝不起來Orz
我相信之後會陸續修正這些狀況,希望MTK能夠盡處理及穏定開發環境
2
> code:9600, console:19200
鮑率不管是設多少 第一次打開資源監控預設狀況下都看得到…就算不一樣也ok(好貼心XD)
除非監控去做切換才回復正常,不過如果記得沒錯,切換到當初的debug port就沒有這個問題
3
> 最早有分 Debug & USB Modem Port 現在只要選(Linkit One) 即可
不過既然不需要了 可以的話拿掉比較好…XD 應該也不會有點錯或混淆的問題(?
Linkit One & Socket
不曉得Linkit One或Arduino資料傳輸上大家會選用何種方式、協議來實作
最基本的當然就是https、httpsS,也許你也有其它方式(Like:mqtt),不過我在這邊選擇用socket的方式來處理~
畢竟socket對我來說比較熟悉,而Websocket協定也已經趨近成熟~ 動手玩看看吧
這邊Casear Chu已經fork了原Arduino-Websocket的專案,並已經修改成LinkitOne-Websocket
可以讓我們直接使用! 以OSX為例,只要到 ~/Documents/Arduino/libraries
用git將專案複製下來就搞定
|
|
如果是Windows的用戶 直進點選右邊的Download ZIP 解壓縮到你的library資料夾就ok
https://github.com/Casear/LinkitOne-Websocket
不過範例code還尚未修改,其實只要將WiFly的library換成Linkit One的就可以了
以下面簡單的範例來玩玩~ 這邊要注意的是Linkit One Wifi只支援2.4Ghz並不支援5Ghz
|
|
你可以將隨機數替換成感測模組將所得的數據送出
不過如果剛好你的Linkit One與電腦是在同一個區網下,透過ipconfig,ifconfig查詢內網ip
就可以透過socket將資料送到你的電腦上~ 等到要正式發佈再丟到遠端Server就好
既然Linkit One的部分搞定了 再來你就可以使用自己喜愛的語言、framework來撰寫
Websocket Server的code對送來的資料做處理囉~~ 這邊我以Node.js為例
ws: https://github.com/websockets/ws
WebSocket-Node: https://github.com/theturtle32/WebSocket-Node
上述兩種module或framework已經自帶websocket 就隨你處理囉
|
|
結果大概會長的像這樣~
而接收到的資料看是要存到mongodb,或像是rethinkdb這類的real time db也都是不錯的選擇
回到了平常開發網站或是寫原生APP的環境之後,再來就可以來大顯身手料理這些資料了 (所以我說那個醬油呢 逃~
看是要透過圖表的方式,用Web或著APP來呈現還是資料處理分析,就看愛怎麼做就怎麼玩囉~
總結
物聯網、穿戴裝置其實給我的感覺一直相當的微妙
在人人都有智慧型手機的情況下,現階段我們真的需要有穿戴裝置嗎?
至於物聯網,家裡家電舉凡像冰箱、電燈、冷氣連上網又要做什麼呢? 還是這些東西會淪為駭客的跳台設備呢?
可以期待Maker們要如何去創造需求,並能在這過程中做見證的我們還真是幸福
MTK或許想再未來嘗試更多可能性,並希望從中掌握市場動向才誕生了Linkit One
早期MTK給人有種封閉的感覺,透過Lab的成立希望能跟社群與眾多Maker交流
雖然說目前還有許多需要加強的地方,不過既然踏出了第一步,除了給予肯定還希望他們能持續走下去
過去一年之中不僅只是在Maker的社群,連同開發者者忘年會或SITCON等等的學生社群 都有看見Linkit One的影子
就學習及懶人的角度而言,我認為Linkit One算是相當不錯的平台了
而MTK也希望能透過這個平台來幫助人們一圓創業夢,這或許就是去讓人使用它且後續問題處理的最大誘因
所以除了繼續推坑之外,做好穩定的開發環境讓人們能更容易接受,相信會有越來越多人願意使用 :)