我是NBC编程的新手,我正在尝试编程我的Lego NXT Brick来搜索和跟踪我在地板上的黑色电子胶带线(我在前面有光传感器,直接指向地面).截至目前,灯亮了,但机器人只是继续越过磁带而没有承认它.如果碰到墙壁,我也会把它设置为停下来转身.唯一不起作用的是当光线照过它时,确认并跟随黑带.任何人都可以看看我的代码并告诉我哪里出错了?
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
Run Code Online (Sandbox Code Playgroud)

小智 3
如果这与我使用的 NXT 相同,那么您不会很快取得任何进展。这个套件中的光传感器是垃圾,你必须摆弄它认为“打开”的东西,直到它真正接收到它。我希望我能给你一个更好的答案,但我已经使用这些东西 4 年了,但从来没有完全按照我想要的方式工作。我使用了套件附带的可视化软件,它有一个选项来设置需要设置多少,尝试寻找类似的东西。