|     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:


.

Arduino en español
Circuitos con Arduino - Juan Antonio Villalpando

-- Tutorial de iniciación a Arduino --

Volver al índice del tutorial

____________________________

46B.- Processing y Bluetooth con App Inventor. Enviar datos desde el ordenador a una aplicación y viceversa.

- En el tutorial anterior, 46Bprocessing.htm, vimos unas nociones básicas de Processing.

- Ahora vamos a enviar datos desde el ordenador a una aplicación realizada con App Inventor y viceversa, mediante Bluetooth.

- Necesitamos que nuestro ordenador tenga Bluetooth, en el caso que no lo tenga, podemos comprar un "Dongle" Bluetooth.

_________________________________________________
1.- Enviar datos desde el ordenador a una aplicación.

p46B_Processing_BT1.aia

- Vamos a utilizar 3 Sliders, Deslizadores.

- Al mover los Sliders, se enviará sus datos a la aplicación mediante Bluetooth.

- Para crear este componente en Processing utilizaremos la librería: controlP5-2.2.5.zip

- La descomprimimos y copiamos su carpeta en libraries, como vimos en el tutorial anterior.

_________________________________________________
- Código Processing.

- Debes establecer el puerto del Bluetooth de tu ordenador, en mi caso es el COM1.

Bluetooth_Colores

// Juan A. Villalpando
// kio4.com
// http://kio4.com/arduino/46Bprocessing_Bluetooth_AI2.htm

import controlP5.*;          // Librería para crear componentes.
ControlP5 cp5;               // cp5 es un elemento de la librería.
import processing.serial.*;  // Comunincación Bluetooth.
Serial port;                 // Puerto Bluetooth.

int red = 0;
int green = 0;
int blue = 0;
Slider s1, s2, s3;

void setup(){
  size(680,380);
  background(200,200,200);
  println("Puertos disponibles:");
  println(Serial.list());
  port = new Serial(this, "COM1", 9600); // Puerto Bluetooth del ordenador.
  
  cp5 = new ControlP5(this);
  PFont p = createFont("Arial",40); 
  ControlFont font = new ControlFont(p);
  cp5.setFont(font);
  
  s1 = cp5.addSlider(" R").setPosition(100,100)
                          .setRange(0,255)
                          .setSize(400,40)
                          .setColorBackground(0xffff0000)
                          .setColorForeground(0xffaa0000)
                          .setColorActive(0xffff4400)
                          .setColorLabel(0xffff0000);   
                         
  s2 = cp5.addSlider(" G").setPosition(100,150)
                          .setRange(0,255)
                          .setSize(400,40)
                          .setColorBackground(0xffaaff00)
                          .setColorForeground(0xff009900)
                          .setColorActive(0xff66ff66)
                          .setColorLabel(0xff009900);   
                        
  s3 = cp5.addSlider(" B").setPosition(100,200)
                          .setRange(0,255)
                          .setSize(400,40)
                          .setColorBackground(0xff00aaff)
                          .setColorForeground(0xff0000ff)
                          .setColorActive(0xff6666ff)
                          .setColorLabel(0xff000099);                                      
}

void draw(){
  red = int(s1.getValue());
  green = int(s2.getValue());
  blue = int(s3.getValue());
  String Sred = str(red);
  String Sgreen = str(green);
  String Sblue = str(blue);
  port.write(Sred + "," + Sgreen + "," + Sblue + "\n");
}

_________________
- Diseño.

_________________
-
Bloques.

- Mediante el SelectorDeLista, seleccionaremos el Bluetooth del ordenador (que debe aparecer en esa lista).

_________________________________________________
2.- Enviar datos desde la aplicación al ordenador por Bluetooth.

p46B_Processing_BT2.aia

- Ahora veremos el caso contrario, enviar 3 datos desde la aplicación al ordenador mediante Bluetooth.

