Presentation is loading. Please wait.

Presentation is loading. Please wait.

Line Tracer ~~ PIC の 軌跡 ~~ e1317.

Similar presentations


Presentation on theme: "Line Tracer ~~ PIC の 軌跡 ~~ e1317."— Presentation transcript:

1 Line Tracer ~~ PIC の 軌跡 ~~ e1317

2 0 プログラムの流れ 1、ゴールするための 2、ウィンカーの 3、速度判定の ●大きな3つの プログラムがある● これらを 一つずつ説明する
 ●大きな3つの プログラムがある● 1、ゴールするための 2、ウィンカーの 全く独立して動作するわけではない 説明上 分けた 3、速度判定の これらを 一つずつ説明する

3 1 ゴールするための ★「左手法」 1.1 方法 ╋,┓,┫,┳ 左折 ┏ 右折 ┣ ,┃ 直進 <理由>
・理論が分かりやすい ・プログラムが見やすい ・後から機能を付加しやすい ・右手より距離が長いため 1.1 左手法 理由    理論が分かりやすい       プログラムが見やすい       後から機能を付加しやすい       右手より距離が長いため 簡単だから。 下のが設定です。 ╋,┓,┫,┳ 左折 左手法 命令 右折 ┣ ,┃ 直進

4 1.2 結果 問題点 T字・・・× 直線・・・× ゴ-ル・・・× S G 手 こんな 結果で だめだったところは 爆発のところ。
こんな 結果で  だめだったところは 爆発のところ。 ばつ が 小さいのは ゴールするには 問題ない けど ちょっとしか 止まっていない。 ゴ-ル・・・× G

5 1. 3改善 T字 ⇒ T字は左折に設定済み ↓ T字と判断してない ==直進設定に原因あり==
直進でのブレが大きすぎた。  方車輪を止めて方車輪だけ 前進の修正プロ ゴールは 長めにとまってもらうのみ。   直進  ⇒ ラインに完全に乗ってから走行させる ゴ-ル ⇒ 時間稼ぎする

6 2 ウィンカーの 2.1方法 ★「割り込み」 Main タイマ0割込・右折 RB変化割込 右LED点灯 タイマ0割込・左折 センサ監視
右?左?直? センサ監視 入力変化で 割込許可 左LED点灯 ウィンカーには 割り込みを使いました。 割り込みとは・・・メインで仕事をしながら、小さいものならもう一つ仕事ができる。というもの。 これではトレースしながら、センサが変化すればもう一つのウィンカーという仕事をさせているプロです。 センサ変化で RB変化割り込みが始まって、トレーサーの状態を把握してから、その状態にあったLEDを点滅させています。 LED点滅にはタイマ0割り込みを使って、ある、一定時間の間隔でLEDを点滅させています。 ==これのメリット==  ・すばやくセンサの変化を見れて、それによってウィンカーを使える。 ・曲がりながらLED点滅できる。 ・変化割り込みをした後、タイマ0割り込みに入れば、次の変化が起こるまでタイマ0の処理がつづくので誤作動が起こりにくい。  ・<違い>変化は無くてもよさそうだけど、変化割り込みで状態を判断して、LEDの点滅を始めさせるので、もし、前と同じ状態なら、たとえば直進し続けていたら、変化は起こっていないから、LEDの点滅は途切れることがないのが大きな違いです。また、よぶんな判断を削っています。 LED [light-emitting diode] 接合部に電流が流れると光を放射するダイオード。材料によって決まった波長の光を発する。エネルギー効率に優れ,低消費電力,高速応答などの特徴をもつ。発光ダイオード。 〔1990 年代に青色 LED が開発され,LED によるフルカラー表示が可能となった〕 タイマ0割込許可 タイマ0割込・直進 終了 復帰 LED交互に点灯

7 2.2結果 2.3改善 成功 ・一旦停止を入れたほうが ウィンカーを生かせた ・点滅間隔を短くしたほうが分かりやすかった
考えどおりに動きました。 それぞれ 図のようになりました。 ・一旦停止を入れたほうが  ウィンカーを生かせた ・点滅間隔を短くしたほうが分かりやすかった 2.3改善 ・一旦停止を入れたほうが  ウィンカーを生かせた ・点滅間隔を短くしたほうが分かりやすかった

8 3 速度判定の 3.1.1方法 ★「EEPROM」 End new<old タイマ0割込 EEPROM書き込み new=new+1
3 速度判定の End 3.1.1方法 new<old ★「EEPROM」 FAULT タイマ0割込 TRUE EEPROM書き込み new=new+1 EEPROMは 電源をけしても保存されるメモリなので それをつかって タイム計測をしました。 タイム計測 方法は 図のように タイマ0割り込みに入ったときに,EEPROMにいれる変数new に1カウントずつたいしていき何回割り込んだかで かかった時間の早い遅いを比べます。 それをするのは最後のEnd という関数の中で 以前から入っていたEEPROMの変数old と比べて更新していれば 書き込む&パフォーマンスそうでなければ かきこまない と なっています。 書き込んだかどうかは パフォーマンスのある、なしで判断します。 パフォーマンス 終了

9 3.1.2方法 1回目 2回目 たとえば 左手法 右手法 ∴左手のほうが 早い! となる。 パフォーマンス
2回走ることができたので 一回目、左手法でゴールして パフォーマンスが無かったら 二回目は右手法でゴールする。というように、 右手と左手、両方用意してあったので、どちらが早いかをコースがわからなくても わかる。 次からは早いほうでゴールすることが可能になるのです! ∴左手のほうが 早い! となる。

10 ● PIC内のクロック周波数から1secを計算し、
3.2改善 ● PIC内のクロック周波数から1secを計算し、 もちいると時間が測定できた。 数字として測定できれば プログラムの改良も楽 タイマ0でカウントすると、1secを数えることも可能だけれど、ウィンカーも1secごとになるので、 今回は 時間としては結果がだせなかった。 しかし、全く別のこの方法なら二つ併合もできた。 右手 左手の簡単なプログラムなので スイッチなどで転換できるようにすれば 手間が省ける。 ●左手法、右手法の切り替えが プログラム中で、できるようにする。

11 4 まとめ ●PICで できることを多く詰め込めた。 ●まだまだ、多くの可能性があり、 利用を深めていきたい ありがとうぉ

12 END


Download ppt "Line Tracer ~~ PIC の 軌跡 ~~ e1317."

Similar presentations


Ads by Google