沼津高専 電子制御工学科
MIRS0205 Software取扱説明書
MIRS0205-SOFT-0002
改訂記録
版数 作成日 作成者 承認 改訂内容
A01 2004.2.15 齋藤 齋藤
初版

MIRS Software取扱説明書


ソースファイル等一覧

ファイル名 分類 関連ヘッダファイル 詳細
move4.c メインプログラム func_0205.h メインプログラム。
戻り値から次に使用されるモードを記述してある。
cdown.c モードプログラム def_lcd.h 開始前のカウントダウンを行うモード。
cen_post.c モードプログラム def_itw.h def_pwm.h
def_psd.h def_lcd.h
def_etc.h def_cut.h
ポストをMIRSの正面に捉えるモード。
clear_wl.c モードプログラム def_itw.h def_lcd.h
def_etc.h def_cut.h
MIRSが白線上に乗った時に、
どの白線が検知したのかを調べるモード。
distance.c モードプログラム def_itw.h def_pwm.h
def_lcd.h def_etc.h
def_cut.h
MIRSを指定距離前進させるモード。
TSのみ調べている。
get.c モードプログラム def_itw.h def_lcd.h
def_etc.h def_cut.h
def_val.h
ポストをアームで獲得するモード。
get_charge.c モードプログラム def_itw.h def_pwm.h
def_psd.h def_lcd.h
def_etc.h def_cut.h
ポストを体当たりで獲得するモード。
lead.c モードプログラム def_itw.h def_pwm.h
def_psd.h def_lcd.h
def_etc.h def_cut.h
自転してポストを探査するモード。
left_post.c モードプログラム def_itw.h def_pwm.h
def_psd.h def_lcd.h
def_etc.h def_cut.h
ポストをMIRSの左側正面に捉えるモード。
move.c モードプログラム def_itw.h def_pwm.h
def_psd.h def_lcd.h
def_etc.h def_cut.h
ポストを探査しながらMIRSを指定距離前進させるモード。
orbit.c モードプログラム def_itw.h def_pwm.h
def_psd.h def_lcd.h
def_etc.h def_cut.h
ポストを周回しながらポスト番号を確認するモード。
remain_orbit.c モードプログラム def_itw.h def_pwm.h
def_psd.h def_lcd.h
def_etc.h def_cut.h
ポストを見つけた地点から5/4周するモード。
s_orbit.c モードプログラム def_itw.h def_pwm.h
def_psd.h def_lcd.h
def_etc.h def_cut.h
ポストを周回しながら他のポストを探査するモード。
set10cm.c モードプログラム def_itw.h def_pwm.h
def_psd.h def_lcd.h
def_etc.h def_cut.h
ポストから10cm離れた位置にMIRSを移動させるモード。
side_post.c モードプログラム def_itw.h def_pwm.h
def_psd.h def_lcd.h
def_etc.h def_cut.h
MIRSの横にあるポストを探査しながら前進するモード。
メインには使用せず。
surround_post.c モードプログラム def_itw.h def_pwm.h
def_psd.h def_lcd.h
def_etc.h def_cut.h
ポストを1/2周するモード。
メインには使用せず。
trace.c モードプログラム def_itw.h def_pwm.h
def_psd.h def_lcd.h
def_etc.h def_cut.h
白線をMIRS右側に検知しながら前進するモード。
メインには使用せず。
turn.c モードプログラム def_itw.h def_pwm.h
def_lcd.h def_etc.h
def_cut.h
指定角度自転するモード。
victory.c モードプログラム def_itw.h def_pwm.h
def_psd.h def_lcd.h
def_etc.h def_cut.h
def_val.h
ポストを全て獲得した時のモード。
残念ながら使用条件が難しく使用できず。。
wlsearch.c モードプログラム def_itw.h def_pwm.h
def_psd.h def_lcd.h
def_etc.h def_cut.h
白線に対してMIRSが垂直方向を向くように補正するモード。
メインでは基本的に使用せず。
pwm_enc_module.c RTタスクモジュール pwm_enc.h ATLMIRSのpwm_enc_module.cとほぼ同じ。
psd.c デバイスドライバ psd.h PSDの測定した電圧を距離に変換する。
valve.c デバイスドライバ def_val.h 電磁弁の開閉してアームを動かすドライバ。
itw.c デバイスドライバ itw.h 赤外線センサ、タッチセンサ、パワーオン信号、
白線検知センサからのデータ取得。
lcd.c デバイスドライバ lcd_nr.h ATLMIRSのlcd.cとほぼ同じ。
duty2.c 開発用プログラム --- DUTY比と距離を指定して走行させるテストプログラム。
stop2.c 開発用プログラム --- モーターの回転を止めるだけのプログラム
itw_test.c 試験用プログラム --- センサ系試験用プログラム。
lcd_test.c 試験用プログラム --- LCD試験用プログラム。
psd_test.c 試験用プログラム --- PSD試験用プログラム。
vtest.c 試験用プログラム --- 電磁弁試験用プログラム。
Makefile Makefile --- メインとモードのMakefile。


