Obsah:
- Krok 1: Funkcia
- Krok 2: Teória prevádzky a presnosti
- Krok 3: Schéma a zoznam dielov
- Krok 4: Súbor Gerber PCB
- Krok 5: Spájkujte svoju PCB
- Krok 6: Programovanie Atmega328p
- Krok 7: LCD displej
- Krok 8: Súbor STL
- Krok 9: OTOČNÝ KÓDER
- Krok 10: Potrubie snímača
- Krok 11: Alternatíva potrubia snímača
- Krok 12: Peleta na osciloskope a kalibrácia
- Krok 13: Viac…
Video: Chronograf vzduchovej pušky, chronoskop. 3D tlač: 13 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:56
Ahoj všetci, dnes sa pozrieme na projekt, ktorý som urobil v roku 2010. Chronograf vzduchovej pušky. Toto zariadenie vám povie rýchlosť strely. Peleta, BB alebo dokonca vzduchová mäkká BB plastová guľa.
V roku 2010 som si zo zábavy kúpil vzduchovku. Trafil plechovky, fľaše, mieril. Viem, že rýchlosť tejto pištole bola maximálne 500 stôp/s. Pretože to je kanadský zákon. K dispozícii je niekoľko silnejších vzduchoviek, na ktoré však musíte mať licenciu a vo Walmarte si ich nemôžete kúpiť.
Teraz, keď mám túto licenciu, môžem si kúpiť inú. Ale poviedka, rovnaká zbraň bola k dispozícii v USA rýchlosťou 1000 stôp/s. ČO!? Rovnaká zbraň? áno … V Kanade má zdvih zdvihový otvor a pružina je mäkšia.
Prvá vec, ktorú musíte urobiť, je vyplniť dieru. To som urobil s spájkou. Ďalšou vecou bolo objednať si náhradnú pružinu. Ale počkajte … aká je aktuálna rýchlosť mojej novej hračky? Je jar skutočne potrebná? Neviem a chcem to vedieť. Chcem to vedieť teraz, ale ako?
Preto som urobil tento projekt. Stačili mi 2 senzory, uC a displej a sme na rade.
Minulý týždeň som videl na poličke svoj starý modrý chronograf a hovorím si: „Prečo to nezdieľate a neurobíte s tým pokyny?“A mimochodom, mohli by sme zvýšiť presnosť a pridať indikátor batérie. Na zapnutie/vypnutie dajte 1 tlačidlo namiesto 2. Montáž na celý povrch. Teraz sme v roku 2020!
Tak a je to … začnime!
Krok 1: Funkcia
-Rýchlosť granúl
-Rýchlosť
-20 mhz beh, obrovská presnosť
-Automatické vypnutie
-Zobrazí sa napätie batérie
-k dispozícii je chemická látka
-pcb k dispozícii
-zoznam dielov k dispozícii
-STL k dispozícii
-C kód k dispozícii
Krok 2: Teória prevádzky a presnosti
-Máme uC bežiace na 20 MHz. Použitý oscilátor je TCX0 +-2,5 ppm
-Máme 2 senzory vzdialené 3 palce od seba.
-Projektil zasiahol prvý senzor. uC začať počítať (časovač 1)
-Projektil zasiahol druhý senzor. uC prestaňte počítať.
-uC skontrolujte hodnotu timer1, urobte matematiku a zobrazte rýchlosť a rýchlosť.
Používam 16 -bitový časovač1 + príznak pretečenia tov1. 17 bitov celkom pre 131071 „tic“pre plný počet.
1/20 MHz = 50 ns. Každý tik je 50ns
131071 x 50 ns = 6,55355 ms na 3 palce.
6,55355 ms x 4 = 26,21 ms až 12 palcov.
1/26,21 ms = 38,1472637 stôp/s
Toto je najnižšia rýchlosť, akú môže zariadenie merať.
Prečo 20 MHz? Prečo nevyužiť interných 8 MHz alebo dokonca kryštál?
Moje prvé zariadenie používalo interný oscilátor. Fungoval, ale tento nebol dostatočne presný. Rozdiely sú príliš veľké. Kryštál je lepší, ale teplota má rôznu frekvenciu. S tým nemôžeme urobiť presné meracie zariadenie. Čím viac je frekvencia vysoká, tým viac otáčok sa bude počítať pri rovnakej rýchlosti. Vzorkovanie bude lepšie, aby malo veľmi dobrú presnosť. Pretože tik nie je deliteľný, strata je malá, ak je pracovný cyklus rýchly.
Pri 20 MHz máme kroky 50 ns. Vieme, ako presne je 50 ns na projektil pri 38 ft/s.
38,1472637 ft/s delené 131071 = 0, 000291042 stôp
0, 0003880569939956207 stôp x 12 = 0, 003492512 palcov
1/0, 003492512 = 286,37 ". Inými slovami. Pri 50 ft/s máme presnosť +- 1/286" alebo +- 0, 003492512 palcov
Ale ak je môj oscilátor najhorší a beží na 20 MHz +2,5 ppm, je to v poriadku? Poďme zistiť…
2,5 ppm z 20 000 000 je: (20000000/1000000) x 2,5 = 20000050 Hz
V najhoršom prípade teda máme ďalších 50 hodín s frekvenciou 20 MHz. Je to 50 hodín za 1 sekundu. O koľko viac tic na časovači1, ak peleta dosahuje rovnakú rýchlosť (38,1472637 stôp/s alebo 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 stôp/s
Máme teda 38,14735907 stôp/s namiesto 38,1472637 stôp/s
Teraz vieme, že 2,5 ppm neovplyvňuje výsledok.
Tu je niekoľko príkladov rôznej rýchlosti
Pre 1000 ft/s
1 000 stôp/s x 12 je 12 000 palcov/s
1 sekunda na 12 000 ", koľko času musíte urobiť na 3"? 3x1/12000 = 250 us sekúnd
250 us / 50 ns = 5 000 tic.
Časovač 1 bude na 5 000
uC urobte matematiku a zobrazí sa 1000 ft/s. Zatiaľ je všetko dobré
Pre rýchlosť 900 stôp/s
900 stôp/s je 10800 /s
3x1/10800 = 277,77 nás
277, 77 ns / 50 ns = 5555, 5555 tic
Časovač 1 bude na 5555
uC urobte matematiku a namiesto 900 sa zobrazí 900, 09
Prečo? pretože časovač 1 je na 5555 a 0, 5555 je stratený. Časovače Tic nie sú deliteľné.
Vyskytla sa chyba pre 0, 09 na 900 stôp/s
0, 09/900x100 = 0, iba 01% chyba
Pri 1500 ft/s je 1500 ft/s 18 000 palcov/s 3x1/10800 = 166,66 USD
166,66 us / 50 ns = 3333,333 tic Časovač 1 bude na 3333
uC urobte matematiku a namiesto 1500 sa zobrazí 1500,15.15/1500x100 = 0, 01%
Pre 9 000 stôp/s
9 000 x 12 = 1 800 000 palcov / s
3x1/180000 = 27,7777 nás
27,77 us / 50 ns = 555, 555
Časovač 1 bude na 555 a 4/(1/555x50ns) sa zobrazí 9009, 00 sa zobrazí
Tu je chyba 9 stôp/s na 9000 = 0, 1%
Ako vidíte, pri vyššej rýchlosti rastie % chyby. Ale zostaňte <0,1%
Tieto výsledky sú veľmi dobré.
Presnosť však nie je lineárna. Pri 10 000 ft/s je to 0, 1 %. Novinkou je, že nikdy netestujeme peletu 10 000 ft/s.
Ďalšia vec, ktorú treba mať na pamäti. Keď dôjde k prerušeniu, uC vždy dokončí poslednú inštrukciu pred zadaním prerušenia. Je to normálne a robia to všetky uC. Ak kódujete arduino, v C alebo dokonca assembler. Väčšinu času budete čakať v nekonečnej slučke … čakať. Problém je v tom, že v slučke strávime 2 cykly. Normálne to nie je dôležité. Ale v našom prípade. ÁNO, každý tik je dôležitý. Pozrime sa na nekonečnú slučku:
montér:
slučka:
rjmp slučka
V C:
zatiaľ čo (1) {}
V skutočnosti kompilátor C používa inštrukciu rjmp. RJMP sú 2 cykly.
To znamená, že ak dôjde k prerušeniu prvého cyklu, stratíme jeden cyklus (tic) (50ns).
Mojím spôsobom, ako to opraviť, je pridať do slučky veľa inštrukcií nop. NOP je 1 cyklus.
slučka:
nop
nop
nop
nop
nop
rjmp slučka
Ak k prerušeniu dôjde na pokyn nop. Sme v poriadku Ak sa to stane v druhom cykle inštrukcie rjmp, sme v poriadku. Ale ak sa to stane v prvom cykle inštrukcie rjmp, stratíme jeden tik. Áno, je to len 50 ns, ale ako vidíte vyššie, 50 ns na 3 palce nie je nič. Nemôžeme to opraviť softvérom, pretože nevieme, kedy presne k prerušeniu dôjde. Preto v kóde uvidíte veľa inštrukcií nop. Teraz som si celkom istý, že prerušenie padne na pokyn nop. Ak pripočítam 2000 nop, mám 0, 05%, aby som spadol do inštrukcie rjmp.
Ďalšia vec, ktorú treba mať na pamäti. Keď dôjde k prerušeniu. Kompilátor urobí veľa tlačení a ťahaní. Ale vždy je to rovnaké číslo. Teraz teda môžeme vykonať softvérovú opravu.
Na záver k tomuto:
Presnosť pre priemernú peletu 1000 ft/s je 0, 01%
100x presnejší ako ostatné 1% na trhu. Frekvencia je vyššia a s TCXO presnejšia
Napríklad 1% z 1000 ft/s je viac alebo menej 10 ft/s. Je to obrovský rozdiel.
Krok 3: Schéma a zoznam dielov
Tu som implementoval svoj obvod zapnutia/vypnutia jedným tlačidlom. (pozri môj posledný návod) Tento obvod je veľmi šikovný a funguje veľmi dobre.
Používam atmega328p. Tento je naprogramovaný v C.
Displej je štandardne kompatibilný s 2 riadkami a LCD HD44780. Používa sa 4 -bitový režim.
Na dodanie napätia do TCMO 20 MHz sa používa 3,3 V regulátor.
D1 je pre podsvietenie LCD. Voliteľné. Ak nenainštalujete D1, batéria vydrží dlhšie.
Všetky odpory a krytky sú 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 1M
R2 1M
R4 2,2 tis
R5 160
R6 160
R7 1M
R8 1M
U1 MIC5317-3.3 MIC5317 SOT23-5
U2 DMG6601LVT DMG6601LVT SOT23-6
LCD 2 -riadkový HD44780. Nie je potrebné kupovať modul i2c.
Senzory:
2x vysielač OP140A
2x prijímač OPL530
Kodér: PEC11R-4215K-S0024 *Nezabudnite pridať 4x 10k odpory a 2x 0,01uf na vykonanie filtra snímača. viď obrázok nižšie
Krok 4: Súbor Gerber PCB
Tu sú súbory Gerber
Krok 5: Spájkujte svoju PCB
So schematickou pomocou spájkujte všetky svoje súčiastky na doske plošných spojov. Každá časť alebo napísané na PCB, R1, R2 … a tak ďalej.
Nemám nainštalovanú D1. Toto je pre podsvietenie LCD. Je to krásne, ale výdrž batérie je ovplyvnená. Preto som sa rozhodol nechať podsvietenie LCD vypnuté.
Krok 6: Programovanie Atmega328p
Tu v kroku 12 skontrolujte naprogramovanie atmega328p. Na tento účel poskytujem súbor.hex.
Tu je program avrdude pripravený na programovanie dávkového súboru. Stačí kliknúť na program usbasp.bat a váš usbasp sa nainštaluje správne. Všetko sa vykoná automaticky vrátane poistkového bitu.
1drv.ms/u/s!AnKLPDy3pII_vXaGPIZKMXxaXDul?e…
V tomto projekte zdieľam aj zdrojový kód C. Uvedomte si, že niektoré poznámky v ňom môžu byť vo francúzštine. Https: //1drv.ms/u/s! AnKLPDy3pII_vXUMXHdxajwGRFJx? E…
Krok 7: LCD displej
Nainštalujte pásku a spojte PCB a LCD dohromady
Krok 8: Súbor STL
stl
1drv.ms/u/s!AnKLPDy3pII_vgezy0i0Aw3nD-xr?e…
Podpora je potrebná pre puzdro, rúrku snímača a držiak pušky.
Všetky som vytlačil na výšku 0,2 mm.
Krok 9: OTOČNÝ KÓDER
Tento rotačný snímač je pripojený ku konektoru isp. slúži na zmenu hmotnosti peliet a zapnutie a vypnutie zariadenia.
vcc isp pin 2 (vyťahovací odpor)
Terminál A (žltý) prejdite na kolík ISP 1
Terminál B (zelený) prejdite na pin 3 poskytovateľa internetových služieb
Svorka C (GND) kolíkový kolík 6
Pridávam 2 obrázky, aby som videl rozdiel medzi filtrom a bez filtra. Rozdiel medzi oboma môžete ľahko vidieť.
Stlačením tlačidla prejdete do konektora SW plošných spojov.
Krok 10: Potrubie snímača
DÔLEŽITÉ:
Potrubie snímača musí byť čierne a prijímač snímača musí byť skrytý
Moje prvé pokusy boli mať krásnu červenú fajku. Ale toto je ošemetné! Vôbec to nefungovalo. Zistil som, že vonkajšie svetlo dopadá a plastový senzor prijímača je vždy zapnutý.
Aby som dosiahol dobrý výsledok, nemal som na výber zmeniť farbu na čiernu.
Nainštalujte prijímač na vrch. A skryte priehľadný plast čiernou farbou, páskou alebo gumou, čiernym silikónom.
Nainštalujte vysielač na spodok.. Pero skontrolujte, či senzory reagujú dobre. Možno bude potrebné dieru žiariča trochu zväčšiť. bude to závisieť od kalibrácie vašej tlačiarne.
Tiež mám lepší výsledok v tieni. Vyhnite sa priamemu slnečnému žiareniu.
Krok 11: Alternatíva potrubia snímača
Ak nemáte 3D tlačiareň, môžete to isté urobiť s medenou rúrkou. Bude to fungovať veľmi dobre. Je ťažké urobiť dieru presne 3 palce a prijímač a vysielač musia byť zarovnané.
Krok 12: Peleta na osciloskope a kalibrácia
Jedná sa o skutočnú peletu, ktorá prechádza potrubím. Sonda 1 žltá je snímač 1. Sonda 2 fialová je snímač 2.
Čas/div je 50 nás.
Môžeme napočítať 6 divízií po 50us. 50 us x 6 = 300 us (pre 3 palce). 300 us x 4 = 1,2 ms na 1 stopu
1/1,2 ms = 833,33 ft/s
Tiež môžeme vidieť, že senzor je normálne pri 5 V. A môžeme zablokovať svetlo vysielača, snímač klesne na 0.
Je to spôsob, akým uC štartuje a zastavuje jeho rozhovor (časovač1)
Ale aby som vedel, či je rýchlosť presná, potreboval som spôsob, ako to merať.
Na kalibráciu softvéru a testovanie presnosti tohto zariadenia som použil referenčný oscilátor s frekvenciou 10 MHz. Pozrite si moje GPSDO na iných pokynoch.
Týmto 10 mhz napájam ďalší atmega328. A naprogramujte tento v assembleri, aby mi odoslal 2 impulzy zakaždým, keď stlačím tlačidlo na simuláciu pelety. Presne ako sme videli na obrázku, ale namiesto toho, aby som mal skutočnú peletu, to bolo ďalšie uC, ktoré mi poslalo 2 impulzy.
Pri každom stlačení tlačidla bol odoslaný 1 impulz a presne 4 ms po odoslaní ďalšieho impulzu.
Týmto spôsobom dokážem vyvážiť softvérový kompilátor tak, aby bol vždy zobrazených 1 000 stôp/s.
Krok 13: Viac…
Toto je môj prvý prototyp roku 2010.
V prípade akýchkoľvek otázok alebo hlásenia chyby mi môžete poslať e -mail. Anglicky alebo francúzsky. Budem sa snažiť pomôcť.
Odporúča:
Vyrobte si JEDNODUCHÚ zrkadlovú kocku Infinity - ŽIADNA 3D tlač a ŽIADNE programovanie: 15 krokov (s obrázkami)
Vyrobte si JEDNODUCHÚ zrkadlovú kocku Infinity | ŽIADNA 3D tlač a ŽIADNE programovanie: Každý má rád dobrú kocku nekonečna, ale vyzerá to, že by bolo ťažké ju vyrobiť. Mojím cieľom v tomto návode je ukázať vám krok za krokom, ako ho vytvoriť. Nielen to, ale podľa pokynov, ktoré vám dávam, si budete môcť vyrobiť jeden
Power Bank pod 10 dolárov! - DIY - 3D tlač: 6 krokov (s obrázkami)
Power Bank pod 10 dolárov! | DIY | 3D tlač: Dnešný priemysel smartfónov vyrába príliš výkonný telefón, ako sme očakávali v 90. rokoch, ale chýba im iba jedna vec, tj. Batéria, sú najhoršie. A jediné riešenie, ktoré teraz máme, je powerbanka. V tomto videu vám ukážem, ako
Kontrola prístupu k krmivu pre mačky (ESP8266 + servomotor + 3D tlač): 5 krokov (s obrázkami)
Kontrola prístupu k krmivu pre mačky (ESP8266 + servomotor + 3D tlač): Tento projekt prechádza procesom, ktorý som použil na vytvorenie automatizovanej misky na krmivo pre mačky pre moju staršiu diabetickú mačku Chaz. Vidíte, potrebuje si dať raňajky, kým si dá inzulín, ale ja často zabúdam vybrať si jedlo, ktoré si dám pred spaním, ktoré spo
Chronograf Nerf a barel Rate of Fire: 7 krokov
Chronograf Nerf a Rate of Fire Barrel: Úvod Ako drotár je vždy veľmi uspokojujúce vidieť číselné výsledky vášho drotárstva. Mnohí z nás už predtým upravovali zbrane Nerf a kto nemá rád hádzanie kúskov peny po dome rýchlosťou viac ako 100 snímok za sekundu? Po úprave mnohých zariadení Nerf g
Arduino pre Nerf: Chronograf a počítadlo záberov: 28 krokov (s obrázkami)
Arduino pre Nerf: Chronograf a počítadlo striel: Môj predchádzajúci Instructable pokrýval základy zisťovania rýchlosti šípok pomocou infračerveného žiariča a detektora. Tento projekt ide o krok ďalej, pričom pomocou dosky s plošnými spojmi, displeja a batérií vyrobil prenosný počítadlo munície a chronograf.