Taula de continguts:

Measurino: una prova de concepte de roda de mesura: 9 passos
Measurino: una prova de concepte de roda de mesura: 9 passos

Vídeo: Measurino: una prova de concepte de roda de mesura: 9 passos

Vídeo: Measurino: una prova de concepte de roda de mesura: 9 passos
Vídeo: World's Largest FREE WILL Debate w/ Top Physicists & Philosophers 2024, Juliol
Anonim
Measurino: una prova de concepte de roda de mesura
Measurino: una prova de concepte de roda de mesura

Measurino simplement compta el nombre de rotacions d’una roda i la distància recorreguda és directament proporcional al radi de la pròpia roda. Aquest és el principi bàsic d’un odòmetre i he començat aquest projecte principalment per estudiar com mantenir el circuit (gestionat per un microcontrolador Arduino), compatible amb diverses distàncies, des de mil·límetres fins a quilòmetres, i avaluar possibles problemes o millores.

Pas 1: parts i components

  • Arduino Nano rev.3
  • Diplay OLED de 128 × 64 (SSD1306)
  • Codificador rotatori fotoelèctric incremental (400P / R)
  • Roda de goma per a models d'avió (51 mm de diàmetre)
  • 2 polsadors
  • Bateria de 9v

Pas 2: el codificador

El codificador
El codificador
El codificador
El codificador

Per a aquest projecte he provat diversos codificadors rotatius barats, però de seguida els he descartat a causa de problemes de precisió / sensibilitat. Així que vaig anar al codificador rotatori fotoelèctric incremental de DFRobot - 400P / R SKU: SEN0230. Es tracta d’un codificador rotatiu fotoelèctric incremental industrial amb material d’alumini, carcassa metàl·lica i eix d’acer inoxidable. Genera un senyal de pols ortogonal AB de dues fases mitjançant la rotació del disc de reixeta i l’optocoplador. 400 polsos / ronda per a cada fase i 1600 polsos / ronda per a sortida de doble fase de 4 vegades. Aquest codificador rotatiu admet una velocitat màxima de 5000 r / min. I es pot utilitzar per mesurar velocitat, angle, velocitat angular i altres dades.

El codificador rotatori fotoelèctric té una sortida de col·lector obert NPN, de manera que heu d’utilitzar resistències de tracció o habilitar el tracte intern de l’Arduino. Utilitza un xip regulador de voltatge 750L05, que té una entrada de potència d’ampli rang DC4.8V-24V.

Pas 3: sensibilitat

Sensibilitat
Sensibilitat

Aquest codificador rotatiu optoelèctric té una gran sensibilitat, cosa que el fa perfecte per a aplicacions de control i posicionament de l’eix. Però per al meu propòsit era massa assenyat. Amb una roda de 51 mm, aquest codificador té una sensibilitat de 0,4 mm, cosa que significa que si la mà té tremolors mínims, es gravaran. Així que vaig reduir la sensibilitat afegint una histèresi a la rutina d’interrupcions:

void interrupt ()

{char i; i = digitalRead (B_PHASE); if (i == 1) compta + = 1; else count - = 1; if (abs (recompte)> = histèresi) {flag_A = flag_A + count; recompte = 0; }}

Aquest truc va ser suficient per donar una bona estabilitat a la mesura.

Pas 4: mesura

Seleccioneu la unitat de mesura (decimal o imperial) i, tot seguit, col·loqueu la roda amb el punt de contacte a l’inici de la mesura, premeu el botó Restableix i manteniu-lo girant fins al final. D'esquerra a dreta la mesura augmenta i es resumeix, de dreta a esquerra disminueix i resta. També podeu mesurar objectes corbes (la forma del cotxe, la barana d’una escala de cargol, la longitud del braç des de l’espatlla fins al canell amb el colze doblegat, etc.).

Una rotació completa d’una roda de diàmetre = D mesurarà una longitud de D * π. En el meu cas, amb una roda de 51 mm, això fa 16,02 cm i cada paparra mesura 0,4 mm (vegeu el paràgraf de sensibilitat).

Pas 5: Muntatge

El PoC s'ha creat en una taula de demostració per demostrar els circuits. Tots els components s’han connectat a la placa i el codificador rotatiu està connectat a un bloc de terminals de cargol de 2x2 pols. La bateria és una bateria estàndard de 9v i el consum total d’energia del circuit és d’uns 60mA.

Pas 6: Codi

Per a la pantalla, he utilitzat l'U8g2lib, que és molt flexible i potent per a aquest tipus de pantalles OLED, que permet una àmplia selecció de tipus de lletra i bones funcions de posicionament. No vaig perdre massa temps en omplir la pantalla d’informacions, ja que només era un Poc.

Per llegir el codificador, faig servir interrupcions generades per una de les dues fases: cada vegada que es mou l’eix del codificador, genera una interrupció a Arduino lligada a la pujada de l’impuls.

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

La pantalla canvia automàticament de mil·límetres a metres, a quilòmetres i (si es selecciona des del polsador) de polzades a iardes i milles, mentre que el polsador RST restableix la mesura a zero.

Pas 7: Esquemes

Esquemes
Esquemes

Pas 8: del PoC a la producció

Per què és una prova de concepte? A causa de moltes millores que es podrien / haurien de fer abans de construir un equip que funcionés completament. Vegem totes les possibles millores en els detalls:

  • Roda. La sensibilitat / precisió de Measurino depèn de la roda. Una roda més petita us pot proporcionar una millor precisió a l’hora de mesurar petites longituds (de l’ordre de mil·límetres a centímetres). Una roda molt més gran amb un boom d’extensió permetrà caminar per la carretera i mesurar quilòmetres. Per a les rodes petites, s’ha de tenir en compte el material: una roda de goma completa es pot deformar lleugerament i afectar la precisió, de manera que en aquest cas suggeriré una roda d’alumini / acer amb només una cinta fina per evitar relliscades. Amb una edició de programari trivial (seleccioneu el diàmetre de roda correcte amb un interruptor), podeu considerar que les rodes intercanviables s’adaptin a qualsevol mesura mitjançant un connector de 4 pins (és a dir: port USB).
  • Programari. En afegir un altre polsador, el programari també es podria ocupar de mesurar àrees de rectangles o d’amplitud d’angles. També aconsello afegir un polsador "Mantenir" per congelar la mesura al final, evitant moure la roda sense voler abans de llegir el valor a la pantalla.
  • Substituïu la roda per una bobina. Per a mesures curtes (a pocs metres), la roda es podria substituir per una bobina amb ressort amb fil o cinta adhesiva. D’aquesta manera només cal estirar el fil (fent girar l’eix del codificador), prendre la mesura i mirar a la pantalla.
  • Afegeix una visualització de l'estat de la bateria. El pin de referència Arduino de 3,3 v (precís dins de l'1%) es pot utilitzar com a base per al convertidor ADC. Per tant, fent una conversió analògica a digital al pin de 3,3 V (connectant-lo a A1) i comparant aquesta lectura amb la lectura del sensor, podem extrapolar una lectura real, independentment del que sigui VIN (sempre que superi els 3,4 V). Un exemple de treball es podria trobar en aquest altre meu projecte.

Pas 9: Galeria d'imatges

Recomanat: