Hoy os traemos un tutorial sobre como programar a D_BOT , uno de nuestros robots educativos. El objetivo de esta entrada es que conozcáis como programar un robot para que pueda controlarse desde el móvil. Para conocer los componentes electrónicos que vais a necesitar para montar a D_BOT y cómo conectarlos, os recomendamos que leáis nuestra entrada sobre Aprende a montar a D_BOT, nuestro robot programable.
Para hacer más fácil su programación vamos a utilizar uno de nuestros programas favoritos: Visualino. Se trata de un programa basado en Arduino muy fácil de utilizar ya que utiliza bloques para programar.
Primero de todo, nos tenemos que ir a la página oficial de Visualino y descargar el programa. Está disponible en múltiples plataformas y es gratuito. Una vez descargado tenemos que asegurarnos que también tenemos instalado el IDE de Arduino, ya que de lo contrario no podremos cargar nuestro programa en la placa.
Una vez instalado todo el paquete, ejecutaremos el programa y nos aparecerá una interfaz como ésta:
Las partes principales del programa son las siguientes:
- 1-Barra de control: aquí tenemos las piezas de puzzle que necesitamos para programar nuestro proyecto. Se dividen en colores según su uso y funcionalidad.
- 2-Pieza maestra: es la pieza central de nuestro programa. Todas las piezas que coloquemos irán dentro de ella
- 3-Código nativo: Aquí podremos ver como se traduce nuestro programa hecho en puzzle a código real. En "herramientas" lo podemos esconder.
- 4-Barra de herramientas: Sirve para guardar nuestro progreso y subir nuestro programa al chip arduino
- 5-Basura: las piezas que no necesitamos podemos eliminarlas arrastrándolas a esta zona.
Primero empezaremos con la configuración inicial del programa (Inicio). Lo primero que hay que hacer es configurar los pines por los que vamos a enviar la información a los motores, a través de Arduino y la controladora. Nuestra controladora tiene 4 puertos con los siguientes nombres: IN1, IN2, IN3, IN4. Los 2 primeros se encargan de un motor y los otros dos del otro. Declaramos una variable global de tipo entero para cada puerto y la igualamos al pin donde los hayamos conectado en nuestro Arduino. En nuestro caso la configuración es la que véis en pantalla (IN1 =5 ,IN2 = 4, IN3 = 3, IN4 =2 )
A continuación vamos a crear 6 funciones que nos van a ayudar a programar a D_BOT de una forma muy fácil e intuitiva. Una función es como un programa dentro de nuestro programa principal. Vamos a crear funciones que nos permitan mover el robot hacia adelante, atrás, izquierda, derecha, giro sobre su eje y parar.
Para que el robot vaya hacia adelante, configuraremos IN1 = BAJO y IN2 = ALTO y IN3 = ALTO y IN4 = BAJO. La elección de ALTO y BAJO dependerá de como conectéis los cables desde el motor a la controladora, y es posible que al poner estos valores vuestro robot no vaya hacia adelante (podría ir hacia atrás o girar sobre sí mismo). Haced varias pruebas hasta que consigáis que vaya hacia adelante y tomad esto como referencia para hacer los movimientos restantes. En las pestañas de "funciones" y "variables" tenéis todas las piezas necesarias para hacer estas funciones.
Una vez tengáis vuestra configuración de "adelante", "atrás" será lo contrario. Girar "derecha" o "izquierda" será dejar parado un motor (los dos IN en BAJO) y adelante el otro motor. "Girar" sobre su eje será hacer que un motor vaya hacia adelante y el otro hacia atrás. "Parar" será todo en BAJO. Como véis, una vez tengamos claro el comportamiento de nuestros motores junto a sus IN, el resto sale solo.
A continuación vamos a configurar nuestro bluetooth. Nos vamos a comunicación y sacamos la pieza grande sobre bluetooth. Su configuración nos exige definir la velocidad de comunicación (9600 es la habitual que lleva programada los módulos HC-05 y HC-06), y los pines de transmisión de la información (RX = 9 y TX = 8). Mucho ojo con estos pines, ya que si indicamos aquí que RX es igual a 9, significa que tenemos que conectar la salida RX del bluetooth al pin 8 de Arduino, y viceversa. Por último añadiremos la pieza "Bluetooth: puerto serie disponible" donde vamos a escribir el código de control del robot.
Con todo lo anterior hecho, ya podemos centrarnos en dar instrucciones al robot. Primero declararemos una variable dentro de tipo entero llamada "comando", y la igualamos a "Bluetooth recibir". Cuando enviemos una instrucción desde nuestro móvil, llegará a Arduino, el cual gracias a este programa la guardará en la variable comando y la comparará con los casos que vamos a crear a partir de ahora.
Cuando configuremos la App que nos descargaremos de la PlayStore, insertaremos para cada movimiento del robot un número. Esto es debido a que dentro del programa vamos a indicar que, por ejemplo, cuando enviemos un 0 a través de la app, Arduino lo leerá, lo guardará en "comando", y buscará qué tiene que hacer cuando le llega un 0. Esto en lenguaje de programación significa incluir la siguiente condición: "SI la variable comando es = 0, entonces mueve el robot hacia adelante".
Como seguro que os habréis dado cuenta, en la condición no hemos escrito un 0, sino un 48. El 48 es el equivalente al 0 en código ASCII, el 49 al 1, el 50 al 2 y así consecutivamente. Como ya os habréis imaginado, lo que nos queda por hacer es asociar un número a cada acción de nuestro robot (atrás, izquierda, derecha, giro, parar). A continuación tenéis el programa completo:
Ya sólo nos queda enviar nuestro programa a nuestro Arduino. Recordad configurar en Visualino (abajo a la derecha) el tipo de placa y el puerto COM correcto. Os explicaremos en una última entrada como configurar la app para que podamos controlarlo desde nuestro móvil. En breve estará disponible.
Y hasta aquí nuestra entrada sobre D_BOT, uno de nuestros robots educativos. Esperamos que os haya gustado y que intentéis hacer vuestro propio D_BOT. Recordad que los componentes eléctricos necesarios, el esquema de conexión y los archivos de impresión en .STL los tenéis en esta entrada. También podéis acceder a través de nuestro blog, sección proyectos.