#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};
- http://www.uk-local-search.co.uk/business/buy+viagra+cheap+generic/1851115/ generic viagra   :]  http://www.armenian.com/cgi-bin/links.cgi?searchstring=cialis%20store buy cialis   =-DD   -- [[Zdmjfmlt]] &new{2010-03-22 (月) 09:42:14};
- http://www.armenian.com/cgi-bin/links.cgi?searchstring=cialis generic cialis   >:O  http://www.armenian.com/cgi-bin/links.cgi?searchstring=viagra%20store cheap viagra   :-[[[   -- [[Mtzsrjsm]] &new{2010-03-22 (月) 09:47:13};
- http://www.armenian.com/cgi-bin/links.cgi?searchstring=viagra buy viagra   %[[  http://www.armenian.com/cgi-bin/links.cgi?searchstring=cialis generic cialis   %O   -- [[Swsbnpni]] &new{2010-03-24 (水) 11:14:42};
- http://www.ratemds.com/filecache/doctor-ratings.jsp?did=957857&option=cialis#1 buy cialis   >:-D  http://www.armenian.com/cgi-bin/links.cgi?searchstring=cialis%20pills generic cialis   %-((   -- [[Hpgnhgew]] &new{2010-03-26 (金) 07:03:52};

#comment