動手測試 LightBlue Bean

七月 1, 2013
Facebook
Twitter
LightBlue Bean是一個支援低功耗藍牙又與Arduino相容的微型控制器,而且還無須外掛程式!
图片

Punch Through Design 出品的 Light Blue Bean

我們回顧了Punch Through Design的LightBlue Bean這塊開發板還名為「Cortado」、才剛開放預購的時期,然而隨著開發板運出給預購客戶還有月底將開始的一般市售,這該是我們仔細檢視這個硬體產品的時候了!
Punch Through實在很親切,送來四組Bean讓我評鑑。我自掏腰包買的那一組很顯然還放在家裡書桌上,可惜我現在離將在紐約舉辦今年度的ITP營還有好幾千哩之遙。

LightBlue Bean是新的一款和 Arduino 相容的開發板,附有內建的低功耗藍牙支援,不過這已經不是什麼新概念。Bean所做的和我目前所見支援低功耗藍牙的 Arduino 複製板的不同之處,在於它能讓您無線上傳程式碼至開發板上。 「你看,我把傳輸線變不見了!」

雖然開發板運出時本該附有安裝好的電池,讓有事先下載他們的app的用戶於包裹送達時會收到推播通知,我的開發板卻沒有。我打開包裹時,發現電池和開發板之間有標示那種類似「起飛前移除」的塑膠隔離片。我認為這是由於我用非正統的方式取得,而非因為有什麼政策上的改變。

把隔離片移除之後,等了幾分鐘,確認我的app有搜尋到Bean,手機也有收到預期的推播通知。點選通知便會開LightBlue app ,讓我從附近的低功耗藍牙裝置中找到我的Bean,並進入Bean的功能設定畫面。

图片

LightBlue app搜尋到新的 Bean(左),顯示在附近的裝置清單中(中),以及 app 裡的 Bean 「功能畫面」(右)。

此開發板有8個數位I/O腳位(其中兩個可以做為類比輸入)、一個RGB LED 燈,以及 一個3 軸的加速度計。這個app讓我可以直接控制內建的RGB LED燈,檢視加速度值以及Bean上數位和類比腳位的狀態。
图片

LightBlue Bean腳位分布圖(來源:Punch Through Design)

點選右上角的「選項」可以跳出設定頁面,回到LightBlue app平常隨機連結低功耗藍牙裝置所顯示的原始畫面──該裝置的可用功能和特性。總而言之,這是一次很好的開箱體驗。
图片

都還沒完全從包裝拿出來,我就已經可以用 LightBlue app來控制內建的 RGB LED 燈。

很可惜,接下來的建置作業並非全程順利。

為了要測試Bean,我決定焊一些排針上去,讓我能輕鬆連結數位、類比、GND和VCC腳位。然而,在焊接第一臺拿出來的 Bean時,背面鈕扣型電池部分的其中一個表面焊接點鬆脫了,應該是受到我進行焊接時加熱的影響。

不知道是偶發事件還是常發事件,所以我把剩下三塊開發板都拿出來以烙鐵慢慢加熱。其中一塊在同一個焊接點還是鬆脫了。奇怪的是,那還是離原型製作區塊最遠的一個焊接點。雖然這只是小小的統計數據,因而顯得極度不可靠(四個樣本根本微不足道),但您在操作這款開發板的時候仍應注意這個問題。

如果真的發生這種情形,請不用慌張。把它焊回去是小事一樁。只要放一點焊錫到烙鐵上,把電池架推回原來位置,再用烙鐵把它焊回點上,應該很容易就能把它接回去。若焊接點上殘留太多焊錫,您可以用吸錫線清除多餘部份。

這讓我對這些新的 Bean 能否正常運作稍微產生疑慮。因此,我再度打開LightBlue app,並把GND腳位跳接到其中一個數位腳位上。App上的腳位狀態立刻降為「低電位」。用此方法測試其餘的腳位,發現運作一切正常。

图片

Light Blue app顯示第 3 數位腳位連接著 Bean 的 GND腳位。可以看到 LightBlue app 告訴我們腳位已經被拉到「低電位」。

現在我確定Bean運作正常,下一步就是把我自己的程式碼上傳進去。或許也不意外,但接下來的步驟並不像未來能期待的開箱體驗那麼簡單。

Punch Through提供如何設置Bean逐步說明。首先要下載並安裝Arduino 1.0.5 開發環境(若您使用 1.5.* 的分支,則下載到第二份開發環境),接著安裝Teensyduino軟體Punch Through自己的Bean 載入器。只有在安裝這三個項目並重新啟動開發環境後,LightBlue Bean才會在開發板的選單出現。

在開發環境載入其中一個範本腳本程式碼,並且在下拉選單中點選「確認」後,根據Punch Through提供的說明,應該可以開啟 Bean載入器。可是,至少在我的情況下,並沒有這樣的結果。

程式碼的編譯顯然沒有發生問題,我的開發環境卻無法和Teensy載入器聯繫。
图片

Arduino 整合開發環境和 Teensy 載入器聯繫時產生問題。

我已經試過一般的解決方法:解除安裝再重新安裝,並沒有幫助。而且問題似乎和我的作業系統更新有關。我每天在用的Mac仍然是OS X 10.8.5系統,這或許就是問題所在。我幾乎確定這就是問題所在,因為在檢查Bean載入器安裝的檔案套件後,我發現Bean載入器app似乎只支援10.9
图片

Bean 載入器應用程式只和 OS X 10.9(Mavericks)相容。

如果不是 Punch Through在設計應用程式的時候不夠仔細,就是Bean載入器需要Mavericks獨有的功能。無論如何,即使原始碼可以建立在較舊版的作業系統上,它的二位元檔肯定只為 10.9 版編譯,而無法在較舊版的 OS X 上運作。

大多數iOS使用者會很快把作業系統升級到最新版本,但對OS X 而言並非如此。雖然已經推出一年,Mavericks才剛達到 60% 的安裝率。如果不是必要的設計,這便是個奇怪的限制,而且其他碰到相同問題的人似乎也不太高興。

無論如何,要把我的程式碼上傳到Bean就得升級到10.9版,而這不是我離家三千五百哩的時候想做的事。我有做好備份,但是都放在雲端。如果等到整個出錯,要從這裡連線到雲端的話就會變得很有趣?

不過等等,Bean的其中一個特色不就是可以直接從iPad上傳程式碼嗎這樣我就可以直接從iPad發送程式碼過去了對吧?
图片

用 iPad 編寫 LightBlue Bean 程式。

可惜還不行,因為目前的LightBlue app「尚未」提供載入腳本程式碼至 Bean 的功能。此功能預計會出現在下一個版本。在那之後,Punch Through會開始致力於AndriodWindows 8app跨平臺支援,所以若沒有使用最新版本OS X Mac,現在就還不是買 Beans 的時機。

我有請Punch Through對我遇到的相容性問題發表意見,但截稿前尚未收到任何回覆。

至少在目前,我打算對Bean做的就只有這些;但是,我對他的興趣仍讓我想再更深入一點瞭解Bean怎麼向全世界呈現自己,即使我還沒有能力發揮影響。

其中一件我看來很明顯的事情是, Maker社群很可能用錯誤的角度在看低功耗。諾迪克(Nordic Instruments)和德州儀器(Texas Instruments)這兩家熱門低功耗藍牙晶片組轉接板的競爭廠商都發表序列介面。聽起來很好,但他們並未考慮低功耗藍牙的實際運作。

設想這個例子:您想以手機的低功耗藍牙控制Arduino上的 LED 燈。若使用序列連結,則此連結會持續開放。但是,它只有在發送 1 0 的訊息到Arduino來開啟或關閉 LED 時才會用到。

有另外一個選擇是:你可以為你的專題大幅降低耗電,透過發揮低功耗藍牙的長處,並且執行一項Arduino無線電訂功能來廣告其開啟和關閉LED 的能力。藉此我們有效地建立了可以讀取、查看LED燈的開關情形,以及寫入的自訂功能。若想要更進階,可以設定功能使之發送通知,讓我們知道 LED燈的狀態有什麼變化。

有趣的是,Bean是第一款不只加裝序列連結的產品之一。除了序列連結,Bean有五個「湊合式」性能,讓我們可以由Bean的低功耗藍牙無線電讀取和寫入隨機資料,儘管還無法發送通知。
图片

LightBlue Bean 系統圖 。(來源: Punch Through Design)

它雖然不是真正的自訂功能,也已經很接近了,而且事實上比多數競爭者還接近。Punch Through也告訴我他們正致力於支援個人檔案的開發。

為了從Arduino連結使用這些湊合式性能,以及內建的RGB LED和加速度計,Punch Through提供一套Arduino Bean 資料庫讓您能回應Bean中樞的無線電模組(他們的LBM313模組建立在CC2540的基礎上)

因為它有趣的設計,LBM313模組在中央,所以Bean資料庫可以納入一個Bean.sleep() 的功能,讓您可以命令高耗電的ATmega328pArduino)進入睡眠狀態。這是Bean的一項特殊功能,我在其他地方還沒看過,如果正確使用的話,是很好用的附加功能。當然若使用不正確的話,則和Bean之間的聯繫就變得有點困難

結論:雖然在嘗試讓Bean運作的過程中遇到了一些困難,它仍讓我印象深刻,或者說對它的潛力有所期待。它確實展現了很大的潛力;硬體設計也是別出心裁,Arduino Bean資料庫看起來經過精心設計又好用。可惜當前Bean載入器相容性問題,以及缺乏承諾的跨平臺支援,都讓人對這個本應傑出的產品感到有所失望。


图片

ALASDAIR ALLAN 
是一名科學家、作家、駭客、焊匠,也是修復物聯網的創業公司的共創人。他試圖確立哪些科技將決定我們的未來而投入許多時間、心力探索現今的趨勢。


(譯者:屠建明)
[原文]


Social media & sharing icons powered by UltimatelySocial