Como hacer un encoder óptico usando partes de un mouse ...

15
Menu Un poco de todo en tecnología y tendencias Computación , Electrónica , Hardware , Proyectos 25 enero, 2012 8 comentarios En proyectos de robótica, mecatrónica, o cualquier otro que requiera medir movilidad o cambios mecánicos, se hace necesario adicionar algún 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 algún algoritmo de utilidad a dicho robot que permita determinar su posición 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 solución de estas. Así que nos queda la otra alternativa, usar lo que tenemos a mano y hacer algo de trabajo de diseño y ensamblado. En este aspecto, la solución pasa por reciclar piezas y partes de otros equipos. Fabricar un encoder óptico rotatorio no es tan difícil usando las piezas recuperadas ¿Quién no tiene en su casa, olvidado en algún lado, un viejo mouse mecánico de PC, dañado 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 están en las herramientas, sistemas de medición y control y en robótica. 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 posición. Para el caso de robot rover, se usara un disco, el cual está dividido en zonas opacas/transparentes o muescas. Estas zonas actúan como un obturador de cámara, las cuales harán la función de permitir o denegar el paso de la luz en forma alternada. Estos cambios serán detectados por un sensor lumínico (generalmente un fotodiodo o fototransistor), que en junto con la electrónica necesaria generara un grupo de pulsos que luego pueden ser leídos e interpretados por un microcontrolador. Como hacer un encoder óptico usando partes de un mouse mecánico Como hacer un encoder óptico usando partes de u... http://www.technoreeze.com/es/2012/01/25/como-h... 1 sur 15 04/08/2019 à 13:25

Transcript of Como hacer un encoder óptico usando partes de un mouse ...

Page 1: Como hacer un encoder óptico usando partes de un mouse ...

M e n u

U n p o c o d e t o d o e n t e c n o l o g í a y t e n d e n c i a s

C o m p u t a c i ó n , E l e c t r ó n i c a , H a r d w a r e , P r o y e c t o s

2 5 e n e r o , 2 0 1 2 8 c o m e n t a r i o s

En proyectos de robótica, mecatrónica, o cualquier otro que requiera medir

movilidad o cambios mecánicos, se hace necesario adicionar algún 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

algún algoritmo de utilidad a dicho robot que permita determinar su posición 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 solución de estas. Así que nos

queda la otra alternativa, usar lo que tenemos a mano y hacer algo de trabajo de diseño y ensamblado.   En este aspecto, la

solución pasa por reciclar piezas y partes de otros equipos. Fabricar un encoder óptico rotatorio no es tan difícil usando las

piezas recuperadas  ¿Quién no tiene en su casa, olvidado en algún lado, un viejo mouse mecánico de PC, dañado 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 están en las herramientas, sistemas de medición y control y en robótica.

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 posición. Para el caso de robot rover, se usara un disco, el

cual está dividido en zonas opacas/transparentes o muescas.

Estas zonas actúan como un obturador de cámara, las cuales harán la función de permitir o denegar el paso de la luz en forma

alternada. Estos cambios serán detectados por un sensor lumínico (generalmente un fotodiodo o fototransistor), que en junto

con la electrónica necesaria generara un grupo de pulsos que luego pueden ser leídos e interpretados por un microcontrolador.

Como hacer un encoder óptico usando partes de unmouse mecánico

Como hacer un encoder óptico usando partes de u... http://www.technoreeze.com/es/2012/01/25/como-h...

1 sur 15 04/08/2019 à 13:25

Page 2: Como hacer un encoder óptico usando partes de un mouse ...

Los mouses mecánicos poseen en interior un par de ruedas dentadas y su correspondiente grupo de sensores ópticos.

El tándem LED/Fototransistor forman en su conjunto un codi�cador 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 señales de pulsos digitales, desfasadas en 90º o en cuadratura.

Cada fototransistor genera una señal de salida, comúnmente denominadas A y B. Mediante estas es posible suministrar al

microcontrolador información su�ciente para determinar la posición, velocidad y dirección de rotación del eje. El convenio

general es que, si la señal A adelanta a la señal B, el eje está rotando en sentido horario. En cambio, si B adelanta a A, el sentido

será anti horario. La resolución y precisión de la medida de giro estará en función del número de ranuras o muescas que posea el

disco codi�cado, aunque esto último dependerá mucho de la con�guración física del sensor óptico. Matemáticamente hablando:

