目次

センサーラッチチェック

 IchigoJamでライントレーサを実現するために
 制御基板を半田付けしました。

 左が半田付けした制御基板、右がIchigoJam。



 合体すると、以下。



 ラインセンサーには、密着タイプの以下の基板を利用。



 IchigoJamは、入力が4ビットなので、ラインセンサーの
 出力である8ビットのデジタル値を取得するには、何らか
 のカラクリを用意しなければなりません。

 74HC165を利用して、8ビットのデータを入力し、クロックで
 1ビットごとに転送する方式を採用することに。

 考えた回路は、以下。




 ライントレーサは、モータを利用するので、PWM波形を
 出力できるピンのOUT_2からOUT_5は、利用せずに制御
 信号を出力できるようにします。

 OUT_1、OUT_6を、それぞれLOAD、CLOCKに割り当てて
 デジタル入力をIN_1に接続します。



 センサーが出力する8ビットデータを入力するための
 シーケンスは、以下。
  1. nLOADに負パルス出力(8ビットデータ記憶)
  2. カウンタに0をセット
  3. SData(Q出力)の値をリード
  4. SCLKに正パルスを出力
  5. カウンタの値を+1する
  6. カウンタの値が7より大きければ次に、それ以外は3にもどる
  7. センサー値を表示
 上のシーケンスを、BASICコードに変換。 100 ' Get data 110 OUT 1,0:WAIT 10:OUT 1,1 120 FOR I=0 TO 7 130 LET S,S << 1 140 LET S,S | IN(1) 150 OUT 6,1:WAIT 10:OUT 6,0 160 NEXT 170 LET [0],S & #FF 180 RTN  PRINTでは、10進数表記になるので、2進数での  表示をサブルーチンに担当させます。  LSB(最下位ビット)から1ビットずつ取り出して  配列に入れて、最後に8ビット分を表示するという  アルゴリズムで、10進数から2進数へ変換します。  シフト命令を利用してみれば、簡単。 200 ' Binary Display 210 LET A,[0] 220 FOR I=1 TO 8 230 LET J,8-I:LET [J],A & 1:LET A,A >> 1 240 NEXT 250 FOR I=1 TO 8 260 ? [I]; 270 NEXT 280 ? "" 290 RTN  利用する部品が揃ったので、全体を統括する  部分を考えておきます。 10 ' Line sensing 20 GOSUB 100 30 GOSUB 200 40 WAIT 60 50 IF BTN() GOTO 70 60 GOTO 20 70 ? "exit" 80 END  まとめると、以下。 10 ' Line sensing 20 GOSUB 100 30 GOSUB 200 40 WAIT 60 50 IF BTN() GOTO 70 60 GOTO 20 70 ? "exit" 80 END 100 ' Get data 110 OUT 1,0:WAIT 10:OUT 1,1 120 FOR I=0 TO 7 130 LET S,S << 1 140 LET S,S | IN(1) 150 OUT 6,1:WAIT 10:OUT 6,0 160 NEXT 170 LET [0],S & #FF 180 RTN 200 ' Binary Display 210 LET A,[0] 220 FOR I=1 TO 8 230 LET J,8-I:LET [J],A & 1:LET A,A >> 1 240 NEXT 250 FOR I=1 TO 8 260 ? [I]; 270 NEXT 280 ? "" 290 RTN  ラベル利用で、次のようにも書けます。 10 ' Line sensing 20 @LOOP 30 GSB @GDAT 40 GSB @SHOW 50 WAIT 60 60 IF BTN() GOTO @EXIT 70 GOTO @LOOP 80 @EXIT 90 ? "exit" 95 END 100 @GDAT 110 OUT 1,0:WAIT 10:OUT 1,1 120 FOR I=0 TO 7 130 LET S,S << 1 140 LET S,S | IN(1) 150 OUT 6,1:WAIT 10:OUT 6,0 160 NEXT 170 LET [0],S & #FF 180 RTN 200 @SHOW 210 LET A,[0] 220 FOR I=1 TO 8 230 LET J,8-I:LET [J],A & 1:LET A,A >> 1 240 NEXT 250 FOR I=1 TO 8 260 ? [I]; 270 NEXT 280 ? "" 290 RTN  センサーを取り付けるメカは、以下。

目次

inserted by FC2 system