Autor Tema: Proyectos con Android  (Leído 26669 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
Proyectos con Android
« en: 03 de Septiembre de 2012, 20:16:51 »
hola.despues de estudiar el protocolo modbus de cabo a rabo.y realizar desde cero un programa en asm para el control de
las tramas. me veo obligado a desarroyar un interface para poder visualizar las tramas de una manera comoda.para ello he
desarroyado una aplicacion de android.ya que ese es el sistema operativo que tiene mi mobil.que lo prefiero al Phone.

la plicacion esta realizada con el  app_inventor.la primera impresion que me ha dado el app_inventor.es que es muy sencillo
de realizar aplicaciones.pero esta muy limitado o es que todabia no lo entiendo del todo.por mi parte no he logrado
copiar y pegar.lo que hace que la aplicacion haya que realizarla desde cero.y si te quedas sin internet,no puedes seguir.

yo quiero cambiar el titulo del proyecto y no veo la forma.asi que el titulo del icono de la aplicacion no tendra que ver
con esta.

ya que aunque la aplicacion iva dirijida al la visualizacion de una trama modbus.esta la he creado para el envio/recepcion
de caracteres mediante bluetooth.es decir,esta aplicacion es un hiperterminal bluetooth.

La aplicacion tiene un cuadro para introducir la MAC del dispositivo bluetooth al que nos vamos a conectar.en mi caso es
un modulo bluetooth SPP con una usart a 9600bps por defecto.

Tiene un boton para conectar/desconectar al/del modulo bluetooth.para conectar hay que hacer clic.y para desconectar mantener pulsado.

Antes de realizar la conexion.hay que emparejar el modulo bluetooth con el dispositivo mobil.en caso contrario se visualizaran
errores de conexion en el terminal.
aveces puede producirse varios intentos fallidos de conexion.pero no hay que desistir.si esto sucede es posible que tengamos que
volver a apagar/encender el modulo bluetooth.

Una vez que tengamos un enlace de comunicacion.introduciremos la cadena de caracteres a enviar en el cuadro de texto pequeño.
y pulsaremos el boton Enviar.esto hara que recivamos la trama en el dispositivo que tengamos conectado el modulo bluetooth.
en mi caso en el hiperterminal de windows del PC.

ademas cualquier caracter que enviemos desde el PC.sera recivido en el dispositivo mobil.

La tecla Borrar es para limpiar el cuadro de recepcion y Salir para cerrar el programa.

si no disponemos de un modulo bluetooth para realizar las prueva.tambien podemos conectarnos a otros dispositivos bluetooth que tengan puerto SSP
como un GPS bluetooth.

este es el codigo:



Uploaded with ImageShack.us

el archivo no me lo deja subir.haber si encuentro donde alojarlo.
Montando mi primera impresora 3D (Raprep Prusa i3)

Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Proyectos con Android
« Respuesta #1 en: 03 de Septiembre de 2012, 20:30:25 »
No esta demás ir aprendiendo a usar AppInventor, pero una aplicación tipo hyperterminal mediante bluetooth ya habia: BlueTerm  :mrgreen:

Para cambiarle el nombre al proyecto podes hace Save As  ;-)

Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
Re: Proyectos con Android
« Respuesta #2 en: 04 de Septiembre de 2012, 18:24:08 »
gracias.pues ya hay dos. :D

he instalado la aplicacion que me indicas.y veo que me queda mucho que aprender con el app_inventor.es mi primera aplicacion y me parece un milagro que funcionara a la primera.

lo que no  se es si BlueTerm esta hecho con el app_inventor.me gustaria tener el codigo para poder aprender mas.

esta es una imagen de la aplicacion.


y este el circuito bluetooth que he montado:

Montando mi primera impresora 3D (Raprep Prusa i3)

Desconectado fuente

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 573
Re: Proyectos con Android
« Respuesta #3 en: 05 de Septiembre de 2012, 03:39:33 »
El AppInventor creo que nació en el MIT como experimento, y no se si lo siguen actualizando.
Yo utilizaría el SDK de Android y eclipse como ide.
Puede descargar el SDK y los plugins para eclipse en:
Código: [Seleccionar]
http://developer.android.comTiene hasta un emulador para probar las aplicaciones, aunque es muy lento.

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
Re: Proyectos con Android
« Respuesta #4 en: 05 de Septiembre de 2012, 14:16:05 »
me han aconsejado a usar el SDK de Android en conjunción con Netbeans.
Es lo mismo que el eclipse?
Montando mi primera impresora 3D (Raprep Prusa i3)

Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Proyectos con Android
« Respuesta #5 en: 05 de Septiembre de 2012, 15:43:27 »
Lo mismo, pero me parece que el IDE Netbeans es más pesado que eclipse  :tongue:
No contesto mensajes privados, las consultas en el foro

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
Re: Proyectos con Android
« Respuesta #6 en: 11 de Noviembre de 2012, 19:25:30 »
pues me he puesto con el eclipse.y ya estoy haciendo mis primeras aplicaciones con android.

