Como hacer un encoder óptico usando partes de un mouse ...
Transcript of 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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