Documentos de Académico
Documentos de Profesional
Documentos de Cultura
195441
En este tutorial construiremos un robot móvil controlado por Bluetooth desde nuestro celular
o smartphone a través de un aplicativo Android.
1. Materiales:
Arduino
Podemos usar cualquiera de las placas Arduino, nosotros usaremos el Arduino Uno R3 por ser
uno de los más usados.
Este módulo nos sirve para que nuestro Arduino y el celular puedan comunicarse a través de
Bluetooth. Para esta aplicación podemos usar cualquiera de los dos módulos pues los
trabajaremos en modo esclavo.
Si usan un HC-06 estaría listo para usar, si usan un HC-05 deben verificar que esté configurado
como esclavo. La velocidad con la que vamos a trabajar es a 9600baudios, que es la velocidad
que viene por defecto tanto en el HC-06 como en el HC-05.
Driver Puente H
El puente H es el que nos permite invertir el giro de un motor, necesitamos un puente H que
tenga dos canales para poder controlar dos motores.
Básicamente 2 motores DC con caja reductora y su respectiva llanta, una velocidad promedio
puede ser 100RPM, pero dependerá de la velocidad que uno desee.
El voltaje dependerá de la batería, por ejemplo si tienen una batería de 6V o de 3.7V se puede
trabajar con el motor amarillo, si tienen una batería de 12V o 9V pueden trabajar con los
micro motores, Si alimentamos un motor con un voltaje inferior al nominal, su velocidad
disminuye, en cambio sí alimentamos con un voltaje superior podemos malograr el motor, por
eso debemos de tener en cuenta las especificaciones técnicas del motor.
Batería
Esto tal vez sea lo más difícil de establecer, lo primero que hay que tener en cuenta es el
voltaje. Arduino trabaja con un voltaje entre 6 y 12V, aparte de esto hay que tener en cuenta
el voltaje del motor. También hay que considerar la corriente y la capacidad, por ejemplo si
usamos una pila económica de 9V nos durará menos de un minuto, se recomienda que la
capacidad sea superior a 500mAH
A continuación mostramos las opciones que pueden usar dependiendo del motor que tengan:
Opción 2: 1 celda de litio (batería de celular) para los motores y una pila de 9V para el Arduino
Opción 2: Cualquier batería superior a 6V (de suficiente corriente) y un step down para bajar el
voltaje.
Motor de 12V:
Opción 4: 1 celda de litio (batería de celular) o batería de 3.7V y un step Up para aumentar el
voltaje.
Independiente del valor del voltaje de la batería podemos usar conversores DC-DC para
aumentar (step up) o reducir (step down) el voltaje.
Esto dependerá del diseño de cada uno, pueden hacerlo, o comprar uno hecho. El chasis
básicamente es en donde se va a poner los dos motores con llanta y los demás componentes,
adicionalmente se necesita una rueda giratoria o una ballcaster, que será el tercer punto de
apoyo junto a las otras dos llantas.
Otros accesorios:
Existen varios diseños en internet que nos pueden ayudar, así como existen plataformas
comerciales. Esto dependerá de cada uno,
Para nuestro tutorial usaremos la locomoción diferencial, que utiliza dos ruedas principales
que dan la tracción y por diferencia de velocidad en estas podremos realizar giros. Usaremos
esta configuración por ser fácil de implantar, a diferencia de la configuración Ackerman (la que
usan los vehículo motorizados) que es más complicado de implementar la parte mecánica.
3. Conexiones eléctricas:
A continuación mostramos dos posibles conexiones dependiendo del tipo de motor que
tengan.
Para este caso si necesitamos usar una sola batería, es mejor usar un step down y no alimentar
los motores con los 5V del Arduino, pues sobrecalentaríamos el regulador interno que tiene.
La betería tiene que ser superior a 6V para que pueda trabajar nuestro Arduino pero se
recomienda que tampoco sea superior a los 12V, adicionalmente la batería debe tener
suficiente corriente para que pueda alimentar los dos motores, de lo contrario nuestro
Arduino se va a estar reseteando cuando empiecen a funcionar los motores.
Antes de instalar el step down hay que regular al voltaje que deseamos, puede ser 6v, 5V, 3v,
etc, variando este voltaje también estamos modificando la velocidad de los motores.
De esta forma el voltaje que ingresa a los motores es el mismo que el de la batería.
Dependiendo del tipo de motor puedes usar la batería que más se adecue a tu necesidad,
teniendo en cuenta que tenga la suficiente corriente y duración.
Las conexión son similares para otros tipos de Drivers Puente H, pueden revisar
nuestro tutorial de uso del L298N en caso estén usando ese módulo.
Para que tengan una mayor comprensión trabajaremos el programa en dos etapas:
En este primer ejemplo probaremos los diferentes movimientos del robot, lo realizaremos aun
sin conexión Bluetooth para poder entender mejor el programa.
El código es el siguiente:
int Pin_Motor_Der_A = 8;
int Pin_Motor_Der_B = 9;
Como se observa la programación es fácil, se ha programado cada movimiento del robot en
funciones separadas, las cuales llamamos desde el void loop(),
Para probar los movimientos hay que ir probando cada función y ver si nuestro robot se mueva
de la misma manera como se lo ha programado, por ejemplo así como está el código, después
de encender o resetear el Arduino debe moverse hacia delante por 2 segundos, seguidamente
debe girar a la derecha por dos segundos más y lego repetir la secuencia, si el robot gira en
dirección equivocada, entonces debemos de cambiar la polaridad de motor que gira en sentido
erróneo.
Podemos ir probando los movimientos de forma individual reprogramando cada vez para
cambiar el movimiento o programar todos a la vez con pausas entre movimientos, eso
dependerá de cada uno, después de estar seguros que nuestro robot funciona correctamente
pasamos a implementar la comunicación Bluetooth.
Para controlar el Robot usaremos una aplicación en nuestro celular, para esto debemos de
instalar en nuestro celular la siguiente aplicacion.
La aplicación consta de 4 botones una para cada dirección, al presionar el botón para mover
adelante, la aplicación envía por Bluetooth el carácter ‘a’ y lo sigue enviando constantemente
mientras se tenga presionado. De igual manera para los otros botones, la aplicación envía ‘r’
para retroceso, ‘i’ para izquierda y ‘d’ para mover a la derecha.
Nuestro Arduino debe de leer estos 4 caracteres y realizar el movimiento, además al no tener
un botón stop, nuestro Arduino deberá detener de forma automática los movimientos cuando
no se tenga presionado ningún botón.
Antes de cargar el programa a nuestro Arduino debemos de desconectar los cables de nuestro
Bluetooth y después de terminado la carga podemos volverlo a conectarlo.
int Pin_Motor_Der_A = 8;
int Pin_Motor_Der_B = 9;
int tiempo=0;
Como se observa al código del primer ejemplo solo le hemos agregado la parte de la
comunicación serial, en donde leemos el dato y comparamos para ver si es el carácter
correspondiente para realizar su respectivo movimiento, adicionalmente si durante 100
milisegundos no llega ningún dato detenemos el robot, y tan pronto le llega uno de los datos
reiniciamos la cuenta de los 100ms.
Una vez que tengan todo listo, tan solo hay que abrir la App, conectarnos a nuestro modulo
Bluetooth y empezar a mover nuestro robot con los botones.
Vista Rápida
En stock
Arduboard Uno R3
SKU: 000008
S/ 80,00
Vista Rápida
En stock
SKU: 000011
S/ 15,00
Vista Rápida
Agotado
SKU: 000024
S/ 25,00
Vista Rápida
En stock
SKU: 000131
S/ 20,00
La Nueva Red Neuronal
-1 0 1 0 0 1
-1 1 1 0 0 1
-1 -1 1 0 0 1
0 -1 1 0 1 0
0 1 0 1 0 1
0 0 1 0 0 1
1 1 0 1 1 0
1 -1 0 1 1 0
1 0 0 1 1 0
Siendo el valor de los motores 1 y 0:
Avanzar 1 0 0 1
Retroceder 0 1 1 0
Giro Derecha 0 1 0 1
Giro Izquierda 1 0 1 0
El CARRO Arduino
En mi caso es un coche Arduino Elegoo Uno V3 de 4 motores. Si eres Maker, te resultará fácil
construir el tuyo o puede que ya tengas uno en casa para programarlo. El coche puede ser
cualquier otro, de hecho podría ser de 2 motores y modificando apenas la red funcionaría. En
caso de querer construirlo tu mismo explicaré brevemente los requer
Necesitaremos:
Sensor Ultrasónico
Cables!
Conclusión
Aplicamos Machine Learning y sus redes neuronales a un objeto del mundo real y vimos cómo
funciona, haciendo que el coche evite obstáculos y tome las decisiones por sí mismo, sin
haberle dado instrucciones ni código explícito.