• 追加された行はこの色です。
  • 削除された行はこの色です。
#freeze
 閲覧総計:&counter();  (本日:&counter(today);  昨日:&counter(yesterday);)~
 ~
 *ライントレースカー(基本機能のみ搭載) [#f2b6e40e]
 
 光センサを2ケ取り付けた自動車が黒いラインに沿って走る
 ライントレースカーを製作しました。
 
 フォトリフレクタ GP2S05 秋月 @30円
 http://akizukidenshi.com/catalog/items2.php?q="P-00613"
 モータドラバIC 東芝TA7291P 千石 @170円
 http://www.semicon.toshiba.co.jp/docs/datasheet/ja/LinearIC/TA7291F_TA7291SG_ja_datasheet_060123.pdf
 
 最初は、基本機能だけのプログラムで走らせてみました。
 【結果】カーブの際、ラインセンサ2ケ共が黒ラインからはずれ、
 車がラインから外れてしまいました。改良が必要です。
 06/11/03
 
 |&attachref(P1010200.JPG,zoom,150x150,button){新しい写真添付};|&attachref(P1010195.JPG,zoom,150x150,button){新しい写真添付};|&attachref(P1010196.JPG,zoom,150x150,button){新しい写真添付};|
 |&attachref(P1010197.JPG,zoom,150x150,button){新しい写真添付};|&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() { //メインプログラム 
  
   //マイコンの初期化 
   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; 
     } else { //右センサ白 
      //右にコースアウト 
      //左モーター停止、右モーター前進で 
      //コースにもどる 
      PORTB.F2 = 0; //左モーター停止 
      PORTB.F3 = 0; 
      PORTB.F5 = 1; //右モーター前進 
      PORTB.F4 = 0; 
     } 
    } else { //左センサー白 
     if(PORTA.F2 == 1) { //右センサー黒 
      //左にコースアウト 
      //左モーター前進、右モーター停止で 
      //コースにもどる 
      PORTB.F2 = 1; //左モーター前進 
      PORTB.F3 = 0; 
      PORTB.F5 = 0; //右モーター停止 
      PORTB.F4 = 0; 
     } else { //右センサー白 
      //左右センサー共に白、完全コースアウト 
      //左モーター前進、右モーター前進で 
      //コースから真っ直ぐ外れて行くようにした。 
      PORTB.F2 = 1; //左モーター前進 
      PORTB.F3 = 0; 
      PORTB.F5 = 1; //右モーター前進 
      PORTB.F4 = 0; 
     } 
    } 
   } while(1); //doとwhileの間を繰り返す 
  } //メインプログラム終わり
 
 ★この情報は役に立ちましたか?
 #vote(はい[45],普通[76],いいえ[115])
 #vote(はい[45],普通[76],いいえ[116])
 - これの回路図ありませんか? -- [[へちむ]] &new{2011-12-21 (水) 13:50:55};
 
 #comment_nospam