viernes, 17 de abril de 2015

APAÑO PARA ADAPTAR MÁQUINA DE CAMBIO OBSOLETA (1 euro) A PAGO CON MONEDAS DE 2 EUROS.

(EN) Fix to adapt a obsolete change machine (1 euro payment) to pay with 2 euros coins.
(FR) Rafistolage pour adapter une obsolète changeur de monnaie (1 euro) a payer avec 2 euros.
(PT) Remendo para adaptar máquina de cãmbio obsoleta (de pagamento 1 euro) a pagar com moeda de 2 euros.
--------------------------------------------------------------------------------------------------------------------------------

PARA REPASAR y fuentes de información: La máquina de cambio se compone basicamene de: un lector de billetes (originalmente un NV4 de Innovative Technology aunque para poder usar los billetes nuevos de euro habrá que poner un NV10); una placa de alimentación y control que no conozco a la que echaremos un vistazo; y un hopper E de Azkoyen
Para mi apaño volveré a usar un pinguino simplificado 2550 del que ya he comentado en entradas anteriores, en su versión mínima con bootloader v1.


Exposición del reto.

Tenemos una cambiadora por el taller. Un lector acepta un billete y según su valor, un hopper, hecha la cantidad exacta de monedas de 1 euro.
Hay dos problemas que resolver:
El primero es que la máquina dispone de un lector de billetes antiguo (NV4) del año 2000 aproximadamente. Está obsoleto y no acepta billetes de euro nuevos. No hay software para adaptarlo a billetes de euro nuevos. Esta solución es fácil, y ya la hemos hecho alguna vez. Se trata de poner otro billetero del mismo fabricante (Innovative Technology) más actual, que maneje el mismo protocolo de comunicación (en nuestro caso paralelo) y programado con los mismos billetes por los mismos canales. Usamos un NV10 cableando pin equivalente con pin equivalente. (Ver página 12 del manual del NV4 y pagina 10 del manual del NV10). El lector de billetes NV10 no engancha en el mismo soporte que el NV4 pero no es difícil hacer un apaño.


Change machine
Adaptación de máquina de cambio.

La segunda cuestión, es que se quiere que la máquina pague con monedas de dos euros. Y esto, parece un poco más complicado. No encontramos manual de la máquina, y el distribuidor  ha dejado de existir desde el 2004 (Ver comentarios). Así que toca echarle imaginación.


Un vistazo a la placa.

Mirando por encima la electrónica, nos encontramos con una sola placa controladora. Básicamente, alimentación, y un pic que controla un lector de billetes de Innovative Technology por protocolo paralelo, y un hopper tipo E de Azkoyen. Sobre la placa, existen cuatro microswitches y un jumper. Fuera, un pulsador rojo, un contador electromecánico con puesta a cero, y cuatro leds.

Hacemos pruebas y vamos aclarando algunas cosas. 

La placa puede controlar los cuatro canales del billetero, así que podemos programar para reconocer los billetes de 5, de 10, de  20 y de 50 (aunque en la carátula de fuera solo aparecen los de 5, 10 y 20 asociados a un led).

Cada uno de los cuatro microswitches que hay sobre la placa inhiben un tipo de billete. El jumper (que está abierto) pondría un pin del pic a masa pero no acabo de estar seguro con qué propósito.

Cuando un billete está inhibido, el led verde correspondiente está apagado.
Un interruptor detecta el peso del hopper y cuando tiene poco peso (por tanto pocas monedas) se enciende el led rojo R. Indicando ésto, que se necesita una recarga de monedas, aunque la máquina sigue operando de forma normal.
El hopper también tiene un interruptor en el fondo que detecta cuando casi no quedan monedas. Si éste se activa, los leds verdes parpadean y la máquina deja de admitir billetes, puesto que no tendrá suficientes monedas para hacer un pago.

Cuando pulsamos el botón rojo el hopper saca una moneda. Esto permite el vaciado y recuento del cambio.
Después de un pago o salida de monedas el contador electromecánico avanza un paso por moneda. Lo que nos permite controlar el dinero que sale.

Change machine control board
Estudio de los pines de la placa de control de la cambiadora


Discurriendo soluciones.

La primera idea que he tenido, y más sencilla, ha sido la de cambiar la programación del lector de billetes.
El billete de 5 no  podrá admitirse porque no puede pagarse con monedas de 2 euros, al no ser una cifra par. Lo inhibiríamos por microswitch en la placa.
Si el billete de 10 euros activa el canal 1, en vez del 2. La cpu pensará que es el de cinco euros y soltará 5 monedas. Lo mismo sucedería con el de 20 programándolo por la salida 2. La controladora dará 10 monedas pensando que es el de 10 euros. El problema es que tampoco podemos usar el billete de 50. Podríamos, siguiendo la misma tesis, programar el billetero para que active la salida como si fuera de 20; pero eso serían 40 euros y no 50. Así que con esta idea, solo operaría bien con 2 billetes.

