|     Inicio    |   |         |  |   FOROS      |  |      |      
   Elastix - VoIP B4A (Basic4Android) App inventor 2 PHP - MySQL
  Estación meteorológica B4J (Basic4Java) ADB Shell - Android Arduino
  Raspberry Pi Visual Basic Script (VBS) FireBase (BD autoactualizable) NodeMCU como Arduino
  AutoIt (Programación) Visual Basic Cosas de Windows Webs interesantes
Translate:
Búsqueda en este sitio:


.

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

___________________________

9BB.- Bluetooth, Arduino y App Inventor. Potenciómetro, gráfico dinámico.

scrollingGraph_potenci.aia

- El Arduino con Bluetooth y un potenciómetro, como indica la imagen.

- Al mover el potenciómetro se envía un valor entre 0 y 1000 a App Inventor.

- Se dibuja dinámicamente el gráfico tiempo/valor, es decir se mueve el gráfico hacia la izquierda.

- El móvil se puede poner en horizontal y vertical.

- El código de App Inventor está basado en: 725.- Gráfico en movimiento.

_______________________________________________

- Conexión.

- Bluetooth conectado a los puertos Serie "oficiales" RX-0 y TX-1 (Fíjate que se conectan de forma "cruzada").

- Debemos quitar el módulo para cargar la aplicación.

- Puedes consultar valores en el Serial Monitor.

- Mediante la función map, convertimos limitamos los valores entre 0 y 1000.

arduino_bt_potenciometro.ino
// Juan Antonio Villalpando
// juana1991@yahoo.com
// kio4.com

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

void loop (){
    // El terminal central del potenciómetro va a A0 del Arduino
    int i = analogRead(A0);
    i = map(i,0,1024,0,1000);
    Serial.print(i);
    Serial.print("\n"); // Fin de línea. Importante.
    delay(300);    
}

- App Inventor.
_______________________________________________

- La gráfica se va desplazando continuamente a la izquierda mostrando los valores obtenidos en el potenciómetro.

- El Reloj tiene un Intervalo de 100.

- El Bluetooth DelimiterByte = 10

_______________________________________________

- Comentarios.

- Esta es la parte de la llegada de datos del Bluetooth, el dato llega a la variable value.

- Se ejecuta el procedimiento updateGraph.

_______________________________________________

- Comentarios.

- STEP es para que salgan valores aleatorios paso a paso.

- Si pulsas PAUSE, seguirán llegando valores y cuando pulses START se irán mostrando los valores que han llegado anteriormente.

_________________________________________________

- Valor entre -90 y +90

- Si queremos que el valor de y varíe entre -90 y 90, cambiamos la etiqueta.

 

_______________________________________________

2.- Arduino genera una señal sinusoidal y la transmite por Bluetooth.

scrollingGraph_potenci_simple.aia

- Observa el código de Arduino, genera una señal sinusoidal.

- Los valores que crean esa señal, se van enviando por Bluetooth a Android.

- Los recibe y dibuja una gráfica.

________________________________________
- Arduino.

sinusoidal.ino

// Juan Antonio Villalpando
// juana1991@yahoo.com
// kio4.com

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

float incremento = 3.14/20; // Resolución
float angulo = 0;
int amplitud = 1000;
int y;

void loop() 
{
y = amplitud * sin(angulo);
angulo = angulo + incremento;
y = map(y,-1000,1000,0,1000);
Serial.print(y);
Serial.print("\n");
delay(400);
}  
		  

- Cambiando a mayor el número 20, aumenta la resolución.

- Si pones un delay muy grande, se enviarán muchos datos y no le dará tiempo procesarlo al Bluetooth del Android, se llenará el Buffer.

_______________________________________________

3.- Al pulsar un Botón, pedimos un valor a Arduino y se muestra en la gráfica.

scrollingGraph_potenci_simple_NoClock.aia

- Este ejemplo no utiliza Reloj en App Inventor, ni delay en el Arduino.

- Cada vez que pulsamos el Botón "Get value" enviamos el caracter "k" a Arduino por Bluetooth y cuando el Arduino lo recibe nos devuelve el siguiente valor de la función sinusoidal.

________________________________________
- Diseño.

________________________________________
- Bloques.

________________________________________
- Arduino.

sinusoidal_get.ino

// Juan Antonio Villalpando
// juana1991@yahoo.com
// kio4.com

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

float incremento = 3.14/20;
float angulo = 0;
int amplitud = 1000;
int y;
char caracter;

void loop() {
 if(Serial.available()) {
   caracter = Serial.read();
   if(caracter == 'k'){ 
   y = amplitud * sin(angulo);
   angulo = angulo + incremento;
   y = map(y,-1000,1000,0,1000);
   Serial.print(y);
   Serial.print("\n");
   caracter = '-';
   }
  }
}

________________________________________
-
Comentarios.

- App Inventor envía por Bluetooth el caracter "k" (podría se otro).

- Si Arduino recibe el caracter "k", entonces mediante Serial.print(y); envía el valor actual de y.

- App Inventor RecibeTexto y lo pone en la variable value, para ser insertada en el gráfico.

 

 

__________________________________

 
- Mi correo:
juana1991@yahoo.com
- KIO4.COM - Política de cookies. Textos e imágenes propiedad del autor:
© Juan A. Villalpando
No se permite la copia de información ni imágenes.
Usamos cookies propias y de terceros que entre otras cosas recogen datos sobre sus hábitos de navegación y realizan análisis de uso de nuestro sitio.
Si continúa navegando consideramos que acepta su uso. Acepto    Más información