stackchan-bluetooth-simple
日本語 | English
概要
M5Stack-AvatarをベースにシンプルにBluetoothスピーカー機能とスタックチャンのサーボコントロール機能をつけました。 M5UnifiedのexampleであるBluetooth_with_ESP32A2DPをベースに改造しています。
開発環境
- VSCode
- PlatformIO
対応機種
-
M5Stack Basic/Gray/M5Go
BasicはFlashメモリが16MBの機種のみです。 -
M5Stack Fire
-
M5Stack Core2 / Core2 for AWSIoT
必要なライブラリ
Arduino-ESP32は2.0.4(Fireのみ2.0.0)で動作確認しています。M5Stack Fireはarduino-esp32v2.0.4だと不具合があり起動しません。
詳しいバージョンについてはplatformio.iniを見てください。
コンパイル時の注意
-
M5Stack Fire V2.6/M5Stack Basic V2.6
TFカードを使用する際にSD.begin()を20MHz以上では読み込めない事象を確認しました。15MHzに下げています。 -
M5Stack Basic V2.6
VSCode+PlatformIOでコンパイルするときのenvはenv:m5stack-grey
を選択してください。
設定
SDカードに設定用のYAMLファイルがないとデフォルト値を利用します。(PortAへサーボを接続する設定になっています。)
SDカードに/yaml/SC_Config.yaml
を配置すると自分の設定が利用できます。
2022/10/18にJSONからYAMLへ変更しました。JSONからYAMLへのコンバートはJSON から YAML コンバータにて可能です。
コメントの扱いが変わっているので注意してください。
詳しくはYAMLファイルを参照してください。
設定項目
(カッコ内)は初期値
-
servo
-
pin
- x(Core1 22, Core2 33)
X軸のGPIOを指定(シリアルサーボの場合はRX) - y(Core1 21, Core2 32)
Y軸のGPIOを指定(シリアルサーボの場合はTX)
- x(Core1 22, Core2 33)
-
offset
サーボの軸が90°にしたときにズレを修正するパラメータ- x(0)
X軸のオフセット値を設定 - y(0)
Y軸のオフセット値を設定
- x(0)
-
speed
待機時とBluetoothスピーカーで音が出ているときの待機時間とサーボの移動時間を指定します。最小値と最大値で範囲を指定して、ランダムの値を使用します。- normal_mode
- interval_min(5000)
- interval_max(10000)
- move_min(500)
- move_max(1500)
- sing_mode
- interval_min(1000)
- interval_max(2000)
- move_min(500)
- move_max(1500)
- normal_mode
-
-
bluetooth
- device_name(M5Stack_BTSPK)
Bluetoothスピーカーのデバイス名を指定します。 - starting_state(false)
起動時にBluetoothモードにするかどうかを指定します。 - start_volume(100)
Bluetoothスピーカーの初期値を設定
- device_name(M5Stack_BTSPK)
-
auto_power_off_time(0)
Core2のみ。USBの電源供給がOFFになったあと設定した時間が経過すると電源OFFになります。(0は電源OFFしない) -
balloon
吹き出しの設定をします。- font_language("JA")
フォントの言語を指定します。"JA"か"CN"、指定しないとラテンフォントを使用します。 - lyrics("こんにちは",”Hello”,"你好","Bonjour")
ノーマルモード時にランダムで表示するセリフを設定します。最大10個まで。
- font_language("JA")
-
led_lr
GoBottom1/2で音量に対応してLEDが光るようになります。※ソースの書き換えとコンパイルが必要。- 0: ステレオ
- 1: 左の音量のみに反応
- 2: 右の音量のみに反応
-
takao_base
Stack-chan_Takao_Baseを使用するかどうかの設定。(※現在対応しているのはCore2のみ) -
servo_type
サーボの種類を指定- "PWM": SG90系のPWMサーボ
- "SCS": Feetech SCS0009 シリアルサーボ
使い方
-
BtnA
Bluetoothモードに入ります。(bluetooth_mode = falseの時のみ有効) -
BtnB
音量を下げます。 -
BtnC
音量を上げます。