micro:bit を別のmicro:bit／別デバイスやアプリと連携させる方法をいくつかまとめてみる【概要のみ】

タイトルの通り、micro:bit を別デバイスやアプリと連携させる方法について、複数の情報をまとめてみようと思います。

まとめ方については、全ての方法を網羅するというものではなく、自分が気になるものをまとめるという方向になります。

## 1） micro:bit を Bluetoothマウスやキーボード（Bluetooth接続の HIDデバイス）にする
最初は、micro:bit を Bluetooth接続のマウスやキーボードなどのようにしてしまおう、というものです。具体的には、HIDデバイスにする形です。

以下の拡張機能を追加して、MakeCode でプログラムを作る感じです。
あとは、PC やスマホなどと Bluetooth でペアリングすれば（※ 普通のマウスやキーボードをペアリングする手順で）、PC やスマホなどの操作が行えます。

●microbit-pxt-blehid 0.0.24 (bsiever/microbit-pxt-blehid)
　https://makecode.microbit.org/pkg/bsiever/microbit-pxt-blehid

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/951e37e1-4817-4604-2ea1-06c563d973ff.png)

●bsiever/microbit-pxt-blehid: Micro:bit MakeCode support to act as a Human Interface Devices (keyboard, mouse, etc.) over Bluetooth
　https://github.com/bsiever/microbit-pxt-blehid

### 応用例
↓こんな応用をされている事例があったりします。

<script defer class="speakerdeck-embed" data-id="248df3b7b2184018b7bdf842132c6327" data-ratio="1.7772511848341233" src="//speakerdeck.com/assets/embed.js"></script>

●CardKB Unit V1.1とmicro:bitの組み合わせ Bluetoothキーボードを作ってみる | micro:bit Lab.【マイクロビット】
　https://sanuki-tech.net/micro-bit/grove/ble-keyboard/

### 自分が過去に書いた記事
また、自分も以下のような記事を書いていました。

●【micro:bit 2022】micro:bit V2 をゲームコントローラー（BLE接続の HIDデバイスのゲームパッド）にして Gamepad API と組み合わせてみる #BLE - Qiita
　https://qiita.com/youtoy/items/1ac1ce103476f12241e3

## 2） micro:bit で有線のシリアル通信を使う
次は micro:bit以外の話（様々な電子工作に使えるデバイスに関連する話）でもよく登場する有線のシリアル通信です。

有線という部分は、USB接続を使う方法もあれば、micro:bit の端子を使うやり方もあります。

シリアル通信を扱うブロックは標準で使えますので、例えば以下の記事にある内容を試すことで、手軽に有線でのシリアル通信が体験できます。

●micro:bitとシリアル通信をしよう | micro:bitでレッツ プログラミング！
　https://www.kodomonokagaku.com/microbit/serial.html

### 改行文字・複数の値の送信について
それと利用するブロックによって、シリアル通信で改行文字が付与されるかどうか、という話があるのですが、シリアル通信用のブロックと改行文字の付与の有無の話が以下のページで分かりやすく書かれていました。

●micro:bit シリアル通信
　https://coskxlabsite.stars.ne.jp/html/for_students/microbit/SerialCommunication/SerialCommunication.html

また、複数の値をいっぺんに送る話が、以下で具体的な例とともに書かれていたりします。

●micro:bit【マイクロビット】でシリアル通信【Windows編】 | micro:bit Lab.【マイクロビット】
　https://sanuki-tech.net/micro-bit/appendix/windows-serial-configuration/

### 端子を使ったシリアル通信
また以下では、USB接続ではなく、micro:bit の端子を使った別デバイスとのシリアル通信の話が出てきます。

●micro:bitとESPr Developerでシリアル通信 - MSR合同会社
　https://msr-r.net/serial-mb2esp/

### micro:bit で受信処理も行う
上で書いたのは micro:bit が送信を行う役割でしたが、以下の記事では micro:bit が受信する側のほうの話も書いてあります。

●シリアル通信でデータを送受信する Node-REDとmicro:bitを接続する(1) | micro:bit Lab.【マイクロビット】
　https://sanuki-tech.net/micro-bit/raspberry-pi/connect-node-red-and-micro-bit-by-serial/

## 3） Bluetooth接続のシリアル通信など
次のものは、micro:bit と Bluetooth通信でデータをやりとりするものです。

上で出てきた Bluetooth接続のマウス・キーボードのような振るまいをするものとは別です。利用するブロックは、拡張機能から読みこみます。

以下に、利用例が掲載されたものを掲載してみます。

●micro:bit【マイクロビット】離れた場所にあるmicro:bitの温度を知る | micro:bit Lab.【マイクロビット】
　https://sanuki-tech.net/micro-bit/bluetooth/temperature/

●初めてのBLE (4) micro:bitでペリフェラル①温度のCharacteristic - Arduinoクックブック
　https://www.denshi.club/cookbook/wireless/ble/microbitble.html

●初めてのBLE (5) micro:bitでペリフェラル②Arduinoのセントラル - Arduinoクックブック
　https://www.denshi.club/cookbook/wireless/ble/ble-5-microbit2.html

●初めてのBLE (6) micro:bitでペリフェラル③UARTサービス - Arduinoクックブック
　https://www.denshi.club/cookbook/wireless/ble/ble-6-microbit3.html

●micro:bitでのBLEブロック作成例(UART受信)
　https://monomonotech.jp/kurage/webbluetooth/microbit_ble_block_uart_rx.html

●serverあれこれ: Raspberry PiからBluetooth経由のUARTでmicrobitと通信する
　https://serverarekore.blogspot.com/2019/12/raspberry-pibluetoothuartmicrobit.html

## 4） micro:bit同士での無線通信
micro:bit同士で無線通信を行う場合は、標準で用意された無線ブロックで、手軽な無線通信が可能です。

ただし、この無線ブロックは、上で出てきた他デバイスとの Bluetooth接続などを行う bluetoothブロックとは同時に使えないものなのでご注意ください。

以下が、その無線ブロックを使った事例です。

●ホタル | micro:bit
　https://microbit.org/ja/projects/make-it-code-it/fireflies/

●micro:bitの無線機能で呼び出しチャイムを作ろう – LABO KIDS
　https://labo-kids.com/blogs/labo-kids/chimes

●無線通信の機能を使って、micro:bit同士で通信してみよう
　https://learn.switch-education.com/microbit-tutorial/73-wireless.html

●無線と端子 | micro:bit
　https://microbit.org/ja/get-started/features/radio-and-pins/

●グループでテレポートするアヒル | micro:bit
　https://microbit.org/ja/projects/make-it-code-it/group-teleporting-duck/