Pruebas de Concepto

Primeros desarrollos.

Realizo unos primeros desarrollos de evaluación de las diferentes tecnologías, con el objetivo de familiarizarme con ellas, estudiar sus posibilidades, y detectar posibles problemas, incompatibilidades, etc.

Aplicación Android.

Implemento la aplicación Android sobre el compilador Eclipse, con el plug-in Android. Es una herramienta increíblemente avanzada, con compilación en tiempo real, o la característica de "refactoring" que permite realizar todo tipo de modificaciones en el código, de manera asistida, al estilo de como lo hace Visual Studio de Microsoft.

La aplicación ha de cumplir ciertos requisitos básicos:

  • Ha de ser capaz de buscar la placa automáticamente, para conectarse a ella mediante Bluetooth.
  • Se ha de controlar los posibles rebotes al pulsar los botones virtuales, en la pantalla táctil.
  • Ha de ofrecer exactamente las mismas funcionalidades que la pantalla táctil, para facilitar el uso de ambas.
  • Las dos pantallas habrán de trabajar en exclusión mutua, de forma que su funcionamiento se sincronice secuencialmente.
  • El idioma ha de ajustarse automáticamente al del teléfono (Español e Inglés).

Pantalla Táctil.

El desarrollo de su software es particularmente penoso, debido a lo básico que es el entorno de desarrollo, a los bugs, y en general, a lo poco amigable que es su lenguaje de programación.

El fabricante ha definido su propio ecosistema. Así, las pantallas incorporan una placa de control, con un microprocesador especializado, denominado Picasso, que además de dibujar las imágenes en la pantalla, nos ofrece un interfaz para comunicarse con ella mediante un bus I2C, o una UART, gracias al firmware incorporado en todas sus pantallas.

Además,en su web hay disponibles ejemplos de programación, e incluso un foro donde consultar dudas, que es muy activo.

Para mi, el mayor problema fue conseguir que la aplicación cupiera en la memoria flash disponible. De todas formas, también se pueden exportar funciones a una tarjeta micro-SD que se utiliza para guardar las imágenes.

A la hora de empezar los test, como la pantalla no estaba conectada a ningún hardware con sus resistencias pull-up, fue necesario desactivar toda comunicación I2C, ya que al no detectarse los niveles de tensión correctos, el micro-controlador Picasso entiende que no recibe respuesta a sus comandos, y se queda a la espera, bloqueando el funcionamiento del conjunto. La pantalla táctil deja de responder a las pulsaciones que hagamos, y la impresión es que se ha "colgado".

Como ejemplo, este es el nivel de abstracción a la hora de programar:

// CONTROL DEL ESTADO DE LA PLACA.

// Si pulso un boton principal de la pantalla inicial,chequeo la placa.

if((MachineState == MAIN_ACTIVITY)&&((savekey == 0x00)||(savekey == 0x01)||(savekey == 0x02)))

// Antes de enviar comandos, analizo el estado de la placa.

// Si hay un error.

isReady := readData(IS_MODULE_READY);

// Si esta ocupada.

isBusy := readData(IS_MODULE_BUSY);

// Si no esta preparada,

if((isReady != MODULE_READY)||(isBusy != MODULE_READY))

// analizo por que, y muestro cuadro popup.

result := CheckAllSystem(isReady, isBusy);

// Si se retorna que es una "Alarma", no seguimos adelante.

if(result != 0x00) return;

endif

endif

Primeros bocetos de la Placa PCB

Empezamos a esbozar la placa. Las herramientas que voy a emplear son:

  • Eagle 6.4 como software de diseño de placas PCB.
  • SketchUp como software de generación de imágenes en 3D.
  • Plug-in de Maxwell para SketchUp, para renderizado de las imágenes 3D.

Me he decidido por usar Eagle, porque tiene licencias muy baratas, que se adaptan bien a mis necesidades.

En cuanto a SketchUp, uso la licencia de libre uso, que es más que suficiente para este tipo de trabajos.

El plug-in de Maxwell tiene una versión libre con restricciones, ya que esa versión solo genera imágenes de tamaño intermedio. Pero suficiente para mi.

Para empezar, necesitamos seleccionar los componentes que vamos a utilizar, y buscamos su modelo 3D en internet. Hay varias web de modelos 3D de componentes electrónicos, yo recomiendo

  • http://sketchup.google.com/3dwarehouse
  • www.3dcontentcentral.com
  • http://www.tracepartsonline.net/

aunque tiendas web especializadas como:

  • www.rs-amidata.es
  • www.farnell.es

también incluyen enlaces en muchos de su productos, para descargarse el modelo 3D. Sin embargo, aún así, yo he tenido que dibujar gran cantidad de ellos.

Impresión en papel, del boceto de la placa pcb

Paseo virtual por la placa pcb, gracias a las funcionalidades de SketchUp