要件定義工程
まずは要件定義工程を進めましょう。
①システム構成図作成 ②要件一覧表作成の2ステップで進めていきたいと思います。
①システム構成図作成
最初に開発対象のシステム構成図を作成します。システム構成図とは、制御対象に搭載されている物の一覧とそれぞれの関係が一目見てわかる図のことです。ソフトウェア開発用の図なので、制御に関係する物が登場します。
今回開発するライントレースロボットは下記の構成で作成したいと思います。
・制御用のマイコン(Arduino UNO)1つ
・ライン検出センサ(フォトリフレクタ)1つ ※複数個使用する場合もありますが、今回は1つ使用。
・走行開始・停止のスイッチ
・システムの状態を表すLED
・走行用モーター2つ(ギアボックス内にモーターが入っている)
下図のようなイメージです。
システム図は下記のように作成しました。
②要件一覧表作成
開発対象が満たすべき要件を一覧にまとめます。
ライントレースロボットを実際に使用する時のことを考えながら検討を進めましょう。
一旦箇条書きで書き出してみます。
・電源を入れた瞬間に走り出すと使いづらいので、電源を入れてもすぐには走り出さないようにします
・電源が入っているのかどうかわかるように、電源が入っているときはLEDを点灯させます
・スイッチを押し下げるとライントレース走行を開始します
・ライントレース走行中であることがわかるように、走行中はLEDを点滅させます
・スイッチを押し下げると走行を停止する
・脱線時に走り続けてしまうことを防止するため、走行中に一定時間ラインを検知しない場合は異常状態と判定し、異常モードとする。
・異常モードに入った時はLEDを高速で点滅させる
・異常モードに一度入ると電源を切るまで解除されない
抜け漏れがないように表形式にまとめ、番号を振って管理します。
要件ID | 要件 |
---|---|
1 | 制御システムは3状態(待ち状態、走行状態、異常状態)を持つ。それぞれの状態の意味は下記の通り 待ち状態: 走行開始を待っている状態。モーターは停止状態。 走行状態: ライントレース走行中。 異常状態: 異常が発生した状態。モーターは停止状態。 |
2 | 電源を入れると待ち状態から開始する |
3 | 待ち状態の時にスイッチを押し下げると走行状態に遷移し、ライントレース走行を開始する。 |
4 | 走行状態中にスイッチを押し下げると待ち状態に遷移する |
5 | 走行状態中に一定時間ラインを検知しない場合、脱線したと判定し異常状態に遷移する。 |
6 | 異常状態に遷移した場合は電源を切るまで他のモードに遷移できない。 |
7 | 状態に応じてLEDを点灯させる。点灯パターンは下記の通り。 待ち状態: LED点灯 走行状態: LED点滅(0.5秒点灯、0.5秒消灯の繰り返し) 異常状態: LED高速点滅(0.2秒点灯、0.2秒消灯の繰り返し) |
以上で要件定義を完了とします。次は基本設計工程に移りましょう。