como hacer un encoder óptico usando partes de un mouse mecánico

Upload: tecniloco80

Post on 17-Jul-2015

796 views

Category:

Documents


1 download

TRANSCRIPT

Como hacer un encoder ptico usando partes de un mouse mecnico | Technoreeze

Page 1 of 15

Technoreeze Inicio Acerca de RSSBuscar

Como hacer un encoder ptico usando partes de un mouse mecnicoMe gusta 0 2

En proyectos de robtica, mecatrnica, o cualquier otro que requiera medir movilidad o cambios mecnicos, se hace necesario adicionar algn tipo de sensor que pueda contabilizar la cantidad de movimiento y el sentido del mismo. Dependiendo del tipo de desplazamiento a medir, estos sensores pueden ser lineales o rotatorios. Para el caso que nos ocupa, esta la necesidad de contabilizar el movimiento de un robot con ruedas, de tipo rover. Si se desea poder aplicar algn algoritmo de utilidad a dicho robot que permita determinar su posicin y desplazamiento relativo, es imprescindible que exista alguna manera de medir el movimiento de las ruedas, contabilizar la distancia que recorre y el sentido de giro de estas. Soluciones comerciales a este problema las hay de sobra, pero a veces existen limitaciones en tiempo o dinero para adquirir una solucin de estas. As que nos queda la otra alternativa, usar lo que tenemos a mano y hacer algo de trabajo de diseo y ensamblado. En este aspecto, la solucin pasa por reciclar piezas y partes de otros equipos. Fabricar un encoder ptico rotatorio no es tan difcil usando las piezas recuperadasQuinnotieneensucasa,olvidadoenalgnlado,unviejo mouse mecnico de PC, daado o inutilizado? Un encoder es un sensor o transductor rotativo que transforma el movimiento angular en una serie de impulsos digitales. Estos impulsos generados pueden ser utilizados para controlar los desplazamientos de tipo angular o de tipo lineal. Las aplicaciones principales de estos transductores estn en las herramientas, sistemas de medicin y control y en robtica.

http://www.technoreeze.com/2012/01/25/como-hacer-un-encoder-optico-usando-parte... 12/03/2012

Como hacer un encoder ptico usando partes de un mouse mecnico | Technoreeze

Page 2 of 15

En nuestro caso, trabajaremos con un encoder ptico incremental. Este tipo de sensor utiliza un elemento lineal o un disco liviano, que va solidario al eje rotativo de la pieza que se desea medir su posicin. Para el caso de robot rover, se usara un disco, el cual est dividido en zonas opacas/transparentes o muescas.

Estas zonas actan como un obturador de cmara, las cuales harn la funcin de permitir o denegar el paso de la luz en forma alternada. Estos cambios sern detectados por un sensor lumnico (generalmente un fotodiodo o fototransistor), que en junto con la electrnica necesaria generara un grupo de pulsos que luego pueden ser ledos e interpretados por un microcontrolador.

Los mouses mecnicos poseen en interior un par de ruedas dentadas y su correspondiente grupo de sensores pticos.

http://www.technoreeze.com/2012/01/25/como-hacer-un-encoder-optico-usando-parte... 12/03/2012

Como hacer un encoder ptico usando partes de un mouse mecnico | Technoreeze

Page 3 of 15

El tndem LED/Fototransistor forman en su conjunto un codificador de cuadratura, en donde el receptor ptico est conformado por dos fototransistores, posicionados estos en forma vertical con un desplazamiento de de ranura el uno del otro, generando de esta manera dos seales de pulsos digitales, desfasadas en 90 o en cuadratura.

http://www.technoreeze.com/2012/01/25/como-hacer-un-encoder-optico-usando-parte... 12/03/2012

Como hacer un encoder ptico usando partes de un mouse mecnico | Technoreeze

Page 4 of 15

Cada fototransistor genera una seal de salida, comnmente denominadas A y B. Mediante estas es posible suministrar al microcontrolador informacin suficiente para determinar la posicin, velocidad y direccin de rotacin del eje. El convenio general es que, si la seal A adelanta a la seal B, el eje est rotando en sentido horario. En cambio, si B adelanta a A, el sentido ser anti horario. La resolucin y precisin de la medida de giro estar en funcin del nmero de ranuras o muescas que posea el disco codificado, aunque esto ltimo depender mucho de la configuracin fsica del sensor ptico. Matemticamente hablando:

la resolucin del sensor N est determinada por el dimetro D del disco y la anchura X de la ranura o muesca codificada. Las piezas a extraer del mouse son: las ruedas ranuradas, los leds IR y los fototransistores

http://www.technoreeze.com/2012/01/25/como-hacer-un-encoder-optico-usando-parte... 12/03/2012

Como hacer un encoder ptico usando partes de un mouse mecnico | Technoreeze

Page 5 of 15

Para el montaje en el eje giratorio, en este caso, en una caja reductora de velocidad, es necesario hacer algo de trabajo con la rueda. Si bien estaba la opcin de crear una nueva con pocas muescas, prefer usar la que posea el ratn, dado que proporciona una buena resolucin de pulsos al giro de la rueda.

