Obsah:
- Krok 1: Funkce
- Krok 2: Teorie provozu a přesnosti
- Krok 3: Schéma a seznam dílů
- Krok 4: Soubor Gerber PCB
- Krok 5: Pájejte svůj Pcb
- Krok 6: Programování Atmega328p
- Krok 7: LCD displej
- Krok 8: Soubor STL
- Krok 9: OTOČNÝ KÓDOVAČ
- Krok 10: Senzorová trubka
- Krok 11: Alternativa potrubí snímače
- Krok 12: Peleta na osciloskopu a kalibrace
- Krok 13: Více…
Video: Chronograf vzduchové pušky, chronoskop. 3D tisk: 13 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:20
Ahoj všichni, dnes se vrátíme k projektu, který jsem udělal v roce 2010. Chronograf vzduchové pušky. Toto zařízení vám řekne rychlost střely. Pelety, BB nebo dokonce vzduchové měkké BB plastové kuličky.
V roce 2010 jsem si pro zábavu koupil vzduchovku. Mlátilo do plechovek, lahví, mířilo. Vím, že rychlost této zbraně byla maximálně 500 stop/s. Protože to je kanadský zákon. K dispozici je nějaká silnější vzduchovka, ale musíte mít licenci a nemůžete ji koupit ve Walmartu.
Teď jsem měl tuto licenci, mohl jsem si koupit další. Ale povídka, stejná zbraň byla k dispozici v USA rychlostí 1000 stop/s. CO!? Stejná zbraň? ano … V Kanadě má tah v sobě díru a pružina je měkčí.
První věc, kterou musíte udělat, je vyplnit díru. To jsem udělal s pájkou. Další věcí bylo objednat náhradní pružinu. Ale počkejte … jaká je aktuální rychlost mé nové hračky? Je jaro opravdu nutné? Nevím a chci to vědět. Chci to vědět teď, ale jak?
Proto jsem udělal tento projekt. Vše, co jsem potřeboval, byly 2 senzory, uC a displej a jsme v podnikání.
Minulý týden jsem viděl na poličce svůj starý modrý chronograf a povídal jsem si: „Proč to nesdílet a neudělat s tím instrukce?“A mimochodem, mohli bychom zvýšit přesnost a přidat indikátor baterie. Pro zapnutí/vypnutí vložte místo 2 tlačítka 1. Celý povrchový držák. Nyní jsme v roce 2020!
Tak a je to … začněme!
Krok 1: Funkce
-Rychlost pelet
-Rychlost
-20 mhz běh, obrovská přesnost
-Automatické vypnutí
-Zobrazuje se napětí baterie
-schemický k dispozici
-pcb k dispozici
-seznam dílů k dispozici
-STL k dispozici
-C kód k dispozici
Krok 2: Teorie provozu a přesnosti
-Máme uC běžící na 20 MHz. Použitý oscilátor je TCX0 +-2,5 ppm
-Máme 2 senzory vzdálené 3 palce od sebe.
-Projektil zasáhl první senzor. uC začít počítat (timer1)
-Projektil zasáhl druhý senzor. uC přestaňte počítat.
-uC zkontrolujte hodnotu timer1, proveďte matematickou a zobrazovací rychlost a rychlost.
Používám 16bitový časovač1 + příznak přetečení tov1. 17 bitů celkem za 131071 „tic“pro plný počet.
1/20 MHz = 50 ns. Každý tic je 50ns
131071 x 50 ns = 6,55355 ms na 3 palce.
6,55355 ms x 4 = 26,21 ms na 12 palců.
1/26,21 ms = 38,1472637 stop/s
Toto je nejpomalejší rychlost, kterou může zařízení měřit.
Proč 20 MHz? Proč nepoužívat interní 8 MHz nebo dokonce cristal?
Moje první zařízení používalo interní oscilátor. Fungoval, ale tento nebyl dostatečně přesný. Variace jsou příliš velké. Krystal je lepší, ale teplota má různou frekvenci. S tím nemůžeme udělat přesné měřicí zařízení. Čím více je frekvence vysoká, tím více tiků se bude počítat se stejnou rychlostí. Vzorkování bude lepší, aby mělo velmi dobrou přesnost. Protože tik není dělitelný, je ztráta malá, pokud je pracovní cyklus rychlý.
Při 20 MHz máme kroky 50 ns. Víme, jak přesné je to 50 ns pro projektil při 38 ft/s.
38,1472637 ft/s děleno 131071 = 0, 000291042 stop
0, 0003880569939956207 stop x 12 = 0, 003492512 palců
1/0, 003492512 = 286,37 ". Jinými slovy. Při rychlosti 50 stop/s máme přesnost +- 1/286" nebo +- 0, 003492512 palců
Ale pokud je můj oscilátor nejhorší a běží na 20 MHz +2,5 ppm, je to v pořádku? Pojďme to zjistit…
2,5 ppm z 20 000 000 je: (20000000/1000000) x 2,5 = 20000050 Hz
V nejhorším případě tedy máme dalších 50 hodin na 20 MHz. Je to 50 hodin za 1 sekundu. O kolik více tic na časovači1, pokud pelety dosahují stejné rychlosti (38,1472637 stop/s nebo 6,55 ms)?
1/20000050 = 49,999875 ns
49,999875 ns x 131071 = 6, 553533616 ms
6, 553533616 ms x 4 = 26,21413446 ms
1/26,21413446 ms = 38,14735907 stop/s
Takže máme 38,14735907 stop/s místo 38,1472637 stop/s
Nyní víme, že 2,5 ppm neovlivní výsledek.
Zde je příklad různé rychlosti
Pro 1000 ft/s
1000 ft/s x 12 je 12 000 palců/s
1 sekunda na 12 000 ", kolik času udělat 3"? 3x1/12000 = 250 us sekund
250 us / 50 ns = 5000 tic.
Časovač 1 bude na 5 000
uC proveďte matematiku a zobrazí se 1000 ft/s. Zatím je vše dobré
Pro 900 ft/s
900 stop/s je 10800 /s
3x1/10800 = 277,77 us
277, 77 ns / 50 ns = 5555, 5555 tic
Časovač 1 bude na 5555
uC do matematiky a místo 900 se zobrazí 900, 09
Proč? protože časovač 1 je na 5555 a 0, 5555 je ztracen. Tic na časovači nejsou dělitelné.
Došlo k chybě pro 0, 09 na 900 ft/s
0, 09/900x100 = 0, pouze 01% chyba
Pro 1500 ft/s je 1500 ft/s 18000 /s 3x1/10800 = 166,66 USD
166,66 us / 50 ns = 3333,333 tic Časovač 1 bude na 3333
uC proveďte matematiku a místo 1500 se zobrazí 1500,15.15/1500x100 = 0, 01%
Pro 9 000 ft/s
9000 x 12 = 180000 palců / s
3x1/180000 = 27,7777 nás
27,77 us / 50 ns = 555, 555
Časovač 1 bude na 555 a zobrazí se 4/(1/555x50ns) 9009, 00 se zobrazí
Zde je chyba 9 stop/s na 9000 = 0, 1%
Jak vidíte, chyba % stoupá, když je rychlost vyšší. Ale zůstaňte <0,1%
Ty výsledky jsou velmi dobré.
Přesnost ale není lineární. Při 10 000 stop/s je to 0, 1 %. Dobrou novinkou je, že nikdy netestujeme peletu 10 000 ft/s.
Další věc, kterou je třeba mít na paměti. Dojde -li k přerušení, uC vždy dokončí poslední instrukci, než vstoupí do přerušení. To je normální a všichni uC to dělají. Pokud kódujete arduino, v C nebo dokonce assembler. Většinu času budete čekat ve věčné smyčce … čekat. Problém je, že ve smyčce strávíme 2 cykly. Normálně to není důležité. Ale v našem případě. ANO, každý tik je důležitý. Podívejme se na nekonečnou smyčku:
montér:
smyčka:
smyčka rjmp
V C:
zatímco (1) {}
Ve skutečnosti kompilátor C používá instrukci rjmp. RJMP jsou 2 cykly.
To znamená, že pokud dojde k přerušení prvního cyklu, ztratíme jeden cyklus (tic) (50ns).
Můj způsob, jak to opravit, je přidat do smyčky mnoho instrukcí nop. NOP je 1 cyklus.
smyčka:
nop
nop
nop
nop
nop
smyčka rjmp
Pokud k přerušení dojde na pokyn nop. Jsme v pořádku Pokud se to stane ve druhém cyklu instrukce rjmp, jsme v pořádku. Ale pokud se to stane v prvním cyklu instrukce rjmp, ztratíme jeden tic. Ano, je to jen 50 ns, ale jak vidíte výše, 50 ns na 3 palce není nic. Nemůžeme to opravit softwarem, protože nevíme, kdy přesně k přerušení dojde. Proto v kódu uvidíte spoustu instrukcí nop. Teď jsem si docela jistý, že přerušení spadne na pokyn nop. Pokud přidám 2000 nop, mám 0, 05%, abych spadl na instrukci rjmp.
Další věc, kterou je třeba mít na paměti. Když dojde k přerušení. Kompilátor dělá mnoho push a pull. Ale vždy je to stejné číslo. Nyní tedy můžeme provést softwarovou opravu.
Na závěr k tomuto:
Přesnost pro průměrnou peletu 1000 ft/s je 0, 01%
100x přesnější než ostatní 1% na trhu. Frekvence je vyšší a s TCXO přesnější
Například 1% z 1000 ft/s je více nebo méně 10 ft/s. Je to obrovský rozdíl.
Krok 3: Schéma a seznam dílů
Zde jsem implementoval svůj obvod zapnutí/vypnutí jedním tlačítkem. (viz můj poslední návod) Tento obvod je velmi praktický a funguje velmi dobře.
Používám atmega328p. Tento je naprogramován v C.
Displej je standardní 2řádkový LCD HD44780 kompatibilní. Používá se 4bitový režim.
K napájení TCXO 20 MHz slouží napětí 3,3 V.
D1 je pro podsvícení LCD. Volitelný. Pokud nenainstalujete D1, baterie vydrží déle.
Všechny odpory a krytky jsou v balení 0805
C1.1uf 25v
C2 1uf 16v
C3 2,2uf 10v
C4. 1uf
C5.1uf
C6. 1uf
C7 1uf
C8. 1uf
C9.1uf
C10.1uf
D1 1n4148 SM SOT123
D2 5.1v SOT123
IC1 ATMEGA328p
IC2 MIC5225-5.0YM5-TR TPS70950DBVT SOT23-DBV
OSC1 TXETDCSANF-20.000000
R1 1 mil
R2 1 mil
R4 2,2 tis
R5 160
R6 160
R7 1M
R8 1M
U1 MIC5317-3.3 MIC5317 SOT23-5
U2 DMG6601LVT DMG6601LVT SOT23-6
Displej LCD 2řádkový HD44780. Není třeba kupovat modul i2c.
Senzory:
2x vysílač OP140A
2x přijímač OPL530
Enkodér: PEC11R-4215K-S0024 *Nezapomeňte přidat 4x 10k odpory a 2x 0,01uf k vytvoření filtru kodéru. viz obrázek níže
Krok 4: Soubor Gerber PCB
Zde jsou soubory Gerber
Krok 5: Pájejte svůj Pcb
Se schematickou pomocí připájejte všechny své součásti na desku plošných spojů. Každý díl nebo napsaný na PCB, R1, R2 … a tak dále.
Nemám nainstalovanou D1. Toto je pro podsvícení LCD. Je to krásné, ale výdrž baterie je ovlivněna. Rozhodl jsem se proto nechat podsvícení LCD vypnuté.
Krok 6: Programování Atmega328p
Zde v kroku 12 zkontrolujte program atmega328p. Zde poskytuji soubor.hex.
Zde je program avrdude připraven k naprogramování dávkového souboru. Stačí kliknout na program usbasp.bat a váš usbasp se správně nainstaluje. Vše bude provedeno automaticky včetně pojistkového bitu.
1drv.ms/u/s!AnKLPDy3pII_vXaGPIZKMXxaXDul?e…
V tomto projektu sdílím také zdrojový kód C. Uvědomte si, že některé poznámky v něm mohou být ve francouzštině. Https: //1drv.ms/u/s! AnKLPDy3pII_vXUMXHdxajwGRFJx? E…
Krok 7: LCD displej
Nainstalujte pásku a spojte desky plošných spojů a LCD dohromady
Krok 8: Soubor STL
stl soubor
1drv.ms/u/s!AnKLPDy3pII_vgezy0i0Aw3nD-xr?e…
Podpora je nutná pro pouzdro, trubku senzoru a držák pušky.
Všechny jsem vytiskl na výšku 0,2 mm.
Krok 9: OTOČNÝ KÓDOVAČ
Tento rotační kodér je připojen ke konektoru isp. slouží ke změně hmotnosti pelet a k zapnutí a vypnutí zařízení.
vcc isp pin 2 (pull up odpor)
Terminál A (žlutý) přejděte na pin ISP 1
Terminál B (zelený) přejděte na pin 3 poskytovatele
Svorka C (GND) isp pin 6
Přidávám 2 obrázky, abych viděl rozdíl mezi filtrem a žádným filtrem. Rozdíl mezi oběma můžete snadno vidět.
Tlačítko přejde do konektoru SW desky plošných spojů.
Krok 10: Senzorová trubka
DŮLEŽITÉ:
Senzorová trubka musí být černá a přijímač senzoru musí být skrytý
Moje první pokusy byly mít krásnou červenou dýmku. Ale to je ošidné! Vůbec to nefungovalo. Přišel jsem na to, že venkovní světlo dopadalo a plastový senzor přijímače byl vždy zapnutý.
Abych měl dobrý výsledek, neměl jsem na výběr změnit barvu na černou.
Nainstalujte přijímač nahoře. A skryjte čirý plast černou barvou, páskou nebo gumou, černým silikonem.
Nainstalujte vysílač na spodní část. Zkontrolujte perem, zda senzory reagují dobře. Možná bude potřeba díru vysílače trochu zvětšit. bude to záviset na kalibraci vaší tiskárny.
Také mám lepší výsledek ve stínu. Vyhněte se přímému slunečnímu světlu.
Krok 11: Alternativa potrubí snímače
Pokud nemáte 3D tiskárnu, můžete to samé udělat s měděnou trubkou. Bude to fungovat velmi dobře. Těžká věc je otvor přesně 3 palce a přijímač a vysílač musí být vyrovnány.
Krok 12: Peleta na osciloskopu a kalibrace
Jedná se o skutečnou peletu, která prochází trubkou. Sonda 1 žlutá je senzor 1. Sonda 2 fialová je senzor 2.
Čas/div je 50 us.
Můžeme napočítat 6 divizí po 50us. 50 us x 6 = 300 us (pro 3 palce). 300 us x 4 = 1,2 ms na 1 stopu
1/1,2 ms = 833,33 ft/s
Můžeme také vidět, že senzor je normálně na 5V. A můžeme zablokovat světlo vysílače, senzor spadne na 0.
Je to způsob, jakým uC začíná a zastavuje jeho vysílač (timer1)
Ale abych přesně věděl, jestli je rychlost přesná, potřeboval jsem způsob, jak to změřit.
K provedení softwarové kalibrace a testování přesnosti tohoto zařízení jsem použil referenční oscilátor 10 MHz. Podívejte se na můj GPSDO na jiné instrukční.
Tímto 10 MHz napájím další atmega328. A naprogramujte tento v assembleru, aby mi poslal 2 impulzy pokaždé, když stisknu tlačítko pro simulaci pelety. Přesně jako jsme viděli na obrázku, ale místo toho, abychom měli skutečnou peletu, to bylo další uC, které mi poslalo 2 impulsy.
Při každém stisknutí tlačítka byl odeslán 1 impuls a přesně 4 ms po odeslání dalšího impulsu.
Tímto způsobem mohu vyvážit softwarový kompilátor tak, aby byl vždy zobrazen 1000 ft/s.
Krok 13: Více…
Toto je můj první prototyp roku 2010.
V případě jakýchkoli dotazů nebo hlášení chyb mi můžete poslat e -mail. Anglicky nebo francouzsky. Udělám vše, abych pomohl.
Doporučuje:
Zářící vzduchové bublinové hodiny; Poháněno ESP8266: 7 kroků (s obrázky)
Zářící vzduchové bublinové hodiny; Poháněno ESP8266: „zářící vzduchové bublinové hodiny“zobrazují čas a některé grafiky pomocí osvětlených vzduchových bublin v kapalině. Na rozdíl od LED maticového displeje mi volně pobíhající, zářící vzduchové bubliny dávají něco k relaxaci. Na začátku 90. let jsem si představoval „bublinkový displej“. Unfo
Zkontrolujte tisk bez speciálního softwaru nebo tiskárny s MS Excel (tisk bankovních šeků): 6 kroků
Zkontrolovat tisk bez speciálního softwaru nebo tiskárny s MS Excel (tisk bankovních šeků): Jedná se o jednoduchý excelový sešit, který bude velmi užitečný pro jakoukoli firmu při psaní mnoha bankovních šeků na druhém místě za svými dodavateli. Nepotřebujete speciální tiskárnu ani software, potřebujete pouze počítač s MS Excel a normální tiskárnu. Ano, nyní můžete
Chronograf Nerf a barel Rate of Fire: 7 kroků
Chronograf Nerf a Rate of Fire Barrel: Úvod Jako dráteník je vždy velmi uspokojující sledovat číselné výsledky vašeho šťourání. Mnoho z nás už dříve upravovalo zbraně Nerf a kdo nemá rád házení kousků pěny přes dům rychlostí více než 100 snímků za sekundu? Po úpravě mnoha Nerf g
Nositelná technika: vzduchové bubny: 5 kroků
Wearable Tech: Air Drums: Naším cílem pro tento projekt bylo vyrobit nositelnou bicí soupravu z některých akcelerometrů a piezo disků. Myšlenka byla taková, že při zásahu ruky se ozve zvuk léčky; nebo při stlačení nohy zazní zvuk hi-hat nebo basového bubnu. Kontrolovat
Arduino pro Nerf: Chronograf a počítadlo snímků: 28 kroků (s obrázky)
Arduino pro Nerf: Chronograph a Shot Counter: Můj předchozí Instructable pokrýval základy detekce rychlosti šipky pomocí infračerveného vysílače a detektoru. Tento projekt jde ještě o krok dále, pomocí desky s plošnými spoji, displeje a baterií vyrobil přenosné počítadlo munice a chronograf