ahora necesito algun ejemplo para comunicarme por bluetooth.

pero necesito que el ejemplo este en un archivo.no en un apk.estaria muy bien el HiperTerm.o el bluetooth chat.
o algo por el estilo.todos los ejemplos que he visto no estan muy bien explicados.y no puedo realizar la aplicacion.si no se produce un error,falta algun archivo.

quiero saber paso a paso como funciona el bluetooth en android.

PD: si quereis ambiar el idioma del eclipse a español.hay que entrar en Ayuda,Install New Sotware... / y añadir la linea: http://download.eclipse.org/technology/babel/update-site/R0.10.0/juno

si es que estais usando la version juno de eclipse. luego le damos añadir.le ponemos un nomre y continuamos despues de elegir el idioma que queramos.
« Última modificación: 30 de Diciembre de 2012, 11:49:27 por groundman »
Montando mi primera impresora 3D (Raprep Prusa i3)

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
Re: Proyectos con Android
« Respuesta #7 en: 11 de Noviembre de 2012, 20:33:55 »
como siempre me pasa.solo encuentro las cosas cuando arto de buscar pido ayuda.y por arte de magia lo encuentro.

esta es la direccion donde lo he encontrado: http://pymasde.es/blueterm/

lo he podido compilar en un proyecto nuevo.parece que da algunos warnings.pero no seran muy importantes cuando al instalar el .apk en el movil.me ha funcionado.

ademas tambien me funciona la emulacion en mi dispositivo en modo de depuracion.no pasa lo mismo en el emulador AVD.que aunque si arranca.manda un mensage de que el bluetooth no se puede ejecutar.

mi mobil es un HTC ONE S. con android 4.0.4.  asi que podre hacer aplicaciones de todo tipo.haciendo pruevas conb el gps,brujula,wifi.etc

por el momento empezare a desmenuzar el codigo de la aplicacion bluetooth para poder realizar mis propias aplicaciones con bluetooth.
Montando mi primera impresora 3D (Raprep Prusa i3)

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
Re: Proyectos con Android
« Respuesta #8 en: 22 de Noviembre de 2012, 18:13:13 »
por fin despues de un mes aprendiendo a utilizar el ECLIPSE.y a programar en java.ya he podido realizar una plicacion que
controle una transmision por bluetooth.

la verdad es que me ha costado bastante.sobretodo sin tener ni idea de java.hacia mucho tiempo que queria aprender C++.
pero no veia el momento ni tenia el tiempo suficiente.
ahora veo que java y C++ se parecen mucho.y tener una pequeña nocion de C++ y Vbasic.me ha ayudado a entender la programacion
orientada a objetos.cosa que me sonaba a chino.
yo soy mas de ensembler para PICs claro.y prefiero tener el control total del chip.por eso creo que por el momento dejare a un
lado el C compiler para PICs.

bueno,vamos al tema.
para poder entender el funcionamiento del bluetooth para android.he tenido que buscar ejemplos por intenet.pero no
por llegar a encontrar varios ejemplos,he llegado ha realizar lo que queria a la primera.no basta con cojer una aplicacion
y ejecutarla.
tambien esta la compatibilidad entre dispositivos.y dentro de esto,la compatibilidad entre versiones.
la verdad que 30 dias sin parar de estudiar son muchos fines de semana.aunque ya se me acaban las vacaciones(forzosas).

un ejemplo de aqui: https://github.com/luugiathuy/Remote-Bluetooth-Android
si no os funciona cambiar el UUID por este: UUID.fromString("00001101-0000-1000-8000-00805f9b34fb");

es el que encontre mas facil de comprender.he visto que tiene alguna clase que se parece mucho a otros ejemplos que he visto
por la red.creo que la mayoria de los ejemplos son mezclas unos de otros.he notado que hay metodos que duplican el tipo de mensajes
de error y estado de la conexion.

yo lo he modificado un poco para mis propositos.pero creo que se le podrian quitar algunos metodos para simplificar la
aplicacion.y de esta forma entender mejor su funcionamiento.pero todabia no tengo los conocimientos suficientes para hacerlo
sin provocar fallos en la aplicacion.

