- 初期設定モジュール
モジュール番号 00−INZ 属性 イニシャライズ処理 Input Process 68K、PI/T、RTC、センサ、駆動系の初期設定を行い、
LED制御モジュール、センサテストモジュール、起動モード判定モジュールを登録する。Output 起動条件 電源ON又はリセット 関連モジュール LED制御モジュール
センサテストモジュール
起動モード判定モジュール備考 68Kの初期化はリアルタイムモニタかも
- LED制御モジュール
モジュール番号 00−TIM 属性 タイマ処理 Input 7segLED表示データ(00−3)
Process 起動モード判定するまで、ディップスイッチの状態を見て、
7SegLEDおよび単色LEDを点灯する。
以降は、
7segLED表示データを取得し、
それに応じてLEDを点灯する。
Output 起動条件 一定時間毎
(初期設定モジュールで登録)
関連モジュール 備考
- 起動モード判定モジュール
モジュール番号 00−INT 属性 ノーマル処理 Input Process ディップスイッチデータを取得し、
起動時ディップスイッチデータとしてBBに書き込む。
そのディップスイッチデータにより、
競技、
テスト動作、
補正データ作成
を判定し、
そのモードに対応する7segLED表示データをBBに書き込み、
使用するモジュールを登録する。
競技モードテスト動作モード
- 赤外線データ管理モジュール
- ロータリエンコーダデータ管理モジュール
- タッチセンサデータ管理モジュール
- 超音波センサ制御モジュール
- 超音波距離データ管理モジュール
- PWM制御モジュール
- 状況分析開始モジュール
- デバッグデータ作成モジュール
補正データ作成モード
- ロータリエンコーダデータ管理モジュール
- PWM制御モジュール
- テスト動作モジュール
- デバッグデータ作成モジュール
- ロータリエンコーダデータ管理モジュール
Output 起動時ディップスイッチ(00−1)
7segLED表示データ(00−3)
起動条件 押しボタンスイッチ割り込み
(初期設定モジュールで登録)
関連モジュール 備考
- 赤外線データ管理モジュール
モジュール番号 01−TIM 属性 タイマ処理 Input 赤外線割り込みなしカウント(02−2)
起動時赤外線センサ入力状況(13−1)
Process 赤外線の入力を調べて、入力が無い場合は
赤外線の割り込みなしカウントをする。
入力がある場合は、赤色LEDを点灯し、
赤外線センサの検知データを取得し、
起動時赤外線センサ入力状況との論理積をとり、
赤外線センサ入力データとしてBBに書き込む。
赤外線割り込みなしカウントをリセットし、
最後に赤色LEDを消灯する。
Output 赤外線センサ入力データ(01−1)
赤外線割り込みなしカウント(02−2)起動条件 一定時間毎
(起動モード判定モジュールで競技モード時に登録)
関連モジュール 備考 赤外線の割り込み間隔のチェック(割り込みの禁止と許可の調整)もやるかも。
- ロータリエンコーダデータ管理モジュール
モジュール番号 02−TIM 属性 タイマ処理 Input 座標補正要求フラグ(02−5)
自機x座標(05−1)
自機y座標(05−2)
自機姿勢角(05−3)
Process ロータリエンコーダのカウント値をもとに自機x座標、自機y座標、自機姿勢角を更新し、
積算カウンタのリセットを行う。
座標補正要求があれば、
超音波のデータを基に自機x座標、自機y座標、自機姿勢角を書き換える。
(書き換えられたものが05−1〜05−3に格納されている。
通常はstatic変数によりx、y、姿勢角を保存しているものを使用する。)
書き換え後に座標補正要求フラグを下げる。
Output 座標補正要求フラグ(02−5)
自機x座標(05−1)
自機y座標(05−2)
自機姿勢角(05−3)
起動条件 一定時間毎
(起動モード判定モジュールで登録)
関連モジュール タッチセンサデータ管理モジュール
備考 タッチセンサのの入力に割り込みを用いるかで変更必要。
- タッチセンサデータ管理モジュール
モジュール番号 02−INT 属性 割り込み処理 Input 起動時タッチセンサ入力状況(13−2)
Process タッチセンサデータを取得し、
起動時タッチセンサ入力状況との論理積をとり、
タッチセンサ入力データとしてBBに書き込む。
Output タッチセンサ入力データ(02−1)
起動条件 タッチセンサハードウェア割り込み
(起動モード判定モジュールで競技モード時に登録)
関連モジュール 備考 9703のシステムでは割り込みを用いる必要性はない。
- 超音波制御モジュール
モジュール番号 03−TIM 属性 タイマ処理 Input 超音波センサ選択チャネル(03−1)
1ch割り込みなしカウント(03−6)
2ch割り込みなしカウント(03−7)
3ch割り込みなしカウント(03−8)
4ch割り込みなしカウント(03−9)
Process 選択中のチャネルの送信波に対する割り込みの確認をし、
割り込みのない場合は帰ってこなかったことを示す値を
距離データとしてBBに書き込み、センサのカウントをストップし、
超音波割り込みなしカウントのカウントアップを行なう。
チャネルを切換え、BBに書き込み、
超音波の送信を行なう。Output 超音波センサ選択チャネル(03−1)
1ch距離(03−2)
2ch距離(03−3)
3ch距離(03−4)
4ch距離(03−5)
1ch割り込みなしカウント(03−6)
2ch割り込みなしカウント(03−7)
3ch割り込みなしカウント(03−8)
4ch割り込みなしカウント(03−9)
起動条件 一定時間毎
(起動モード判定モジュールで競技モード時に登録)
関連モジュール 超音波距離データ管理モジュール
備考
- 超音波距離データ管理モジュール
モジュール番号 03−INT 属性 割り込み処理 Input 超音波センサ選択チャネル(03−1)
Process 緑色LEDを点灯し、
センサのカウントをストップし、
選択中のチャネルに対応する割り込みなしカウントをリセットする。
割り込みの信用性のチェックを行ない、
異常の場合は距離データを対応する値でBBに書き込み、
問題のないときは距離の計算を行ない、値をBBに書き込む。
最後に緑色LEDを消灯する。
Output 1ch距離(03−2)
2ch距離(03−3)
3ch距離(03−4)
4ch距離(03−5)
1ch割り込みなしカウント(03−6)
2ch割り込みなしカウント(03−7)
3ch割り込みなしカウント(03−8)
4ch割り込みなしカウント(03−9)
起動条件 超音波センサハードウェア割り込み
(起動モード判定モジュールで競技モード時に登録)
関連モジュール 超音波制御モジュール
備考
- PWM制御モジュール
モジュール番号 04−TIM 属性 タイマ処理 Input 回転方向(04−2)
目標種別(07−3)
目標値(07−4)
目標姿勢角(07−5)
初期速度データ(07−6)
Process 目標到達のためのDUTY比を計算して、モータに出力する。 Output 到達フラグ(04−1)
回転中フラグ(04−3)
起動条件 一定時間毎
(起動モード判定モジュールで競技モード時、テスト動作時に登録)
関連モジュール 備考 フィードバック演算もここでやる。
- 自機データ演算モジュール
モジュール番号 05−NRM 属性 ノーマル処理 Input タッチセンサ入力データ(02−1)
座標補正要求フラグ(02−5)
1ch距離(03−2)
2ch距離(03−3)
3ch距離(03−4)
4ch距離(03−5)
1ch割り込みなしカウント(03−6)
2ch割り込みなしカウント(03−7)
3ch割り込みなしカウント(03−8)
4ch割り込みなしカウント(03−9)
自機x座標(05−1)
自機y座標(05−2)
自機姿勢角(05−3)
Process 超音波センサの割り込みカウントから超音波入力状態を作成し、
ロータリエンコーダによる自機座標を超音波センサの距離データで検証し、
補正の必要がある場合は、座標補正要求フラグを立てて、
補正したデータを自機の座標としてBBに書き込む。
また、タッチセンサの入力データと自機の座標データをもとに
障害パターンを作成する。
自機データの演算終了後、相手機データ演算モジュールを登録する。
Output 超音波入力状態(05−4)
座標補正要求フラグ(02−5)
自機x座標(05−1)
自機y座標(05−2)
自機姿勢角(05−3)
障害パターン(05−5)
自機進行方向(05−6)
起動条件 状況分析開始モジュールでの登録
関連モジュール 状況分析開始モジュール
備考 作成データは増設する可能性あり。
- 相手機データ演算モジュール
モジュール番号 06−NRM 属性 ノーマル処理 Input 1ch距離(03−2)
2ch距離(03−3)
3ch距離(03−4)
4ch距離(03−5)
回転中フラグ(04−3)
自機x座標(05−1)
自機y座標(05−2)
自機姿勢角(05−3)
超音波入力状態(05−4)
障害パターン(05−5)
自機進行方向(05−6)
相手機位置パターン(06−1)
相手機進行パターン(06−2)
相手機との距離(06−3)
目標姿勢角(07−5)
Process 自機座標、障害パターン、超音波センサの測定距離から
新たに相手機位置パターンを作成し、BBに書き込む。
距離の判別ができる場合は相手機との距離も作成し、BBに書き込む。
前回の相手機位置パターンと相手機位置パターンの関係により、
相手機進行パターンを作成し、BBに書き込む。
完了後、行動判断モジュールを登録する。
Output 相手機位置パターン(06−1)
相手機との距離(06−3)
相手機進行パターン(06−2)
起動条件 自機データ演算モジュールでの登録
関連モジュール 状況分析開始モジュール
備考 作成データは増設する可能性あり。
- 行動判断モジュール
モジュール番号 07−NRM 属性 ノーマル処理 Input 選択動作(07−1)
目標種別(07−3)
目標値(07−4)
目標姿勢角(07−5)
到達フラグ(04−1)
超音波入力状態(05−4)
障害パターン(05−5)
相手機進行パターン(06−2)
Process 自機座標と目標を比較し、 目標を達成したか調べる。
目標値を達成し、目標姿勢角が満たされないときは 進行動作モジュールを登録しその場回転をさせ、
目標姿勢角まで満たしたならば、 詳細判断(通常)モジュールを登録し状況に合わせた新規目標を作成させる。
また、作戦動作時ならば 作戦切り替えモジュールし新規目標を作成させる。
障害データや相手進行データにより、 詳細判断(回避)モジュールおよび詳細判断(通常)モジュールし状況に合わせた新規目標を作成させる。
Output 選択動作(07−1)
連続選択回数(07−2)
目標種別(07−3)
起動条件 相手機データ演算モジュールでの登録
関連モジュール 状況分析開始モジュール
備考
- 状況分析開始モジュール
モジュール番号 07−TIM 属性 タイマ処理 Input 赤外線割り込みなしカウント(01−2) Process 赤外線割り込みなしカウントを調べて、
規定値未満のときは、
赤外線追尾動作モジュールを登録し、
目標データをクリアする。(目標種別は3にする)
規定値以上のときは、
自機データ演算モジュールを登録する。
Output 目標種別(07−3)
目標値(07−4)
目標姿勢角(07−5)
目標達成手段(07−6)
起動条件 一定時間毎
(起動モード判定モジュールで競技モード時に登録)
関連モジュール 備考 自機データ演算モジュールを登録するのは内部カウントで超音波センサの測定が一巡するまで待つ。
- 詳細判断(通常)モジュール
モジュール番号 08−NRM 属性 ノーマル処理 Input 選択動作(07−1)
自機x座標(05−1)
自機y座標(05−2)
自機姿勢角(05−3)
障害パターン(05−5)
相手機位置パターン(06−1)
相手機進行パターン(06−2)
相手機との距離(06−3)
Process 選択動作および自機データおよび相手機データに応じて、
目標データを作成する。
また、動作に応じた7segLED表示データをBBに書き込む。
Output 目標種別(07−3)
目標値(07−4)
目標姿勢角(07−5)
初期速度データ(07−6)
7segLED表示データ(00−3)
起動条件 行動判断モジュールでの登録 関連モジュール 備考
- 詳細判断(回避)モジュール
モジュール番号 09−NRM 属性 ノーマル処理 Input 自機x座標(05−1)
自機y座標(05−2)
自機姿勢角(05−3)
障害パターン(05−5)
自機進行方向(05−6)
相手機位置パターン(06−1)
相手機進行パターン(06−2)
相手機との距離(06−3)
Process 選択動作および自機データおよび相手機データに応じて、
目標データを作成する。
また、動作に応じた7segLED表示データをBBに書き込む。
Output 目標種別(07−3)
目標値(07−4)
目標姿勢角(07−5)
進行速度(07−6)
7segLED表示データ(00−3)
回転方向(04−2)
起動条件 行動判断モジュールでの登録 関連モジュール 備考
- 作戦切り替えモジュール
モジュール番号 10−NRM 属性 ノーマル処理 Input 起動時ディップスイッチ(00−1)
作戦段階(10−1)
Process 起動時ディップスイッチおよび作戦段階を調べ、
作戦段階をインクリメントし、
作戦段階が最終段階であれば、終了(0)にする。
その作戦段階に応じた目標データをBBに書き込み、
進行動作モジュールを登録する。
また、動作に応じた7segLED表示データをBBに書き込む。
Output 作戦段階(10−1)
目標種別(07−3)
目標値(07−4)
目標姿勢角(07−5)
初期速度データ(07−6)
7segLED表示データ(00−3)
起動条件 行動判断モジュールでの登録 関連モジュール 行動判断モジュール 備考 作戦動作を初期作戦以外のもの(回避用)を用意するかも。
- 赤外線追尾動作モジュール
モジュール番号 12−NRM 属性 ノーマル処理 Input 赤外線入力データ(01−1)
Process BBの赤外線入力データを元に
相手の勝敗判定装置に近づくためのDUTY比を直接モータに出力する。
また、動作に応じた7segLED表示データをBBに書き込む。
Output 7segLED表示データ(00−3)
起動条件 状況分析開始モジュールでの登録
関連モジュール 状況分析開始モジュール
備考
- センサテストモジュール
モジュール番号 13−NRM 属性 ノーマル処理 Input Process 赤外線センサ、タッチセンサのデータを取得し、
あらかじめ予測されていたデータと比較を行い、
(通常入力なし)
問題のないセンサを起動時赤外線センサ入力状況として、BBに書き込む。
また、結果を7segLED表示データとして、BBに書き込む。
Output 起動時赤外線センサ入力状況(13−1)
起動時タッチセンサ入力状況(13−2)
7segLED表示データ(00−3)
起動条件 初期設定モジュールでの登録
関連モジュール 備考
デバッグデータ転送モジュール
モジュール番号 14−NRM 属性 ノーマル処理 Input デバッグデータ1(14−1)〜デバッグデータ9(14−9)
Process デバッグ用データをRS−232Cケーブル経由でホストPCに転送する。
Output 起動条件 デバッグデータ作成モジュールからの登録
関連モジュール デバッグデータ作成モジュール 備考 起動には押しボタンスイッチ割り込みの利用も考えられる。
デバッグデータ作成モジュール
モジュール番号 14−TIM 属性 タイマ処理 Input Process BB内のデータをデバッグデータとして配列として格納する。
また、ディップスイッチの確認を行い、
スイッチの位置によりデバッグデータ転送モジュールを登録する。
Output デバッグデータ1(14−1)〜デバッグデータ9(14−9)
起動条件 一定時間毎
(起動モード判定モジュールで競技モード時、テスト動作モード時に登録)
関連モジュール デバッグデータ転送モジュール 備考
テスト動作モジュール
モジュール番号 15−TIM 属性 タイマ処理 Input Process ディップスイッチを調べ、
対応するDUTY比を直接モータに出力する。
もしくは、
対応する超音波センサのチャネルの送受信を行い測定値を7SegLED表示データとして
BBに書き込む。
Output 7segLED表示データ(00−3)
起動条件 一定時間毎
(起動モード判定モジュールでテスト動作モード時に登録)
関連モジュール 備考