Mostrando entradas con la etiqueta NXT. Mostrar todas las entradas
Mostrando entradas con la etiqueta NXT. Mostrar todas las entradas

jueves, 6 de diciembre de 2007

Resumen FIRST LEGO Liga FLL Madrid

Al final el Domingo 2 de Diciembre se celebró la FIRST Lego League en Madrid, en concreto en el CosmoCaixa.

Se presentaron 14 equipos de colegios de toda España que contaban desde 4 a 10 participantes de entre 10 y 16 años. Cada equipo presentaba un robot realizado con piezas de lego basado en RCX o NXT que tenía que superar unos retos preestablecidos sobre un tablero también conocido por ellos donde han podido realizar prácticas.

La mayoría (¿todos?) de los robots no usaban ningún tipo de sensor, sino que se basaban en el posicionamiento del robot en un lugar y orientación concreta y movían los motores tal y como habían practicado en sus mesas de entrenamiento. Con ello, un pequeño fallo a la hora de posicionar el robot y fallaban la misión...



Se veía a los chavales muy ilusionados y con muchas ganas de participar. Se supone que en este evento se seleccionaban ¿los 5 mejores equipos? para que compitan de nuevo en Barcelona junto con otros 30 equipos y de ahí los seleccionados irán a USA a la competición internacional.


Para evaluar a los mejores equipos, situaban sus robots en la mesa y durante 2 minutos y 30 segundos debían realizar las misiones propuestas, puntuando según las normas establecidas.
Para ello estábamos los árbitros a pie del campo de juego aplicando las normas y sanciones oportunas así como contabilizando la suma de puntos obtenidos finalmente. También los niños presentaban sus proyectos ante unos jueces explicando como habían realizado los robots y respondiendo a las preguntas que estos les hicieran.



Las 5 plazas de ¿promoción? a Barcelona se concedieron de la siguiente manera: 1 de ellas se concedió al equipo que gano el torneo de robots en la mesa de juego, mientras que las otras 4 se dieron a dedo por los jueces, dándose el caso de que algún equipo que tenía unos robots que funcionaban de una manera fenomenal en la pista, pero por un descuido no pudieron quedar los primeros, quedaron descalificados sin plaza para Barcelona ya que los jueces tampoco les dieron ninguno de los premios.

A mi me parece una forma totalmente injusta, ya que no se premian los resultados obtenidos, sino otros valores que pueden ser muy subjetivos y asignados de una manera muy discutible, pero así lo quiso la organización.

También me gustaría comentar que la organización fue muy poco detallista con los voluntarios y con los árbitros, ya que a pesar de la dedicación y esfuerzo de todos ellos, ni siquiera se dignaron a darnos un bocadillo para comer...

Por lo demás, fue un día muy interesante con muchas emociones y que no tendría ningún problema en repetir.

lunes, 1 de octubre de 2007

9833-1 Transformador de 9V LEGO

Como muchos sabéis, con el Kit de educación de lego mindstorm NXT viene una batería recargable, pero no viene el cargador, teniendo que comprarlo aparte.


Según las especificaciones de lego el cargador da 9V AC, aunque mirando en la misma batería que Lego proporciona nos indica que la entrada debe ser entre 9 y 12 Voltios AC.

Pues bien, si por casa tenemos un adaptador universal que nos de algún voltaje entre 9 y 12 en principio nos vale. Yo encontré uno por casa con voltajes seleccionables entre 1,5V, 3V, 4,5V, 6V, 7,5V, 9V, 12V. Como la batería a recargar es de 7,4V, en principio con 9V debería ser suficiente, pero como la misma batería tiene serigrafiado entre 9 y 12 preferí ponerlo a 12V. La batería nos pide también que sea corriente alterna, pero está claro que para cargar una batería necesitamos corriente continua DC, entonces está claro que lo primero que hace la batería es internamente cambiar la corriente a DC. Por lo tanto no es problema ninguno enchufarle directamente un transformador que nos de corriente continua, lo único que pasará es que se usarán más unos diodos internos que otros de los que tenga en el puente del rectificador.

Para comprobarlo conecte el cargador y puse la batería descargada a cargar. Tras aproximadamente el tiempo indicado por Lego se apagó el indicador led y pude dar por cargada la batería. La conecté al ladrillo NXT y funcionaba perfectamente detectándola como completamente cargada.

Así que ya sabéis, en principio cualquier cargador con esos voltios debería valer, si es AC mejor que DC, pero os aseguro que con DC me ha funcionado perfectamente.

