- トップページ
- どんとこいPC情報!!
- P-ROBO(ピーロボ)を作ってみよう!
P-ROBO(ピーロボ)を作ってみよう!
P-ROBOの仕組みとプログラムについて紹介します。
P-ROBOとは?
P-ROBOとは何なのか? まずはP-ROBOについて簡単に紹介します。 P-ROBOは、ワンチップマイコン PIC を搭載したロボットです。単三電池4本で動作します。このロボットは、センサを使用してコースに引いたラインをトレースしながら走ることのできる、自走ロボットです。 P-ROBO P-ROBO本体裏側 センサ部分拡大この横に3つ並んだ黒い物がセンサーです。赤外線LEDとフォトトランジス...
P-ROBOプログラミングの基本
P-ROBO制御プログラムは、レジスタの設定、初期化などを終了した後、下記の項目を繰返し動作します。 I/Oポート入力信号の赤外線センサの状態を確認する。 センサの状態より、左右モーターの動作を指定する。 タイマの割り込み処理により、左右モーターの動作を決定する。 プログラムは繰返し動作する。 レジスタ設定と言うのは、CPUであるPICの機能である、ポートやタイマの機能を使える状態にする事です...
レジスタの設定
P-ROBOを制御するにあたって、以下のレジスタを定義します。 8ビットリアルタイム・クロック/カウンタ I/OポートA I/OポートB 割り込み制御レジスタ オプションレジスタ トライステートレジスタA トライステートレジスタB レジスタファイル配置図 PIC16F84では下記のようにレジスタファイルが配置されています。 Address Name Comment Bank 0 00h I...
割り込み処理
P-ROBOの割り込みでは、大きく分けて3つの処理を行いました。以下にてこれらの解説を行います。 モータ ユーザLED タイマ モータ モータ部分では、動作に強弱(速さの調節)を行うためにPWM制御をしています。※PWM制御とは?一定周期の中で出力のON時間とOFF時間の割合を変えて、出力電圧を制御すること。 モータ動作の強弱をどのように生成するかというと、 モータ部の処理は、割り込みが30...
メイン関数
ライントレースを行うにあたって作成したメイン関数を紹介します。 1.メイン関数 メイン処理の関数です。起動して電源がOFFされるまで動作する為に、内部の処理は無限ループとなっています。 初期化処理 割り込み許可 ロータリスイッチ読み込み 赤外LEDセンサフラグオン 赤外LEDセンサオン 赤外LEDセンサ読み込み モータ動作選択 モータ動作設定 センサ状態のバックアップを行う ・メイン関数 流...
初期化
始めに各レジスタの詳細について説明します。各レジスタを理解したところで、目的にあった設定を行います。 I/OポートA P-ROBOでは右モータ、左モータ、ユーザLEDが接続されています。 ※ビット情報 bit7-5 PORTAは5ビット幅のため使用されないbit4 ユーザLED 1 = ユーザLEDオフ 0 = ユーザLEDオンbit3-2 左モータ 00 =...
サブ関数群
ライントレースを行うにあたって作成したサブ関数を紹介します。 割り込み許可関数 割り込み禁止関数 ユーザLED制御関数 Wait関数 ロータリスイッチ読み込み関数 右モータ制御関数 左モータ制御関数 赤外LEDセンサ制御関数 センサ読み込み関数 モータ動作設定関数 1.割り込み許可関数 割り込みを許可する関数です。iINTCONのビット7をセットすると、すべての割り込みの発生を許可します。 ...