miércoles, 26 de abril de 2017

Joystick para control de vehículo con dos servos y 4 luces ArduBlock y Bitbloq)

(Artículo en construcción)

Referencia de programa: 04F

  
Arduino IDE 1.0.6 y ArduBlock 20130607 en MAX 6.5 (MAdrid_linuX)
 
Modificaciones pendientes: añadir zumbador y poner mayor duración de luces.




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 señal - Eje y.
    Quinto cable a pin "digital" 7 señal - Apagar leds o parar motores.
  • Pin digital 1 - Led. 
  • Pin digital 2 - Led de otro color.
  • PIn digital 3 - Led de otro color.
  • Pin digital 4 - Led de otro color.
  • Pin digital 9 - Servomotor de rotación continua izquierdo.
  • Pin digital 10 - Servomotor de rotación continua derecho.
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 ni reconocen el mismo rango valores; prueba a modificar los valores en el programa si es necesario.
  • Comprueba si tus servomotores están bien calibrados. 
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. Cambia los leds por otros actuares simples, como zumbadores.
  9. Describe lo que ha ocurrido tras los cambios.
  10. Describe lo que crees que hace cada bloque paso a paso.
  11. 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 servos cambia. Se comentan los motivos al final del programa.


Programas:

Hay una diferencia importante con respecto al proyecto anterior. Vamos a hacer que se puedan realizar curvas más cerradas. Para ello, al girar a la derecha e izquierda, en vez de parar uno de los servos, haremos que gire en dirección contraria al otro.
  • Con joystick comercializado por bq (3 x 3 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 7), 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.

No hay comentarios: