Sensor IR de proximidad
Interesante tema para instalar en nuestro robot.... :) Julio C.A.
Un lector del blog me preguntó si en el robot Calimaro se podían reemplazar los microinterruptores de choque con sensores IR. La respuesta es absolutamente si. El tema está en que tipo de sensor usar. He buscado en Internet un proyecto simple de hacer, económico y sin componentes “muy” especiales como por ejemplo los receptores IR de tres patas. La cosa que me llamó la atención fue no encontrar nada de interesante. Esto era una excelente motivo para construir algo nuevo desde cero: un Sensor IR de proximidad sin usar componentes especiales.
Para obtener un modelo simple pero al mismo tiempo eficaz y confiable he decidido de usar un microcontrolador PIC muy económico y pequeño: el 12F675 para que se encargara de todas las funciones del sensor. Es decir, generar los impulsos para los leds emisores y analizar la información que llega al fototransistor. Digo “analizar” porque disponer de un microprocesador me permite de implementar funciones mucho más sofisticadas que la simple lectura on/off de la salida del fototransistor permitiendo de obtener un sistema confiable, de elevada sensibilidad e inmune a la luz ambiente. Bueno, en este artículo describo el proyecto completo.
El circuito electrónico esta compuesto por muy pocos componentes: dos leds infrarrojos de esos usados en los telecomandos (LD271), un par de transistores comunes, un fototransistor IR, algunas resistencias, capacitores y el microcontrolador. Para simplificar el circuito, no he agregado un regulador de tensión por lo que es necesario alimentar el sensor con 5V. Pienso que se puedan usar otros leds IR y otros fototransistores sin particulares problemas.
Veamos como trabaja. El microcontrolador genera impulsos que son amplificados por el transistor BC337 y sirven para excitar los leds. La corriente en los leds es bastante elevada pero como los impulsos generados por el micro son de breve duración, los leds no sufren y el consumo medio es muy bajo (10mA). Para no generar mucho ruido en la alimentación debido a estos impulsos de elevada corriente, he agregado dos capacitores: un electrolítico de 22uF en paralelo con uno cerámico de 100nF.
El fototransistor, recibe la la luz de los leds IR reflejada. Está conectado en configuración emisor común y polarizado a positivo a través de una resistencia de 15K. El valor de 15K lo obtuve experimentalmente y es el que me dio mejores resultados en materia de sensibilidad y de inmunidad a interferencias provocada por la luz ambiente.
Cuando un objeto se encuentra delante del sensor, el señal IR de los leds reflejado aparece débilmente en el fototransitor y es leído por el micro que por lo tanto activa la salida del sensor a través de un transistor conectado en configuración “open colector”. Esta configuración es muy usada en campo industrial porque permite la conexión a cualquier tipo de dispositivo aunque si alimentado con una tensión diferente respecto al sensor (5V).
El buen funcionamiento de este sensor depende del software que en realidad es muy simple. El mismo efectúa cíclicamente, gracias al ADC interno, dos lecturas analógicas de la salida del fototransistor: una de ellas cuando los leds IR están prendidos y otra cuando estos están apagados comparando las dos lecturas entre si. Si los valores obtenidos son bastante distintos significa que la diferencia de luz es debida a un objeto que está reflejando la luz proveniente de los leds IR y no solo del ambiente.
Es una especie de medición “diferencial” porque haciendo así se logra filtrar la interferencia provocada por la luz ambiente. El programa considera una lectura válida para la activación cuando la diferencia entre los dos valores es mayor de un cierto umbral llamado “threshold”. Este valor se encuentra declarado al inicio del programa y puede disminuirse si se desea hacer el sensor más sensible o aumentarlo si se desea el sensor menos sensible. Recuerdo que un valor muy bajo (menos de 10) puede hacer que el sensor sea demasiado sensible e inestable. El valore que yo he adoptado permite una sensibilidad de algunos centímetros que se adapta bien con los pequeños robots.
El sensor hace un ciclo completo de lectura (una lectura con leds encendidos y una con leds apagados) cada 3,3 mSec, por lo tanto la frecuencia de actualización es aproximadamente de 300 lecturas por segundo. En cada ciclo los leds están apagados por un periodo de 3,15 mSec y encendidos 0,15 mSec, es decir, solamente un 5% del tiempo total. Gracias a esto, como dicho precedentemente, el sensor consume muy poca corriente.
El montaje de sensor es muy simple de hacer. La única consideración especial es la de meter el fototransistor dentro de un pequeño tubo de pocos milímetros como se observa en la fotografía (yo he usado un trozo de vaina termorestringente) para lograr que la luz que llega al fototransistor sea solamente la reflejada.
No hay comentarios:
Publicar un comentario