0% encontró este documento útil (0 votos)
48 vistas22 páginas

Robot Arduino 061

Este documento describe cómo construir un robot de bajo costo utilizando una placa Arduino. Explica cómo conectar y configurar un módulo Bluetooth para comunicarse con el robot desde un teléfono móvil y controlar actuadores. También incluye ejemplos de código para controlar LED desde una aplicación móvil.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
48 vistas22 páginas

Robot Arduino 061

Este documento describe cómo construir un robot de bajo costo utilizando una placa Arduino. Explica cómo conectar y configurar un módulo Bluetooth para comunicarse con el robot desde un teléfono móvil y controlar actuadores. También incluye ejemplos de código para controlar LED desde una aplicación móvil.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 22

Construcción y Programación

de un robot de bajo coste

Daniel Gallardo García


Profesor de Tecnología
CEP de Cádiz
Módulo Bluetooth
Podemos establecer comunicación entre nuestra Arduino y otro dispositivo que
disponga de comunicación Bluetooth (un móvil, por ejemplo), y de esta manera
controlar nuestros actuadores (luces, motores, sonido, etc…) a través de él.

Para ello es necesario conectar un módulo Bluetooth, como puede ser el HC-06
(solo puede actuar como esclavo) o el HC-05 (puede actuar como maestro o
esclavo):

VCC: a 5V.
GND: a 0V.
TXD: transmisión de datos.
RXD: recepción de datos, a 3,3V (habría que hacer un divisor de tensión, pero si
se conecta directamente a un pin de entrada digital, no suele haber problemas).
KEY: poner a nivel alto para entrar en modo configuración.
STATE: para conectar un LED para visualizar la comunicación de datos.
Módulo Bluetooth_2 #include <SoftwareSerial.h>
Para evitar problemas de comunicación entre el PC (a través de los
pines 0 y 1), vamos a utilizar la librería SoftwareSerial para poder
comunicarme a través de otros pines (por ejemplo utilizaremos
para recibir datos: RX10, que lo conectaría al TXD del módulo,
por donde transmite el Bluetooth, y para transmitir: TX11 , que
se conectaría al RXD del módulo, por donde recibe).

Arduino Bluetooth
RX  TXD
TX  RXD

Realmente no es estrictamente necesario utilizar esta librería: podríamos haber


utilizado los pines 0 y 1, que son (RX y TX respectivamente). El problema es que
debo desconectar el módulo Bluetooth cuando vaya a cargar el sketch del PC a la
Arduino, pues para dicho proceso necesitan estar libres dichos pines.
Módulo Bluetooth_2 #include <SoftwareSerial.h>

RXD: para conseguir señales de 3,3V en RXD, utilizaría una resistencia de 220 Ω y
otra de 470 Ω (así obtendré 3,4V), pero si lo conecto directamente al pin también
funciona correctamente.

Arduino Bluetooth
RX  TXD
TX  RXD
Comandos AT – Configurar el módulo Bluetooth

Los comandos AT sirven para configurar el módulo de Bluetooth. Se enviarán a


través del Monitor Serie, pero teniendo seleccionada la opción “sin ajuste de línea”:
Pero antes deberemos meter el siguiente código:

#include <SoftwareSerial.h> //permite establecer comunicación serie en otros pins

SoftwareSerial BT(10, 11); //declaro el Bluetooth (al que llamo “BT”), e indico los
//pines de comunicación de Arduino: 10RX y 11TX
//(que corresponden con 10TX y 11RX del Bluetooth)
void setup() {
BT.begin(9600); //establezco comunicación con el módulo Bluetooth
Serial.begin(9600); //establezco comunicación con el PC
}

void loop() {
if(BT.available()) { //si hay datos disponibles con el módulo BT…
Serial.write(BT.read()); //… los imprimo en el Monitor Serie
}
if(Serial.available()) { //si hay datos disponibles con el PC…
BT.write(Serial.read()); //… los mando al BT
}
}
Comandos AT_2

Los comandos AT son los siguientes:

Comando AT Descripción Respuesta


AT Test de comunicación OK
AT+VERSION Retorna la versión del módulo OKlinvorV1.8
AT+BAUDx Modifica los baudios de la OK9600
comunicación, siendo x un múltiplo de
1200 bps
(por ejemplo: AT+BAUD4 establecerá
una velocidad de comunicación de
9600 bps, que es la opción por defecto)
X = 1, 2,…, 9, A, B, C
AT+NAMEx Modifica el nombre del módulo OKx
AT+PINxxxx Modifica el pin de acceso OKxxxx
Ejemplo: Control de 2 LEDs desde un móvil
El montaje será el siguiente:

#include <SoftwareSerial.h>

SoftwareSerial BT(10, 11);

