En esta ocasión, vamos a construir un artefacto móvil de dos ruedas que sea capaz de mantenerse en pie controlando su propio equilibrio.

Será controlado por  un mando con bluetooth o con el móvil a través de una aplicación creada para la ocasión. 

Dispondrá de algunos sensores como por ejemplo de obstáculos  por ultrasonidos y algunos leds.

Idea primordial.
Boceto inicial

Elementos necesarios.


Estructura y piezas para imprimir.

Ruedas y motores

Supongo que este asunto requerirá de reajustes durante el proceso, pues parece a priori, que es la parte más delicada en cuanto al funcionamiento optimo del artefacto.

Por un lado la tracción, que por las características del PLA no parece que obtenga buenos resultados. Inicialmente están diseñadas con ranuras para mejorar esta debilidad del material.

Por otro lado, el tamaño y grosor de las ruedas van a afectar al comportamiento del conjunto. Inicialmente las construiré algo estrechas y con un diámetro de 90mm.

Por estas razones iré actualizando estas variables conforme avance y seguramente, será lo último que reajuste con las pruebas pertinentes.

Versión 2 mejorada.

Tras varias pruebas me decanto por otro modelo de ruedas que mejoran la tracción. He impreso la parte del neumático con Nylon y el resto en PLA. 

Motores

Los motores son los más comunes y baratos que se encuentran en la actualidad en internet. Tienen un engranaje reductor y un eje a cada lado para acoplar las ruedas, en nuestro caso usaremos solo uno de los ejes. Como es de imaginar solo usaremos dos.

Es de tener en cuenta que no todos los motores actúan igual y necesitan pequeños ajustes para que su funcionamiento sea lo más parecido posible. Estos reajustes los realizaremos en la programación del micro controlador más adelante.

Dimensiones del motor

Carcasa de contenedora para los motores.

Hay unos orificios para sacar los cables de alimentación de los motores y los de los leds WS3812b. En la parte superior se colocará una cápsula que encaja con dos pestañas para ocultar los leds. Estas cápsulas se han imprimido en PEGT translúcido.

Una de las carcasas posee un orificio para colocar el interruptor de corriente.

Se sujetan al motor con dos tornillos M3 de 30 cm de largo o más y tienen un hueco destinado a albergar la tuerca M3 correspondiente para mejorar el agarre.

Los leds ws2812b se pegan en la parte superior de la carcasa e irán tapados por la pieza trasparente.

Cuerpo central y baterías

El cuerpo central contiene las 2 baterías recargables en posición vertical. Las baterías estarán colocadas sobre el cajetín que además de ser un cargador también regula la tensión de salida para ofrecer los 5V con los que alimentaremos todo el sistema incluidos los motores.

La pieza principal es el cargador de baterías que irá cubierto por una tapadera de protección que impedirá que las pilas salgan de su sitio y que sufran daños en las caídas. Además servirá de sujeción para las piezas de electrónica y de refuerzo de la estructura pues también sujeta las carcasas de los motores.

Tener muy en cuenta la polaridad de las baterías parece ser un asunto delicado.

Los 5V los sacaremos de cualquiera de los pines destinados a ello en el módulo de las baterías.

Salida de 5V del módulo de baterías

Atornillaremos la pieza protectora de las baterías usando tornillos M3 de 10mm al módulo de carga de las baterías y las carcasas de los motores. Por último añadimos las tuercas. 

En la parte delantera hemos colocado varios cilindros en los que introduciremos las tuercas de inserción que soportarán la electrónica.

Además, en la parte superior sujetaremos el acelerómetro GY273 encargado de medir la inclinación del robot.

Cabeza con sensor de ultrasonido.

Por último la pieza superior de la cabeza que irá sujeta al cuerpo de las baterías por dos tornillos M3 y tuercas y servirá de soporte para la placa PCB de prototipados.  En la boca estará colocado el acelerómetro y en los ojos estará el sensor de ultrasonidos para medir distancias.


Electrónica

En proceso…………………>>>>>>>

Programación

Comenzaremos programando el módulo de bluetooth.

Preparación del módulo Bluetooth.

Los módulos de Bluetooth HC-05 vienen configurados de fábrica con ciertos valores que deberíamos cambiar, sobre todo si estamos manejando estos módulos en otros proyectos. Aunque no es imprescindible, es aconsejable para evitar conflictos entre ellos. 

El nombre es lo mínimo que debemos cambiar aunque aconsejaría cambiar las contraseñas, la velocidad de conexión y el role de funcionamiento.

Para poder acceder a los comandos AT de configuración del módulo donde podemos cambiar todos estos parámetros debemos cargar el siguiente programa en un arduino y conectar el módulo de la siguiente manera.

Conexiones
#include <SoftwareSerial.h>
SoftwareSerial BT1(11, 10); // Pines a los que conectamos nuestro módulo en RX y TX. (en ese orden).
void setup()
{ pinMode(8, OUTPUT);     //Usaremos el pin 8 y 9 para alimentar el módulo y activar los comandos AT.
  pinMode(9, OUTPUT);
  digitalWrite(9, HIGH);
  delay (500) ;
  Serial.begin(9600);
  Serial.println("Saludos");
  digitalWrite (8, HIGH);    //Enciende el módulo
  Serial.println("Introducir comandos AT:");
  BT1.begin(9600);          // De fábrica pueden ser 38400bps
}

void loop()
{ if (BT1.available())                  
    Serial.write(BT1.read());
  if (Serial.available())
    BT1.write(Serial.read());
}

Tener en cuenta al conectarse al puerto serie correspondiente activar la opción de Línea nueva y Retorno de Carro. 

La velocidad de comunicación del BT1 puede cambiar dependiendo del modelo pero suele ser de 38400bps de fábrica.

Tener en cuenta también el uso de letras en mayúsculas.

Comandos AT más usados

Recibir datos por bluetooth