- 追加された行はこの色です。
- 削除された行はこの色です。
閲覧総計:&counter(); (本日:&counter(today); 昨日:&counter(yesterday);)~
~
*ライントレースカー(基本機能のみ搭載) [#f2b6e40e]
光センサを2ケ取り付けた自動車が黒いラインに沿って走る
ライントレースカーを製作しました。
フォトリフレクタ GP2S05 秋月 @30円
モータドラバIC 東芝TA7291P 千石 @170円
最初は、基本機能だけのプログラムで走らせてみました。
【結果】カーブの際、ラインセンサ2ケ共が黒ラインからはずれ、
車がラインから外れてしまいました。改良が必要です。
06/11/03
|&attachref(,zoom,150x150,button){新しい写真添付};|&attachref(,zoom,150x150,button){新しい写真添付};|&attachref(,zoom,150x150,button){新しい写真添付};|
|&attachref(,zoom,150x150,button){新しい写真添付};|&attachref(,zoom,150x150,button){新しい写真添付};|&attachref(,zoom,150x150,button){新しい写真添付};|
/**
* ラインに沿って走る車V1
*
* PIC 16F628A
* 発信器:内臓4MHz
* 電源:乾電池4本(6.0V)
* ライトセンサー:RA0, RA1
* モーター:左 RB6,RB7 右 RB0,RB1
*
* Device Flags: _BODEN_OFF _BOREN_OFF _CP_OFF _PWRTE_ON
* _WDT_OFF _LVP_OFF _MCLRE_OFF _INTRC_OSC_NOCLKOUT
*
* プログラム言語:MikroC v6.0
*/
void main() { //メインプログラム
//マイコンの初期化
PORTA = 0b00000000; //PORTAの中身をきれいにする
PORTB = 0b00000000; //PORTBの中身をきれいにする
CMCON = 0b00000111; //PORTAをデジタル入出力使用に設定
TRISA = 0b00000011; //PORTAをRA0,1を1:入力に、他は0:出力に設定
TRISB = 0b00000000; //PORTBを8つ全て出力に設定
//マイコンの初期化終わり
do{ //doとwhileの間を繰り返す
if(PORTA.F1 == 1) { //左センサー黒
if(PORTA.F0 == 1) { //右センサー黒
//車がラインの上にある
//左右モーター前進
PORTB.F6 = 1; //左モーター前進
PORTB.F7 = 0;
PORTB.F0 = 1; //右モーター前進
PORTB.F1 = 0;
} else { //右センサ白
//右にコースアウト
//左モーター停止、右モーター前進で
//コースにもどる
PORTB.F6 = 0; //左モーター停止
PORTB.F7 = 0;
PORTB.F0 = 1; //右モーター前進
PORTB.F1 = 0;
}
} else { //左センサー白
if(PORTA.F0 == 1) { //右センサー黒
//左にコースアウト
//左モーター前進、右モーター停止で
//コースにもどる
PORTB.F6 = 1; //左モーター前進
PORTB.F7 = 0;
PORTB.F0 = 0; //右モーター停止
PORTB.F1 = 0;
} else { //右センサー白
//左右センサー共に白、完全コースアウト
//左モーター前進、右モーター停止で
//右回りするようにした
PORTB.F6 = 1; //左モーター前進
PORTB.F7 = 0;
PORTB.F0 = 0; //右モーター停止
PORTB.F1 = 0;
}
}
PORTB.F5 = PORTA.F1; //左センサー状況LED表示
PORTB.F2 = PORTA.F0; //右センサー状況LED表示
} while(1); //doとwhileの間を繰り返す
} //メインプログラム終わり
#comment