este es el aspecto de la app.




su funcionamiento es como sigue:

ejecutamos la aplicacion y entramos en el menu.en mi caso un HTC one S.android 4.0.4. son tres puntos que hay en la parte
inferior de la pantalla.

veremos dos opciones.Hacer visible y Conectar con el dispositivo.

tocaremos conectar con el dispositivo.y se nos desplegara una lista con los dispositivos (a nuestro alcance o emparejados).
no he hecho la prueba.

luego conectamos con el dispositivo.en mi caso un modulo bluetooth de SURE.el cual esta conectado al ordenador atraves de un conversor
USb-TTL de 3.3v

nos saldran diferentes mensages indicandonos la conexion o desconexiones establecidas.

ya solo nos queda introducir el texto que queremos enviar en el editText y pulsar el button.podremos ver los caracteres ascii
en el hiperterminal de windows.

tambien he introducido la tecla enter en el boton VOL- del smartphone.y line feed para el boton VOL+


esta aplicacion solo es para enviar datos.por si queremos realizar un proyecto con un microcontrolador que solo necesite
la entrada de datos.en la proxima ya vere que se me ocurre.aunque las posibilidades son infinitas.debido a la cantidad de
modulos que disponen hoy en dia estos smartphones.y las opciones que tiene android para poder gestionarlas.


tambien incluyo la aplicacion mas abajo . y el proyecto aqui: http://www.4shared.com/rar/TyRDqkN3/TramaBluetooth.html
« Última modificación: 22 de Noviembre de 2012, 18:26:48 por groundman »
Montando mi primera impresora 3D (Raprep Prusa i3)

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
Re: Proyectos con Android
« Respuesta #9 en: 25 de Noviembre de 2012, 08:16:37 »
para poder hacer practicas.aqui: http://157.253.195.173/ttdewikim1/index.php/Android_Conexi%C3%B3n_Bluetooth_con_ATXMEGA32A4_(Windows)#Aplicaci.C3.B3n_en_Android




hay un ejemplo para el envio de unos caracteres.es una aplicacion mas basica que la anterior y asi sera mas facil entender el manejo del bluetooth.
esta es una de las primeras aplicaciones que me descarge.pero por falta de experiencia no pude hacerla funcionar en mi HTC ONE S.

lo que pasaba es que hay que poner a mano la MAC del dispositivo al que queramos conectarnos.

asi que pondremos la mac del modulo bluetooth en la linea:       String address ="00:06:66:43:45:20";

lastima que no vea como recivir datos.
tengo la aplicacion BlueTerm.que envia y recive.pero es muy compleja para mis conocimientos y no veo en que parte del programa esta la recepcion.

el problema es que tiene un objeto: emulatorView. que no veo en la paleta de herramientas.me da la sensacion de que ha sido creada por el que ha diseñado
el programa.y no se como acceder a sus propiedades.
« Última modificación: 25 de Noviembre de 2012, 08:23:23 por groundman »
Montando mi primera impresora 3D (Raprep Prusa i3)

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
Re: Proyectos con Android
« Respuesta #10 en: 25 de Noviembre de 2012, 09:09:10 »
mirando el codigo.me he dado cuenta de que el programa anterior si que puede recivir datos aunque esta un poco limitado.
enviando mediante el hiperterminal de windows,el caracter "&" . la imagen de la aplicacion cambia.ademas se produce el evento de recivir el caracter &.aunque
es enviando cualquier caracter.

habra que modificar el programa para recivir diferente caracteres ascii.
Montando mi primera impresora 3D (Raprep Prusa i3)

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
Re: Proyectos con Android
« Respuesta #11 en: 26 de Noviembre de 2012, 10:52:48 »
hola.he desmenuzado la aplicacion anterior hasta quitar casi todo lo que no estaba relacionado con la parte que se dedica a la recepcion
de caracteres ascii.he dejado algunas lineas dedicadas a la visualizacion de mensages de error y eventos.

aparte de los metodos de conexion.
podriamos quitar estos mensages.pero no sabriamos que esta pasando del porque no hay conexion en un momento dado.

hay varios casos del porque no se puede establecer una conexion.los cuales se indican con diferentes mensages.
los fallos mas importantes son:

que el dispositivo no sea compatible.p.ejem que no disponga de SPP.
que no sea visible.porque el modulo este apagado o en modo sleep.
o tambien que aunque el dispositivo este ya conectado al modulo bluetooth.no estemos enviandole caracteres.
muchas veces aunque el hiperterminal de windows diga que esta conectado.realmente no lo este.
y tengamos que desconectar y volver a conectar.teniendo en cuenta que el puerto y la velocidad de transmision sea la correcta.


