Kazalo:

Measurino: merilno kolo Dokaz koncepta: 9 korakov
Measurino: merilno kolo Dokaz koncepta: 9 korakov

Video: Measurino: merilno kolo Dokaz koncepta: 9 korakov

Video: Measurino: merilno kolo Dokaz koncepta: 9 korakov
Video: Leap Motion SDK 2024, Julij
Anonim
Measurino: dokaz koncepta merilnega kolesa
Measurino: dokaz koncepta merilnega kolesa

Measurino preprosto šteje število vrtljajev kolesa in prevožena razdalja je neposredno sorazmerna s polmerom samega kolesa. To je osnovno načelo števca kilometrov in začel sem ta projekt predvsem zato, da bi preučil, kako ohraniti vezje (ki ga upravlja mikrokrmilnik Arduino), združljivo z več razponi razdalj, od milimetrov do kilometrov, ter oceniti možne težave ali izboljšave.

Korak: Deli in komponente

  • Arduino Nano rev.3
  • 128 × 64 OLED diplay (SSD1306)
  • Inkrementalni fotoelektrični rotacijski dajalnik (400P/R)
  • Gumijasto kolo za model letala (premer 51 mm)
  • 2 tipki
  • 9v baterija

2. korak: kodirnik

Kodirnik
Kodirnik
Kodirnik
Kodirnik

Za ta projekt sem preizkusil več poceni rotacijskih kodirnikov, vendar sem jih zaradi težav z natančnostjo/občutljivostjo takoj zavrgel. Zato sem šel k DFRobotovemu inkrementalnemu fotoelektričnemu rotacijskemu dajalniku - 400P/R SKU: SEN0230. To je industrijski inkrementalni fotoelektrični rotacijski dajalnik z aluminijastim materialom, kovinsko lupino in gredjo iz nerjavečega jekla. Ustvarja dvofazni ortogonalni impulzni signal AB z vrtenjem rešetkastega diska in optičnega sklopnika. 400 impulzov/krog za vsako fazo in 1600 impulzov/krog za dvofazni 4-kratni izhod. Ta rotacijski dajalnik podpira največ 5000 vrtljajev na minuto. Uporablja se lahko za merjenje hitrosti, kota, kotne hitrosti in drugih podatkov.

Fotoelektrični rotacijski dajalnik ima izhod NPN z odprtim kolektorjem, zato morate uporabiti uporne upore ali omogočiti notranji vlečni sistem Arduino. Uporablja čip regulatorja napetosti 750L05, ki ima vhodno moč širokega razpona DC4.8V-24V.

3. korak: Občutljivost

Občutljivost
Občutljivost

Ta optoelektrični rotacijski dajalnik ima res veliko občutljivost, zaradi česar je kot nalašč za aplikacije za upravljanje gredi in pozicioniranje. Toda za moj namen je bilo to preveč smiselno. S 51 -milimetrskim kolesom ima ta kodirnik občutljivost 0,4 mm, kar pomeni, da bodo, če imate z roko minimalne treme, zabeleženi. Zato sem občutljivost znižal tako, da sem v rutino prekinitev dodal histerezo:

void interrupt ()

{char i; i = digitalno branje (B_PHASE); if (i == 1) count += 1; else count -= 1; if (abs (štetje)> = histereza) {flag_A = flag_A+count; count = 0; }}

Ta trik je bil dovolj za dobro stabilnost merila.

4. korak: Merjenje

Izberite svojo mersko enoto (decimalno ali imperialno) in nato samo postavite kolo s svojo kontaktno točko na začetek meritve, pritisnite gumb za ponastavitev in ga vrtite do konca. Od leve proti desni se mera poveča in povzame, od desne proti levi se zmanjša in odšteje. Merite lahko tudi ukrivljene predmete (obliko avtomobila, oprijem spiralnega stopnišča, dolžino roke od ramena do zapestja s upognjenim komolcem itd.).

Popolno vrtenje kolesa s premerom = D bo merilo dolžino D*π. V mojem primeru je pri 51 mm kolesu to 16,02 cm in vsak kljuk meri 0,4 mm (glej odstavek občutljivosti).

5. korak: Sestavljanje

PoC je bil izdelan na plošči za prikaz vezja. Vsaka komponenta je pritrjena na ploščo, vrtljivi dajalnik pa je priključen na 2 -polni vijačni priključni blok. Baterija je standardna baterija 9v in skupna poraba energije vezja je okoli 60mA.

6. korak: Koda

Za zaslon sem uporabil U8g2lib, ki je zelo prilagodljiv in zmogljiv za tovrstne zaslone OLED, kar omogoča široko izbiro pisav in dobre funkcije pozicioniranja. Pri polnjenju zaslona z informacijami nisem izgubljal preveč časa, saj je bil to le Poc.

Za branje kodirnika uporabljam prekinitve, ki jih ustvari ena od dveh faz: vsakič, ko se gred kodirnika premakne, ustvari prekinitev za Arduino, vezano na dvig impulza.

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

Zaslon se samodejno preklopi z milimetrov, na metre, na kilometre in (če je izbran s tipko) iz palcev, v jarde v milje, medtem ko gumb RST ponastavi merilo na nič.

7. korak: Sheme

Sheme
Sheme

8. korak: Od PoC do proizvodnje

Zakaj je to dokaz koncepta? Zaradi številnih izboljšav, ki bi jih lahko/morali narediti pred izgradnjo popolnoma delujoče opreme. Podrobno si oglejmo vse možne izboljšave:

  • Kolo. Občutljivost/natančnost Measurina je odvisna od kolesa. Manjše kolo bi vam lahko dalo večjo natančnost pri merjenju majhnih dolžin (v vrstici od milimetrov do centimetrov). Precej večje kolo s podaljškom boom bo omogočilo hojo po cesti in merjenje kilometrov. Pri majhnih kolesih je treba upoštevati material: polno gumijasto kolo se lahko rahlo deformira in vpliva na natančnost, zato v tem primeru predlagam aluminijasto/jekleno kolo s samo tankim trakom, da se izognemo zdrsu. S trivialnim urejanjem programske opreme (izberite pravilen premer kolesa s stikalom) bi lahko menjali, da se zamenljiva kolesa prilagodijo vsem meri z uporabo 4-polnega priključka (to je: vrata USB).
  • Programska oprema. Z dodajanjem drugega gumba bi lahko programska oprema poskrbela tudi za merjenje površin pravokotnikov ali amplitude kotov. Svetujem tudi, da dodate gumb "Hold", da zamrznete merilo na koncu, pri čemer se izognete nenamernemu premikanju kolesa, preden odčitate vrednost na zaslonu.
  • Kolo zamenjajte s tuljavo. Za kratke ukrepe (v nekaj metrih) je mogoče kolo zamenjati z vzmetnim tulcem, ki vsebuje nit ali trak. Na ta način morate samo potegniti nit (pri čemer se gred dajalnika vrti), izmeriti svojo mero in opazovati zaslon.
  • Dodajte prikaz stanja baterije. Referenčni zatič Arduino 3.3V (natančno znotraj 1%) se lahko uporabi kot osnova za pretvornik ADC. Tako lahko z analogno-digitalno pretvorbo na 3.3V vhodu (s priključitvijo na A1) in nato primerjavo tega odčitka z odčitkom s senzorja ekstrapoliramo resnično odčitavanje, ne glede na VIN (dokler je nad 3,4 V). Delovni primer bi lahko našli v tem drugem mojem projektu.

9. korak: Galerija slik

Priporočena: