Nairda: Auto robot controlado por Bluetooth

Nairda es una aplicación que nos permite programar robots y placas en general usando bloques gráficos empleando un dispositivo móvil que se conecta utilizando Bluetooth y es especialmente útil en educación para comenzar a aprender programación. En este artículo les muestro un sencillo ejemplo, un autito robot que se mueve controlado desde el teléfono.

Introducción

En un artículo anterior hice una introducción a las características y capacidades de Nairda. Ahora vamos a ver algunas mas en detalle aplicadas a un caso práctico.

Chasis

El autito robot que voy a controlar está construido sobre el chasis Quadra que publiqué aquí en el blog hace un tiempo y emplea una placa Nano board que también les compartí, que utiliza un Arduino Nano y la he diseñado para hacer experiencias de programación y robótica con mis alumnos mas pequeños.

Fig. 1. Auto robot utilizado para el ejemplo

Nano board

El esquemático de la placa Nano board puede verse en la Fig. 2 y es importante tenerlo presente porque como dije antes Nairda es muy flexible y se adapta a cualquier hardware, pero para eso será necesario que al diseñar los bloques relacionados con entradas o salidas especifiquemos a que pin o pines están conectados.

Fig. 2. Esquemático de la Nano Board

Programa en Nairda

En este caso en particular sólo controlaremos el movimiento de los motores en las cuatro direcciones y haremos sonar el buzzer que incluye la placa a modo de bocina.

Lo primero que haremos en Nairda será entonces crear dos controles: un botón para el buzzer y un joystick para los motores.

Fig. 3. Controles para el robot

Ahora debemos definir los eventos que se generarán con esos controles:

  • Presiona Bocina: Activa el buzzer (Salida 13)
  • Suelta Bocina: Desactiva el buzzer

  • Presiona Joystick arriba: Activa los dos motores hacia adelante
  • Suelta Joystick arriba: Para los dos motores

  • Presiona Joystick abajo: Activa los dos motores hacia atrás
  • Suelta Joystick abajo: Para los dos motores

  • Presiona Joystick derecha: Activa hacia adelante el motor de la izquierda y para el de la derecha.
  • Suelta Joystick derecha: Para los dos motores

  • Presiona Joystick izquierda: Activa hacia adelante el motor de la derecha y para el de la izquierda.
  • Suelta Joystick derecha: Activa hacia adelante el motor de la izquierda y para el de la derecha.

Con todos estos eventos en claro, vamos a construir los bloques necesarios, así que pulsamos en el ícono de bloques para acceder al editor de bloques. Una vez en el editor, seleccionamos Salidas Digitales y creamos el bloque del buzzer pulsando AGREGAR SALIDA DIGITAL, le damos un nombre (Buzzer en mi caso) y le asignamos el pin 13 (ver el esquemático en la Fig. 2) (Cuidado, es el numero de E/S del Arduino Nano y no el número de pin).

Fig. 4. Agregado del Buzzer

Luego hacemos lo mismo con los motores. Para controlar el movimiento de dos motores, mi placa emplea un L293D. Cada motor tiene su driver dentro del L293D y el sentido y velocidad de giro vienen determinados por los valores en las entradas A y EN (1A, 2A y 1,2EN para un motor y 3A, 4A y 3,4EN para el otro). Nairda es capaz de controlar el sentido de giro a través de los pines A y la velocidad actuando sobre los pines EN. Con esta información entonces vamos a SalidasMotoresAGREGAR MOTOR y creamos dos bloques, uno que llamaremos M1 que está relacionado con los pines 2, 4 y 3 y el otro llamado M2 que usa los pines 7, 8 y 5 (Ver conexiones en la Fig. 2)

Fig. 6. Agregado de los dos motores

Con el buzzer y los motores agregados, creamos los bloques correspondientes a los eventos definidos mas arriba.

Primero los bloques para activar y desactivar el buzzer:

Fig. 7. Bloques para activar y desactivar el buzzer

Y luego los bloques relacionados con los movimientos. En la imagen, para avanzar y retroceder:

Fig. 8. Bloques para avanzar (derecha de la imagen) y retroceder (izquierda de la imagen)

Esta parte del control de los motores para que el robot vaya en una dirección u otra siempre requiere de un poco de prueba y error, ya que depende de como estén conectados los cables que alimentan los motores. Los valores de Derecha e Izquierda que admiten los bloques se refieren al sentido de giro de los motores. Cada bloque se repite una sola vez.

Estos son los bloques para detener los motores, que también se repiten una sola vez:

Fig. 9. Bloques para detener los motores

Y finalmente los bloques para girar, que detienen un motor mientras el otro sigue su marcha al 50% de velocidad (esta parte también requiere un poco de prueba y error)

Fig. 10. Bloques para girar a la izquierda (izquierda de la imagen) y a la derecha (derecha de la imagen)

Algo que noté al diseñar todos estos bloques es que sería de mucha utilidad un bloque tipo Comentario, donde poder describir que función cumple cada uno de ellos.

Con todos estos bloques definidos solo queda asociarlos a los controles. Lo muestro en el siguiente video:

Conclusión

Vimos una aplicación práctica de Nairda y de que manera podemos configurar los distintos bloques para que se adapte a un hardware existente. Utilizamos salidas digitales y motores y empleamos el botón y el joystick como elementos de control.

Esto no agota ni mucho menos las capacidades de Nairda, quedan muchas cosas para analizar, lo que seguiremos haciendo en los próximos artículos.

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Habilitar notificaciones OK No, gracias