documentacion lego nxt
TRANSCRIPT
![Page 1: Documentacion Lego Nxt](https://reader038.vdocuments.pub/reader038/viewer/2022100601/5572142a497959fc0b93ec32/html5/thumbnails/1.jpg)
![Page 2: Documentacion Lego Nxt](https://reader038.vdocuments.pub/reader038/viewer/2022100601/5572142a497959fc0b93ec32/html5/thumbnails/2.jpg)
Objetivo
Establecer una interfaz entre el lego NXT y el código fuente necesario
para lograr el recorrido del lego NXT como seguidor de linea, dentro de
la plataforma eclipse y a si realizar un programa con el robot móvil
Lego Mindstorms NTX.
![Page 3: Documentacion Lego Nxt](https://reader038.vdocuments.pub/reader038/viewer/2022100601/5572142a497959fc0b93ec32/html5/thumbnails/3.jpg)
Realizaremos un programa que siga una línea esto lo hará con ayuda
de un sensor de luz este sensor capacita al robot para reaccionar ante
variaciones de nivel de luz y de color.
El sensor de luz actúa bajo un principio reflectivo este sensor esta
compuesto por dos Leeds uno es el emisor y el otro receptor.
Material utilizado Cantidad Descripción y figura Imagen
1 Ladrillo programableNXT
1 Sensor de luz NXT
3 Cables mindtorms de
35cm
2 Motores eléctricos
del NXT
2 Eje technic 12
4 Junta para ejes
perpendiculares
1 Cable eléctrico serial
USB
![Page 4: Documentacion Lego Nxt](https://reader038.vdocuments.pub/reader038/viewer/2022100601/5572142a497959fc0b93ec32/html5/thumbnails/4.jpg)
Este es el código del seguidor de líneas que a continuación describiremos partes del código para entender su funcionamiento package com.mycomuni; Estas son todas las librerías importadas que se utilizan para que el código pueda ejecutarse correctamente. import lejos.nxt.Button; import lejos.nxt.LCD; import lejos.nxt.LightSensor; import lejos.nxt.SensorPort; import lejos.robotics.RegulatedMotor; import lejos.robotics.navigation.DifferentialPilot; import lejos.robotics.navigation.RotateMoveController; import lejos.robotics.subsumption.Arbitrator; import lejos.robotics.subsumption.Behavior; import lejos.util.PilotProps; public class lineFoller { public static void main (String[] aArg) throws Exception { PilotProps pp = new PilotProps(); pp.loadPersistentValues(); float wheelDiameter = Float.parseFloat(pp.getProperty(PilotProps.KEY_WHEELDIAMETER, "4.96")); float trackWidth = Float.parseFloat(pp.getProperty(PilotProps.KEY_TRACKWIDTH, "13.0")); Esta parte de código es para el motor que nos muestra en donde van a ir conectados los cables del motor al ladrillo. RegulatedMotor leftMotor = PilotProps.getMotor(pp.getProperty(PilotProps.KEY_LEFTMOTOR, "B")); RegulatedMotor rightMotor = PilotProps.getMotor(pp.getProperty(PilotProps.KEY_RIGHTMOTOR, "C")); boolean reverse = Boolean.parseBoolean(pp.getProperty(PilotProps.KEY_REVERSE,"false")); Esta parte de código hace que el robot si no encuentra la línea pueda voltearse 180 grados para encontrar de Nuevo a la línea final RotateMoveController pilot = new DifferentialPilot(wheelDiameter, trackWidth, leftMotor, rightMotor, reverse); final LightSensor light = new LightSensor(SensorPort.S1); pilot.setRotateSpeed(180); DriveForward = new Behavior() { public boolean takeControl() {return light.readValue() <= 40;} public void suppress() { pilot.stop(); En esta parte del código se la da la instrucción al lego para que se detenga por un tiempo hasta detectar nuevamente la línea negra } public void action() { pilot.forward();
![Page 5: Documentacion Lego Nxt](https://reader038.vdocuments.pub/reader038/viewer/2022100601/5572142a497959fc0b93ec32/html5/thumbnails/5.jpg)
while(light.readValue() <= 40) Thread.yield(); //action complete when not on line } }; Behavior OffLine = new Behavior() { En este apartado se le da la instrucción al lego para que detecte y siga la línea negra. private boolean suppress = false; public boolean takeControl() {return light.readValue() > 40;} public void suppress() { suppress = true; } public void action() { int sweep = 10; while (!suppress) { pilot.rotate(sweep,true); while (!suppress && pilot.isMoving()) Thread.yield(); sweep *= -2; } pilot.stop(); suppress = false; } }; Behavior[] bArray = {OffLine, DriveForward}; LCD.drawString("Line ", 0, 1); Button.waitForAnyPress(); (new Arbitrator(bArray)).start(); En esta parte del codigo iniciamos el lego para que empiece a detector la linea negra y realice el recorrido. } }
![Page 6: Documentacion Lego Nxt](https://reader038.vdocuments.pub/reader038/viewer/2022100601/5572142a497959fc0b93ec32/html5/thumbnails/6.jpg)
RECORRIDO DEL LEGO NXT SEGUIDOR DE LINEA
1.-Aquí se muestra el recorrido realizado por el lego NXT
2.- El grosor de la línea debe ser mayor a 5 cm de diámetro para que el lego pueda
detectarla rápidamente.
![Page 7: Documentacion Lego Nxt](https://reader038.vdocuments.pub/reader038/viewer/2022100601/5572142a497959fc0b93ec32/html5/thumbnails/7.jpg)
3.- El lego al no encontrar la línea negra está programado para buscarla dando un
giro de 180 grados hasta encontrar la línea.