Conjunto Montado

Introducción.

Este es el momento del proyecto en el que por fin disponemos del diseño definitivo. A partir de ahora, la mayor parte del tiempo lo se dedicará al software de control. Aunque en las páginas anteriores vimos que ya existe conectividad NFC, Bluetooth, etc. en realidad, los servicios que habrán de estar disponibles para que el proyecto sea un éxito, están todavía en fase embrionaria.





En la imagen ya se ve como la pantalla táctil conecta correctamente con la placa en desarrollo. También se aprecia un módulo Bluetooth, una etiquete NFC, y un móvil Android, con una aplicación de ejemplo, funcionado.

Pruebas básicas de funcionamento.

En el vídeo se muestra que el sistmea modular ya está operativo, y que las funcionalidades básicas ya están en servicio. Ahora hay que construir aplicaciones útiles -más complejas- a partir de ellas.

Soporte para el entorno de pruebas.

Como es habitual tener que trasladar el entorno de pruebas de un lugar a otro, he construido una base en metacrilato, y he atornillado la placa con tornillos de plástico.

Se aprecia que he colocado el conjunto tumbado. Esta posición

En la primera foto vemos que no es necesario dedicar un espacio en exclusiva al desarrollo de este producto, y esto a pesar de su enorme complejidad. hoy en día, basta con un computador y un dispositivo JTAG (mostrado al principio de este proyecto) para cargar y depurar el programa.

En la parte inferior de la placa base, he dibujado la distribución de los diferentes módulos que componen el sistema de control. Todo en aras de facilitar la mayor cantidad de información posible, que ayude a tomar decisiones, en este caso, de montaje.

Primeros test reales de funcionamiento.

He trabajado duro durante semanas, hasta conseguir que las funcionalidades básicas funcionen siempre bien, sin excepciones. Llamo funcionalidades básicas a aquellas que ejecutadas en un determinado orden, permiten construir acciones complejas. Por ejemplo, una funcionalidad básica sería lograr que al introducir una longitud a recorrer por un eje, el motor paso a paso gire el número exacto de micro-pasos, para que el desplazamiento sea el esperado. Posteriormente, ejecutando esta funcionalidad sobre fiferentes ejes, y diferentes logitudes, la máquina fabricará piezas.

En resumen, ya he conseguido que funcionen correctamente estos sistemas:

  • Descarga automática de App de control, al leer el contenido de la antena o del "tag" NFC, desde el almacén de aplicaciones llamado Google Play.
  • Conexión NFC con un dispositivo móvil.
  • Funcionamiento de antena NFC hardware a través de un bus I2C (se soportan modelos de dos fabricantes).
  • Conexión automática Bluetooth mediante mensajes NFC. (No necesita pareado ni ninguna otra acción previa).
  • Conexión Bluetooth mediante pareado clásico de dispositivos.
  • Almacenamiento de datos de configuración de la placa, en memoria Flash, emulando a una EEPROM.
  • Recepción, interpretación y ejecución de comandos recibidos por Bluetooth.
  • Recepción, interpretación y ejecución de comandos recibidos por pantalla táctil, a través de un bus I2C.
  • Ejecución correcta de las transiciones de Estado definidas en la Máquina de Estados de Moore, teniendo en cuenta todos los retrasos de funcionamiento que introduce el hardware: El ARM Cortex M3 es tan rápido, que incluso a los micro-controladores especializados en los motoes PaP, no les da tiempo a actualizar sus lineas hardware de señalización de estados, de marcha y paro.
  • Actualización de la barra de avance en la pantalla, en tiempo real, con datos reales del avance en el giro del motor PaP.
  • Actualización correcta del estado de los LE de señalización de Marcha y Paro, para los cuatro ejes.
  • Ajuste de la funcionalidad "Go Home" que lleva a cada motor PaP a la posición de origen, de forma automática.

Pruebas con Indexador CNC

En el largo proceso de pruebas del software, estoy empleando un indexador CNC, con un motor paso a paso de 3.0 Amperios. Este consumo de corriente encaja con los sistemas típicos a los que va destinado este proyecto.

Este montaje me ha servido para depurar los casos más difíciles. Uno de ellos es cuando se giran muy pocos grados. En el indexador de las imágenes, la reducción es tan solo de 6:1, por lo que para hacer girar el plato de garras 1º, solo es necesario que el motor paso a paso gire 6º.

Debido a ello, no hay tiempo suficiente para crear y mostrar la barra de avance, antes de que termine el movimiento.

Cuando por fin la barra de avance está en pantalla, disponible para recibir mensajes con el % de avance, resulta que el movimiento ya ha terminado. Si no se hace nada, la barra mostrada en pantalla quedará paralizada en el valor 0%, esperando a recibir unos valores que ya nunca llegarán.

Resolver este problema ha sido trabajoso, pero una vez logrado, me garantiza que una de las funcionalidades básicas, sea muy robusta.

A partir de ahora, emplearemos estas funcionalidades básicas para construir movimientos complejos. Por ello, es importante ajustarlos al máximo, antes de seguir avanzando.


Siguiente página ->

<-Página anterior