Laberinto

LABERINTO

Aquí va un proyecto construido a partir de un Nunchuk y programado con NXT-G. Tienes todos los detalles de cómo fabricar y programar uno en el enlace anterior. Lógicamente, partiremos en este proyecto de uno ya construido.

CONSTRUCCIÓN

Bueno, el vídeo ya lo explica casi todo. Lo que podemos poner aquí son algunos detalles de la construcción. Primero una vista general:




Los motores transmiten el movimiento mediante hilos. Cada motor enlaza con dos hilos. En primer plano el hilo que estira y acerca la plataforma del laberinto al motor. El otro, conectado al lado opuesto del cuadrado, lo aleja. Dos fotos más abajo se ve con más claridad.


Para que todo el conjunto bascule adecuadamente, está apoyado sobre una bola del NXT

La bola queda encajada simplemente por unos cuadrados hechos con Briks. A la izquierda, la que está anclada en la parte inferior del laberinto. A la derecha, la que está en la base sobre la que descansa todo el artilugio y por la que atraviesan los cables que se ven en la anterior foto.


En un principio, la idea era hacer un laberinto con agujeros y tratar de esquivarlos, pero aunque el Nunchuk lee bien y suficientemente rápido, los motores no transmiten la potencia con suficiente agilidad. Quizás sean los cables que están demasiado tensos o las tolerancias del motor.

Además, toda la superficie está hecha con baldosas lisas de LEGO (tiles), con sus correspondientes juntas. Y la bola también tiene alguna hendidura. Todo esto hace que la bola se trabe en ocasiones. Aun así, el resultado creo que es bastante aceptable.


PROGRAMA

Lo primero decir que el Nunchuck está programado con el "My Block" de ajuste fino descrito en Nunchuk.

Dejo a continuación el enlace para que te lo puedas descargar. A menos que construyas exactamente la misma construcción, a las mismas distancias, con las mismas longitudes de cable... el programa no te irá bien, pero te puede servir para ver los pilares básicos y la estructura. Pincha sobre el icono para su descarga.


3 Balls + NUNCHUK

Aquí va un segundo proyecto a partir de las sugerencias de 3,14159 en el foro de Hispalug. Es casi igual que el anterior, pero la programación es más compleja para mostrar la acción conjunta de los botones y los movimientos del mando, ya sean con el joystic o con el propio movimiento del mismo.


Cuando se pulsan simultáneamente los botones C y Z del mando, no se produce ningún movimiento en los motores. Por olvido, esto no aparece en el vídeo, pero sí está programado.

El funcionamiento es como sigue: sin pulsar algún botón o pulsando ambos, no hay ningún movimiento. Pulsando el botón Z, se activa el joystic. Pulsando el botón C, se activa el control por el acelerómetro.


Lo mismo que en al caso anterior, adjunto el programa. Es difícil que lo puedas aprovechar, pero te puede servir para ver cómo se ha programado. Usa como base el programa anterior, así que mejor empezar por allí, porque este es bastante más complejo.


TANQUE

Este quizás sea el proyecto más complejo de los 3, entre otras cosas porque usa 2 ladrillos NXT comunicados entre si por Bluetooh (BT). Lo primero el video, para que veas cómo funciona:

MATERIAL

Incorpora los siguientes elementos:

  • Un Nunchuk.
  • 2 ladrillos NXT.
  • 1 sensor IRLink.
  • 1 Receptor IR estándar de Power Functions (PF)
  • 1 batería de PF
  • 3 servomotores de NXT
  • 2 motores XL de PF

La parte superior, la que dispara las bolas, ha sido copiada de la excelente página de nxtprograms, concretamente del proyecto Ball Shooter.


FUNCIONAMIENTO

Lo único que está conectado al NXT 1 es el Nunchuk. Todo lo demás está en el NXT 2. El sensor IRLink me permite en este proyecto controlar 5 motores con un único ladrillo. La única tarea del NXT 1 es interpretar las señales del mando y enviarlas via BT al NXT 2, que es el que realmente soporta todo el peso de la ejecución de las tareas.

El proyecto es mejorable, sobre todo la parte mecánica ya que algún engranaje patina de vez en cuando, los pesos no están muy bien distribuidos y bonito lo que se dice bonito no es, pero para enseñar el funcionamiento y las posibilidades, hay más que de sobra.

Además, por simplicidad, puse un motor XL de PF para cada rueda en lugar de uno para tracción y otro para dirección, lo que me ha dado mucho quebradero de cabeza en la programación pero, al final, esta parte funciona muy bien y eso que he aprendido. La tracción es suave y proporcional al movimiento del joystic.




Una vez enviada la señal correspondiente desde el NXT 1, la recibe por BT el NXT 2. Para eso es necesario establecer una comunicación BT entre ellos y mantenerla. Según la señal recibida, el NXT 2 puede hacer varias cosas: cuando se mueve el joystic del nunchuk, el NXT 2 recibe la señal, envía la orden al IRLink de enviar la señal al receptor IR estándar de PF y éste activa los motores XL.

Este sistema hace necesaria una caja de baterías por cada 2 motores. Para el resto, la cosa funciona así: presionando el botón C (el pequeño) del Nunchuk, se activa el movimiento de la torre. Esto evita movimientos indeseados de la torre cuando está usando el joystic. Una vez pulsado el botón C, queda activado el mando del nunchuk (el acelerómetro).

Así, girando el mando, gira la torre, tanto a izquierda-derecha (1 servomotor) como arriba-abajo (otro servo). Este movimiento es demasiado lento y sirve para apuntar de forma precisa. Apenas mueve 1 grado en cada ciclo y casi no se aprecia en el video. Para solucionar esto cuando hay que desplazar mucho la torre, se pulsa simultáneamente el botón naranja del NXT 1 (el emisor) y la torre se mueve más rápido.

El botón Z de mando simplemente activa el 3er servo para el disparo.


PROGRAMA

Esta vez no enlazo el programa, ya que está hecho a partir de varios "My Blocks" y creo que resultaría un tanto complicado hacerlo funcionar. Además, los bucles que sacan un cable fuera de él, tienen luego bastantes problemas de compilación y suelen dar muchos errores. Lo que si puedo hacer es poner una imagen de la forma en la que se envían los mensajes BT entre ellos.

Como ejemplo, el programa del NXT 1 (el emisor), en que se envía la señal del eje X del joystic del mando y la señal de "botón naranja pulsado":



La primera señal (joystic X) sale desde el mailbox (buzón) 1 y es un tipo de dato numérico. La segunda señal sale desde el buzón 7 (en medio están el resto de señales). Esta segunda señal es lógica, al igual que el caso del botón C y botón Z, que también son del tipo Si/No.

No te olvides de seleccionarlo adecuadamente. En el ejemplo siguiente, el mail 1 tiene un tipo de dato numérico y el mail 7, un tipo de dato lógico. Todo ello está programado en el NXT 2 (el receptor o vehículo). Pincha sobre la imagen si quieres agrandar.


En paralelo se van poniendo todos los bucles de recepción de mensaje y el la línea principal, el programa. Despues de procesar en el NXT 2 todos los datos recibidos del nunchuk, escalar los datos, programar direcciones, etc (el "núcleo duro" del programa), el resultado se almacena en 2 variables numéricas: motor derecho y motor izquierdo.

Estos valores son los que se meten en el icono del IRLink para que active los motores XL de PF:


0 comentarios:

Publicar un comentario