Go Down

Topic: Comunicación Arduino - Android via USB Serial usando Basic4Android (Read 7665 times) previous topic - next topic

surbyte

Mi objetivo es comunicar un arduino con un dispositivo Android usando Basic4Android o B4A
Para ello he comprado un cable OTG que basicamente es un cable miniUSB con salida Hembra que puedo insertar al cable comun USB macho del arduino que conectado en la PC.

El programa del Arduino es tan simple que no hace falta postearlo.
Inicialializo el puerto Serie a 9600 Bps y luego envio via Serial.print el resultado de un contador que se incremento cada 1seguno o 1000 mseg. Asi que termino enviando por puerto serie: 1, 2, 3, ..........100, 101.. y sigue

En el lado del B4A use una librería USBSerial 2.4 que solo debes agregar a la carpeta librerías en la instalación C:\Program Files (x86)\Anywhere Software\Basic4android\Libraries

Luego probé el ejemplo para poder recibir datos en la pantalla y nada.
Y desde entonces estoy trabado con esto.

_jose_

Quiza lo que te ocurre es que el ejemplo recibe los datos entrantes y los muestra con un log ,por lo que solo los verias con el mobil conectado al pc y con la pestaña log (abajo a la derecha) del entorno b4a,pero no cuando el mobil esta conectado al arduino.Prueba a poner un edit text que reciba los datos:
Code: [Select]

Sub Globals
  Dim btnSend, btnOpen, btnClose As Button
  Dim edtMensaje As EditText
End Sub

Code: [Select]

Sub Astreams_NewData (Buffer() As Byte)
  'Log("NewData")
  'Log(BytesToString(Buffer, 0, Buffer.Length, "UTF8"))
  edtMensaje.Text = BytesToString(Buffer, 0, Buffer.Length, "UTF8")
End Sub


y este sketch,que deberia escribir en el serial lo mismo que recibe:
Code: [Select]

void setup()
{
  Serial.begin(115200);
}
void loop()
{
  byte msg[64];
  int len;
  len = Serial.available();
  if (len > 0)
  {
    len = Serial.readBytes((char*)msg, sizeof(msg)); // readBytes seems to need a char* not a byte*
    Serial.write(msg, len);
  }
}

De hecho ,acabo de probar este parecido al que comentas y funciona:
Code: [Select]

int cont = 0;
void setup()
{
  Serial.begin(115200);
 
}

void loop()
{
  Serial.print(cont);
  cont ++;
  delay(1000);
}

surbyte

Si llega a ser eso te aseguro que te daría un beso, lástima que sos hombre..jajaja

EDITO: sigue sin funcionar. Pero no lo probe con un arduino sino con la PC. Mañana lo hago con el Arduino.

surbyte

Bueno, quiero preguntarte si probarlo con la PC no permite que funcione jamas la conexión?

_jose_

Bueno, quiero preguntarte si probarlo con la PC no permite que funcione jamas la conexión?
entendi que querias conectar un telefono o tablet con Arduino....

surbyte

Ya te comento como me fue, tuve muchas perturbaciones en el dia de hoy.

titiano0123

Hola! podrías me colaborar con la librería :)  :)  usbSerial 2.0 para b4a? he tenido problemas para descargarla. :smiley-confuse:  :smiley-confuse:

podrías enviarla a mi correo?

titiano0123@hotmail.com

muchas gracias amigo!

 :)  :)  :)  :)

surbyte


mvera

hola.

estoy interesado en conectar un teléfono a un arduino.

tengo un arduino leonardo y mi teléfono y uso b4a para la programación.

mi primera duda es como se alimenta de energía el arduino.

¿la saca del teléfono?

¿como les funciono?

gracias.


surbyte

BUeno, no cerré nunca este hilo porque no tuve éxito hasta hace poco.
EL problema era el telefono Samsung S2 que tenía que no es OTG o para serlo debo routear el telefono. Cosa que no hice.
Luego cambié el telefono recientemente por un S5 y cuando probé la misma aplicación con el cable OTG todo funcionó inmediatamente.
Ahora puedo enviar datos desde el ARduino por puerto Serie al Android y ver los datos ahi.

Solo busca un Cable OTG y con la librería USBSerial2.4 de B4A todo funciona perfecto.
Solo ten cuidado con la conversión de String a entero. No permite cadenas nulas y me daba un error que resolví con un simple if (isnumeric(string) y no recuerdo como sigue.
Luego lo busco y lo pego aca.

mvera

muchas gracias yo tengo el s2 , voy a comprar el cable y lo pruebo.

surbyte

No te va a funcionar.
No pierdas el tiempo. Si quieres intentar algo baja el OTG Checker una app de android que te dirá lo que ya te dije yo.
Te dirá que el S2 no funciona. 
La única manera es hacerte superUsuario o sea rootearlo.

Go Up