Obsah:

Measurino: měřicí kolo Důkaz koncepce: 9 kroků
Measurino: měřicí kolo Důkaz koncepce: 9 kroků

Video: Measurino: měřicí kolo Důkaz koncepce: 9 kroků

Video: Measurino: měřicí kolo Důkaz koncepce: 9 kroků
Video: Overview of Autonomic Disorders 2024, Červenec
Anonim
Measurino: Důkaz konceptu měřicího kola
Measurino: Důkaz konceptu měřicího kola

Measurino jednoduše spočítá počet otáček kola a ujetá vzdálenost je přímo úměrná poloměru samotného kola. Toto je základní princip počítadla ujeté vzdálenosti a zahájil jsem tento projekt hlavně proto, abych studoval, jak udržet obvod (ovládaný mikrokontrolérem Arduino), kompatibilní s několika rozsahy vzdáleností, od milimetrů po kilometry, a vyhodnotit možné problémy nebo vylepšení.

Krok 1: Díly a součásti

  • Arduino Nano rev.3
  • 128 × 64 OLED diplay (SSD1306)
  • Inkrementální fotoelektrický rotační kodér (400P/R)
  • Gumové kolo pro model letadla (průměr 51 mm)
  • 2 tlačítka
  • 9v baterie

Krok 2: Kodér

Kodér
Kodér
Kodér
Kodér

Pro tento projekt jsem testoval několik levných rotačních kodérů, ale kvůli problémům s přesností/citlivostí jsem je okamžitě zavrhl. Šel jsem tedy k přírůstkovému fotoelektrickému rotačnímu kodéru DFRobot - 400P/R SKU: SEN0230. Jedná se o průmyslový inkrementální fotoelektrický rotační snímač s hliníkovým materiálem, kovovým pláštěm a hřídelí z nerezové oceli. Rotací mřížkového disku a optočlenu generuje AB dvoufázový ortogonální pulzní signál. 400 pulzů/kolo pro každou fázi a 1600 pulzů/kolo pro dvoufázový 4násobný výstup. Tento rotační kodér podporuje maximální rychlost 5 000 ot/min. A lze jej použít pro měření rychlosti, úhlu, úhlové rychlosti a dalších dat.

Fotoelektrický rotační kodér má výstup NPN s otevřeným kolektorem, takže musíte použít výsuvné odpory nebo povolit vnitřní výsuv Arduina. Používá čip regulátoru napětí 750L05, který má široký rozsah DC4,8V-24V.

Krok 3: Citlivost

Citlivost
Citlivost

Tento optoelektrický rotační kodér má opravdu velkou citlivost, díky čemuž je ideální pro aplikace pro ovládání a polohování hřídele. Ale pro můj účel to bylo příliš rozumné. S 51mm kolečkem má tento kodér citlivost 0,4 mm, což znamená, že pokud máte ruku s minimálním chvěním, budou zaznamenána. Citlivost jsem tedy snížil přidáním hystereze do rutiny přerušení:

neplatné přerušení ()

{char i; i = digitalRead (B_PHASE); if (i == 1) count += 1; else count -= 1; if (abs (count)> = hysteresis) {flag_A = flag_A+count; počet = 0; }}

Tento trik stačil k tomu, aby opatřil dobrou stabilitu.

Krok 4: Měření

Vyberte si svou měrnou jednotku (desetinnou nebo imperiální) a poté jen umístěte kolečko s jeho kontaktním bodem na začátku měření, stiskněte tlačítko Reset a nechte jej otáčet až do konce. Zleva doprava se míra zvyšuje a sčítá, zprava doleva se snižuje a odečítá. Můžete také měřit zakřivené předměty (tvar vašeho auta, madlo točitého schodiště, délku paže od ramene k zápěstí s ohnutým loktem atd.).

Plná rotace kola o průměru = D bude měřit délku D*π. V mém případě s 51mm kolečkem je to 16,02 cm a každé zatržítko měří 0,4 mm (viz odstavec Citlivost).

Krok 5: Sestavení

PoC byl vytvořen na prkénku k demonstraci obvodů. Každá součástka byla připevněna na desku a rotační kodér je připojen ke svorkovnici se šroubovými svorkami 2x2. Baterie je standardní 9V baterie a celková spotřeba energie obvodu je kolem 60mA.

Krok 6: Kód

Pro zobrazení jsem použil U8g2lib, který je pro tento typ OLED displejů velmi flexibilní a výkonný, což umožňuje široký výběr písem a dobré funkce určování polohy. Neztrácel jsem příliš času vyplňováním displeje informacemi, protože to byl jen Poc.

Ke čtení kodéru používám přerušení generovaná jednou ze 2 fází: pokaždé, když se hřídel kodéru pohne, generuje přerušení pro Arduino vázané na stoupání impulsu.

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

Displej se automaticky přepne z milimetrů na metry, na kilometry a (je -li vybrán z tlačítka) z palců, na yardy, na míle, zatímco tlačítko RST resetuje měření na nulu.

Krok 7: Schémata

Schémata
Schémata

Krok 8: Od PoC k produkci

Proč je to důkaz koncepce? Vzhledem k mnoha zlepšením, která by mohla/měla být provedena před vybudováním plně funkčního zařízení. Podívejme se podrobně na všechna možná vylepšení:

  • Kolo. Citlivost/přesnost Measurina závisí na kole. Menší kolečko by vám mohlo poskytnout lepší přesnost při měření malých délek (v řádu milimetrů až centimetrů). Mnohem větší kolo s výsuvným výložníkem umožní chodit po silnici a měřit kilometry. U malých kol je třeba vzít v úvahu materiál: celogumové kolo by se mohlo mírně deformovat a ovlivnit přesnost, takže v takovém případě navrhnu kolo z hliníku/oceli s tenkou páskou, aby se zabránilo uklouznutí. S triviální úpravou softwaru (vyberte správný průměr kola pomocí přepínače) byste mohli uvažovat o zaměnitelných kolech, která se přizpůsobí jakémukoli opatření, pomocí 4pólového konektoru (tj. USB portu).
  • Software. Přidáním dalšího tlačítka se software mohl postarat také o měření oblastí obdélníků nebo amplitudy úhlů. Doporučuji také přidat tlačítko „Hold“, které na konci zmrazí míru, aby se zabránilo nechtěnému pohybu kolečka před načtením hodnoty na displeji.
  • Vyměňte kolo za cívku. U krátkých opatření (do několika metrů) bylo možné kolo vyměnit za odpruženou cívku obsahující nit nebo pásku. Tímto způsobem stačí vytáhnout nit (otočit hřídel kodéru), změřit a sledovat na displeji.
  • Přidejte zobrazení stavu baterie. 3,3v referenční pin Arduino (s přesností do 1%) lze použít jako základ pro převodník ADC. Takže převedením analogově na digitální na pin 3,3 V (připojením k A1) a následným porovnáním této hodnoty se čtením ze senzoru můžeme extrapolovat skutečné hodnoty bez ohledu na to, jaké je VIN (pokud je vyšší než 3,4 V). Funkční příklad lze nalézt v tomto mém dalším projektu.

Krok 9: Galerie obrázků

Doporučuje: