Cuprins:

Measurino: o roată de măsurare Dovada conceptului: 9 pași
Measurino: o roată de măsurare Dovada conceptului: 9 pași

Video: Measurino: o roată de măsurare Dovada conceptului: 9 pași

Video: Measurino: o roată de măsurare Dovada conceptului: 9 pași
Video: CUM SĂ CREȘTI DE LA 500 EURO LA 4 MILIOANE EURO ÎN 3 ANI? DENISA TĂNASE. | Fain & Simplu Podcast 042 2024, Iulie
Anonim
Measurino: o dovadă a conceptului roții de măsurare
Measurino: o dovadă a conceptului roții de măsurare

Measurino numără pur și simplu numărul de rotații ale unei roți, iar distanța parcursă este direct proporțională cu raza roții în sine. Acesta este principiul de bază al unui contor de parcurs și am început acest proiect în principal pentru a studia modul de păstrare a circuitului (gestionat de un microcontroler Arduino), compatibil cu mai multe domenii de distanțe, de la milimetri la kilometri, și pentru a evalua posibilele probleme sau îmbunătățiri.

Pasul 1: Piese și componente

  • Arduino Nano rev.3
  • Afișaj OLED 128 × 64 (SSD1306)
  • Codificator rotativ fotoelectric incremental (400P / R)
  • Roată de cauciuc pentru model de aeronavă (51 mm dia)
  • 2 butoane
  • Baterie de 9v

Pasul 2: Codificatorul

Codificatorul
Codificatorul
Codificatorul
Codificatorul

Pentru acest proiect am testat mai multe codificatoare rotative ieftine, dar le-am aruncat imediat din cauza unor probleme de precizie / sensibilitate. Așa că m-am dus la codificatorul rotativ fotoelectric incremental DFRobot - 400P / R SKU: SEN0230. Acesta este un codificator rotativ fotoelectric industrial cu material din aluminiu, carcasă metalică și ax din oțel inoxidabil. Acesta generează un semnal de impuls ortogonal în două faze AB prin rotația discului de grătar și optocuplator. 400 impulsuri / rotundă pentru fiecare fază și 1600 impulsuri / rotundă pentru ieșire duală de 4 ori. Acest codificator rotativ acceptă viteza maximă de 5000 r / min. Și poate fi folosit pentru măsurarea vitezei, unghiului, vitezei unghiulare și a altor date.

Codificatorul rotativ fotoelectric are o ieșire de colector deschis NPN, deci trebuie să utilizați rezistențe pullup sau să activați pull-up-ul intern Arduino. Folosește un cip regulator de tensiune 750L05, care are o intrare de putere DC4.8V-24V.

Pasul 3: Sensibilitate

Sensibilitate
Sensibilitate

Acest codificator rotativ optoelectric are într-adevăr o sensibilitate excelentă, ceea ce îl face perfect pentru aplicații de control al arborelui și de poziționare. Dar pentru scopul meu era prea sensibil. Cu o roată de 51 mm, acest codificator are o sensibilitate de 0,4 mm, ceea ce înseamnă că, dacă mâna are tremuri minime, acestea vor fi înregistrate. Așa că am redus sensibilitatea adăugând o histerezis în rutina de întrerupere:

void interrupt ()

{char i; i = digitalRead (B_PHASE); if (i == 1) count + = 1; else count - = 1; if (abs (count)> = histerezis) {flag_A = flag_A + count; număr = 0; }}

Acest truc a fost suficient pentru a oferi o bună stabilitate măsurii.

Pasul 4: Măsurare

Selectați unitatea de măsură (zecimală sau imperială) și apoi poziționați roata cu punctul său de contact la începutul măsurii, apăsați butonul Reset și mențineți-o rotind până la sfârșit. De la stânga la dreapta măsura crește și se rezumă, pentru că de la dreapta la stânga scade și scade. Puteți măsura și obiecte curbate (forma mașinii dvs., balustrada unei scări în spirală, lungimea brațului de la umăr până la încheietura mâinii cu cotul îndoit etc.).

O rotație completă a unei roți cu diametrul = D va măsura o lungime de D * π. În cazul meu, cu o roată de 51 mm, aceasta este de 16,02 cm și fiecare bifă măsoară 0,4 mm (vezi paragraful Sensibilitate).

Pasul 5: Asamblarea

PoC a fost realizat pe o placă pentru a demonstra circuitele. Fiecare componentă a fost atașată pe placă și codificatorul rotativ este conectat la un bloc de borne cu șurub 2x2 poli. Bateria este o baterie standard de 9v, iar consumul total de energie al circuitului este de aproximativ 60mA.

Pasul 6: Cod

Pentru afișaj, am folosit U8g2lib, care este foarte flexibil și puternic pentru acest tip de afișaje OLED, permițând o gamă largă de fonturi și funcții de poziționare bune. Nu am pierdut prea mult timp umplând afișajul cu informații, deoarece acesta a fost doar un Poc.

Pentru a citi codificatorul, folosesc întreruperi generate de una dintre cele două faze: de fiecare dată când arborele codificatorului se mișcă, generează o întrerupere la Arduino legată de creșterea impulsului.

attachInterrupt (digitalPinToInterrupt (A_PHASE), întrerupere, RISING);

Afișajul comută automat de la milimetri, la metri, la kilometri și (dacă este selectat din buton) de la inci, la curți, la mile, în timp ce butonul RST resetează măsura la zero.

Pasul 7: Scheme

Scheme
Scheme

Pasul 8: De la PoC la producție

De ce este aceasta o dovadă a conceptului? Din cauza multor îmbunătățiri care ar putea / ar trebui făcute înainte de a construi un echipament complet funcțional. Să vedem toate îmbunătățirile posibile în detalii:

  • Roată. Sensibilitatea / precizia Measurino depinde de roată. O roată mai mică vă poate oferi o precizie mai bună în măsurarea lungimilor mici (în ordinea milimetrilor până la centimetri). O roată mult mai mare cu braț extensibil va permite să mergeți pe drum și să măsurați kilometri. Pentru roțile mici, trebuie luat în considerare materialul: o roată din cauciuc complet se poate deforma ușor și poate afecta precizia, așa că în acest caz voi sugera o roată din aluminiu / oțel cu doar o bandă subțire pentru a evita alunecările. Cu o editare trivială a software-ului (selectați diametrul corect al roții cu un comutator), ați putea lua în considerare roțile interschimbabile pentru a se adapta la orice măsură, utilizând un conector cu 4 pini (adică portul USB).
  • Software. Prin adăugarea unui alt buton, software-ul ar putea, de asemenea, să aibă grijă de măsurarea zonelor de dreptunghiuri sau a amplitudinii unghiurilor. De asemenea, vă sfătuiesc să adăugați un buton „Hold” pentru a îngheța măsura la final, evitând să mișcați accidental roata înainte de a citi valoarea de pe afișaj.
  • Înlocuiți roata cu o bobină. Pentru măsuri scurte (la câțiva metri), roata poate fi înlocuită cu o bobină cu arc care conține fir sau bandă. În acest fel, trebuie doar să trageți firul (făcând rotirea arborelui codificatorului), să luați măsura și să urmăriți ecranul.
  • Adăugați afișajul stării bateriei. Pinul de referință Arduino de 3,3 v (precis cu 1%) poate fi folosit ca bază pentru convertorul ADC. Deci, făcând o conversie analogică la digitală pe pinul de 3,3V (conectându-l la A1) și apoi comparând această citire cu citirea de la senzor, putem extrapola o citire reală, indiferent de VIN (atâta timp cât este peste 3.4V). Un exemplu de lucru ar putea fi găsit în acest alt proiect al meu.

Pasul 9: Galerie de imagini

Recomandat: