Bluetooth Low Energyの通信を簡単に試すことができる「koshian」というボードがあります。
これは、ユカイ工学の「konashi」という同じくBLEのボードの互換品(一部非互換あり)です。
本家であるkonashiが注目を集めていたのは、ESP8266が流行るよりも前で、2013年ごろからです。
konashiというより、BLE自体が注目を集めていた時期でもあります。
スマホ連携ガジェットを作ろう! – 第2回 konashiとは何か?スマホの入出力を無線で拡張:ITpro
その後、konashiはkoshianを取り込んで、現在はkonashiはkoshianボードを使う形態に変わっているようです。
konashi(こなし)メジャーアップデート「konashi2.0 」を発表 | ユカイ工学
この「koshian」ボードですが、もともと980円と安価な上に、一時期、販売元のMPressionがキャンペーン(確かオンラインストアに会員登録すると無料でもらえた)をしていたこともあり、私の手元には3枚もありました。
使わずにしまってあったのですが、BLEの勉強がてら、試しに使ってみることにしました。
まずはLチカから、ですが、これはMPressionのサイトにチュートリアルがあります。
ハードウェアのHello World !? koshianつかって『まずはLチカ 』 | マクニカオンラインストア
このチュートリアルでkoshianにつないだLEDをiPhoneやiPadから点滅させることはできるのですが、BLEを使っているのかkoshian.jsというアプリ(のAPI)を使っているのか、ちょっと判然としないところはあります。
JavaScriptでプログラムが書けて、敷居が低くていいのですが、逆に組み込みシステムをある程度知っている人にとっては、隔靴掻痒という感じがあると思います。
実際には、このチュートリアルで動いているシステムの全体像は下の図のようになっています。
ボード側では、I/Oピン等を制御するAPIをBLEで公開するファームウェアが動作しており、iPhone/iPad側ではこのファームウェアのAPIをJavaScriptから叩く機能を持つアプリを動作させています。
このアプリによって、ユーザのJavaScriptプログラムは、koshianのファームウェアへの命令に変換されているわけです。
Lチカ程度であれば、わざわざJavaScriptを叩かなくても、ボードのAPIを直接叩けば良さそうです。
ただ、このAPIはBLEの規定に則ってGATT(Generic Attributes)というフォーマットで提供されています。
GATTの部分を隠蔽して、ボードのI/Oに直接アクセスできるアプリとして、ユカイ工学の「Inspector」があります。
konashi inspectorを App Store で
konashi inspector – Google Play の Android アプリ
このアプリを使えば、プラグラムを書かずにI/Oの値を直接設定できます。
その代わり、たとえば0.5秒おきにオン・オフする、といったことはできません。
GATTを直接叩きたければ、Mac用の無料ツールで「LightBlue」というものがあります。
私のMacbook AirはLate2010モデルなのでBLE非対応なのですが、バッファローのUSB BLEドングル「BSBT4D09BK」を挿したら、特にドライバ等を導入しなくてもBLE対応になりました。
GATT自体は、それほど難しいものではありません。
デバイスが提供する「サービス」の下に、複数の「characteristic」があり、characteristicの値を読み書きすることでデバイスの動作を制御します。
たとえばkonashiなら、I/Oを制御するという「サービス」の下に、I/Oピンが入力か出力かを設定する「characteristic」や、出力ピンならHighなのかLowなのかを設定する「characteristic」があります。
characteristicが、制御レジスタみたいなイメージです。
以前紹介したPythonistaでも、このあたりの制御ができるはずなのですが、ちょっと試したところではまだkoshianを制御するところまでは至りませんでした。
さて、ページの冒頭に載せた写真は、100円ショップ・ダイソーで購入したLEDランプに、koshianと赤・緑の2つのLEDを仕込んだものです。
ランプは2つ入りで100円、1つ50円です。
底面にスライドスイッチがあります。電池はCR2032です。
ケースははめ込んであるだけなので、細いドライバなどでこじれば外れます。
中身は白色LED。LEDのピンの一方はスライドスイッチに直付けされています。
もう一方のピンは、ケースを突き抜けたところで曲げられて、電池と接触する電極として使われています。
スイッチは活かして、ピンヘッダをつけたkoshianに赤と緑のLEDを直付けしたものを組み込みました。
PIO4に赤、PIO5に緑のLEDを接続しています。
LEDはどちらも高輝度タイプです。抵抗はつけていません。
また、LEDには光拡散用のキャップをかぶせています。
このへんのパーツは秋月電子で買ったものです。
元通りケースをかぶせるとこんな感じです。
BLEリモコンで2色オンオフができるLEDランプができました。
さて、そんなkoshianですが、今はボード単体では若干入手難のようです。
マクニカのオンラインストアでも販売されていないようです。
また、このボードの心臓部はBroadcom社のBCM20737Sというチップだったのですが、BroadcomのIoTデバイス事業は既にCypress社に売却されています。
Cypress社では、BCM20737SをCYW20737Sという型番で出していますので、ディスコンというわけではなさそうです。
BLEではNordic社のnRFシリーズがメジャーになってきており、このチップを使ったkonashiと似た感じのモジュールがBraveridge社から販売されています。
BVMCN5103-CEAA-BK | Braveridge
まあこちらは20個セットですし、ホビイスト向けではなさそうですが。
コメント