| 名称 | MIRS2501 MVP設計書 |
|---|---|
| 番号 | MIRS2501-DSGN-0003 |
| 版数 | 最終更新日 | 作成 | 承認 | 改訂記事 |
|---|---|---|---|---|
| A01 | 2026.1.19 | 仲下 樟 | 大沼 巧 | 初版 |
本ドキュメントは、MIRS2501、BABLOONプロジェクトのMVP(Minimum Viable Product)設計書である。
BABLOONを構成する各モジュールの配置を以下に示す(図5)。
本システムには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コマンドを受信する。 |
| define.h | 設定定義ファイル。ピン番号の割り当て、制御パラメータ、定数、構造体の定義を集約している。 |
| actuator.ino | バルブ制御。バルブ開閉用のDCモーター(エンコーダ付き)を制御するモジュール。ピン変化割り込み(PCINT)を使用。 |
| AngleController.h | 角度制御クラス (Header)。バルブ開閉用モーターの角度PID制御を行うためのC++クラス定義。actuator.ino から利用される。 |
| sequences.ino | シーケンス実行。ステッピングモーター・サーボ・電磁石を連携させた一連のシーケンス動作(風船処理)を実行する。 |
シャボン玉用Arduinoのソフトウェアは単一のソースファイルによりコードを記述している。シャボン玉用のArduinoではストック回収の検知とモーターの回収を行っている。
ソースコードはGitHubにアップロードされており、下記リンクから閲覧することができる。
https://github.com/mirs2501/Arduino/
全体のシステム構成を図15に示す。青色は標準機からの流用を、白色は新規設置を示す。
| 機能 | 実装結果(1回目) | 実装結果(2回目) |
|---|---|---|
| シャボン玉吹き出し | ✕ | 〇 |
| 風船作成 | ✕ | 〇 |
| 巡回走行 | ✕ | ✕ |