1 / 5

ライントレーサー プレゼンテーション

ライントレーサー プレゼンテーション. 平成20年 2月28日 学籍番号 2006 E 42. プログラムのコンセプト. 読みやすく 書きやすく. 全体の構成. 記号的記述は減らそう #define FRONT 0x01 #define RIGHT 0x02 #define LEFT 0x04 #define NONE 0x00 #define END 0xff #define FR (FRONT | RIGHT) #define FL (FRONT | LEFT) #define RL (RIGHT | LEFT)

didina
Download Presentation

ライントレーサー プレゼンテーション

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ライントレーサープレゼンテーション 平成20年 2月28日 学籍番号 2006E42

  2. プログラムのコンセプト 読みやすく 書きやすく

  3. 全体の構成 記号的記述は減らそう #define FRONT 0x01 #define RIGHT 0x02 #define LEFT 0x04 #define NONE 0x00 #define END 0xff #define FR (FRONT | RIGHT) #define FL (FRONT | LEFT) #define RL (RIGHT | LEFT) #define FRL (FRONT | RIGHT | LEFT) #define S_FR ((PORTB & 0x10) == 0) #define S_FL ((PORTB & 0x20) == 0) #define S_R ((PORTB & 0x40) == 0) #define S_L ((PORTB & 0x80) == 0) #define M_FRONT PORTB = 0x5 #define M_RIGHT PORTB = 0x4 #define M_LEFT PORTB = 0x1 #define M_RTURN PORTB = 0x6 #define M_LTURN PORTB = 0x9 #define M_BACK PORTB = 0xa #define M_STOP PORTB = 0x0 初期設定 分岐路認識 メイン ルーチン 直進 分岐処理 終了

  4. 曲がり角が判ればいい 初期設定 メイン ルーチン 分岐路認識 キーワードは nextCorner[] = { ... }; nextTurn[] = { … }; • 配列に曲がり角の情報を入れるだけ  → 直進 分岐処理 終了 nextCornerのコーナーを認識 nextTurnの方向に移動

  5. 十字路を求めて走る • nextCornerが十字路ならば 十字路を認識するまで直進 →十字路を三叉路と誤認識しても、再認識をして十字路であることを確認 十字路も最初の左折路と変わらない!

More Related