micro:bitを買いました(3)


pybleを使用してBluetooth通信を検証しましたのでメモしておきます。

(動作させるにはPyBLEWrapperモジュールが必要です)

現行のPyBLEWrapperだと、do_writeが無効化されているためdo_readを参考に追記しています。

こんな感じでMacOSX上のPythonからmicro:bitにbluetoothで通信が出来るのを確認しました。

 

micro:bitを買いました(2)


micro:bitはbluetoothが内蔵されているのですが、OSXとbluetoothで通信する方法を調べてみました。

micro:bit側の設定

まず、micro:bit側にbluetooth設定が必要になります。

blocksを使用している場合は、以下の方法でbluetooth設定を行います。

画面右上にある歯車アイコン(Microsoftロゴのすぐ左)をクリックして、Add Package…を選択。

bluetoothを選択。

radioパッケージを外して良いか?と聞いてくるので”Remove package(s) and add bluetooth”を選択。(現状無線関係はradioを使用するか、bluetoothを使用するかの二択となっており、両方の機能を同時に使用することが出来ません。)

ここまでの設定でBluetoothのプログラミングが出来るようになりますが、続けてPCとの接続設定をしておく必要があります。

もう一度歯車アイコンをクリックして、今度はProject Settings…を選択。

bluetoothに関する設定が表示されるので、適切なものを選択

  1. No Pairing Required: Anyone can connect via Bluetooth.
    – ペアリングは不要。自由に接続が可能。
  2. JustWorks pairing (default): Pairing is automatic once the pairing is initiated.
    – ペアリングは自動で行われます。これが標準設定です。
  3. Passkey pairing: Pairing requires 6 digit key to pair.
    – パスキーによるペアリング。micro:bit上に表示される数字を使ってのペアリング。
  1. 自分の場合はBを選択しました。
  2. bluetoothの状態と送信内容が確認出来るように以下のようなblockを作成して、micro:bitに転送しておきます。

micro:bit上のblocksはこんな感じのものを作成しました。

Mac側の設定

AppStoreからLightBlueをダウンロードしてOSXにインストール。

LightBlueを立ち上げると、BBC micro:bitというのが表示されますので、それを選択。

今回のプログラムだとBlocksでUARTを使用しているので、

  • Service: 6E400001B5A3F393E0A9E50E24DCCA9E
  • Characteristics: 6E400003B5A3F393E0A9E50E24DCCA9E

を選択します。

Write ASCIIに0〜4の値を入力(Enterで決定されますが、Blocks側の入力が改行を必要としているため、Alt + Enterによる改行も送り込む必要があります。)する事で、micro:bit上のLEDが点灯します。

.

micro:bitを買いました(1)


“micro:bit”というBBCがイギリスの小学生向けに提供しているハードウェアを入手しました。

「どのあたりが小学生向けなのだろう?」と思ったら、プログラムをしてから結果が得られるのが近いところなのかな、と感じました。

これは子供に限らないと思いますけど、初めてプログラミングをする人にとって、「初期化等の手続きが複雑すぎる」「結果がすぐに分からない」といった事は結構なのではないでしょうか。

micro:bitはそのあたりがよく考えられていて、適当に値を突っ込んでもそれなりの表示をしてくれるような工夫がしてあります。

例えば値を補正しなくても、対象範囲内に収まりやすい桁数になっている等

試しにプログラミング

ブロックを組み合わせてプログラムを組んでいきます。単にGUIにしてあるだけではなくて、ちゃんとjavascript(TypeScript)に変換出来ます。

下図では、USB経由でMac側のターミナルにシリアル出力をしています。有線でも良いならこれで、micro:bit上のセンサー情報を取得する事が出来ます。

 こんな画面。

.

このページへのリンクやツイートによる共有はご自由にどうぞ