|
| 1 | +# Stackchan Arduino Library API ドキュメント |
| 2 | + |
| 3 | +## 概要 |
| 4 | +Stackchan Arduino Library は、M5Stack デバイス上で Stack-chan を制御するためのライブラリです。このライブラリは、サーボモーターの制御、設定ファイルの読み込み、Bluetooth 設定などの機能を提供します。 |
| 5 | + |
| 6 | +--- |
| 7 | + |
| 8 | +## クラス一覧 |
| 9 | + |
| 10 | +### 1. `StackchanSystemConfig` |
| 11 | +設定ファイルを読み込み、システム設定を管理するクラス。 |
| 12 | + |
| 13 | +#### メソッド |
| 14 | +- **`loadConfig(fs::FS& fs, const char *app_yaml_filename, uint32_t app_yaml_filesize, const char* secret_yaml_filename, uint32_t secret_yaml_filesize, const char* basic_yaml_filename, uint32_t basic_yaml_filesize)`** |
| 15 | + - 設定ファイルを読み込み、システム設定を初期化します。 |
| 16 | + - 引数: |
| 17 | + - `fs`: ファイルシステムオブジェクト。 |
| 18 | + - `app_yaml_filename`: アプリケーション設定ファイルのパス。 |
| 19 | + - `app_yaml_filesize`: アプリケーション設定ファイルのサイズ。 |
| 20 | + - `secret_yaml_filename`: 個人情報設定ファイルのパス。 |
| 21 | + - `secret_yaml_filesize`: 個人情報設定ファイルのサイズ。 |
| 22 | + - `basic_yaml_filename`: 基本設定ファイルのパス。 |
| 23 | + - `basic_yaml_filesize`: 基本設定ファイルのサイズ。 |
| 24 | + |
| 25 | +- **`printAllParameters()`** |
| 26 | + - 全ての設定パラメータをログに出力します。 |
| 27 | + |
| 28 | +- **`getServoInfo(uint8_t servo_axis_no)`** |
| 29 | + - 指定したサーボ軸の情報を取得します。 |
| 30 | + |
| 31 | +- **`getWiFiSetting()`** |
| 32 | + - WiFi 設定を取得します。 |
| 33 | + |
| 34 | +- **`getAPISetting()`** |
| 35 | + - API キー設定を取得します。 |
| 36 | + |
| 37 | +--- |
| 38 | + |
| 39 | +### 2. `StackchanSERVO` |
| 40 | +サーボモーターを制御するクラス。 |
| 41 | + |
| 42 | +#### メソッド |
| 43 | +- **`begin(stackchan_servo_initial_param_s init_params)`** |
| 44 | + - サーボモーターを初期化します。 |
| 45 | + |
| 46 | +- **`moveX(int x, uint32_t millis_for_move = 0)`** |
| 47 | + - X 軸のサーボを指定した角度に移動します。 |
| 48 | + - 引数: |
| 49 | + - `x`: 移動する角度。 |
| 50 | + - `millis_for_move`: 移動にかける時間(ミリ秒)。 |
| 51 | + |
| 52 | +- **`moveY(int y, uint32_t millis_for_move = 0)`** |
| 53 | + - Y 軸のサーボを指定した角度に移動します。 |
| 54 | + |
| 55 | +- **`moveXY(int x, int y, uint32_t millis_for_move)`** |
| 56 | + - X 軸と Y 軸のサーボを同時に移動します。 |
| 57 | + |
| 58 | +- **`motion(Motion motion_no)`** |
| 59 | + - プリセットされたモーションを実行します。 |
| 60 | + - 引数: |
| 61 | + - `motion_no`: 実行するモーションの種類(例: `greet`, `laugh`)。 |
| 62 | + |
| 63 | +--- |
| 64 | + |
| 65 | +### 3. `StackchanExConfig` |
| 66 | +`StackchanSystemConfig` を拡張したクラスで、アプリケーション固有の設定を管理します。 |
| 67 | + |
| 68 | +#### メソッド |
| 69 | +- **`loadExtendConfig(fs::FS& fs, const char *yaml_filename, uint32_t yaml_size)`** |
| 70 | + - 拡張設定ファイルを読み込みます。 |
| 71 | + |
| 72 | +- **`setExtendSettings(DynamicJsonDocument doc)`** |
| 73 | + - 拡張設定を適用します。 |
| 74 | + |
| 75 | +- **`printExtParameters()`** |
| 76 | + - 拡張設定のパラメータをログに出力します。 |
| 77 | + |
| 78 | +--- |
| 79 | + |
| 80 | +## 列挙型 |
| 81 | + |
| 82 | +### `Motion` |
| 83 | +サーボモーターのプリセットモーションを定義します。 |
| 84 | +- `nomove`: 動かない。 |
| 85 | +- `greet`: 挨拶。 |
| 86 | +- `laugh`: 笑う。 |
| 87 | +- `nod`: うなずく。 |
| 88 | +- `refuse`: 拒否する。 |
| 89 | +- `test`: テスト用。 |
| 90 | + |
| 91 | +### `ServoType` |
| 92 | +サーボモーターの種類を定義します。 |
| 93 | +- `PWM`: PWM サーボ (例: SG90)。 |
| 94 | +- `SCS`: シリアルサーボ (例: Feetech SCS0009)。 |
| 95 | +- `DYN_XL330`: Dynamixel XL330。 |
| 96 | +- `RT_DYN_XL330`: RT バージョンの Dynamixel XL330。 |
| 97 | + |
| 98 | +--- |
| 99 | + |
| 100 | +## 設定ファイル |
| 101 | + |
| 102 | +### SC_BasicConfig.yaml |
| 103 | +基本設定ファイル。サーボのピン番号、初期位置、可動範囲、速度などを定義します。 |
| 104 | + |
| 105 | +### SC_SecConfig.yaml |
| 106 | +個人情報設定ファイル。WiFi の SSID やパスワード、API キーを定義します。 |
| 107 | + |
| 108 | +### SC_ExtConfig.yaml |
| 109 | +拡張設定ファイル。アプリケーション固有の設定を記述します。 |
| 110 | + |
| 111 | +--- |
| 112 | + |
| 113 | +## 使用例 |
| 114 | + |
| 115 | +### サーボの初期化と移動 |
| 116 | +```cpp |
| 117 | +#include <M5Unified.h> |
| 118 | +#include "Stackchan_servo.h" |
| 119 | + |
| 120 | +StackchanSERVO servo; |
| 121 | + |
| 122 | +void setup() { |
| 123 | + M5.begin(); |
| 124 | + servo.begin(33, 90, 0, 32, 90, 0, ServoType::PWM); // サーボの初期化 |
| 125 | + servo.moveX(45, 1000); // X軸を45度に移動(1秒かけて) |
| 126 | + servo.moveY(60, 1000); // Y軸を60度に移動(1秒かけて) |
| 127 | + servo.moveXY(90, 90, 1000); // 正面を向く(1秒かけて) |
| 128 | +} |
| 129 | + |
| 130 | +void loop() { |
| 131 | + // 繰り返し処理 |
| 132 | +} |
| 133 | +``` |
| 134 | + |
| 135 | +--- |
0 commit comments