【发布时间】:2013-12-15 04:41:53
【问题描述】:
我是 NBC 编程的新手,我正在尝试对我的乐高 NXT 积木进行编程,以搜索并跟踪我在地板上的一排黑色电工胶带(我的前面有光传感器,并直接指向下方)地面)。到现在为止,灯亮了,但机器人只是继续检查磁带而没有确认它。如果它撞到墙上,我也将它设置为停止并转身,这正在工作。唯一不工作的就是当光线越过黑色胶带时确认并跟随黑色胶带。谁能看看我的代码并告诉我哪里出错了?
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 或至少您的机器人的照片将有助于了解您的传感器位置以及您如何驱动您的车轮
-
用机器人的样子编辑了帖子,并去掉了代码中的声音部分。
-
如果我需要做更多的事情来让你更容易地帮助我,请告诉我。非常感谢一些帮助!