メインプログラム構成モード

  1. カウントダウンモード
    • ソースファイル:cdown.c
    • モード定義:3秒間LCDにカウントダウンを表示
    • モード遷移条件:カウントダウン終了後
    • 構成要素:LCDモジュール
    • 関数名:cdown()
  2. ポスト正面捕捉モード
    • ソースファイル:cen_post.c
    • モード定義:MIRSの正面にポストを捉える
    • モード遷移条件:MIRS正面にポストを捉える、又は一定回数行動を繰り返す
    • 構成要素:LCDドライバ、ITWドライバ、PWMモジュール、PSDドライバ
    • 関数名:int cen_post()
  3. 白線確認モード
    • ソースファイル:clear_wl.c
    • モード定義:白線感知時にどのセンサが白線を感知しているか調査する
    • モード遷移条件:白線の調査し終わる
    • 構成要素:LCDドライバ、ITWドライバ
    • 関数名:int clear_wl()
  4. 指定距離前進モード
    • ソースファイル:distance.c
    • モード定義:指定距離だけ前進する。
      但しPSDによる距離測定と赤外線、白線の検知はしていない。
    • モード遷移条件:指定距離移動する、又はTSが反応する
    • 構成要素:LCDドライバ、ITWドライバ、PWMモジュール
    • 関数名:int distance()
  5. 獲得モード
    • ソースファイル:get.c
    • モード定義:電磁弁を操作してアームを動かしてポストを獲得する
    • モード遷移条件:ポストを獲得する、又は2回アームを動かしてポストが獲得できない
    • 構成要素:LCDドライバ、ITWドライバ、PWMモジュール、VALVEドライバ
    • 関数名:int get()
  6. 体当たり獲得モード
    • ソースファイル:get_charge.c
    • モード定義:体当たりでポストを獲得する
    • モード遷移条件:ポストを獲得する、又は2回体当たりしてポストが獲得できない
    • 構成要素:LCDドライバ、ITWドライバ、VALVEドライバ、PSDドライバ、PWMモジュール
    • 関数名:int get_charge()
  7. 探査モード
    • ソースファイル:lead.c
    • モード定義:自転してポストを探査する
    • モード遷移条件:MIRSがポストを捉えた、又はTSが反応、一定回数行動を繰り返す
    • 構成要素:LCDドライバ、ITWドライバ、PSDドライバ、PWMモジュール
    • 関数名:int lead()
  8. ポスト左側面捕捉モード
    • ソースファイル:left_post.c
    • モード定義:MIRSの左側面にポストを捉える
    • モード遷移条件:MIRS左側面にポストを捉える、又は一定回数行動を繰り返す
    • 構成要素:LCDドライバ、ITWドライバ、PWMモジュール、PSDドライバ
    • 関数名:int left_post()
  9. 前進モード
    • ソースファイル:move.c
    • モード定義:指定距離だけ前進する。
    • モード遷移条件:指定距離移動する、又はTS、IRS、WLSが反応する、指定距離内にポストを検知する
    • 構成要素:LCDドライバ、ITWドライバ、PWMモジュール、PSDドライバ
    • 関数名:int move()
  10. ポスト周回モード
    • ソースファイル:orbit.c
    • モード定義:ポストの周りを周回する
    • モード遷移条件:ポストを1周する、又はTS、WLSが一定回数反応する、IRSに次に獲得するポストの赤外線番号が入る
    • 構成要素:LCDドライバ、ITWドライバ、PWMモジュール、PSDドライバ
    • 関数名:int orbit()
  11. ポスト周回モード2
    • ソースファイル:remain_orbit.c
    • モード定義:ポスト公転モードと合わせてポストの周りを5/4周する
    • モード遷移条件:ポストを5/4周する、又はTS、WLSが一定回数反応する、IRSに次に獲得するポストの赤外線番号が入る
    • 構成要素:LCDドライバ、ITWドライバ、PWMモジュール、PSDドライバ
    • 関数名:int remain_orbit()
  12. 周回探査モード
    • ソースファイル:s_orbit.c
    • モード定義:ポストの周りを1周しながらMIRS右方向にポストを探査する
    • モード遷移条件:ポストを1周する、又はTS・WLSが一定回数反応する、IRSに次に獲得するポストの赤外線番号が入る、ポストを発見する
    • 構成要素:LCDドライバ、ITWドライバ、PWMモジュール、PSDドライバ
    • 関数名:int s_orbit()
  13. ポスト前調整モード
    • ソースファイル:set10cm.c
    • モード定義:ポストをMIRS正面10cmに捉えるように調整する
    • モード遷移条件:ポストをMIRS正面10cmに捉える、又はWLSが反応する、正面IRSに次に獲得するポストの赤外線番号が入る、一定距離以上前進する
    • 構成要素:LCDドライバ、ITWドライバ、PWMモジュール、PSDドライバ
    • 関数名:int set10cm()
  14. 指定角度自転モード
    • ソースファイル:turn.c
    • モード定義:指定角度自転する
    • モード遷移条件:指定角度自転する、又はIRS・TS・WLSが反応する
    • 構成要素:LCDドライバ、ITWドライバ、PWMモジュール
    • 関数名:int turn()
  15. 勝利モード
    • ソースファイル:victory.c
    • モード定義:全ポスト獲得時に踊るw
    • モード遷移条件:行動が終了する
    • 構成要素:LCDドライバ、ITWドライバ、PWMモジュール
    • 関数名:int victory()
  16. 白線調整モード
    • ソースファイル:wlsearch.c
    • モード定義:白線に対してMIRSが垂直になるように調整する
    • モード遷移条件:背面WLSの2つが反応する、又はIRS・TSが反応する
    • 構成要素:LCDドライバ、ITWドライバ、PWMモジュール
    • 関数名:int wlsearch()

上記プログラムを使用する上での諸注意

関連文書