la resolución del sensor N está determinada por el diámetro D del disco y la anchura X de la ranura o muesca codi�cada. Las

piezas a extraer del mouse son: las ruedas ranuradas, los leds IR y los fototransistores

Como hacer un encoder óptico usando partes de u... http://www.technoreeze.com/es/2012/01/25/como-h...

2 sur 15 04/08/2019 à 13:25

Page 3: Como hacer un encoder óptico usando partes de un mouse ...

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 opción de crear una nueva con pocas muescas, preferí usar la que poseía el ratón, dado que proporciona

una buena resolución 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 fácil

Como hacer un encoder óptico usando partes de u... http://www.technoreeze.com/es/2012/01/25/como-h...

3 sur 15 04/08/2019 à 13:25

Page 4: Como hacer un encoder óptico usando partes de un mouse ...

En donde hay que hacer algo más de trabajo es en crear la estructura asociada a la caja reductora para que se �je

mecánicamente a esta, portando el LED IR y el lector de fototransistores

Para ello lo más fácil es usar partes de circuito impreso perforado, un poco de alambre y mucha paciencia. El resultado �nal no

está nada mal y se adapta muy bien a la caja reductora

Como hacer un encoder óptico usando partes de u... http://www.technoreeze.com/es/2012/01/25/como-h...

4 sur 15 04/08/2019 à 13:25

Page 5: Como hacer un encoder óptico usando partes de un mouse ...

El siguiente paso es diseñar la electrónica necesaria para acondicionar los pulsos generados por los fototransistores a niveles

TTL requeridos por el microcontrolador. Hay muchos diseños, muy buenos, basados en el uso de inversores Schmitt-Trigger

En mi caso, preferí hace un diseño más básico, usando transistores, ya que por requisitos especí�cos me permitía un mejor

control de los niveles de tensión generados en las lecturas de pulsos por los fototransistores.

Este esquema es la versión simple, para un solo LED IR y solo un fototransistor, el cual es su�ciente para solo detectar pulsos por

movimiento. Si se desea también detectar el sentido de giro, es necesario usar el segundo fototransistor

Como hacer un encoder óptico usando partes de u... http://www.technoreeze.com/es/2012/01/25/como-h...

5 sur 15 04/08/2019 à 13:25

Page 6: Como hacer un encoder óptico usando partes de un mouse ...

Este sería el circuito completo para el detector de cuadratura. En el caso del robot rover, al tener cuatro ruedas, lo correcto sería

que cada una tenga un encoder, pero por cuestiones de economía, solo se incorporan dos. La placa del circuito con el montaje

�nal para dos encoders queda así

Para hacer las pruebas de funcionamiento, use una placa Arduino Deumilanove. En la pagina de proyectos de Arduino está un

buen ejemplo de código para un encoder mecánico.  Haciendo algunas modi�caciones al código, la actualización 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;

void setup()

{

pinMode (encoderPinA,INPUT);

pinMode (encoderPinB,INPUT);

Serial.begin (9600);

attachInterrupt(0, CountA, CHANGE);

attachInterrupt(1, CountB, CHANGE);

}

void loop()