respecto al programa.el registro que hace que se envien los datos es la de abajo.

(strBufferIn) es una variable que contiene una cadena de caracteres. que son los que va reciviendo del buffer de recepcion bluetooth
en la aplicacion del smartphone.

en el programa estos datos seran visualizados en un textView.

este programa no nos da la opcion de elegir a que dispositivo conectarnos.pero si podemos conectarnos sabiendo la mac del dispositivo
al que queremos conectarnos.
si queremos hacer practicas con un modulo bluetooth y el programa.recomiendo copiar la mac y pegar,sera mas rapido que introducir la
mac a mano.
ya que en esta aplicacion hay que cerrarla para cada conexion nueva.por no querer complicarla mucho para su entendimiento.



aqui esta la aplicacion modificada:

http://www.4shared.com/rar/IoC-DbDQ/ConexionBluetoothActivity2.html



Montando mi primera impresora 3D (Raprep Prusa i3)

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
Re: Proyectos con Android
« Respuesta #12 en: 14 de Diciembre de 2012, 15:06:58 »
despues de mucho tiempo intentando realizar una aplicacion que reciba y envie caracteres por bluetoth.al fin he podido modificar
una que me descarge de internet.pero que solo estaba implementada para la recepcion.
a base de hacer pruebas con multitud de errores.he conseguido hacer una aplicacion lo mas basica posible.con la seguridad suficiente
que evitase bloqueos y fallos.ya que estos se indicaran con un mensage.

la aplicacion consta de un boton y un editText para indicar a la mac que queremos establecer comunicacion y conectarnos.

un editText para escribir lo que queremos transmitir,con su boton de Enviar.y un textView para recibir los caracteres desde
el otro dispositivo al cual nos conectaremos.

esta aplicacion es muy simple para que la podamos entender.proximamemnte ire ampliando sus caractereristicas para mejorarla.




http://www.4shared.com/rar/WhIknbcK/ConexionBluetoothActivity6.html
Montando mi primera impresora 3D (Raprep Prusa i3)

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
Re: Proyectos con Android
« Respuesta #13 en: 21 de Diciembre de 2012, 09:32:27 »
hola de nuevo.sigo estudiando el java y el systema operativo android.y cada vez me gusta mas.aunque todabia no lo he asimilado.
de momento sigo mejorando la app anterior.y hay problemas que se me presentan y que poca informacion hay al respecto.
ya que en la programacion hay muchas maneras de hacer la misma cosa.y cuanto mas depurado este el programa.mas dificil es entender
el codigo.

en esta app he añadido la forma de conectarnos a una MAC sin tener que escribirla en un cuadro de texto y pulsar un boton.
en su lugar he realizado un menuItem para seleccionar el dispositivo desde una lista de un menu.asi ahorramos espacio en la pantalla.

tambien he dispuesto mas cuadros de texto y botones para enviar diferentes mensages al dispositivo bluetooth al que nos conectemos.




estoy mareado con un problema con la desconexion del enlace con el dispositivo bluetooth.una vez que conecto no se como desconectar.
sin que tenga problemas con una nueva conexion.

voy a ver si empiezo de cero.para entender que es lo que se me ha pasado por alto.

http://www.4shared.com/rar/1LBifRYb/ConexionBluetoothActivity18.html
Montando mi primera impresora 3D (Raprep Prusa i3)

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
Re: Proyectos con Android
« Respuesta #14 en: 27 de Diciembre de 2012, 09:31:30 »
hola.sigo poniendo avances que he logrado desmenuzando el BlueTerm.poco a poco voy aprendiendo cosas sobre la programacion de android
aunque respecto a este programa.solo entiendo el 50%
de todas formas.he hecho un programa bastante simplificado con partes de blueterm.que ya me hubiera gustado encontrar por internet.
para no perder tantos dias haciendo pruebas.
en este programa hay implementadas varias cosas lo relativamente simples para entender como se realiza una conexion bluetooth.
y el manejo del programa sin que se produzcan errores.

