V tomto článku se podíváme na to, jak si můžete vytvořit jednoduchý chronograf z levných a cenově dostupných dílů. Svítidla nutné k měření rychlosti střely v pušce. Tato čísla jsou potřebná pro stanovení stavu pušky, protože v průběhu času se některé části pneumatického opotřebení opotřebovávají a vyžadují výměnu.
Připravujeme potřebné materiály a nástroje:
- Čínský Digispark (v době nákupu to stálo 80 rublů);
- zobrazení typu segmentu na TM1637 (při koupi stojí 90 rublů);
- infračervené LED a fototranzistory (10 párů) - cena činila 110 rublů;
- sto 220 ohmových odporů stálo 70 rublů, ale budou potřeba pouze dva z nich.
To je vše, toto je celý seznam položek, které budete muset koupit. Mimochodem, rezistory lze nalézt také ve starých domácích spotřebičích. Můžete vsadit více v nominální hodnotě, ale neméně. Výsledkem je, že můžete držet do 350 rublů, ale to není tolik, vzhledem k tomu, že tovární chronograf bude stát nejméně 1000 rublů a montáž je mnohem horší než naše domácí.
Mimo jiné je třeba zásobit se takovými údaji, jako jsou:
- dráty;
- kus potrubí o délce nejméně 10 cm (je vhodná plastová vodní potrubí);
- vše pro pájení;
- multimetr (volitelné).
První tři popsané podrobnosti mají své vlastní nuance, takže je třeba posuzovat každou z nich zvlášť
Digispark
Tato položka je miniaturní deska s obvody, která je kompatibilní ArduinoNa palubě má ATtiny85. Jak připojit tento prvek k Arduino IDE, můžete si ho přečíst, zde si také můžete stáhnout ovladače.
Tato deska má několik možností, jedna používá microUSB a druhá je vybavena konektorem USB, který je zapojen přímo na desce. Vzhledem k tomu, že domácí produkt nemá individuální napájení, vybral autor první verzi desky. Pokud do domácího výrobku vložíte baterii nebo baterii, výrazně se tím zvýší její cena a nebude to mít značný dopad na praktičnost. A téměř každý má kabel pro nabíjení mobilní a energetické banky.
Pokud jde o vlastnosti, jsou podobné ATtiny85, zde jsou jeho možnosti bohaté. Mikrokontrolér v chronografu vyslýchá pouze senzory a ovládá displej.
Pokud jste ještě nikdy nepotkali Digispark, nejdůležitější nuance najdete v tabulce.
Je důležité vzít v úvahu skutečnost, že číslování pinů pro funkci analogRead () má rozdíly. A na třetím kolíku je pull-up rezistor s nominální hodnotou 1,5 kΩ, protože se používá v USB.
Pár slov o displeji
Displej může používat kdokoli, ale autor se rozhodl pro levnou variantu. Aby bylo zařízení ještě levnější, můžete zcela opustit displej. Data lze jednoduše přenášet kabelem do počítače. Bude to potřeba zde. Dotyčný displej je kopií displeje.
Jak na displeji vypadá přední a zadní pohled, je vidět na fotografii.
Protože vzdálenosti mezi čísly jsou stejné, když je dvojtečka vypnutá, jsou čísla čtena bez problémů. Standardní knihovna je schopna zobrazovat čísla v rozsahu 0-9. písmena v rozsahu a-f a stále existuje možnost změnit jas celého displeje. Hodnoty číslic lze nastavit pomocí funkce zobrazení (int 0-3, int 0-15).
Jak používat displej
Pokud se pokusíte překročit hodnoty [0, 15], na displeji se zobrazí zmatek, který kromě všeho ostatního není statický. Chcete-li tedy zobrazit speciální znaky, jako jsou stupně, minusy atd., Musíte se pohrávat.
Autor chtěl, aby displej zobrazoval hotovou energii letu střely, která by se vypočítala v závislosti na rychlosti střely a její hmotnosti. Hodnoty podle myšlenky musely být zobrazeny postupně, ale aby bylo možné pochopit, kde je třeba nějakým způsobem poznamenat, například pomocí písmene „J“. V extrémních případech můžete jednoduše použít tlusté střevo, ale to se nehodilo autorovi a on vyšplhal do knihovny. V důsledku toho byla na základě funkce zobrazení vytvořena funkce setSegments (byte addr, byte data), rozsvítí segmenty kódované v datech s číslem addr:
Takové segmenty jsou kódovány poměrně jednoduše, za nejvýraznější bit je zodpovědný nejméně významný bit dat, a poté ve směru hodinových ručiček je za střední segment zodpovědný 7. bit. Znak "1" při zakódování vypadá jako 0b00000110. Osmý nejvýznamnější bit je zodpovědný za dvojtečku, používá se ve druhé číslici a ve všech ostatních je ignorován. Následně autor automatizoval proces získávání kódů pomocí Excelu.
To, co se nakonec stalo, je vidět na fotografii
Nakonec senzory
Nebyly poskytnuty žádné přesné informace o senzorech, je známo pouze to, že mají vlnovou délku 940 nm. Během experimentů bylo zjištěno, že senzory nejsou schopny odolat proudům vyšším než 40 mA. Pokud jde o napájecí napětí, nemělo by být vyšší než 3,3 V. Pokud jde o fototranzistor, má lehce průhledné tělo a reaguje na světlo.
Postupujeme k montáži a konfiguraci domácích:
První krok. Shromáždění
Vše je sestaveno podle velmi jednoduchého schématu. Ze všech pinů budou zapotřebí pouze P0, P1 a P2. První dva se používají pro displej a P2 pro senzory.
Jak vidíte, jeden odpor se používá k omezení proudu pro LED diody, ale druhý přitáhne P2 k zemi. Vzhledem k tomu, že fototranzistory jsou zapojeny paralelně, když kulka prochází před jakýmkoli optočlenem, napětí na P2 klesne. K určení rychlosti letu kulky je třeba znát vzdálenost mezi senzory, změřit dvě přepětí a určit dobu, během které k nim došlo.
Vzhledem k tomu, že bude použit pouze jeden kolík, nezáleží na tom, ze které strany se bude střílet. Fototranzistoři si přesto všimnou kulka.
Shromažďují se všechny podrobnosti, které jsou na fotografii viditelné. Pro shromáždění všeho se autor rozhodl použít prkénko. Celá struktura byla poté pokryta horkým lepidlem pro pevnost. Senzory jsou umístěny na potrubí a jsou k nim připojeny vodiče.
Aby nedocházelo k pulzování diod při napájení energetickou bankou, autor instaloval elektrolyt při 100 mKf paralelně s LED.
Je také důležité si uvědomit, že pin P2 byl vybrán z nějakého důvodu, faktem je, že P3 a P4 se používají v USB, takže nyní s pomocí P2 je zde možnost flash domácího po sestavení.
P2 je také analogový vstup, takže není třeba používat přerušení. Jednoduše můžete změřit hodnoty mezi aktuální a předchozí hodnotou, pokud je rozdíl větší než určitá prahová hodnota, pak v tuto chvíli kulička právě projde poblíž optočlenu.
Krok dva Firmware
Prescaler je dělič kmitočtu, ve standardních případech u desek jako Arduino je 128. Tento obrázek ovlivňuje, jak často je dotazován ADC. To znamená, že pro výchozí 16 MHz vychází 16/128 = 125 kHz. Každá digitalizace se skládá ze 13 operací, takže pin lze co nejvíce dotazovat rychlostí 9600 kHz. V praxi to není více než 7 kHz. Výsledkem je, že interval mezi měřeními je 120 μs, což je příliš mnoho pro domácí práci. Pokud střela letí rychlostí 300 m / s, překoná během této doby cestu 3,6 cm, to znamená, že si ji ovladač jednoduše nevšimne. Aby vše správně fungovalo, měl by být interval mezi měřeními alespoň 20 μs. Za tímto účelem musí být hodnota dělitele rovna 16. Autor dělal dělič 8, jak na to, je vidět níže.
Co se stalo během experimentu, se dozvíte na fotografii
Logika firmwaru má několik fází:
- měření rozdílu v hodnotách na kolíku před a po;
- pokud rozdíl přesáhne práh, smyčka zhasne a aktuální čas (micros ()) se zapamatuje;
- druhý cyklus pracuje podobně jako první a má v tomto cyklu čítač času;
- pokud čítač dosáhl nastavené hodnoty, odešle se chybová zpráva a přechod do počátečního stavu. V tomto případě cyklus neprochází věčností, pokud střela nebyla náhle zachycena druhým senzorem;
- pokud nedochází k přetečení čítače a rozdíl v hodnotě je větší než práh, změří se aktuální čas (mikro ());
- Nyní můžete na základě rozdílu v čase a vzdálenosti mezi senzory vypočítat letovou rychlost kulky a zobrazit informace na obrazovce. No, pak to všechno začíná znovu.
Poslední fáze. Testování
Pokud je vše hotovo správně, zařízení bude fungovat bez problémů. Jediným problémem je špatná odezva na zářivkové a LED osvětlení s vlnovou frekvencí 40 kHz. V takovém případě se mohou v zařízení vyskytnout chyby.
Domácí práce ve třech režimech:
Po zapnutí je pozdrav a obrazovka je vyplněna pruhy, což znamená, že zařízení čeká na výstřel
Pokud dojde k chybám, zobrazí se zpráva „Err“ a zapne se pohotovostní režim.
Pak přichází měření rychlosti
Ihned po výstřelu zařízení zobrazí rychlost střely (označená symbolem n) a poté se zobrazí informace o energii střely (symbol J). Když se zobrazí joule, zobrazí se také dvojtečka.