日本語 | 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_BasicConfig.yaml
を配置すると自分の設定が利用できます。
2022/10/18にJSONからYAMLへ変更しました。JSONからYAMLへのコンバートはJSON から YAML コンバータにて可能です。
コメントの扱いが変わっているので注意してください。
2025/03/24にstackchan-arduinoライブラリを使用するように変更しました。SC_Config.yamlの内容を元にSC_BasicConfig.yamlを作成してください。
詳しくはYAMLファイルを参照してください。
(カッコ内)は初期値
-
servo
- pin
- x(Core1 22, Core2 33, CoreS3 1)
X軸のGPIOを指定(シリアルサーボの場合はRX) - y(Core1 21, Core2 32, CoreS3 2)
Y軸のGPIOを指定(シリアルサーボの場合はTX)
- x(Core1 22, Core2 33, CoreS3 1)
- offset
サーボの軸が90°にしたときにズレを修正するパラメータ- x(0)
X軸のオフセット値を設定 - y(0)
Y軸のオフセット値を設定
- x(0)
- center
サーボの中心位置を指定- x(180)
X軸の中心位置 - y(270)
Y軸の中心位置
- x(180)
- lower_limit
サーボの下限値を指定- x(0)
X軸の下限値 - y(240)
Y軸の下限値
- x(0)
- upper_limit
サーボの上限値を指定- x(360)
X軸の上限値 - y(280)
Y軸の上限値
- x(360)
- speed
待機時とBluetoothスピーカーで音が出ているときの待機時間とサーボの移動時間を指定します。最小値と最大値で範囲を指定して、ランダムの値を使用します。- normal_mode
- interval_min(3000)
- interval_max(6000)
- move_min(500)
- move_max(1500)
- sing_mode
- interval_min(500)
- interval_max(1000)
- move_min(500)
- move_max(1000)
- normal_mode
- pin
-
bluetooth
- device_name(M5Stack)
Bluetoothスピーカーのデバイス名を指定します。 - starting_state(false)
起動時にBluetoothモードにするかどうかを指定します。 - start_volume(100)
Bluetoothスピーカーの初期値を設定
- device_name(M5Stack)
-
auto_power_off_time(0)
Core2のみ。USBの電源供給がOFFになったあと設定した時間が経過すると電源OFFになります。(0は電源OFFしない) -
balloon
吹き出しの設定をします。- font_language("CN")
フォントの言語を指定します。"JA"か"CN"、指定しないとラテンフォントを使用します。 - lyrics
ノーマルモード時にランダムで表示するセリフを設定します。最大10個まで。
- font_language("CN")
-
led_lr(0)
GoBottom1/2で音量に対応してLEDが光るようになります。※ソースの書き換えとコンパイルが必要。- 0: ステレオ
- 1: 左の音量のみに反応
- 2: 右の音量のみに反応
-
led_pin(15)
LEDのGPIOピン番号を指定(GoBottom1: 15, GoBottom2: 25) -
takao_base(false)
Stack-chan_Takao_Baseを使用するかどうかの設定。(※現在対応しているのはCore2のみ) -
servo_type("DYN_XL330")
サーボの種類を指定- "PWM": SG90系のPWMサーボ
- "SCS": Feetech SCS0009 シリアルサーボ
- "DYN_XL330": Dynamixel XL330 シリアルサーボ
-
extend_config_filename("")
アプリケーション用の設定ファイル名 -
extend_config_filesize(2048)
機能拡張用のバッファサイズ -
secret_config_filename("")
個人情報用の設定ファイル名 -
secret_config_filesize(2048)
個人情報用のバッファサイズ -
secret_info_show(true)
個人情報をログに出力するかどうか
-
BtnA
Bluetoothモードに入ります。(bluetooth_mode = falseの時のみ有効) -
BtnB
音量を下げます。 -
BtnC
音量を上げます。