documentacion lego nxt

7

Click here to load reader

Upload: jairo-hernandez

Post on 13-Aug-2015

67 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Documentacion Lego Nxt
Page 2: Documentacion Lego Nxt

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

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

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

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

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

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.