Control PWM para iluminación sistema visión artificial

En este post, vamos a ver un circuito bastante simple, pero no con ello poco útil, al contrario, es un circuito diseñado para cumplir con su finalidad en una máquina específica y facilitar el reconocimiento de objetos a un sistema de visión artificial Siemens.
Este sistema de visión debe reconocer la posición en la que se encuentran unas piezas de acero que salen de un proceso de lavado, pasivado y secado. Como consecuencia del tipo de acero, del temple que se le ha dado y de los posibles restos de agua o aceites que pueden llevar las piezas, el sistema de visión ( que trabaja detectando zonas mas claras u oscuras en la gama de los grises ) llega a fallar por exceso o falta de iluminación de la pieza.
Como la cámara toma varias muestras por segundo de la imágen, antes de darle la vuelta a la pieza y examinar la otra cara, en ese lapso de tiempo ajustando bien la cantidad de luz a aplicar se pueden evitar los falsos reflejos ( producidos por restos de aceites o agua )o la escasez de luz ( producida por el tono del acero ). No sería de recibo que alguien estuviera ajustando continuamente la cantidad de luz a iluminar el objeto, porque para eso ya se encargaría de posicionar las piezas.
La solución es hacer que el foco que ilumina la escena ( un foco simple de la marca ALUD compuesto de 32 leds rojos de alta luminosidad y alimentado a 24v ) varíe constantemente de intensidad cada segundo aprox. desde un 70% a un 100% de su potencia total.
Parece una solución simple, pero ha sido la más efectiva en este caso tan particular.

El foco en cuestión es este:



El control PWM ( Pulse Width Modulation ) o Modulación por Ancho de Pulso lo que hace en nuestro circuito es generar una señal rectangular de 200Hz, en la que la longitud del semiciclo positivo ( Duty cycle ) va variando en cada ciclo completo (de los 200Hz) desde el 70% al 100% de la longitud total de la señal. En este caso particular, además se repite cada ciclo de PWM 2 veces, para que el efecto fade que varía desde el 70% al 100% de la intensidad total del foco dure aproximadamente unos 2 segundos, tiempo necesario para que la cámara realice varias tomas y pueda girar la pieza a identificar.

El MCU utilizado ha sido un PIC16F629 por poseer entradas analógicas que leen dos potenciómetros, los cuales establecen el valor mínimo de la intensidad del foco ( en el ejemplo 70%) y el valor máximo ( en el ejemplo el 100% )

Este es el esquema:



Y esta la PCB realizada:



La placa queda como sigue a falta de buscarle un emplazamiento y cortar los mandos de los potenciómetros:





Aqui dejo un pequeño video grabado con el móvil de una prueba realizada sin repetición de ciclo de PWM y variando de 0% - 100% - 0%

Conversor RS232<>TTL

Ya estamos aqui de nuevo despues de la pausa navideña.
Unos amigos nos han regalado una fonera y en vista de las limitaciones del firmware y de que no estamos por la labor de compartir para que otro gane dinero a nuestra cuenta, despues de investigar un poco por ahi, nos hemos decidido a flashearle el firmware DD-wrt_fonera que tantas satisfacciones nos brinda en nuestros Linksys wrt54GL.
Para el flasheo ( que no lo vamos a explicar, hay infinidad de foros y paginas por ahi para ello ) necesitabamos una conexión por puerto serie y para ello un convertidor de niveles RS232<>TTL.
Podiamos comprarlo a 10 euros en internet, pero no tendria gracia.
Nos pusimos manos a la obra DeSiG y yo.
Lo primero es el diseño de la placa. Como siempre usamos Eagle ( muy bueno y gratis )
Aqui estamos en plena acción:

DeSiG


Droky


Aqui vemos ya el esquema y la pcb terminados.
El tamaño de la PCB es de 18,8mm x 24,9 mm.
El fichero jpg está a una resolución de 1200 dpi.
Nos decidimos a hacerlo en SMD para intentar que cogiera dentro de un conector AMP y lo conseguimos:





Podeis ver el fotolito utilizado para hacer la PCB:



Y este es el previo en 3d gracias a Eagle3D de como debería ser nuestra placa al final:



El insolado de la placa lo hemos hecho con nuestra insoladora portátil de leds UV . Como siempre ha quedado perfectamente definida la imagen en la placa.
En una tira hemos sacado 3 PCBs:



Y la definición de las pistas con un grosor de apenas 3 décimas de mm (0,3 mm).
Alguien preguntaba en el post de la insoladora sobre la definición conseguida, pues aqui la veis, nada que envidiar a las de tubos.



Ahora que ya tenemos la placa, procedemos a reunir todos los componentes necesarios:
- PCB
- 4 condensadores SMD1206 1uF
- 1 condensador SMD1206 100nF
- 1 conector DB9 hembra
- 1 conector plano 10 pines hembra
- 1 carcasa plastica DB9 AMP737431-2
- Un poco de cable cinta 10 hilos




Comenzamos con la soldadura. Vamos a usar pasta de soldar para componentes SMD, de la que viene en jeringas.
Situamos un poco de pasta de soldar en cada pad del la PCB como en la foto:



Y luego posicionamos los componentes sobre la pasta:



Despues de aplicar calor con la tobera de aire caliente, nos queda así:



Procedemos a soldarle el conector DB9 y comprobamos que nuestra simulacion 3D se parece mucho al resultado final:




Le soldamos el cable segun el esquema de Poblete wireless y ya tenemos el conversor montado!!!



Con la carcasa queda muy profesional :)



Listo, lo conectamos a la fonera... y a flashear



La foto final de familia:



Conclusiones:
- Tenemos una fonera con DD-wrt-linux instalada emitiendo a 63mw ( no los 28mW de origen)
- Necesitamos montar un horno de soldadura SMD ya!
- En una mañana se pueden hacer muchas cosas.

Descargas

Salu2,
DeSiG y Droky 2007

 
RaDiKalDeSIG | Designed by Techtrends | © 2007-2008 All rights reserved