私はNBCプログラミングの初心者です。床にある黒い電気テープを検索してそれに従うようにレゴNXTブリックをプログラムしようとしています(私は前面に光センサーがあり、地面を真っすぐに指している)。現時点では、ライトが点灯しますが、ロボットはそれを認識せずにそのままテープを通過し続けます。壁に突き当たったら、私はそれを止めて周りを回るように設定しました。それは働いています。唯一の効果がないのは、光が上に向かうときに黒いテープを認識し、それに従うことだけです。誰かが私のコードを見て、どこに間違っているのか教えていただけますか?LEGO NXT NBCを使用したレンガ
dseg segment
Switch sword 0
Volume sword 0
Level sword 0
Distance sword 0
dseg ends
thread main
SetSensorTouch(IN_1) // touch sensor connected to IN_1
SetSensorSound(IN_2) // sound sensor connected to IN_2
SetSensorLight(IN_3) // Light Sensor connected to input 3
SetSensorUltrasonic(IN_4) // Ultrasonic Sensor connected to input 4
OnFwd(OUT_BC,80) // move forward
CheckSensor:
ReadSensor(IN_1,Switch) // reads current value of sensor (0/1)
brtst EQ, CheckSensor, Switch // branch to CheckSensor if Switch = 0
// i.e., exit the loop when Switch = 1
OnRev(OUT_BC,40) // move backward
wait 500
OnFwd(OUT_B,20) // turn
wait 500
jmp CheckSound
CheckSound:
ReadSensor(IN_2, Volume)
brcmp GT, ExitCheck, Volume, 60
jmp CheckSound
ExitCheck:
OnFwd(OUT_BC,60)
jmp CheckLight
CheckLight:
ReadSensor(IN_3,Level)
brcmp LT, CheckLight, Level, 60
ReadSensorUS(IN_4,Distance)
brcmp LT, EndPoint, Distance, 30
OnFwd(OUT_C, 10)
FindPath:
ReadSensor(IN_3,Level)
brcmp GTEQ, FindPath, Level, 60
OnFwd(OUT_BC, 60)
jmp CheckLight
EndPoint:
Off(OUT_BC)
wait 1500
endt
あなたは不必要な音を取り除きます(分かりやすくするため)。また、LDDや少なくともあなたのボットの写真は、センサの位置と車輪の動きを理解するのに役立ちます –
ボットがどのように見えるのかをイメージしてポストを編集し、コードのサウンド部分を取り出しました。 – Brett
あなたが私を助けやすくするために何かもっとやりたいことがあれば、私に知らせてください。本当に助けていただければ幸いです! – Brett