以前にやった時もそうですが、接続が安定しない原因は何なのかの単純化ですが、相変わらずロジックは分かりません。
Arduino IDEで以下のようなソースを動作、
#include <M5Stack.h>
#include "BluetoothSerial.h"
BluetoothSerial SerialBT;
int cnt = 0;
void setup() {
Serial.begin(115200);
SerialBT.begin("ESP32");
}
void loop() {
SerialBT.println("Hello World : " + String(cnt));
cnt += 1;
delay(1000);
}
ここで、ArduinoIDEのシリアルをBluetoothに選択、
すると、コンソールに結果出力されますが、この状態でMacのコンソールを開く(つまりコンソールが2台ある状態)だと、両方のコンソールにランダム風に結果が出力されます。これはまともでしょう、
いずれの状態でもMac本体のBluetoothはペアリングはしていない。
これだけシンプルでも、再コンパイルとかで期待したように動かなくなります。回避方法はMacの再起動のみ。
再起動すると、以下のようにBluetooth接続も復活しますが。
この後でArduinoIDE側のシリアルをUSBに切り替えて、Macコンソールを起動、
ここまでは正常ですが、ここでM5Stackをリセットすると接続が切れて復旧しない。これはArduinoIDE側のシリアルをBluetoothにしていても同じだから、Macを立ち上げて最初にBluetoothシリアル使うまではいいけれども、その後なんらかのアクションをすると必ずMacをリブートしなければいけないという不条理な状態になっています。
admin