Está en la página 1de 7

Objetivo

Establecer una interfaz entre el lego NXT y el cdigo 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 mvil Lego Mindstorms NTX.

Realizaremos un programa que siga una lnea 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 acta bajo un principio reflectivo este sensor esta compuesto por dos Leeds uno es el emisor y el otro receptor.

Material utilizado
Cantidad 1 Descripcin y figura Ladrillo programableNXT Imagen

Sensor de luz NXT

Cables mindtorms de 35cm Motores elctricos del NXT

2 4 1

Eje technic 12 Junta para ejes perpendiculares Cable elctrico serial USB

Este es el cdigo del seguidor de lneas que a continuacin partes del cdigo para entender su funcionamiento package com.mycomuni;

describiremos

Estas son todas las libreras importadas que se utilizan para que el cdigo pueda ejecutarse correctamente. import import import import import import import import import import lejos.nxt.Button; lejos.nxt.LCD; lejos.nxt.LightSensor; lejos.nxt.SensorPort; lejos.robotics.RegulatedMotor; lejos.robotics.navigation.DifferentialPilot; lejos.robotics.navigation.RotateMoveController; lejos.robotics.subsumption.Arbitrator; lejos.robotics.subsumption.Behavior; 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 cdigo 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 cdigo hace que el robot si no encuentra la lnea pueda voltearse 180 grados para encontrar de Nuevo a la lnea 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 cdigo se la da la instruccin al lego para que se detenga por un tiempo hasta detectar nuevamente la lnea negra } public void action() { pilot.forward();

while(light.readValue() <= 40) Thread.yield(); //action complete when not on line } }; Behavior OffLine = new Behavior() { En este apartado se le da la instruccin al lego para que detecte y siga la lnea 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. } }

RECORRIDO DEL LEGO NXT SEGUIDOR DE LINEA


1.-Aqu se muestra el recorrido realizado por el lego NXT

2.- El grosor de la lnea debe ser mayor a 5 cm de dimetro para que el lego pueda detectarla rpidamente.

3.- El lego al no encontrar la lnea negra est programado para buscarla dando un giro de 180 grados hasta encontrar la lnea.

También podría gustarte