La segunda idea, tal vez parezca un poco más compleja, pero parece mejor. Necesitaríamos que por cada moneda que el hopper hecha, indicase que salen dos. Es decir algún circuito electrónico, que cada vez que el micro de salida de moneda del hopper se active (porque sale una moneda) emita dos "activaciones". Esto permitiría un funcionamiento normal de la máquina, únicamente inhibiendo el billete de 5 euros. Así que nos decidimos a estudiar y probar esta opción.


En la cuenta de algunas consideraciones técnicas.

La primera duda que pasa por mi cabeza es la velocidad a la que necesito emitir esos dos pulsos. Han de ser en el mismo tiempo que ahora el microinterruptor emite uno, porque no puedo interferir ni en el funcionamiento del hopper, ni en el proceso de salida de la siguiente moneda. Y ese tiempo a de ser  lo suficientemente largo para que el pic de la tarjeta lo interprete bien. Es algo que nos podría dar problemas, pero que solo podemos saber probando.

Revisando el hopper: motor a 12v/20 r.p.m. y disco con 9 muescas me salen unas 20*9=180 monedas en un minuto. O lo que es lo mismo 3 monedas por segundo. Tendría unos 333ms para tratar a cada moneda.  Según la pagina 36 del manual, vemos que la señal de salida mínima válida ha de ser de más de 18ms y ha de pasar como mínimo 10 ms para la siguiente. Con esos tiempos parece que unos 300ms para jugar pueden ser suficientes.
Por si acaso y para la vida real, hacemos una prueba sacando monedas y midiendo la señal con un osciloscopio.

exiting coins
(5v/div-100ms/div) Salida normal monedas. Activa sobre 150ms


Otra consideración ha sido, si hacer un circuito exprofeso (temporizador y lógica cableada), o usar un microcontrolador. La opción del circuito me atraía pero parecía costosa y navegar un poco sobre aguas profundas para mi nivel.
La opción de un arduino nano parece ideal, pero no tengo ninguno. He de conseguir alguno. Usar un arduino Uno me parece demasiado para tratar solo una salida. Y como se trata de  dejar algo montado al final he optado de nuevo por la idea de mí pinguino mínimo que ya he usado y contado en mi otra entrada sobre billeteros en máquinas de Franco.


Echamos unos vistazos a la página 20 del manual del hopper e de azkoyen para ver que pines corresponden al interruptor del contaje de monedas (5 y 6 de J1).

Y con polímetro en mano seguimos el cableado para comprobar que de la señal que nos interesa: el pin 5 de  J1 va a masa; y el 6 es la señal en cuestión, que llega a la placa, puesta a nivel alto, con una resistencia de pull-up de 10Kohmios y una limitadora de corriente antes de entrar al pic de 100 ohmios. Usaremos nosotros estos mismos valores para atacar a nuestro pic (R1 y R2 en nuestro esquema). Los dos pic, el nuestro del Pinguino, y el de la placa controladora de la cambiadora, son de la serie pic18f...
El montaje no es nada complicado. Sólo hemos de cortar un cable y procesar su señal antes de mandársela a la placa.
Primero nuestro prototipo con Pinguino, con la versión 1 del bootloader, alimentado a 12v.

Prototipo con Pinguino Pic, bootloader v1. Pruebas

Una vez comprobado que la cosa funciona montamos algo más definitivo con la idea del "pinguino mínimo", que alimentaremos directamente con 5v desde un regulador 7805 que está en la placa controladora original al lado de los condensadores electrolíticos.


Esquema de mi montaje definitivo con pinguino mínimo. (Patilla26=pin5; Patilla11=pin10)

Esta vez he usado para montar una placa stripboard. Y para pensarlo el programa Fritzing (http://fritzing.org/) que recomiendo por simple y efectivo para estas cosas rápidas y que permite trabajar con con stripboard, perfboard, protoboard...


Estudio del montaje con Fritzing

El montaje real y definitivo:

Final adaptation chage machine
Resultado final de mi placa adaptadora para 2 euros

La placa se intercala entre el conector original y el hopper. Sacándola volverá a pagar con 1euro



El programa del pinguino PIC, es sencillo y corto. Lo puedo enseñar de un pantallazo. (Patilla26=pin5; Patilla11=pin10)


In and out signals
La señal de una moneda saliendo del hopper provoca dos pulsos a la salida de la tarjeta adaptadora

Y nada, funcionando perfectamente...