HC-05/HC-06 を Raspberry Pi に接続し Raspbery Pi とBluetooth で通信できるようにします。Raspberry Pi は元々 Bluetooth がついていますが Raspberry Pi から見ると UART でシリアル接続しているだけなので Pico にも簡単に繋げられそうです。
HC-05 は Bluetooth の Master と Slave になれます。HC-06 は Slave のみです。Raspberry Pi (あるいは Pico) から Master になることはあまり無い気がしますが同じ値段なら HC-06 で良いかも知れません。
HC-05/HC-06 | Raspberry Pi |
---|---|
RXD | GPIO 14 (TXD) |
TXD | GPIO 15 (RXD) |
GND | GND |
VCC | 5V (注) |
(注) VCC については 3V と書いてある文章もありますが手元の HC-06 の基盤には 3.6V - 6V と書いてあるので 5V でも問題ないと思います。
前準備としてRaspberry Pi ではデフォルトの設定でコンソールをシリアルに出力するよう設定してください。ここ などが参考になると思います。とりあえずはシリアルとシリアルコンソールを両方有効にしてみてください。
VCC と GND を繋ぐと Windows などの PC や Android などから Bluetooth デバイスとして見えます。iPhone では何故か動かないようです。HC-05 では HC-05、HC-06 なら HC-06 として見えるはずです。PIN はデフォルトでは 1234 です。(多分ここら辺ので変えられるようですがまだテストしていません。)
Bluetooth を認識すると Windows なら COM5, COM6 として見えます。試した限りでは COM5 のみ使うようです。
Windows を使っている場合は COM5 にシリアル接続するには Tera Term を使うのが簡単だと思います。macOS だと cu コマンドをなど使うと簡単かもしれません。
デフォルトの設定ですが Setup > Serial Port... から Speed が 9600 となっていることを確認します。残りもデフォルトの設定でかまいません。
最初の接続が何度かやらないとうまく行かないのですが Control > Send break を何度か実行して Enter を連打してみてください。login プロンプトが出てくれば成功です。(Raspberry Pi のシリアル接続の速度は 115200 らしいのですが自動で速度を調整してくれるようです。ここ によるとconsole=ttyS0,9600 ででデフォルトで 9600 bps となる気がしますがテストはしていません。。)
9600 bps なので遅いですがここからログインをしたりコマンドを実行したりできます。
次にシリアルコンソールを無効にして Rapsberry Pi を起動し同様の方法で Windows などからシリアル接続してみてください。Raspberry Pi で次のようなコマンドを実行します。Raspberry Pi にログインして cu コマンドを実行して Connected と表示されたらなにか文字を入力してみてください。
pi@c4labs:~ $ cu -l /dev/serial0
Connected.
すると Winodws の Tera Term 側で同じ文字が表示されるはずです。
逆に Tera Term 側でなにか文字を打つと Raspberry Pi 側に表示されます。(改行コードは認識されないようでなにか対策が必要なようです。)
ということで Raspberry Pi 側から見ると単なるシリアルデバイスとして見えており Bluetooth 接続についてはなにも気にする必要がありません。Pico のデータの出力先などに使えないかなと画策中です。。