martes, 28 de junio de 2016

Joystick para control de 4 leds - ArduBlock, Bitblock y mBlock

(Artículo en construcción)

Referencia de programas: 04A, 04B
 
Arduino IDE 1.0.6 y ArduBlock 20130607 en MAX 6.5 (MAdrid_linuX)

El objetivo es encender uno de los cuatro leds y que permanezca encendido aunque se suelte el joystick y vuelva al centro. El led activado se apagará cuando se pulse el botón del joystick.

En caso de desear otro tipo de funcionamiento, como por ejemplo que el led sólo quede encendido cuando el joystick esté dirigido en esa posición y se apague automáticamente al volver al centro, debemos variar la programación con bloques al contrario del tipo "si no entonces".



Prepara el montaje:
  • Placa Arduino.
  • JoyStick de 5 cables.
    Tres primeros cables a pin "analógico" 4 (cuidado, en algunas placas están invertidos).
    Cuarto cable a pin analógico 5 externo - Eje y.
    Quinto cable a pin "digital" 9 externo- Apagar leds o parar motores.
  • Pin digital 10 - Led izquierda.
  • Pin digital 11 - Led arriba.
  • Pin digital 12 - Led derecha.
  • Pin digital 13 - Led abajo.
Ten en cuenta:
  • En las placas con hileras de tres pines conecta los cables empezando normalmente por "ground". Cuidado. En algunas placas los pines están invertidos.
  • No todos los "joystick" tienen el mismo diseño en la orientación de los ejes con respecto a los cables de conexión ni reconocen el mismo rango valores; prueba a modificar los valores en el programa si es necesario.
Programa:
  • Crea el programa que se muestra en la imagen.
Prueba:
  1. Pulsa en "Cargar a Arduino".
  2. Acciona el mando en varias direcciones y prueba también a pulsarlo. A veces es necesario pulsar en la posición exacta.
  3. Observa los cambios y describe lo que ha ocurrido.
  4. ¿Qué función tienen las variables "xeje" e "yeje"?
  5. Cambia el nombre de las variables. 
  6. Cambia los valores y los operadores. 
  7. Cambia los pines.
  8. Describe lo que ha ocurrido tras los cambios.
  9. Describe lo que crees que hace cada bloque paso a paso.
  10. Describe 3 posibles usos de este montaje en la vida real.
Investiga:
  • Investiga nuevas posibilidades cambiando valores y bloques.
Bitbloq Offline v1.0.3 en MAX 8.0 (MAdrid_linuX)

Montaje:

Aviso.En este caso, se ha utilizado el joystick que comercializa bq. La  configuración por defecto, rango de valores y orientación de ejes con respecto a los cables de conexión pueden ser diferentes al de otros joysticks del mercado.

De hecho, se ha probado esta misma programación con un joystick diferente y el comportamiento de los leds cambia. Se comenta el motivo al final del programa.
 
Programas:

  • Con joystick comercializado por bq (3x3 cables).
  • Con joystick diferente procedente del mercado (5 cables): 
Como se hizo en el ejemplo de Ardublock, ha sido necesario inicializar a 1 el valor del pulsador del joystick (pin digital 9), pues no viene configurado así por defecto.



Además, los ejes X e Y tienen otra orientación respecto a los cables; el joystick debe colocarse con los cables hacia un lado en vez de hacia adelante para que interprete bien las órdenes. Habría que cambiar la programación si queremos manejar el joystick con los cables mirando hacia adelante, que como se hizo en el caso de Ardublock.

mBlock con mBot (mCore) en MAX 9.0 (MAdrid_linuX) 64 bits
    
En este ejemplo, debemos utilizar el módulo externo joystick conectado en el puerto 4, aunque por lo que se ha probado sólo funciona usando el bloque de ejecución mediante bandera verde.
 
Se ofrecen las alternativas para programarlo de forma autónoma utilizando el mando IR de control a distancia o el módulo de botonera de 4 bototones conectado en el puerto 4).

Aviso:

En este caso, se ha observado que es conveniente tener las pilas conectadas durante la carga del programa para minimizar el número de fallos durante la carga. A veces ha ocurrido también con otros programas, por lo que se recomienda probarlo en caso de observar fallos.
  • Joystick:
  •  Mando de control a distancia:
  • Botonera (modulo externo de 4 botones): 

No hay comentarios: