Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

LEGO NXT Brick using NBC

I am new to NBC programming and am trying to program my Lego NXT Brick to search for and follow a line of black electrical tape that I have on the floor (I have the light sensor in the front and pointing straight down at the ground). As of right now, the light turns on, but the robot just continues to go over the tape without acknowledging it. I also have it set up to stop and turn around if it bumps into a wall, which is working. The only thing that isn't working is acknowledging and following the black tape when the light goes over it. Can anyone take a look at my code and tell me where I am going wrong?

                                          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

enter image description here

like image 758
Bryan Avatar asked Dec 15 '13 04:12

Bryan


People also ask

Is NXT compatible with EV3?

EV3 uses the same RJ12 connector cables as the NXT, so all NXT sensors and motors will work with the new EV3 platform. EV3 uses the same LEGO Technic building system as NXT so you can reuse all of your bricks and other elements. EV3 uses the same DC transformer as NXT.

Can we use NXT sensors with that of EV3 Brick?

Most NXT accessories can be used with the EV3 brickYou can connect all official LEGO NXT motors and official LEGO NXT sensors to the EV3 brick.

What is the difference between Lego NXT and EV3?

The EV3 has an 'intelligent brick' running Linux and with much more memory than the previous (NXT) version. The EV3 brick is backwards compatible with the sensors and actuators (motors) of the previous (NXT) generation. The NXT brick is forwards compatible with the EV3 motors but not with the EV3 sensors.


1 Answers

If this is the same NXT that I used, then you aren't getting anywhere soon. The light sensor in this kit is garbage, you have to just fiddle with what it considers "On" until it actually picks it up. I wish i had a better answer for you, but I've used these things for 4 years and never had it work exactly the way I want. I used the visual software that came with the kit, and it had an option to set how much was needed for it to be set, try looking for something similar.

like image 50
user3132924 Avatar answered Jan 04 '23 06:01

user3132924