App inventor 2 en español
Cómo programar los teléfonos móviles con Android.
Bluetooth, Arduino y App inventor 2 - Juan Antonio Villalpando
-- Tutorial de iniciación de App Inventor 2 en español --
Volver al índice del tutorial
___________________________
9A0.- Monitor Serie en RXTX. Bluetooth en otros terminales.
- App Inventor le envía un texto al Arduino, éste lo recibe y le confirma la recepción del texto enviado.
- Conectamos el módulo Bluetooth en los termiales TX y RX del Arduino como observamos en la siguiente imagen.
- Los terminales TX y RX se utilizan para enviar/recibir información del/al módulo Bluetooth, por eso cuando vamos a enviar una información del Bluetooth ponemos Serial.println(palabra);
- Pero también se utiliza para enviar información al Monitor Serie, ya que cuando vamos a enviar una información al Monitor Serie ponemos también: Serial.println(palabra);
- Y también se utiliza para cargar el programa en el Arduino, por eso debemos desconectar el módulo Bluetooth cuando cargamos el programa.
___________________________
- Conexión Arduino.
- Vamos a ver dos ejemplos:
1.- con las conexiones en RX y TX
2.- con las conexiones en otros terminales.
_______________________________________________
1.- Conexiones en RX y TX. El App Inventor envía un texto al Arduino y éste le devuelve un recibido.
p9AA_bluetooth_texto.aia
- Este ejemplo ya lo vimos en el tutorial 9AA_bluetooth_ai2_envia.htm
_______________________________________________
- Diseño.
- Observa el ByteDelimitador: 10. Cuando la información recibida desde el Bluetooth termina en \n, es decir, el caracter 10, indica fin de palabra.
_______________________________________________
- Bloques.
___________________________
- Conexión Arduino.
___________________________
- Código Arduino.
- IMPORTANTE: Para cargar el programa en el Arduino, debe estar desconectado el módulo Bluetooth.
|
// Juan Antonio Villalpando
// juana1991@yahoo.com
// kio4.com
char caracter;
String palabra;
void setup()
{
Serial.begin(9600);
}
void loop() {
if(Serial.available())
{
caracter = Serial.read();
palabra = palabra + caracter;
if (caracter == '*') {
palabra = palabra.substring(0, palabra.length()-1); // Quita el *
// Serial.println(palabra));
delay(1000);
Serial.println("Recibido: " + palabra);
palabra = ""; }
}
}
|
___________________________
- Comentarios.
- Si desmarcas:
// Serial.println(palabra);
esa información se enviará también a App Inventor, ya que tanto el Monitor Serie como el Bluetooth se envía por los terminales 0 y 1 del Arduino. En una pulsación obtendrás la información del primer Serial.println y en la otra pulsación el otro Serial.println.
_______________________________________________
_______________________________________________
_______________________________________________
_______________________________________________
2.- Conexiones en 10 y 11. La misma aplicación anterior, pero cambiando los terminales del módulo Bluetooth.
p9AA_bluetooth_texto.aia (es la misma aplicación).
- Ahora vamos a conectar el módulo Bluetooth en los terminales 10 y 11.
- De esta manera dejaremos "libre", independiente, la conexión con el Monitor Serie y el módulo Bluetooth.
- El código de la aplicación de App Inventor será el mismo que el anterior.
- Pero el código del Arduino lo debemos cambiar, ahora necesitaremos la librería <SoftwareSerial.h>, de tal manera que configuraremos los terminales 10 y 11 como Serial para realizar la transmisión y recepción del Bluetooth.
___________________________
- Código Arduino.
- IMPORTANTE: En este caso no es necesario desconectar el módulo Bluetooth, ya que la carga del programa se realiza por el RX y TX de los terminales 0 y 1.
|
// Juan Antonio Villalpando
// juana1991@yahoo.com
// kio4.com
#include <SoftwareSerial.h>
SoftwareSerial SerialBT(10,11);
// El TX del módulo BT va al pin 10 del Arduino
// El RX del módulo BT va al pin 11 del Arduino
char caracter;
String palabra;
void setup()
{
Serial.begin(9600); // Para el Monitor Serie
SerialBT.begin(9600); // Para el Bluetooth
}
void loop() {
if(SerialBT.available())
{
caracter = SerialBT.read(); // Lee el SerialBT.
palabra = palabra + caracter;
if (caracter == '*') {
palabra = palabra.substring(0, palabra.length()-1); // Quita el *
Serial.println(palabra); // Lo escribe en el Monitor Serie
delay(1000);
SerialBT.println("Recibido: " + palabra); // Lo envía por Bluetooth.
palabra = ""; }
}
}
|
__________________________________
|