Sadržaj:
- Korak 1: Funkcija
- Korak 2: Teorija rada i tačnosti
- Korak 3: Shema i lista dijelova
- Korak 4: Gerber datoteka PCB -a
- Korak 5: Lemite svoj PCB
- Korak 6: Programiranje Atmega328p
- Korak 7: LCD ekran
- Korak 8: STL datoteka
- Korak 9: ROTAJANSKI KODIR
- Korak 10: Senzorska cijev
- Korak 11: Alternativa cijevi senzora
- Korak 12: Pelet na osciloskopu i kalibraciji
- Korak 13: Više …
Video: Hronograf vazdušne puške, hronoskop. 3D štampano: 13 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:05
Zdravo svima, danas ćemo ponovo pogledati projekat koji sam uradio 2010. godine. Hronograf sa vazdušnom puškom. Ovaj uređaj će vam reći brzinu projektila. Pelet, BB ili čak zračna mekana BB plastična kugla.
2010. sam kupio zračnu pušku za zabavu. Udarao je u limenke, boce, ciljao. Znam da je brzina ovog pištolja bila maksimalno 500 stopa/s. Zato što je to kanadski zakon. Dostupne su neke jače zračne puške, ali za to morate imati dozvolu, a te stvari ne možete kupiti u Walmartu.
Sad kad sam imao ovu dozvolu, mogao sam kupiti drugu. Ali kratka priča, isti pištolj bio je dostupan SAD -u pri brzini od 1000 stopa/s. ŠTA!? Isti pištolj? da … U Kanadi, udar ima rupu u sebi i opruga je mekša.
Prvo što treba učiniti je popuniti rupu. To sam i uradio sa lemljenjem. Sljedeća stvar koju ste trebali učiniti je naručiti zamjensku oprugu. Ali čekaj … kolika je trenutna brzina moje nove igračke? Je li proljeće zaista potrebno? Ne znam i želim znati. Želim znati sada, ali kako?
Zato sam napravio ovaj projekat. Trebala su mi samo 2 senzora, uC i ekran i mi smo u poslu.
Prošle sedmice sam na polici ugledao svoj stari plavi hronograf i razgovarao sam sa sobom: "Zašto ovo ne podijeliš i ne uradiš instrukcije s tim?" Usput, mogli bismo povećati točnost i dodati indikator baterije. Za uključivanje/isključivanje stavite 1 dugme umjesto 2. Svi se montiraju na površinu. Sad smo 2020. godine!
Pa evo ga … počnimo!
Korak 1: Funkcija
-Brzina peleta
-Velocity
-20 mhz trčanje, velika preciznost
-Automatski isključeno
-Prikazan napon baterije
-shematski dostupan
-pcb dostupan
-dostupna lista dijelova
-STL dostupan
-C kod dostupan
Korak 2: Teorija rada i tačnosti
-UC radi na 20Mhz. Koristi se oscilator TCX0 +-2,5 ppm
-Imamo 2 senzora udaljena 3 inča jedan od drugog.
-Projektil je pogodio prvi senzor. uC start counting (timer1)
-Projektil je pogodio drugi senzor. uC prestati brojati.
-uC provjerite vrijednost timera1, izračunajte brzinu i brzinu prikaza.
Koristim 16 -bitni timer1 + preljevna zastavica tov1. Ukupno 17 bita za 131071 "tic" za potpuni broj.
1/20 mhz = 50 ns. Svaki tic je 50ns
131071 x 50 ns = 6,55355 ms do 3 inča.
6,55355 ms x 4 = 26,21 ms do 12 inča.
1/26,21 ms = 38,1472637 stopa/s
Ovo je najsporija brzina koju uređaj može mjeriti.
Zašto 20 mhz? Zašto ne koristite interne 8 MHz ili čak kristal?
Moj prvi uređaj je koristio unutrašnji oscilator. Radilo je, ali ovo nije bilo dovoljno precizno. Varijacija je prevelika. Kristal je bolji, ali temperatura ima različitu frekvenciju. S tim ne možemo napraviti precizan mjerni uređaj. Takođe, što je frekvencija veća, više tikova će se računati za istu brzinu. Uzorkovanje će biti bolje da ima vrlo dobru preciznost. Budući da se tik ne može podijeliti, gubitak je mali ako je radni ciklus brz.
Na 20 MHz imamo korake od 50 ns. Znamo li koliko je precizno 50 ns za projektil pri 38 ft/s.
38,1472637 ft/s podijeljeno sa 131071 = 0, 000291042 stopa
0, 0003880569939956207 stopa x 12 = 0, 003492512 inča
1/0, 003492512 = 286.37 ". Drugim riječima. Pri brzini od 50 ft/s imamo tačnost od +- 1/286" ili +- 0, 003492512 inča
Ali ako je moj oscilator najgori i radi na 20 mhz +2,5 ppm, je li to u redu? Saznajmo…
2,5 ppm od 20 000 000 je: (20000000/1000000) x 2,5 = 20000050 Hz
U najgorem slučaju imamo još 50 takta na 20 Mhz. To je 50 taktova u sekundi. Koliko tikova više na timeru 1 ako pelet radi istom brzinom (38,1472637 stopa/s ili 6,55ms)?
1/20000050 = 49,9999875 ns
49.999875 ns x 131071 = 6, 553533616 ms
6, 553533616 ms x 4 = 26,21413446 ms
1/26,21413446 ms = 38,14735907 stopa/s
Dakle imamo 38.14735907 stopa/s umjesto 38.1472637 stopa/s
Sada znamo da 2,5 ppm ne utječe na rezultat.
Evo nekoliko primjera različite brzine
Za 1000 ft/s
1000 ft/s x 12 je 12000 inča/s
1 sekunda za 12000 "koliko vremena treba napraviti 3"? 3x1/12000 = 250 us sekundi
250 us / 50 ns = 5000 tika.
Tajmer 1 će biti na 5000
uC uradite matematiku i prikazuje se 1000 ft/s. Zasada je dobro
Za 900 stopa/s
900 ft/s je 10800 /s
3x1/10800 = 277,77 us
277, 77 ns / 50 ns = 5555, 5555 tic
Tajmer 1 će biti na 5555
uC matematiku i 900, 09 će se prikazati umjesto 900
Zašto? jer je tajmer 1 na 5555 i 0, 5555 je izgubljen. Tajmer na tajmeru se ne može dijeliti.
Imamo grešku za 0, 09 na 900 ft/s
0, 09/900x100 = samo 0,01% greške
Za 1500 ft/s1500 ft/s je 18000 /s 3x1/10800 = 166,66 us
166,66 us / 50 ns = 3333,333 tic Timer 1 bit će na 3333
uC matematiku i 1500.15 će se prikazati umjesto 1500 to je.15/1500x100 = 0, 01%
Za 9000 stopa/s
9000 x 12 = 180000 inča / s
3x1/180000 = 27.7777 nas
27,77 us / 50 ns = 555, 555
Tajmer 1 će biti na 555 i 4/(1/555x50ns) će biti prikazano 9009, 00 će biti prikazano
Ovdje je greška 9 stopa/s na 9000 = 0,1%
Kao što vidite, % greška raste kada je brzina veća. Ali ostanite <0,1%
Ti su rezultati vrlo dobri.
Ali tačnost nije linearna. Pri 10000 ft/s to je 0,1 %. Dobra novost je što nikada ne testiramo pelet od 10 000 ft/s.
Još jedna stvar koju treba imati na umu. Kada dođe do prekida, uC uvijek završi posljednju instrukciju prije nego što unese u prekid. To je normalno i svi uC to rade. Ako kodirate arduino, u C ili čak asembler. Većinu vremena ćete čekati u vječnoj petlji … da čekate. Problem je u tome što u petlji provodimo 2 ciklusa. Obično ovo nije važno. Ali u našem slučaju. DA, svaki tik je važan. Pogledajmo beskonačnu petlju:
asembler:
petlja:
rjmp petlja
U C:
dok (1) {}
U stvari, C kompajler koristi rjmp instrukciju. RJMP je 2 ciklusa.
To znači da ako se prekid dogodi prvom ciklusu, gubimo jedan ciklus (tic) (50ns).
Moj način da to ispravim je da u petlju dodam mnogo nop instrukcija. NOP je 1 ciklus.
petlja:
nop
nop
nop
nop
nop
rjmp petlja
Ako se prekid dogodi na nop instrukciji. Dobro smo. Ako se to dogodi u drugom ciklusu rjmp upute, dobro smo. Ali ako se to dogodi u prvom ciklusu rjmp instrukcija, izgubit ćemo jedan tik. Da, to je samo 50 ns, ali kao što vidite gore, 50 ns na 3 inča nije ništa. Ne možemo to ispraviti softverom jer ne znamo kada se točno dogodio prekid. Zato ćete u kodu vidjeti mnogo nop instrukcija. Sada sam prilično siguran da će prekid pasti na nop instrukciju. Ako dodam 2000 nop, 0,05% će pasti na rjmp upute.
Još jedna stvar koju treba imati na umu. Kada dođe do prekida. Kompajler radi mnogo push and pull. Ali to je uvijek isti broj. Dakle, sada možemo izvršiti softversku korekciju.
Da zaključim o ovome:
Preciznost za prosječni pelet od 1000 ft/s je 0,01%
100 puta preciznije od ostalih 1% na tržištu. Učestalost je veća i sa TCXO -om preciznija
Na primjer, 1% od 1000 ft/s je manje -više 10 ft/s. To je ogromna razlika.
Korak 3: Shema i lista dijelova
Ovdje sam implementirao svoj krug uključivanja/isključivanja s jednim gumbom. (vidi moje zadnje uputstvo) Ovo kolo je vrlo zgodno i radi vrlo dobro.
Koristim atmega328p. Ovaj je programiran na C.
Ekran je kompatibilan sa standardnim 2 -rednim LCD HD44780. Koristi se 4 bitni način rada.
Regulator 3.3v koristi se za napajanje TCXO 20mhz.
D1 služi za pozadinsko osvjetljenje LCD -a. Opcionalno. Baterija će trajati duže ako ne instalirate D1.
Svi otpornici i kape su 0805 pakovanja
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.2k
R5 160
R6 160
R7 1M
R8 1M
U1 MIC5317-3.3 MIC5317 SOT23-5
U2 DMG6601LVT DMG6601LVT SOT23-6
Ekran LCD 2 reda HD44780. Nema potrebe za kupovinom i2c modula.
Senzori:
2x odašiljač OP140A
2x prijemnik OPL530
Enkoder: PEC11R-4215K-S0024 *Ne zaboravite dodati 4x 10k otpornika i 2x.01uf za filtriranje davača. pogledajte sliku ispod
Korak 4: Gerber datoteka PCB -a
Evo gerber datoteka
Korak 5: Lemite svoj PCB
Uz shematsku pomoć, lemite sve svoje komponente na tiskanu ploču. Svaki dio ili napisan na pcb, r1, r2 … itd.
Nemam instaliran D1. Ovo je za pozadinsko osvetljenje LCD ekrana. Prelijepo je, ali to utječe na trajanje baterije. Zato odlučujem da LCD pozadinsko svjetlo bude isključeno.
Korak 6: Programiranje Atmega328p
Provjerite ovdje u koraku 12 da biste programirali atmega328p. Ovdje dostavljam.hex datoteku za ovo.
Ovdje je program avrdude spreman za programiranje batch datoteke. Samo kliknite na program usbasp.bat i vaš usbasp je ispravno instaliran. Sve će se raditi automatski, uključujući bit osigurača.
1drv.ms/u/s!AnKLPDy3pII_vXaGPIZKMXxaXDul?e…
U ovom projektu dijelim i C izvorni kod. Imajte na umu da neke bilješke u njemu mogu biti na francuskom. Https: //1drv.ms/u/s! AnKLPDy3pII_vXUMXHdxajwGRFJx? E…
Korak 7: LCD ekran
Instalirajte malo trake i povežite PCB i LCD zajedno
Korak 8: STL datoteka
stl datoteku
1drv.ms/u/s!AnKLPDy3pII_vgezy0i0Aw3nD-xr?e…
Podrška je potrebna za kućište, cijev senzora i držač puške.
Sve sam štampao na 0,2 mm visine.
Korak 9: ROTAJANSKI KODIR
Ovaj okretni davač spojen je na isp konektor. koristi se za promjenu težine peleta i za uključivanje i isključivanje uređaja.
vcc isp pin 2 (povucite otpornik)
Stezaljka A (žuta) idite na pin 1 ISP -a
Stezaljka B (zelena) idite na pin 3 ISP -a
Stezaljka C (gnd) isp pin 6
Dodajem 2 slike da vidim razliku između filtera i filtera bez filtera. Lako možete vidjeti razliku između oboje.
Taster prelazi na pcb SW konektor.
Korak 10: Senzorska cijev
BITAN:
Senzorska cijev mora biti crna, a prijemnik senzora mora biti sakriven
Moji prvi pokušaji bili su da imam prekrasnu crvenu lulu. Ali ovo je lukavo! Uopće nije funkcioniralo. Shvatio sam da dolazi vanjsko svjetlo. Plastika i senzor prijemnika su uvijek bili uključeni.
Da bih postigao dobre rezultate, nisam imao izbora promijeniti boju u crnu.
Instalirajte prijemnik na vrhu. Čistu plastiku sakrijte crnom bojom, trakom ili žvakom, crnim silikonom.
Postavite odašiljač na dno. Provjerite olovkom da li senzori dobro reagiraju. Možda će se otvor emitera morati malo povećati. to će zavisiti od kalibracije vašeg štampača.
Takođe imam bolji rezultat u hladu. Izbegavajte direktnu sunčevu svetlost.
Korak 11: Alternativa cijevi senzora
Ako nemate 3d štampač, to možete učiniti i s bakrenom cijevi. To će jako dobro funkcionirati. Teško je učiniti rupu na tačno 3 inča, a prijemnik i odašiljač moraju biti poravnati.
Korak 12: Pelet na osciloskopu i kalibraciji
Ovo je pravi pelet koji prolazi kroz cijev. Sonda 1 žuta je senzor 1. Sonda 2 ljubičasta je senzor 2.
Vrijeme/div je 50 USD.
Možemo nabrojati 6 divizija po 50us. 50 us x 6 = 300 us (za 3 inča). 300 us x 4 = 1,2 ms za 1 stopa
1/1,2ms = 833,33 ft/s
Također možemo vidjeti da je senzor normalno na 5v. Možemo li blokirati svjetlo emitera, senzor pasti na 0.
To je način na koji uC pokreće i zaustavlja njegov uređaj (timer1)
Ali da bih točno znao je li brzina točna, trebao mi je način da to izmjerim.
Za kalibraciju softvera i provjeru tačnosti ovog uređaja upotrijebio sam referentni oscilator od 10 mhz. Pogledajte moj GPSDO na drugim uputama.
Hranim drugu atmega328 sa ovih 10 mhz. I programirajte ovaj u asembleru da mi šalje 2 impulsa svaki put kad pritisnem dugme za simulaciju peleta. Upravo onako kako smo vidjeli na slici, ali umjesto toga da imam pravi pelet, to je bio drugi uC koji mi je poslao 2 impulsa.
Svaki put kada je pritisnuto dugme, poslat je 1 impuls i tačno 4 ms nakon slanja drugog impulsa.
Na ovaj način, moći ću uravnotežiti softverski kompajler tako da uvijek ima prikazanih 1000 ft/s.
Korak 13: Više …
Ovo je moj prvi prototip 2010.
Za sva pitanja ili prijavu greške možete mi poslati e -poštu. Engleski ili francuski. Potrudit ću se pomoći.
Preporučuje se:
Električni muzički instrument 3D štampano pojačalo .: 11 koraka (sa slikama)
Električni muzički instrument 3D štampano pojačalo .: Definicija projekta. Nadam se da ću napraviti pojačalo za štampanje za upotrebu sa električnom violinom ili bilo kojim drugim električnim instrumentom. Specifikacija. Dizajnirajte što je moguće više dijelova za 3D štampanje, neka bude stereo, koristite aktivno pojačalo i neka bude malo.Ele
Moje lasersko izrezane zračne puške Upute za sastavljanje: 10 koraka
Moje Upute za sastavljanje laserskog pištolja: Izvinjavam se zbog kašnjenja, evo mojih davno upućenih uputstava o tome kako sastaviti laserski pokazivač, možete kupiti vektorske crteže za izradu … Na CNC-u Laserski rezač! Https: //cults3d.com/en/3d-model/gadget/ray-gunOvo je kako
Nerf hronograf i brzina vatrene cijevi: 7 koraka
Nerf hronograf i brzina vatrene cijevi: UvodKao tinker, uvijek je zadovoljavajuće vidjeti numeričke rezultate vašeg petljanja. Mnogi od nas su već modificirali pištolje Nerf, a tko ne voli bacanje komada pjene po kući pri brzini većoj od 100 fps? Nakon izmjene mnogih Nerf g
Arduino za Nerf: Hronograf i brojač snimaka: 28 koraka (sa slikama)
Arduino za Nerf: Kronograf i brojač snimaka: Moj prethodni Instructable obuhvatio je osnove otkrivanja brzine strelice pomoću infracrvenog odašiljača i detektora. Ovaj projekt čini korak dalje, koristeći tiskanu ploču, zaslon i baterije za izradu prijenosnog brojača municije i kronografa
Kako napraviti vazdušne mišiće!: 4 koraka (sa slikama)
Kako napraviti zračne mišiće !: Morao sam stvoriti neke pokretače za animatronics projekt na kojem radim. Zračni mišići su vrlo moćni pokretači koji rade vrlo slično ljudskim mišićima i imaju fenomenalan omjer snage i težine- mogu djelovati vučnom silom do 400 t