{

Como hacer un encoder óptico usando partes de u... http://www.technoreeze.com/es/2012/01/25/como-h...

6 sur 15 04/08/2019 à 13:25

Page 7: Como hacer un encoder óptico usando partes de un mouse ...

Previous Post Next Post

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

A r d u i n o I n t e l i g e n c i a A r t i f i c i a l M i c r o c o n t r o l a d o r e s R o b o t i c a S e n s o r e s

Tambien le puede interesar...

8 comentarios

2 1 j u n i o , 2 0 1 1

Cloud Computing (II):Características que de�nen a lanube

2 0 j u l i o , 2 0 1 1

Como funciona un transistor

2 3 s e p t i e m b r e , 2 0 1 0

Cambios y regreso al blog

Mariela dice:

3 1 E N E R O , 2 0 1 2 A L A S 7 : 4 0 P M

Hola me gusta mucho tu blog, te deseo mucha suerte para los premios 20blog.

Si consideras que mi blog se merece un reconocimiento en la categoría “solidario””, me gustaría contar con tu voto!

Te lo agradecería de veras!

te espero por http://lablogoteca.20minutos.es/todo-preescolar-15750/0/

Espero te guste!!

saludosss

Antonio dice:

1 F E B R E R O , 2 0 1 2 A L A S 1 : 1 5 A M

Saludos. Gracias por tu comentario!!! Mucha suerte con tu blog (y en el concurso)

Rosendo Hurtado dice:

1 F E B R E R O , 2 0 1 2 A L A S 1 0 : 5 2 A M

Como hacer un encoder óptico usando partes de u... http://www.technoreeze.com/es/2012/01/25/como-h...

7 sur 15 04/08/2019 à 13:25

Page 8: Como hacer un encoder óptico usando partes de un mouse ...

Mamma mia! Eres un genio! Reconozco que soy muy negado para estos temas pero tal y como lo explicas y con el

detallado paso a paso se hace superinteresante, qué pena no haber dado con el blog antes!! Sigue así máquina!!

Jesús Fariña dice:

2 F E B R E R O , 2 0 1 2 A L A S 2 : 3 5 A M

La verdad es que tienes un blog tremendamente interesante. Mis felicitaciones por darnos tantas aportaciones del

mundo de la tecnología.

Joamanya dice:

2 3 M A Y O , 2 0 1 2 A L A S 1 0 : 4 6 P M

Estoy en una situacion muy parecida a la tuya pero me gustaria implementar el primer circuito q mostras diseñado,

podrias explicarme mas en detalle como se conectan las 3 patas del receptor?? cual es colector base y emisor? de

donde sale la salida A? desde ya muchas gracias!

Antonio dice:

2 5 M A Y O , 2 0 1 2 A L A S 1 : 2 1 A M

Si usas un receptor recuperado de un raton de pc, el pin central es colector comun, siendo los otros dos los

emisores. Coloca una resistencia de 10k a cada emisor hacia Vcc, y conecta la entrada del inversor del 74LS14 en

el punto de union resistencia-colector.

Pingback: BlogESfera.com

Pingback: Bitacoras.com

proyectoarduino.com

¡Visita Proyecto Arduino!

Categorías

Analisis (31)

Anuncios del blog (2)

Computación (30)

Conectividad (9)

Curiosidades (8)

Electrónica (20)

Como hacer un encoder óptico usando partes de u... http://www.technoreeze.com/es/2012/01/25/como-h...

8 sur 15 04/08/2019 à 13:25

Page 9: Como hacer un encoder óptico usando partes de un mouse ...

Hardware (28)

Humor (1)

Impresoras 3D (1)

Internet (10)

Investigación (13)

Linux (1)

Noticias (17)

Programación (5)

Proyectos (5)

Redes (3)

Software (10)

Telefonía Movil (8)

Archivos

enero 2018

marzo 2017

febrero 2017

febrero 2012

enero 2012

noviembre 2011

septiembre 2011

agosto 2011

julio 2011

junio 2011

mayo 2011

septiembre 2010

marzo 2010

enero 2010

Como hacer un encoder óptico usando partes de u... http://www.technoreeze.com/es/2012/01/25/como-h...

9 sur 15 04/08/2019 à 13:25

Page 10: Como hacer un encoder óptico usando partes de un mouse ...

Como hacer un encoder óptico usando partes de u... http://www.technoreeze.com/es/2012/01/25/como-h...

10 sur 15 04/08/2019 à 13:25

Page 11: Como hacer un encoder óptico usando partes de un mouse ...

Como hacer un encoder óptico usando partes de u... http://www.technoreeze.com/es/2012/01/25/como-h...

11 sur 15 04/08/2019 à 13:25

Page 12: Como hacer un encoder óptico usando partes de un mouse ...

Como hacer un encoder óptico usando partes de u... http://www.technoreeze.com/es/2012/01/25/como-h...

12 sur 15 04/08/2019 à 13:25

Page 13: Como hacer un encoder óptico usando partes de un mouse ...

Como hacer un encoder óptico usando partes de u... http://www.technoreeze.com/es/2012/01/25/como-h...

13 sur 15 04/08/2019 à 13:25

Page 14: Como hacer un encoder óptico usando partes de un mouse ...

Como hacer un encoder óptico usando partes de u... http://www.technoreeze.com/es/2012/01/25/como-h...

14 sur 15 04/08/2019 à 13:25

Page 15: Como hacer un encoder óptico usando partes de un mouse ...

Technoreeze

A c e r c a d e

Como hacer un encoder óptico usando partes de u... http://www.technoreeze.com/es/2012/01/25/como-h...

15 sur 15 04/08/2019 à 13:25