Adaptando un poco el eje original de la rueda, incorporarlo en el eje de la caja reductora fue relativamente fcil

http://www.technoreeze.com/2012/01/25/como-hacer-un-encoder-optico-usando-parte... 12/03/2012

Como hacer un encoder ptico usando partes de un mouse mecnico | Technoreeze

Page 6 of 15

En donde hay que hacer algo ms de trabajo es en crear la estructura asociada a la caja reductora para que se fije mecnicamente a esta, portando el LED IR y el lector de fototransistores

http://www.technoreeze.com/2012/01/25/como-hacer-un-encoder-optico-usando-parte... 12/03/2012

Como hacer un encoder ptico usando partes de un mouse mecnico | Technoreeze

Page 7 of 15

Para ello lo ms fcil es usar partes de circuito impreso perforado, un poco de alambre y mucha paciencia. El resultado final no est nada mal y se adapta muy bien a la caja reductora

http://www.technoreeze.com/2012/01/25/como-hacer-un-encoder-optico-usando-parte... 12/03/2012

Como hacer un encoder ptico usando partes de un mouse mecnico | Technoreeze

Page 8 of 15

El siguiente paso es disear la electrnica necesaria para acondicionar los pulsos generados por los fototransistores a niveles TTL requeridos por el microcontrolador. Hay muchos diseos, muy buenos, basados en el uso de inversores Schmitt-Trigger

En mi caso, prefer hace un diseo ms bsico, usando transistores, ya que por requisitos especficos me permita un mejor control de los niveles de tensin generados en las lecturas de pulsos por los fototransistores.

http://www.technoreeze.com/2012/01/25/como-hacer-un-encoder-optico-usando-parte... 12/03/2012

Como hacer un encoder ptico usando partes de un mouse mecnico | Technoreeze

Page 9 of 15

Este esquema es la versin simple, para un solo LED IR y solo un fototransistor, el cual es suficiente para solo detectar pulsos por movimiento. Si se desea tambin detectar el sentido de giro, es necesario usar el segundo fototransistor

Este sera el circuito completo para el detector de cuadratura. En el caso del robot rover, al tener cuatro ruedas, lo correcto sera que cada una tenga un encoder, pero por cuestiones de economa, solo se incorporan dos. La placa del circuito con el montaje final para dos encoders queda as

http://www.technoreeze.com/2012/01/25/como-hacer-un-encoder-optico-usando-parte... 12/03/2012

Como hacer un encoder ptico usando partes de un mouse mecnico | Technoreeze

Page 10 of 15

Para hacer las pruebas de funcionamiento, use una placa Arduino Deumilanove. En la pagina de proyectos de Arduino est un buen ejemplo de cdigo para un encoder mecnico. Haciendo algunas modificaciones al cdigo, la actualizacin del contador se hace mediante interrupciones. En los pines 2 y 3 se conectan las salidas, los puntos TP1 y TP2. El LED IR se alimenta directamente de la fuente regulada de 5V de la placa arduino.

El codigo del programa a cargar en la placa Arduino:int encoderPinA = 2; int encoderPinB = 3; volatile int encoderPos = 0; volatile int encoderPinLast = LOW; volatile int n = LOW; volatile int m = LOW; int valNew = 0; int valOld = 0;

http://www.technoreeze.com/2012/01/25/como-hacer-un-encoder-optico-usando-parte... 12/03/2012

Como hacer un encoder ptico usando partes de un mouse mecnico | Technoreeze

Page 11 of 15

void setup() { pinMode (encoderPinA,INPUT); pinMode (encoderPinB,INPUT); Serial.begin (9600); attachInterrupt(0, CountA, CHANGE); attachInterrupt(1, CountB, CHANGE); } void loop() { encoderPinLast = n; valNew = encoderPos; if ((valNew != valOld)) { Serial.print(" -> "); Serial.println (encoderPos, DEC); valOld = valNew; } } void CountA() { n = digitalRead(encoderPinA); if ((encoderPinLast == LOW) && (n == HIGH)) { if (m == LOW) { encoderPos--; } else { encoderPos++; } } } void CountB() { m = digitalRead(encoderPinB); }

Enlaces: http://www.eehomepage.com/report.php?report=20080225 http://thedenneys.org/pub/robot/encoders/ http://zumbrovalley.net/readpost.php?artid=1

Imprimir esta publicacin Publicado en: Computacin, Electrnica, Hardware, Proyectos Etiquetas: Arduino, Inteligencia Artificial, Microcontroladores, Robotica, Sensores

Esta entrada fue publicada el 25 de enero de 2012 a las 2:49 PM y est archivada bajo la categora Computacin, Electrnica, Hardware, Proyectos. Puede seguir cualquier comentario a esta entrada a travs de la suscripcin RSS 2.0. Usted puede dejar un comentario, o hacer trackback desde su propio sitio.

http://www.technoreeze.com/2012/01/25/como-hacer-un-encoder-optico-usando-parte... 12/03/2012