- Mediante tres deslizadores enviamos tres números desde la aplicación al ordenador, esos números se muestran en el formulario del Processing.

- Los números se envía en este formato: 123,67,89#, el caracter # lo utilizo como fin de mensaje.

- Además cambia el fondo del formulario.

_________________
- Diseño.

_________________
-
Bloques.

_________________________________________________
- Código Processing.

- Debes establecer el puerto del Bluetooth de tu ordenador, en mi caso es el COM1.

Recibir_Bluetooth

// Juan A. Villalpando
// kio4.com
// http://kio4.com/arduino/46Bprocessing_Bluetooth_AI2.htm

import controlP5.*;          // Librería para crear componentes.
ControlP5 cp5;               // cp5 es un elemento de la librería.
import processing.serial.*;  // Comunicación Bluetooth.
Serial port;                 // Puerto Bluetooth.

String Sred = "";
String Sgreen = "";
String Sblue = "";
char caracter = 0;
String palabra = "";
Textlabel l1, l2, l3;

void setup(){
  size(680,380);
  background(200,200,200);
  println("Puertos disponibles:");
  println(Serial.list());
  port = new Serial(this, "COM1", 9600); // Establece el puerto.
  
  cp5 = new ControlP5(this);
  PFont p = createFont("Arial",40); 
  ControlFont font = new ControlFont(p);
  cp5.setFont(font);
  
  l1 = cp5.addTextlabel("label1")
                    .setText("Rojo = ")
                    .setPosition(100,50)
                    .setColorValue(0xffff0000)
                    .setFont(createFont("Arial", 40));
                    
   l2 = cp5.addTextlabel("label2")
                    .setText("Verde = ")
                    .setPosition(100,100)
                    .setColorValue(0xff009900)
                    .setFont(createFont("Arial", 40));
                    
   l3 = cp5.addTextlabel("label3")
                    .setText("Azul = ")
                    .setPosition(100,150)
                    .setColorValue(0xff0000ff)
                    .setFont(createFont("Arial", 40));
}

public void draw() {
 while (port.available() > 0) {
  caracter = char(port.read());
  palabra = palabra + caracter;
   if (caracter == '#') {
       // Example receives: 123,67,89#
       palabra = palabra.substring(0, palabra.length() - 1); // Delete last char #
        Sred = getValue(palabra,',',0);
        Sgreen = getValue(palabra,',',1);
        Sblue = getValue(palabra,',',2);
        l1.setText("Rojo = " + Sred);
        l2.setText("Verde = " + Sgreen);
        l3.setText("Azul = " + Sblue);
        background(float(Sred),float(Sgreen),float(Sblue),255);
        // port.write("Return: " + palabra + "\n"); // Retorna los datos.
        palabra = ""; 
      }
 }
 // background(0);
}

///////////////// Function Split by char ////////////////
String getValue(String data, char separator, int index)
{
  int found = 0;
  int strIndex[] = {0, -1};
  int maxIndex = data.length()-1;

  for(int i=0; i<=maxIndex && found<=index; i++){
    if(data.charAt(i)==separator || i==maxIndex){
        found++;
        strIndex[0] = strIndex[1]+1;
        strIndex[1] = (i == maxIndex) ? i+1 : i;
    }
  }

  return found>index ? data.substring(strIndex[0], strIndex[1]) : "";
}

_______________________________________
3.- Ejecutable.

- Mediante "Exportar Aplicación", podemos obtener la aplicación ejecutable.

_______________________________________
4.- Otros tutoriales.

- Aquí puse tutoriales en inglés sobre estos temas:

https://groups.google.com/forum/#!searchin/mitappinventortest/visual$20basic|sort:date/mitappinventortest/KkZbrPI7kb4/fTFQkAAaAQAJ 4

https://groups.google.com/forum/#!searchin/mitappinventortest/autoit|sort:date/mitappinventortest/VwgEZu5jH-E/Mdo2LMAxBQAJ 5

________________________________

- 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