una de las primeras cosas que hace este programa es que cuando abrimos la aplicacion se comprueba si tenemos activado el bluetooth en nuestro telefono.
y si no es asi,se visualiza un mensage invitandonos a activarlo.si elegimos No.la aplicacion se cerrara.si por el contrario elegimos Si.
se abrira otro mensage pidiendonos permiso para activar el bluetooth.si elegimos Si.el bluetooth se activara y podremos empezar a utilizar nuestra
aplicacion.
pero si elegimos No.el bluetooth no se activara.aunque la aplicacion seguira enmarcha.el problema es que al intentar conectar aparecera un mensage
diciendo que no hay dispositivos emparejados.y si hacemos clic en buscar dispositivos,el programa entrara en un bucle intentando buscar dispositivos.
no he querido arreglar esto por no complicar mucho la aplicacion.mas adelante lo arreglare si lo veo oportuno.

esta parte del programa se situa nada mas empezar en: "public synchronized void onResume() {"
parte de los mensages se hubican dentro de: "DeviceListActivity.java"


Cuando tenemos el programa con el bluetooth activado y y la aplicacion corriendo correctamente.lo primero que tenemos que hacer es actuar con el menu.
aunque se pueden poner muchas mas.yo he puesto una sola pestaña.la cual tiene dos estados."conectar" y "desconectar"

aunque es la misma pestaña.solo que le cambiamos el texto segun este activado o desactivado el bluetooth.
esta funcion se gestiona desde las lineas dando comienzo a " public boolean onCreateOptionsMenu(Menu menu) {"

el cual crea la pestaña del menu.

y "  public boolean onOptionsItemSelected(MenuItem item) { " que es el que gestiona el accionamiento del las pestañas.


Cuando queramos conectarnos a un dispositivo.seleccionaremos "Conectar" en el menu de opciones.y se nos desplegara una lista
con los dispositivos que previamente teniamos emparejados.dentro de la memoria del telefono.

cuando selecionemos el dispositivo al cual nos queramos conectar.se nos puede dar la condicion de que el dispositivo no esta presente.en consecuencia
nos saldra un mensage de que ha sido imposible conectar.en el caso de que estubiera presente y hubieramos conectado.tambien se puede dar el caso de perder
la conexion.que tambien sera avisado de tal circustancia.

todos estos mensages pueden ser modificados desde "res/values/strings" que es donde hubican parte de las variables de android.

la parte donde se encarga de la gestion de estos mensages es en: " private final Handler mHandlerBT = new Handler() {"
esta no es la mejor forma de indicar el estado de la conexion con el dispositivo.lo suyo seria poner su estado en la barra de titulo.
asi sabriamos en todo momento si la conexion esta activa o se ha interrumpido.pero para no complicar la cosa.lo implementare en proximas modificaciones.

Otra parte del programa muy importante es esta:" public void onActivityResult(int requestCode, int resultCode, Intent data) {"

es la encargada de vincular la MAC del dispositivo a conectar y realizar la conexion.

En el Layout principal de esta aplicacion.solo he implementado un boton que cuando tengamos la conexion realizada.al pulsarlo enviaremos el dato 0x10
al dispositivo bluetooth.
ya que mi intencion es explicar la forma de realizar una conexion.posteriormente implementare el envio/recepcion de datos.


Tambien quiero indicar que en el programa vereis muchas lineas con este aspecto: "if (DEBUG)Log.e(LOG_TAG, "+++ ON CREATE +++");"

aunque tambien vereis estas: "Log.e(LOG_TAG, "+++ ON CREATE +++");" pero con el texto interior de las comillas con otro tipo de mensage.

la diferencia entre estas dos es que la primera tiene una condicional que se ha definido previamente en el comienzo del programa.
y solo es para habilitar/deshabilitar estas lineas.

se supone que la forma correcta es la de la primera linea.aunque las dos funcionan igual.solo se me ocurre que con la primera ahorraremos
mas memoria al compilar el programa y producir el APK. si previamente hubieramos definido DEBUG a "false". pero no he hecho la prueba.

estas lineas solo son unos mensages que se visualizan en la ventana LogCat del Eclipse.y se utilizan para saber que linea se esta ejecutando
en un instante determinado.y que tambien nos puede devolver un valor si lo especificamos en la linea.como:

"if (DEBUG)Log.e(LOG_TAG, "MENSAGE" + Variable);"

hay diferentes tipos de mensages:

Verbose :v
Debug   :d
Info    :i
Warning :w
Error   :e
Assert  :a

y que se indican despues de Log.

ESTAS SON LAS LINEAS A INTRODUCIR:

public static final boolean DEBUG = true;       : Valor de habilitacion o false para deshabilitacion.
public static final String LOG_TAG = "bluebas"; : Nombre del programa

esto es todo.pronto pondre mas avances.



http://www.4shared.com/rar/mIIq8ydF/BlueBas7.html
Montando mi primera impresora 3D (Raprep Prusa i3)