Como interpretar un Encoder Rotativo con PIC

Rotary Encoder

Rotary Encoder

Este pequeño fragmento de código, nos permitirá interpretar la salida de los famosos -mal llamados- “Potenciometros digitales”

Hoy en día estos encoders rotativos se convirtieron en un componente muy común en los dispositivos electrónicos. Están presentes en la mayoría de los Auto-Stereos, amplificadores de potencia, fuentes de alimentación, etc, permitiendo ajustar el volumen y otros parámetros.

Vienen de distintas formas y colores, desde perillas o pequeñas rueditas, hasta sensores de alta precisión de uso industrial.

Básicamente, hay de dos tipos: Ópticos y Mecánicos. Los primeros son obviamente más caros, pero ofrecen una mayor precisión, y los segundos son los que seguramente todos hemos tocado en algún momento, esos que al girarlos se siente como se mueve el eje por los “dientes”.

Lo que hacen es, transformar un movimiento, ya sea lineal, o giratorio como el de la foto, en señales electrónicas, codificadas digitalmente. Mediante un pequeño post-procesamiento de las señales adquiridas, podemos determinar, el sentido del giro, la distancia recorrida y la velocidad.

Esta es  la señal de salida de un encoder rotativo:

(Gracias Wikipedia por la imagen!)

En los encoders como el de la foto de arriba, las señales A y B provienen de los pines externos, y el central va a VCC o a GND, según como lo quieras utilizar.

Bueno, sin más palabras, aquí está el código:

Explicación:

Como podemos observar, el chequeo del encoder se hace en el bucle principal, entonces, pregunto siempre por un pin, en este caso, el “ENCODER_A”, luego espero un tiempo que depende del tipo de encoder y la velocidad a la que se lo gira, y por ultimo pregunto cual pin está en alto. Si es el A eso nos dice que la fase empezó con el pin A, sino, con el B.

Este método, no es el mejor -lo sé- pero funciona y solo son pocas lineas de código. El problema principal es que el ancho de los pulsos de la salida depende de la velocidad con la que se gira el encoder, entonces esos 3 milisegundos de espera, nos da un cierto margen de velocidad que no debemos superar, ya que si lo hacemos podemos interpretar una dirección erronea.

De todas formas, a mi me sirvió, ya que ese “margen” es lo bastante grande como para casi no notarlo, al menos que se gire el encoder violentamente, en cuyo caso, el codigo sale sin hacer nada.

Si te sirvió comentá!!!

Firmware para DSO Nano by Lordblacksuca

DSO Nano Firmware

Descripción:

El firmware incluye todos las virtudes del firmware oficial versión 2.5e  ademas de algunas de las caracteristicas del firmware de Paul en su version 1.5.2

Para destacar en mi firmware:  En primer lugar, un rediseño de la interfaz de usuario casi total, mucho mas intuitivo, además agregue un menu tipo popup para cambiar algunas opciones, hubo un cambio en el aspecto grafico, le agregue unos colores y los cursores y cosas importantes, resaltan mas.

Más informacion sobre este osciloscopio: http://www.diegosucaria.info/review-osciloscopio-digital-portable-dso-nano-dso201/

ScreenShot vers. 1.3

FIRMWARE:

http://www.diegosucaria.info/dso-nano-201-firmware-by-lordblacksuca/

Review Osciloscopio Digital Portable DSO Nano (DSO201)

DSO Nano – DSO201

Un osciloscopio digital de 100 dolares!!!

Caracteristicas Generales:

Pantalla 2.8″ Color TFT LCD
Resolución 320×240
Colores del Display
65K
Ancho de Banda Analógico
0 – 1MHz
Frecuencia de Muestreo Max
1Msps 12Bits
Profundidad de Memoria
4096 Point
Sensibilidad Horizontal
1uS/Div10S/Div (1-2-5 Step)
Posición Horizontal adjustable with indicator
Sensibilidad Vertical 10mV/Div10V/Div (with ×1 probe)
0.5V/Div100V/Div (with ×10 probe)
Posición Vertical adjustable with indicator
Impedancia de Entrada
>500KΩ
Voltaje Maximo de Entrada 80Vpp (by ×1 probe)
Acoplamiento DC
Disparador (Trigger)
Auto, Norma, Single, None and Scan
Funciones: Automatic measurement: frequency, cycle, duty, Vpp, Vram, Vavg and DC voltage
Precise vertical measurement with markers
Precise horizontal measurement with markers
Rising/falling edge trigger
Trig level adjustable with indicator
Trig sensitivity adjustable with indicator
Hold/run feature
Señal de Prueba
Built-in 10Hz1MHz (1-2-5 Step)
Guarda Capturas de Pantalla
SD card
Comunicación con PC via USB
como lector de tarjetas SD
Actualización de Firmware Mediante un bootloader
Alimentación USB Bateria de 3.7V de Lithio Recargable  / USB
Tamaño
105mm X 53mm X 8mm

