sumple program for angel linesensor. This program can prevent "out of bounds" while robot runs slow.

Dependencies:   mbed

/media/uploads/tajiri1999/angel_linesensor.png /media/uploads/tajiri1999/angel_linesensor_bord.png

基板サイズ φ130mm 固定部はr5mmの円弧 厚さ1mm

使用パーツ

Nucleo stm32f303k8 1個

xh 3pin 1個

フォトトランジスタ(NJL7502L) 36個

超高輝度3mmウォームホワイトLED 36個

LED用抵抗(300Ω 1/4w) 18個

プルダウン用抵抗(1kΩ1/6w) 18個

可変抵抗100kΩ(3362P) 18個

シュミットトリガ(SN74HC14N) 3個

ピンヘッダ 15p

ICソケット 14p

組立て

XHのピン側が前(0°方向)です。 可変抵抗のシルクがあるほうが地面側です。 LEDとフォトトランジスタはシルクの向きが逆ですが頭が地面側にくるように取り付けます。 LEDとフォトトランジスタをホールにさして、上空側から見たとき足の長いほうが左側にくるように取り付けてください。(ロボット正面から見ると右側に長い方が来ます) LED用抵抗は、間隔が広い抵抗シルクがあるところに取り付けてください。 プルダウン用抵抗は,間隔が短い抵抗シルクがあるところに取り付けてください。 Nucleoは上空から見たとき左側にmicrousb端子(ロボット正面から見ると右側)がくるように取り付けてください。

シュミットトリガやnucleoがモーター等に干渉しないように気をつけてください。干渉しそうな場合は反対の面からつけてください。

使い方 入力電圧は5Vです。 アナログ値(0:ボール無, 0.33-3.3V:ボール有)で出力されます。 TJ3で読む場合(0%:ボール無, 6%-66%:ボール有)

メインマイコン側で360度に変換します。

mbedの場合(0-1) 400*(line.read() -0.1)

cstyleの場合(0-100) 6*(CN1 - 6)

ロボット正面を0°,時計回りに360°として、 変換した値の角度の方向に動きます。

mbedの場合

if(line.read() == 0){反応無し}

else{進行方向 = 400*(line.read()-0.1);}

Cstyleの場合はテーブル化したり場合分けして動かすと良いでしょう。

if(CN1 == 0){反応無し}

else if(6*(CN1 - 6) >= 350){motor(r100,r100,100,100);}

else if(6*(CN1 - 6) >= 330){motor(r100,r80,100,80);}

..etc

Download repository: zip gz

Files at revision 0:aa4a1eead8d4

Name Size Actions
[up]
main.cpp 32967 Revisions Annotate
mbed.bld 69 Revisions Annotate