Tabla de contenido:

Measurino: una prueba de concepto de rueda de medición: 9 pasos
Measurino: una prueba de concepto de rueda de medición: 9 pasos

Video: Measurino: una prueba de concepto de rueda de medición: 9 pasos

Video: Measurino: una prueba de concepto de rueda de medición: 9 pasos
Video: Escalas de medición estadística, nominal, ordinal, de intervalo, de razón 2024, Mes de julio
Anonim
Measurino: una prueba de concepto de rueda de medición
Measurino: una prueba de concepto de rueda de medición

Measurino simplemente cuenta el número de rotaciones de una rueda y la distancia recorrida es directamente proporcional al radio de la propia rueda. Este es el principio básico de un Odómetro y he comenzado este proyecto principalmente para estudiar cómo mantener el circuito (manejado por un microcontrolador Arduino), compatible con varios rangos de distancias, desde milímetros hasta kilómetros, y evaluar posibles problemas o mejoras.

Paso 1: Piezas y componentes

  • Arduino Nano rev.3
  • Pantalla OLED de 128 × 64 (SSD1306)
  • Codificador rotatorio fotoeléctrico incremental (400P / R)
  • Rueda de goma para modelo de avión (51 mm de diámetro)
  • 2 pulsadores
  • Batería de 9v

Paso 2: el codificador

El codificador
El codificador
El codificador
El codificador

Para este proyecto, probé varios codificadores rotativos baratos, pero los descarté de inmediato debido a problemas de precisión / sensibilidad. Así que fui al codificador rotatorio fotoeléctrico incremental de DFRobot - 400P / R SKU: SEN0230. Este es un codificador rotatorio fotoeléctrico incremental industrial con material de aluminio, carcasa de metal y eje de acero inoxidable. Genera una señal de pulso ortogonal de dos fases AB a través de la rotación del disco de rejilla y el optoacoplador. 400 pulsos / ronda para cada fase y 1600 pulsos / ronda para salida de fase dual 4 veces. Este codificador rotatorio admite una velocidad máxima de 5000 r / min. Y se puede utilizar para medir la velocidad, el ángulo, la velocidad angular y otros datos.

El codificador rotatorio fotoeléctrico tiene una salida de colector abierto NPN, por lo que debe usar resistencias pullup o habilitar el pull-up interno de Arduino. Utiliza un chip regulador de voltaje 750L05, que tiene una entrada de alimentación de amplio rango DC4.8V-24V.

Paso 3: Sensibilidad

Sensibilidad
Sensibilidad

Este codificador rotatorio optoeléctrico tiene una gran sensibilidad, lo que lo hace perfecto para aplicaciones de control y posicionamiento de ejes. Pero para mi propósito era demasiado sensato. Con una rueda de 51 mm, este codificador tiene una sensibilidad de 0,4 mm, lo que significa que si su mano tiene temblores mínimos, se grabarán. Así que bajé la sensibilidad agregando una histéresis en la rutina de interrupción:

interrupción vacía ()

{char i; i = digitalRead (B_PHASE); si (i == 1) cuenta + = 1; si no cuenta - = 1; if (abs (cuenta)> = histéresis) {flag_A = flag_A + count; cuenta = 0; }}

Este truco fue suficiente para dar una buena estabilidad a la medida.

Paso 4: medición

Seleccione su unidad de medida (decimal o imperial) y luego coloque la rueda con su punto de contacto en el inicio de su medida, presione el botón Reset y manténgalo girando hasta el final. De izquierda a derecha la medida aumenta y suma, de derecha a izquierda disminuye y resta. También puedes medir objetos curvos (la forma de tu coche, el pasamanos de una escalera de caracol, la longitud de tu brazo desde el hombro hasta la muñeca con el codo doblado, etc.).

Una rotación completa de una rueda con diámetro = D medirá una longitud de D * π. En mi caso, con una rueda de 51 mm, esto es 16,02 cm y cada tick mide 0,4 mm (ver párrafo Sensibilidad).

Paso 5: Montaje

El PoC se ha realizado en una placa de pruebas para demostrar los circuitos. Todos los componentes se han conectado a la placa y el codificador rotatorio está conectado a un bloque de terminales de tornillo de 2x2 polos. La batería es una batería estándar de 9v y el consumo total de energía del circuito es de alrededor de 60 mA.

Paso 6: Código

Para la pantalla, utilicé el U8g2lib, que es muy flexible y potente para este tipo de pantallas OLED, lo que permite una amplia variedad de fuentes y buenas funciones de posicionamiento. No perdí demasiado tiempo en llenar la pantalla con información, ya que esto era solo un Poc.

Para leer el codificador, estoy usando interrupciones generadas por una de las 2 fases: cada vez que se mueve el eje del codificador, genera una interrupción a Arduino ligada al aumento del impulso.

attachInterrupt (digitalPinToInterrupt (A_PHASE), interrupt, RISING);

La pantalla cambia automáticamente de milímetros a metros, a kilómetros y (si se selecciona desde el botón pulsador) de pulgadas, a yardas, a millas, mientras que el botón RST restablece la medida a cero.

Paso 7: esquemas

Esquemas
Esquemas

Paso 8: ¡De la PoC a la producción

¿Por qué es esto una prueba de concepto? Debido a muchas mejoras que podrían / deberían hacerse antes de construir un equipo en pleno funcionamiento. Veamos todas las posibles mejoras en detalle:

  • Rueda. La sensibilidad / precisión de Measurino depende de la rueda. Una rueda más pequeña podría brindarle una mejor precisión al medir longitudes pequeñas (del orden de milímetros a centímetros). Una rueda mucho más grande con un brazo de extensión permitirá caminar por la carretera y medir kilómetros. Para ruedas pequeñas, se debe considerar el material: una rueda de goma completa podría deformarse ligeramente y afectar la precisión, por lo que en ese caso sugeriré una rueda de aluminio / acero con solo una cinta fina para evitar resbalones. Con una edición de software trivial (seleccione el diámetro de rueda correcto con un interruptor), podría considerar ruedas intercambiables para adaptarse a cualquier medida, utilizando un conector de 4 pines (es decir, puerto USB).
  • Software. Al agregar otro botón pulsador, el software también podría encargarse de medir áreas de rectángulos o amplitud de ángulos. También recomiendo agregar un botón "Hold" para congelar la medida al final, evitando mover inadvertidamente la rueda antes de leer el valor en la pantalla.
  • Reemplace la rueda con un carrete. Para medidas cortas (dentro de unos pocos metros), la rueda se puede reemplazar por un carrete con resortes que contenga hilo o cinta. De esta forma solo necesitas tirar del hilo (haciendo girar el eje del codificador), tomar tu medida y mirar en el display.
  • Agregue visualización del estado de la batería. El pin de referencia Arduino de 3.3v (con una precisión del 1%) se puede usar como base para el convertidor ADC. Entonces, al hacer una conversión de analógico a digital en el pin de 3.3V (conectándolo a A1) y luego comparando esta lectura con la lectura del sensor, podemos extrapolar una lectura real, sin importar el VIN (siempre que esté por encima de 3,4 V). Un ejemplo práctico podría encontrarse en este otro proyecto mío.

Paso 9: Galería de imágenes

Recomendado: