STEP4:ライントレーサが動作する仕組みを考える(シーケンス図による動作設計・検証)
STEP3で決定したクラスの役割で、制御を実現する処理の流れを記載します。このとき、STEP2で決定した動作単位(OSタスク)も色分けなどで反映しておくとわかりやすくなります。理の流れを表す場合は、UMLのシーケンス図やコラボレーション図を使います。
今回のプログラムの制御の流れを、シーケンス図で記載すると以下のようになります。
STEP3とSTEP4を繰り返し、処理シーケンスが動作が一通り流れれば、設計は完了です。
実際には実物を動作させないと細かい制御内容(※)が分からないこともあります。このような場合は、不明事項をメモしておいて、実際に動かして調整します。
※上記シーケンスでは、UMLのノートで調整試行を記載しています。
- 右や左に曲がるために左右のモータを前進させたり、停止したりします。どれくらいの時間で向きが変わるかが不明です。
- 線の上かどうかは、照度センサの値で判断します。線上/線外を判定するためのしきい値は計ってみないとわかりません。
STEP5:実際にプログラミングして動作させる
レゴマインドストームNXT付属機器については、レゴマインドストームNXTの開発環境に添付されているマニュアルなどを参照しつつ、C言語でプログラムを作成します。
このとき、UMLで記載したクラス図やシーケンス図との対応をわかりやすくするために、以下のようなルールで関数名を実装します。
C言語関数名=UMLクラス図のクラス名_UMLクラス図のメソッド名
※戻り値や引数の型は、レゴマインドストームNXT付属機器のAPI仕様などに合わせるために一致させていません。
また、OSタスクから処理を開始する部分や、上記シーケンス図のメソッド内から呼び出される関数については、自由に実装するルールとします。


