| 名称 | MIRS2501 MVP設計書 |
|---|---|
| 番号 | MIRS2501-DSGN-0003 |
| 版数 | 最終更新日 | 作成 | 承認 | 改訂記事 |
|---|---|---|---|---|
| A01 | 2025.10.27 | 仲下 | 初版 |
本ドキュメントは、MIRS2501、BABLOONプロジェクトのMVP(Minimum Viable Product)設計書である。
全体のシステム構成を図43に示す。青色は標準機からの流用を、白色は新規設置を示す。
本システムには3台のArduino UNOがある。
Arduino UNO master用ソフトウェアのモジュール構成を表1に示す
| ファイル名 | 説明 |
|---|---|
| mg5_arduino_ver200_master.ino | メインプログラム。setup(), loop() を含み、スタンバイ・巡回・風船モードなどのステートマシン(状態遷移)管理を行う中枢ファイル。 |
| define.h | 設定定義ファイル。ピン番号の割り当て、制御パラメータ、定数、構造体の定義を集約している。 |
| io.ino | 基本入出力制御。操作ボタン、内蔵LED、バッテリー電圧監視などの基本I/O操作を担当。 |
| motor.ino | 走行モータ出力。左右のDCモータへPWMと回転方向信号を出力するドライバ制御関数群。 |
| encorder.ino | エンコーダ読み取り。左右のロータリーエンコーダのパルスをカウントする割り込み処理。 |
| vel_ctrl.ino | 速度制御 (PID)。エンコーダ値から速度を計算し、目標速度になるようPID制御を行う。 |
| run_ctrl.ino | 走行制御 (位置・軌道)。「8m進む」「180度回る」といった目標距離・角度に対する指令値を生成し、直進補正を行う。 |
| sonar.ino | 超音波センサ制御。HC-SR04を用いて障害物までの距離(cm)を計測する関数。 |
| master_i2c.ino | I2C通信 (送信)。Slave機に対してコマンドや、状態確認リクエストを送る処理。 |
| raspi.ino | シリアル通信。PCやRaspberry PiとのUART通信処理。デバッグメッセージの送信やコマンド受信に使用。 |
| test.ino | デバッグ・テスト。PIDゲイン調整用のステップ応答データ取得や、単体動作テスト用の関数群。 |
| slave.ino | 外部指令受信。PC/RasPiからの直接指令で動くためのモジュール(今回は自律動作メインのため補助的な役割)。 |
Arduino UNO slave用ソフトウェアのモジュール構成を表2に示す
| ファイル名 | 説明 |
|---|---|
| mg5_slave_arm_ver100.ino | メインプログラム。I2Cコマンドを受信し、ステッピングモータ・サーボ・電磁石を連携させた一連のシーケンス動作(風船処理)を実行する。モード選択ボタンの監視も行う。 |
| actuator.ino | バルブ制御。バルブ開閉用のDCモータ(エンコーダ付き)を制御するモジュール。ピン変化割り込み(PCINT)を使用。 |
| AngleController.h | 角度制御クラス (Header)。バルブ開閉用モーターの角度PID制御を行うためのC++クラス定義。actuator.ino から利用される。 |
シャボン玉用Arduinoのソフトウェアは単一のソースファイルによりコードを記述している。シャボン玉用のArduinoではストック回収の検知とモーターの回収を行っている。