- 追加された行はこの色です。
- 削除された行はこの色です。
#freeze
閲覧総計:&counter(); (本日:&counter(today); 昨日:&counter(yesterday);)
*ライントレースカー(コースアウト処理追加) [#p3d7b6a5]
「基本機能のみ搭載」では、カーブの際、ラインセンサ2ケ共が黒ラインから
はずれ、車がラインから外れてしまいました。
この問題を解決する為、今回はラインの外れ方の履歴をold_flagに持たせ
ラインセンサ2ケ共に外れた際の動作指示を定義しました。
【結果】ライントレースカーは常に正しくラインに沿って走行出来る様に
なりました。 06/11/05
|&attachref(,zoom,150x150,button){新しい写真添付};|&attachref(,zoom,150x150,button){新しい写真添付};|
/**
* ライントレースカー(コースアウト処理追加)
*
* PIC 16F628A
* 発信器:内臓4MHz
* 電源:PIC 乾電池4本(6.0V) モータ 乾電池3本(4.5V)
* ライトセンサー: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() { //メインプログラム
unsigned short int old_flag; //完全コースアウト前の状況を記録flag
//マイコンの初期化
PORTA = 0b00000000; //PORTAの中身をきれいにする
PORTB = 0b00000000; //PORTBの中身をきれいにする
CMCON = 0b00000111; //PORTAをデジタル入出力使用に設定
TRISA = 0b00000011; //PORTAをRA0,1を1:入力に、他は0:出力に設定
TRISB = 0b00000000; //PORTBを8つ全て0:出力に設定
//マイコンの初期化終わり
do{ //doとwhileの間を繰り返す
if(PORTA.F1 == 1) { //左センサー黒
if(PORTA.F2 == 1) { //右センサー黒
//車がラインの上にある
//左右モーター前進
PORTB.F2 = 1; //左モーター前進
PORTB.F3 = 0;
PORTB.F5 = 1; //右モーター前進
PORTB.F4 = 0;
old_flag = 0; //両センサコース上
} else { //右センサ白
//右にコースアウト
//左モーター停止、右モーター前進で
//コースにもどる
PORTB.F2 = 0; //左モーター停止
PORTB.F3 = 0;
PORTB.F5 = 1; //右モーター前進
PORTB.F4 = 0;
old_flag = 1; //右にコースアウト
}
} else { //左センサー白
if(PORTA.F2 == 1) { //右センサー黒
//左にコースアウト
//左モーター前進、右モーター停止で
//コースにもどる
PORTB.F2 = 1; //左モーター前進
PORTB.F3 = 0;
PORTB.F5 = 0; //右モーター停止
PORTB.F4 = 0;
old_flag = 2; //左にコースアウト
} else { //右センサー白
//左右センサー共に白、完全コースアウトした場合
if(old_flag == 1) {
//右にコースアウト
//左モーター停止、右モーター前進で
//コースにもどる
PORTB.F2 = 0; //左モーター停止
PORTB.F3 = 0;
PORTB.F5 = 1; //右モーター前進
PORTB.F4 = 0;
old_flag = 1; //右にコースアウト
} else {
//左にコースアウト
//左モーター前進、右モーター停止で
//コースにもどる
PORTB.F2 = 1; //左モーター前進
PORTB.F3 = 0;
PORTB.F5 = 0; //右モーター停止
PORTB.F4 = 0;
old_flag = 2; //左にコースアウト
}
}
}
} while(1); //doとwhileの間を繰り返す
} //メインプログラム終わり
★この情報は役に立ちましたか?
#vote(はい[5],いいえ[5])
- LJnvhc <a href="http://epbilkdqzmtu.com/">epbilkdqzmtu</a>, [url=http://kahavtvfdnoo.com/]kahavtvfdnoo[/url], [link=http://kqtphoijgoen.com/]kqtphoijgoen[/link], http://ttwqcrpasrjq.com/ -- [[jlpeddqsha]] &new{2010-03-09 (火) 12:22:17};
- X5GVBe <a href="http://ksqhzelywodg.com/">ksqhzelywodg</a>, [url=http://jgaqosdjxuvg.com/]jgaqosdjxuvg[/url], [link=http://wkuvdwarryuo.com/]wkuvdwarryuo[/link], http://etfkvcttmqhh.com/ -- [[juxjiel]] &new{2010-03-09 (火) 14:09:02};
- 3Ju3St <a href="http://sjniwsmwihsh.com/">sjniwsmwihsh</a>, [url=http://dwfzsokrwrwg.com/]dwfzsokrwrwg[/url], [link=http://kshtjcjuwkyp.com/]kshtjcjuwkyp[/link], http://okkvbnfgqqxv.com/ -- [[gswdnmlk]] &new{2010-03-15 (月) 08:48:04};
- 5QPnUD <a href="http://mcvbcqdixjcu.com/">mcvbcqdixjcu</a>, [url=http://awhfrourratl.com/]awhfrourratl[/url], [link=http://pteicvlqoifz.com/]pteicvlqoifz[/link], http://ybepvsymhaba.com/ -- [[vhxsltrkctc]] &new{2010-03-16 (火) 04:01:09};
- 5QPnUD <a href="http://mcvbcqdixjcu.com/">mcvbcqdixjcu</a>, [url=http://awhfrourratl.com/]awhfrourratl[/url], [link=http://pteicvlqoifz.com/]pteicvlqoifz[/link], http://ybepvsymhaba.com/ -- [[vhxsltrkctc]] &new{2010-03-16 (火) 04:01:21};
- bgSWXk <a href="http://abcmwboljzuf.com/">abcmwboljzuf</a>, [url=http://erwoqlmiemrp.com/]erwoqlmiemrp[/url], [link=http://iyacitpvfejl.com/]iyacitpvfejl[/link], http://xtcjhoxaevbp.com/ -- [[ufnfwv]] &new{2010-03-16 (火) 19:03:59};
- http://www.ratemds.com/filecache/doctor-ratings.jsp?did=957853&option=viagra#1 viagra 8-(( http://www.uk-local-search.co.uk/search.aspx?q=royal%20viagra viagra >:-P -- [[Ftrbxorn]] &new{2010-03-20 (土) 02:25:28};
- http://www.ratemds.com/filecache/doctor-ratings.jsp?did=957853&option=viagra#1 viagra :-]]] http://www.ratemds.com/filecache/doctor-ratings.jsp?did=957857&option=cialis cialis >:)) http://www.stlouisbusinesslist.com/category/business.asp?uid=5021837&function=interview viagra 8D -- [[Ucwsvhuv]] &new{2010-03-21 (日) 10:06:58};
#comment