Otra cosa a mirar es el amperaje que soporta vuestro cargador, el mío en concreto indicaba 500mA y la cargó perfectamente, pero si es superior mejor. Con uno inferior podríais tener problema de sobrecarga por lo que no recomiendo hacerlo.

Gracias a esto podemos ahorrarnos los 12 euros extras que Lego nos obliga a pagar aparte del pack.

domingo, 9 de septiembre de 2007

Código NXC de robot siguelineas II

El robot que veíamos en el primer ejemplo sólo podía girar en un sentido, ya que según la programación realizada, cuando pierde la línea tuerce siempre hacia el mismo sitio para buscarla, siendo incapaz de torcer hacie el otro lado. Veamos ahora un ejemplo, que aunque a una velocidad inferior al primer robot, es capaz de girar para cualquier lado. El funcionamiento es el siguiente, giramos una de las ruedas (torcemos hacia un lado) mientras no veamos la línea, en cuanto la veamos giramos la rueda contraria (torcemos hacia el otro lado).

Aquí el código:

#include "NXCDefs.h"
#define MARGEN 50
//programa para seguir una línea con un solo sensor de luz
//Va bien para curvas en ambos sentidos, pero lento

int d;

task main()
{
ClearScreen();
SetSensorLight(IN_3);


Float(OUT_B);
OnFwd(OUT_C,30);

while (true)
{
NumOut (1,1,1,Sensor(IN_3));

if (Sensor(IN_3) > MARGEN)
{
NumOut (1,1,1,Sensor(IN_3));
Float(OUT_C);
OnFwd(OUT_B,30)
until(Sensor(IN_3) <= MARGEN) NumOut (1,20,1,Sensor(IN_3)); Float(OUT_B); OnFwd(OUT_C,30);
}
}
}

Y el video:

miércoles, 5 de septiembre de 2007

Código NXC de robot siguelineas I

Por si a alguien le puede ayudar en sus inicios de programación, voy a poner los códigos fuentes de mis robots siguelineas programados en NXC.

Empezaremos por el más simple, en el que el robot tiene una deriva conocida hacia un lado y en cuanto superamos el margen de luz marcado sabemos que nos hemos salido de la línea y giramos en el sentido contrario parando un motor en modo float (sin bloquearlo).

#include "NXCDefs.h"
#define MARGEN 50
//programa para seguir una línea con un solo sensor de luz
//el robot genera caída hacia la derecha, y en cuanto se sale de la línea
//gira a la izquierda para recueperarla. Con esto sólo puede girar en un sentido.
int d;

task main()
{
ClearScreen();
SetSensorLight(IN_3);


OnFwd(OUT_B,40);
OnFwd(OUT_C,50);

while (true)
{
NumOut (1,1,1,Sensor(IN_3));

if (Sensor(IN_3) > MARGEN)
{
NumOut (1,1,1,Sensor(IN_3));
Float(OUT_C);
until(Sensor(IN_3) <= MARGEN) NumOut (1,20,1,Sensor(IN_3));
OnFwd(OUT_B,40);
OnFwd(OUT_C,50);
}
}
}

El video con el resultado:

domingo, 26 de agosto de 2007

NXT siguiendo lineas

Ya tenemos los primeros resultados del mindstorm NXT. He construido un robot muy simple que jugando con la programación consigue seguir una línea negra sobre fondo blanco.

En la primera aproximación partimos de que el robot se encuentra sobre la línea negra y le ponemos a andar, pero generando cierta deriva a la derecha para que intente salirse de la línea siempre por la derecha, y tan pronto detecte que se ha salido, corrige bruscamente a la izquierda. Con esto ya tenemos un robot sigue-líneas pero que solo es capaz de girar en una dirección.



En una segunda aproximación y para que pueda girar en ambas direcciones, le hacemos andar mas despacito con las siguientes premisas, si ve blanco gira a la izquierda, si ve negro a la derecha. Con esto conseguimos girar en ambos sentidos, pero a una velocidad bastante lenta.



En la tercera aproximación volvemos al primer algoritmo con deriva, pero en caso de que al girar para corregir la deriva no encuentre la línea, supone que se ha confundido y gira hacia el otro sentido. No es ninguna maravilla, pero va más rápido que el segundo.



¿A alguien se le ocurre un algoritmo mejor con un sólo sensor de luz?

Usando dos sensores de luz, ya se puede tener una mejor referencia de donde está el robot y se consiguen mejores resultados. En este programa controlo si la línea negra está a la izquierda o derecha del centro del robot según se ve por uno u otro sensor. El robot puede ir bastante más rápido sin perder el control.