Review propia:

Primero, les cuento una impresión general sobre el aparato, y después veremos el tema del firmware, tarjetas SD, origen etc.

Andaba buscando precios de Osciloscopios digitales en Mercado libre, cuando encontré este equipito. Inmediatamente me puse a buscar información sobre el, i un par de videos en YouTube y me decidí a comprarlo.

El equipo es bastante aceptable, muy pequeño, tanto que me sorprendió cuando me llegó.

Es muy sencillo de utilizar, aunque para utilizarlo a full,  tuve que buscar el manual que dejo al final de la entrada.

En primer lugar,  cuando lo compre en mercado libre, salia como Osciloscopio DSO-Nano.   Si uno pone eso en Google, lo primero que sale es el de SeedStudio. que es una pagina de una empresa de USA que hace todo tipo de cosas electrónicas. Me lleve una sorpresa cuando en la parte de atrás, el osciloscopio decía, e-Design, entonces, me di cuenta que no era el de SeedStudio, ya que el de esta ultima empresa trae su logo impreso en la parte de atrás.

La única información que encontré en Google sobre e-Design es que es una empresa China…   así que no pude leer mucho mas de lo que el traductor de Google quizo traducir. Al principio me encontraba decepcionado, pero luego de un momento, debo decir que la copia resulto ser mejor que el original.

En primer lugar, el equipo de SeedStudio, el DSO-Nano:

  • Se tiene que ensamblar a mano.
  • Trae un conector de audio de 3.5mm
  • Las puntas del osciloscopio son de las muy chotas.

Mientras, que el equipo de e-Design, DSO201:

  • Ya viene ensamblado
  • Trae un conector del tipo de los GPS o antenas de celular
  • Trae una punta de Osciloscopio “Muller” (bastante buena)
  • Trae el firmware de Paul ya instalado (ya hablaremos de eso)

Hasta el momento, el hardware en cuanto rendimiento, es igual en ambos, ya que usan exactamente los mismos componentes, solo tiene ventaja el equipo chino, en cuanto a los accesorios.

En cuanto al Software:

El primer manual que conseguí, era del firmware oficial de SeedStudio, y claro, no entendía nada porque mi equipo no tenia ese firmware así que paso a explicar:

En el sitio http://code.google.com/p/dsonano/downloads/list van a encontrar el firmware OFICIAL del equipo.  Si bien este sitio es el de SeedStudio, los procesos de actualización y el firmware andan para cualquiera de los dos equipos tanto el chino como el original.

El firmware que trae “La Copia” es el de “Paul” un chino que hizo su propio firmware, pero que no lo dejo abierto, es decir, no disponemos del código fuente para modificarlo, lo que es muy lamentable porque realmente esta muy bueno.

Para actualizar el firmware de los equipos se puede utilizar el soft DfuSe, que tambien lo van a encontrar aca

Básicamente hay 2 tipos de firmwares para destacar..

En 1er lugar, tenemos el firmware oficial, que es open source, es bastante tedioso de manejar, aunque es muy bueno.

En 2do lugar, tenemos el firmware de paul que NO es open source, pero es muy muy facil y practico.

Ambos se pueden instalar en cualquiera de los dos dispositivos.

Acá, les dejo algunos links:

Firmware Oficial v2.4

Firmware de Paul v1.5.20p

Tutorial sobre como upgradear el firmware

Manual del Firmware de Paul

Notas Varias:

Sencillamente, el firmware de Paul es el mejor.

A la derecha, una imagen de como se ve el dispositivo con este firmware.

Es muy practico e intuitivo de usar.  Hasta ahora no he podido grabar las capturas en la tarjeta de memoria, probé con una Kingston de 2GB sin suerte, pero como leí por ahí que tenia que ser de menos de un GB, compre una SanDisk de 256MB usada, pero sigo sin poder grabar.

Edito: solo pude grabar con el firmware original de SeedStudio, todavía no he podido hacerlo con el firmware de Paul. Aunque estoy considerando en modificar el ultimo firmware original a mi gusto…

El Osciloscopio DSO Nano, obviamente no reemplaza un Osciloscopio digital de 1000 dolares, pero sin duda que es una herramienta muy útil a la hora de hacer troubleshooting a la mayoría de equipos de electrónica, también trae un generador de onda cuadrada de frecuencia ajustable que es bastante útil.

Espero que este review le sirva a alguien.

Saludos!