マイクロマウス ソフトウェア設計書

(C) 2004 eXtreme Embedded System Factory
eXtreme Embedded System Factory
( 通称:マイコン工房 )
マイクロマウス
ソフトウェア設計書
バージョン
日付
Ver1.0
2004/06/05
内容
初版作成
1
編集者
兼平
(C) 2004 eXtreme Embedded System Factory
1.ソフトウェア構成の検討
(A) 通常
全ての処理を1つのメインループで処理する。
→ アプリケーション、ハードウェア制御のほとんどを処理する。
● 割込み処理はメインループとは別に動作する(最優先処理)。
→ タイマー割込み内でハード制御のみならず、アプリケーションレベルの
タイミング制御も行う(非同期動作の仕組みが割込みしか無い)。
●
全体を把握
するのは大変
(B) RTOS を使用する場合
タスク単位でループする。
→ アプリケーションとミドルウェアをそれぞれタスクに分けて
互いに干渉しないような構成にする。
● アプリケーションタスクとミドルウェアタスクに分割して
それぞれ役割を分担させ、処理の必要がある時のみ動作させるようにする。
● アプリケーションタスクは最低優先度とする。
→ 処理の結果を元にミドルウェアにハード制御を依頼する形。
● ミドルウェアタスクはアプリケーションより優先度を高くする。
→ ハードウェア制御のタイミングがあるので。
● 割込み処理は各タスクとは別に動作する(最優先処理)
→ タイマー割込みが重要(モーター制御、センサー値読込み、液晶表示等)
● 周期起動ハンドラ(割込みの次に優先動作)
→ 速度的に厳しくないが非同期に時間経過が関係する処理を担当させる。
●
2
機能毎の
役割分担が
わかりやすく
なる
(C) 2004 eXtreme Embedded System Factory
(A) 通常
ソフトウェア
アプリケーション (優先度:低)
割込み処理
(優先度:高)
・ユーザー操作処理 (メニュー、調整)
・迷路情報処理 (壁情報生成、最短ルート解析)
・迷路走行処理
・コンソール処理 (デバッグ、調整)
・タイミング制御
・スイッチ入力状態制御
・区画走行制御 (直進、旋回)
・シリアル通信受信データ制御
・ EEP-ROM 読み書き制御
・時間管理
・モーター制御出力
・センサー入力
・スイッチ入力
・液晶表示出力
・シリアル通信入力
マイコン ( H8/3664F )
ハードウェア
・ステッピングモーター
・センサー
・スイッチ
3
・液晶
・ EEP- ROM
・ブザー
(C) 2004 eXtreme Embedded System Factory
(B) RTOS を使用する場合
ソフトウェア
アプリケーションタスク (優先度:低)
RTOS
(HOS V4)
・ユーザー操作処理(メニュー、調整)
・迷路情報処理 (壁情報生成、最短ルート解析)
・迷路走行処理
・コンソール処理 (デバッグ、調整)
・割込み管理
・時間管理
・タスク管理
周期起動ハンドラ
(優先度:やや高)
・タイミング制御
割込み処理
(優先度:高)
ミドルウェアタスク (優先度:中)
・モーター制御出力
・センサー入力
・スイッチ入力
・液晶表示出力
・シリアル通信入力
・スイッチ入力状態制御
・区画走行制御 (直進、旋回)
・シリアル通信受信データ制御
・ EEP-ROM 読み書き制御
マイコン ( H8/3664F )
ハードウェア
・ステッピングモーター
・センサー
・スイッチ
4
・液晶
・ EEP- ROM
・ブザー
(C) 2004 eXtreme Embedded System Factory
処理の種類
大きく分けて2タイプ
●
通常処理
●
タイマー割込み
5
(C) 2004 eXtreme Embedded System Factory
通常処理
通常処理
●
●
順番に実行していく
同じ処理を繰り返す
メニュー操作処理
迷路探索処理
迷路走行処理
その他の処理
6
(C) 2004 eXtreme Embedded System Factory
タイマー割込み
通常処理
順番に実行していく タイマー割込み ( Timer W )
同じ処理を繰り返す 4つの割込み要因 ( A 、 B 、 C 、 D )
→ 4つのタイマーとして使える
メニュー操作処理
迷路探索処理
通常処理
中断!
GRA: モーター(左)
GRB: モーター(右)
迷路走行処理
GRC: 速度制御
割
た
っ
わ
終 る
が 戻
理 に
処 理
み 処
込 通常
その他の処理
GRD: その他の処理
ら
7
(C) 2004 eXtreme Embedded System Factory
区画走行 (手順)
3
4
1
区画中央
→ 半区画直進する
2
右壁が無いのを検出
→ 半区画直進する
3
区画中央
・右折:右90度旋回
・反転:180度旋回
5
2
1
3
→ 4 からは
1
→ 2 と同様の処理
壁検出は 2 4 で行う
8
(C) 2004 eXtreme Embedded System Factory
スラローム走行 (手順)
3
1
区画中央
→ 半区画直進する
2
右壁が無いのを検出
→ 右スラロームする
3
右スラローム走行後
→ 半区画直進する
4
区画中央
4
2
1
※ 連続スラロームする場合は
3 で 2 と同様の処理をする
壁検出は 2 3 で行う
9
(C) 2004 eXtreme Embedded System Factory
スラローム走行 (アルゴリズム)
3
6
2
前提
(1) 車幅は変わらない
(2) スラローム中の速度は直進時の
・外輪: 1.5 倍
・内輪: 0.5 倍
(3) 円の軌跡に沿って曲がる
θ
2
7.5
4
1
5
外輪
内輪
10