int val;
int ledRojo = 8;
int ledVerde = 7;

void setup() {
BT.begin(9600);
pinMode(ledRojo, OUTPUT);
pinMode(ledVerde, OUTPUT);
}

void loop() {
if(BT.available()) val = BT.read();
if(val == '0') digitalWrite(ledRojo, LOW);
if(val == '1') digitalWrite(ledRojo, HIGH);
if(val == '2') digitalWrite(ledVerde, LOW);
if(val == '3') digitalWrite(ledVerde, HIGH);
}
Ejemplo: Control de 2 LEDs desde un móvil_2
Ahora solo falta subir a nuestro móvil una aplicación que mande “0”, “1”, “2” y
“3”. Lo haremos con AppInventor2:

¡OJO! Antes de conectar el móvil con


Arduino a través de esta aplicación,
debemos acceder a las opciones de
Bluetooth de nuestro móvil y añadir como
dispositivo de confianza al bluetooth de
nuestro Arduino.

Aplicación creada por:


Juan Antonio Villalpando
kio4.com
Bluetooth - Visualino

RX de Arduino (corresponde al pin TX del módulo Bluetooth)


TX de Arduino (corresponde al pin RX del módulo Bluetooth)

Es el código ASCII del número “2”

Es el código ASCII del número “3”


Tu mandas, yo obedezco
Lo primero que debemos hacer es ejecutar el programa para comunicarme con el
módulo Bluetooth y darle un nombre único (por ejemplo: RobotArduinoXX, donde
XX es el número de grupo).
AT+NAMERobotArduino03
#include <SoftwareSerial.h>
SoftwareSerial BT(10, 11);

void setup() {
BT.begin(9600);
Serial.begin(9600);
}

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

Lo segundo que debemos hacer añadir el Bluetooth de nuestro Robot a nuestra lista
de conexiones Bluetooth de nuestro Smartphone.
(Ajustes / Bluetooth / …)

Debemos buscar nuestro “RobotArduinoXX” cuyo pin debe ser “1234”.


Si nuestro dispositivo es Android, lo mejor es elaborar nuestra propia App con
AppInventor2, que es una poderosa herramienta offline (se requiere cuenta en
Gmail).

http://ai2.appinventor.mit.edu

Luego, debemos descargarnos la App “MIT AI2 Companion” de Play Store


Screen1 con DispHorizontal: Centro. La Disposición Horizontal tendrá un ancho “ajustar al contenedor”.
Al selector de lista le pondremos el texto “Conectar”, le pondremos un color de texto azul, y un ancho del
50%. Al botón le pondremos el texto “Desconectar”, quitaremos el tic de “Habilitado”, le pondremos un
color de texto gris y le pondremos un ancho del 50%.
Luego pasamos a la parte de la programación: Bloques
Alto de las imágenes: 50 píxeles. Las disposiciones Tabulares son de 3 columnas y 3 registros, y la de
debajo de 2 columnas y 3 registros (en el registro de en medio introduzco una etiqueta a la que dejaré
vacío el texto, y una altura de 20 píxeles). Los botones tienen anchos de 30% y los de debajo de 50%. He
subido varias imágenes (clickando en Subir archivo) para ponerlas en las imágenes y en los botones (más
bonito que poner “avanzar”, “retroceder”, etc… (¿no?).
La altura de los botones es de 40 píxeles, y para cada botón he seleccionado la
imagen adecuada. Así pues, esta será la interfaz de nuestra App.

Vayamos ahora a la programación.


Cada vez que se haga click en un botón, se enviará un determinado Byte a través del Bluetooth de
nuestro móvil (he escogido una notación “matricial”, según la posición del botón, para no liarme).

Nuestro robot deberá interpretar estos Bytes para realizar alguna acción.
Aumentar el volumen del altavoz
La intensidad de corriente máxima que Arduino es capaz de
generar por un pin de salida es de 40 mA. Sin embargo, por
el pin de 5 V la intensidad máxima es de 300 mA (7,5 veces
más). Si utilizo un transistor funcionando como interruptor,
podemos hacer que nuestro altavoz suene con bastante más
volumen:
Exportar el código con colores
Si quiero llevar el código desde la IDE a, por ejemplo, un documento Word, pero
respetando que se mantengan los colores del texto, vamos a proceder de la
siguiente manera:
- Clicamos en Editar / Copiar como HTML.
- Abro el bloc de notas y lo pegamos (Ctrl+V).
- Guardo el archivo con la extensión .html
- Lo abro (se abrirá con el navegador Web) y ya aparecerá coloreado.
- Lo copio desde el navegador a mi archivo Word (en PowerPoint no va).
171104FEDAP086 – CEP de Cádiz

Daniel Gallardo García


Profesor de Tecnología
[email protected]

También podría gustarte