6

私は 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

ここに画像の説明を入力

4

2 に答える 2

3

これが私が使用したのと同じ NXT である場合、すぐにはどこにも到達しません。このキットの光センサーはゴミです。実際に検出されるまで、「オン」と見なされるものをいじる必要があります。もっと良い答えがあればいいのにと思いますが、私はこれらのものを4年間使用しており、思いどおりに機能したことはありません. キットに付属のビジュアルソフトを使ったのですが、設定するのに必要な量を設定するオプションがあったので、似たようなものを探してみました。

于 2013-12-24T15:55:32.553 に答える