Robot inalámbrico Controlado por Bluetooth con Arduino
En este proyecto aprenderemos a hacer un Robot inalámbrico controlado por Bluetooth con Arduino y controlarlo a través de la aplicación Android.
Descripción general
En este proyecto, aprenderemos a hacer un Coche Robot Controlado por Bluetooth inalámbrico Con Arduino. El coche robótico se puede controlar de forma inalámbrica a través de un teléfono inteligente. El teléfono inteligente tiene una aplicación para Android a través de la cual el usuario puede enviar comandos directamente al Robot. El robot puede moverse hacia adelante, hacia atrás, a la izquierda y a la derecha, y también puede detenerse.
El coche robot controlado por Bluetooth de Arduino está interconectado con un módulo Bluetooth HC-05 o HC-06. Podemos dar comandos de voz específicos al robot a través de una aplicación Android instalada en el teléfono. En el lado receptor, un módulo transceptor Bluetooth recibe los comandos y los reenvía al Arduino, y así se controla el automóvil robótico.
Anteriormente hicimos otro proyecto robótico. Puede consultar algunos de ellos a continuación:
1. Robot Inalámbrico Controlado Por Gestos Con Acelerómetro& Arduino
2. Coche Robot Controlado por Voz Inalámbrico Con Arduino
3. Robot controlado por WiFi utilizando ESP8266
Lista de materiales
Los componentes necesarios para este proyecto se indican a continuación. Todos estos coponentes se pueden comprar en el enlace Amazoon.
S. N. | Components | Description | Quantity | |
---|---|---|---|---|
1 | Arduino UNO | Arduino UNO R3 Development Board | 1 | https://amzn.to/388eC7D |
2 | Bluetooth Module | HC-05/HC-06 Bluetooth Module | 1 | https://amzn.to/2MjYbi4 |
3 | Motor Driver IC | L293D H-Bridge Motor Driver IC | 1 | https://amzn.to/2Z6WsyG |
4 | Motors | 12V DC Geared Motors, 300 RPM | 2 | https://amzn.to/2L2dusP |
5 | Batería | Batería Recargable de 9V | 1 | https://amzn.to/2L2dusP |
6 | Robot Chasis & Ruedas & Tornillos | – | 1 | https://amzn.to/2WGk4eg |
7 | Los Cables De Conexión | Puente De Cables | 10 | https://amzn.to/2L8Xc1p |
8 | Breadboard | – | 1 | https://amzn.to/2YM6YyS |
Diagrama de Bloques
El diagrama de bloques de Arduino Inalámbrica de Voz El robot controlado se da a continuación.
El Robot controlado por voz Inalámbrico Arduino consta de una sección de transmisor y receptor. El extremo del transmisor consiste en Bluetooth para Smartphone y la aplicación para Android instalada en él. Del mismo modo, la sección del receptor tiene una placa Arduino como procesador, un módulo Bluetooth HC-05 como módulo de comunicación inalámbrico, L293D para motores de accionamiento y un par de DC engranados como parte para robot en movimiento.
Diagrama de circuito & Conexiones
El circuito consta de placa Arduino UNO, Módulo Bluetooth HC-05/HC-06, Controlador IC de motor L293D, un par de Motorreductores DC de 200 RPM y una batería de 9V.
Los pines TX, RX de Arduino están conectados a los pines Rx, Tx del módulo Bluetooth. El módulo Bluetooth se suministra con 5V. Del mismo modo, el motor de CC izquierdo está conectado al pin no 3 & 6 de L293D y el motor de CC derecho al pin no 14 & 11 de L293D. Los pines digitales Arduino 2,3,4,5 están conectados a L293D 2, 7, 10, 15 respectivamente.
Los pines IC L293D 2, 5, 12, 13 son pines GND y 9, 1, 16 se suministran con 5V. Pero el pin 8 de L293D se suministra directamente con 9V.
La aplicación para Android
La aplicación para este proyecto se muestra a continuación. Está diseñado utilizando MIT App Inventor. La interfaz de usuario se ve algo como esto.
La arquitectura interna y la programación también se han implementado para que la aplicación Android pueda controlar el Robot de forma inalámbrica con Bluetooth.
Después del diseño final, la aplicación para Android se ve algo como esto. Puede descargar el archivo APK desde abajo e instalarlo directamente en su teléfono inteligente.
El trabajo del proyecto
Como se mencionó anteriormente, el comando App Logic se procesa por teléfono. El comando se envía al lado receptor a través de Bluetooth. El comando recibido a través de Bluetooth se reenvía a la placa Arduino Uno utilizando el protocolo de comunicación en serie UART. El código Arduino comprueba los comandos recibidos. Siempre que el comando sea una cadena coincidente, Arduino controla los movimientos del robot en consecuencia en adelante, atrás, Girando a la Derecha, Girando a la izquierda & Stop.
Los niveles lógicos de señal en las diferentes etapas de los circuitos para el control adecuado del automóvil robótico se indican a continuación.
Código fuente / Programa
El código fuente para el robot inalámbrico Bluetooth Arduino se da a continuación. Puede copiar el código y cargarlo directamente a la placa Arduino.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
|
Cadena de readvoice;
int k=0;
void setup() {
Serial.begin(9600);
pinMode(2,SALIDA);
pinMode(3,OUTPUT);
pinMode(4,SALIDA);
pinMode(5,SALIDA);
}
void loop() {
while (Serial.disponible())
{
retraso(3);
char c = Serial.read ();
readvoice + = c;
}
if (readvoice.longitud() > 0)
{
Serial.println(readvoice);
si(readvoice == «adelante»)
{
digitalWrite(2, HIGH);
digitalWrite(3, BAJO);
digitalWrite(4, HIGH);
digitalWrite(5, BAJO);
k=1;
}
si(readvoice == «atrás»)
{
digitalWrite(2, LOW);
digitalWrite(3, ALTO);
digitalWrite(4, LOW);
digitalWrite(5, HIGH);
k=2;
}
si(readvoice == «derecho»)
{
si (k==2)
{
digitalWrite(2, HIGH);
digitalWrite(3, BAJO);
digitalWrite(4, LOW);
digitalWrite(5, BAJO);
retraso(1000);
digitalWrite(2, LOW);
digitalWrite(3, HIGH);
digitalWrite(4, LOW);
digitalWrite(5, ALTA);
}
otra cosa
{
digitalWrite(2, HIGH);
digitalWrite(3, BAJO);
digitalWrite(4, LOW);
digitalWrite(5, BAJO);
retraso(1000);
digitalWrite(2, HIGH);
digitalWrite(3, BAJO);
digitalWrite(4, HIGH);
digitalWrite(5, BAJA);
}
}
si(readvoice == «left»)
{
si (k==2)
{
digitalWrite(2, LOW);
digitalWrite(3, BAJO);
digitalWrite(4, HIGH);
digitalWrite(5, BAJO);
retraso(1000);
digitalWrite(2, LOW);
digitalWrite(3, HIGH);
digitalWrite(4, LOW);
digitalWrite(5, ALTA);
}
otra cosa
{
digitalWrite(2, LOW);
digitalWrite(3, BAJO);
digitalWrite(4, ALTO);
digitalWrite(5, BAJO);
retraso(1000);
digitalWrite(2, HIGH);
digitalWrite(3, BAJO);
digitalWrite(4, HIGH);
digitalWrite(5, BAJO);
}
}
si(readvoice == «stop»)
{
digitalWrite(2, LOW);
digitalWrite(3, BAJO);
digitalWrite(4, LOW);
digitalWrite(5, BAJO);
}
}
readvoice=»»;
}
|