目次
前
次
センサーラッチチェック
IchigoJamでライントレーサを実現するために
制御基板を半田付けしました。
左が半田付けした制御基板、右がIchigoJam。
合体すると、以下。
ラインセンサーには、密着タイプの以下の基板を利用。
IchigoJamは、入力が4ビットなので、ラインセンサーの
出力である8ビットのデジタル値を取得するには、何らか
のカラクリを用意しなければなりません。
74HC165を利用して、8ビットのデータを入力し、クロックで
1ビットごとに転送する方式を採用することに。
考えた回路は、以下。
ライントレーサは、モータを利用するので、PWM波形を
出力できるピンのOUT_2からOUT_5は、利用せずに制御
信号を出力できるようにします。
OUT_1、OUT_6を、それぞれLOAD、CLOCKに割り当てて
デジタル入力をIN_1に接続します。
センサーが出力する8ビットデータを入力するための
シーケンスは、以下。
- nLOADに負パルス出力(8ビットデータ記憶)
- カウンタに0をセット
- SData(Q出力)の値をリード
- SCLKに正パルスを出力
- カウンタの値を+1する
- カウンタの値が7より大きければ次に、それ以外は3にもどる
- センサー値を表示
上のシーケンスを、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
センサーを取り付けるメカは、以下。
目次
前
次