Sadržaj:
- Korak 1: Značajka
- Korak 2: Teorija rada i točnosti
- Korak 3: Shema i popis dijelova
- Korak 4: Gerber datoteka PCB -a
- Korak 5: Lemite svoj PCB
- Korak 6: Programiranje Atmega328p
- Korak 7: LCD zaslon
- Korak 8: STL datoteka
- Korak 9: ROTAJANSKI KODIR
- Korak 10: Cijev osjetnika
- Korak 11: Alternativa cijevi senzora
- Korak 12: Pelet na osciloskopu i kalibraciji
- Korak 13: Više …
Video: Kronograf zračne puške, kronoskop. 3D ispis: 13 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:33
Pozdrav svima, danas ćemo ponovno pogledati projekt koji sam napravio 2010. godine. Kronograf zračne puške. Ovaj uređaj će vam reći brzinu projektila. Pelet, BB ili čak zračna mekana BB plastična kugla.
Za zabavu sam 2010. kupio zračnu pušku. Udarao je u limenke, boce, ciljao. Znam da je brzina ovog pištolja bila najveća 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. No, kratka priča, isti je pištolj bio dostupan SAD -u pri brzini od 1000 stopa/s. ŠTO!? 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 učinio s lemljenjem. Sljedeća stvar koju trebate učiniti je naručiti zamjensku oprugu. Ali čekaj … kolika je trenutna brzina moje nove igračke? Je li proljeće doista potrebno? Ne znam i želim znati. Želim znati sada, ali kako?
Zato sam napravio ovaj projekt. Trebala su mi samo 2 senzora, uC i zaslon, a mi smo u poslu.
Prošli tjedan sam na polici ugledao svoj stari plavi kronograf i razgovarao sam sa sobom: "Zašto ovo ne podijeliš i ne učiniš pouku s njim?" Usput, mogli bismo povećati točnost i dodati indikator baterije. Za uključivanje/isključivanje stavite 1 gumb umjesto 2. Svi se postavljaju na površinu. Sad smo 2020.!
Pa evo ga … počnimo!
Korak 1: Značajka
-Brzina peleta
-Brzina
-20 mhz trčanje, velika točnost
-Automatski isključeno
-Prikazan napon baterije
-shematski dostupan
-pcb dostupan
-dostupan popis dijelova
-STL dostupan
-C kod dostupan
Korak 2: Teorija rada i točnosti
-UC radi na 20Mhz. Koristi se oscilator TCX0 +-2,5 ppm
-Imamo 2 senzora udaljena 3 inča jedan od drugog.
-Promet je pogodio prvi senzor. uC početak brojanja (timer1)
-Promet je pogodio drugi senzor. uC prestati brojati.
-uC provjerite timer1 vrijednost, izračunajte i prikažite brzinu i brzinu.
Koristim 16 -bitni timer1 + preljevna zastavica tov1. 17 bita ukupno 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 unutarnje 8 MHz ili čak kristal?
Moj prvi uređaj je koristio unutarnji oscilator. Radio je, ali ovaj nije bio dovoljno precizan. Varijacija je prevelika. Kristal je bolji, ali temperatura ima različitu učestalost. S tim ne možemo napraviti točan mjerni uređaj. Također, što je frekvencija veća, više će se tikova računati za istu brzinu. Uzorkovanje će biti bolje da ima vrlo dobru točnost. 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 točno 50 ns za projektil pri 38 ft/s.
38,1472637 ft/s podijeljeno s 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 stopa/s imamo toč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? Hajde da vidimo…
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 sati 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,9999875 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 stopa/s
1000 ft/s x 12 je 12000 inča/s
1 sekunda za 12000 "koliko vremena napraviti 3"? 3x1/12000 = 250 us sekundi
250 us / 50 ns = 5000 tika.
Tajmer 1 bit će na 5000
uC učinite matematiku i prikazuje se 1000 ft/s. Zasada je dobro
Za 900 stopa/s
900 ft/s je 10800 /s
3x1/10800 = 277,77 nas
277, 77 ns / 50 ns = 5555, 5555 tik
Tajmer 1 bit će na 5555
uC matematiku i umjesto 900 prikazat će se 900, 09
Zašto? jer je mjerač vremena 1 na 5555 i 0, 5555 je izgubljen. Tajmer za uključivanje i isključivanje se ne može dijeliti.
Imamo pogrešku za 0, 09 na 900 ft/s
0, 09/900x100 = samo 0,01% pogreš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 do matematike 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 bit će na 555, a 4/(1/555x50ns) će se prikazati 9009, 00 će se prikazati
Ovdje je pogreš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 točnost nije linearna. Pri 10000 stopa/s to je 0,1 %. Dobro je to što nikada ne testiramo pelet od 10 000 ft/s.
Još jedna stvar koju treba imati na umu. Kad dođe do prekida, uC uvijek završi zadnju instrukciju prije nego unese u prekid. To je normalno i svi uC to rade. Ako kodirate arduino, u C -u ili čak asembleru. Većinu vremena ćete čekati u vječnoj petlji … čekati. Problem je u tome što u petlji provodimo 2 ciklusa. Obično to nije važno. Ali u našem slučaju. DA, svaki je tik važan. Pogledajmo beskonačnu petlju:
asembler:
petlja:
rjmp petlja
U C:
dok (1) {}
Zapravo C kompajler koristi rjmp upute. 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 uputi. Mi smo ok Ako se to dogodi u drugom ciklusu rjmp upute, u redu smo. Ali ako se to dogodi u prvom ciklusu rjmp upute, izgubit ćemo jedan tic. 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 uputa. Sada sam prilično siguran da će prekid pasti na nop upute. Ako dodam 2000 nop, 0, 05% će pasti na rjmp upute.
Još jedna stvar koju treba imati na umu. Kad dođe do prekida. Kompilator radi mnoge push and pull. Ali to je uvijek isti broj. Dakle, sada možemo napraviti softversku korekciju.
Da zaključim o ovome:
Točnost za prosječni pelet od 1000 ft/s je 0,01%
100x točnije od ostalih 1% na tržištu. Učestalost je veća i s TCXO -om točnija
Na primjer, 1% od 1000 ft/s je manje -više 10 ft/s. Ogromna je razlika.
Korak 3: Shema i popis dijelova
Ovdje sam implementirao svoj krug uključivanja/isključivanja s jednim gumbom. (vidi moju zadnju uputu) Ovaj sklop je vrlo zgodan i radi vrlo dobro.
Koristim atmega328p. Ovaj je programiran u C.
Zaslon je standardno kompatibilan sa 2 reda i LCD -om HD44780. Koristi se 4 bitni način rada.
Regulator od 3,3 V koristi se za osiguravanje napona na TCXO 20 mhz.
D1 služi za pozadinsko osvjetljenje LCD -a. Izborno. Baterija će trajati dulje ako ne instalirate D1.
Svi otpornici i kape su 0805 pakiranja
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 k
R5 160
R6 160
R7 1M
R8 1M
U1 MIC5317-3.3 MIC5317 SOT23-5
U2 DMG6601LVT DMG6601LVT SOT23-6
LCD zaslon 2 reda HD44780. Nema potrebe za kupnjom 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
Ovdje su gerber datoteke
Korak 5: Lemite svoj PCB
Uz shematsku pomoć, lemite sve svoje komponente na tiskanu ploču. Svaki dio ili napisan na tiskanoj ploči, r1, r2 … i tako dalje.
Nemam instaliran D1. Ovo je za pozadinsko osvjetljenje LCD-a. Lijepo je, ali to utječe na trajanje baterije. Zato sam odlučio isključiti pozadinsko osvjetljenje LCD-a.
Korak 6: Programiranje Atmega328p
Provjerite ovdje u koraku 12 da biste programirali atmega328p. Ovdje dajem.hex datoteku za to.
Ovdje je program avrdude spreman za programiranje batch datoteke. Samo kliknite na program usbasp.bat i vaš usbasp je ispravno instaliran. Sve će se učiniti automatski, uključujući bit osigurača.
1drv.ms/u/s!AnKLPDy3pII_vXaGPIZKMXxaXDul?e…
U ovom projektu dijelim i izvorni kod C. Imajte na umu da neke bilješke u njemu mogu biti na francuskom. Https: //1drv.ms/u/s! AnKLPDy3pII_vXUMXHdxajwGRFJx? E…
Korak 7: LCD zaslon
Instalirajte traku i spojite PCB i LCD
Korak 8: STL datoteka
stl datoteku
1drv.ms/u/s!AnKLPDy3pII_vgezy0i0Aw3nD-xr?e…
Potrebna je podrška za kućište, cijev senzora i držač puške.
Sve sam tiskao na 0,2 mm visine.
Korak 9: ROTAJANSKI KODIR
Ovaj okretni davač spojen je na isp konektor. koristi se za promjenu težine peleta te 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.
Gumb ide na SW priključnicu za PCB.
Korak 10: Cijev osjetnika
VAŽNO:
Senzorska cijev mora biti crna, a prijemnik osjetnika mora biti sakriven
Moji prvi pokušaji bili su imati prekrasnu crvenu lulu. Ali ovo je lukavo! Uopće nije radilo. Shvatio sam da dolazi vanjsko svjetlo. Plastika i senzor prijemnika su uvijek uključeni.
Kako bih postigao dobre rezultate, nisam imao izbora promijeniti boju u crnu.
Instalirajte prijemnik odozgo. Čistu plastiku sakrijte crnom bojom, trakom ili žvakom, crnim silikonom.
Postavite odašiljač na dno. Provjerite olovkom odgovaraju li senzori. Možda će se otvor emitera morati malo povećati. ovisit će o kalibraciji vašeg pisača.
Također imam bolji rezultat u hladu. Izbjegavajte izravnu sunčevu svjetlost.
Korak 11: Alternativa cijevi senzora
Ako nemate 3d pisač, to možete učiniti i s bakrenom cijevi. To će jako dobro funkcionirati. Teško je učiniti rupu na toč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 podjela po 50us. 50 us x 6 = 300 us (za 3 inča). 300 us x 4 = 1,2 ms za 1 stopa
1/1,2 ms = 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 regulator (timer1)
Ali da bih točno znao je li brzina točna, trebao mi je način da to izmjerim.
Za kalibraciju softvera i ispitivanje toč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 gumb 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 kad je pritisnuta tipka, poslan je 1 impuls i točno 4 ms nakon slanja drugog impulsa.
Na ovaj način, moći ću uravnotežiti softverski prevoditelj tako da uvijek ima prikaz 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 -poruku. Engleski ili francuski. Potrudit ću se pomoći.
Preporučeni:
Moje lasersko izrezane zračne puške Upute za sastavljanje: 10 koraka
Moje Upute za sastavljanje laserskog zračnog pištolja: Uz ispriku na kašnjenju, evo mojih davno zadanih Uputa 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
Provjerite ispis bez posebnog softvera ili pisača s MS Excelom (ispis bankovnih čekova): 6 koraka
Ispis čekova bez posebnog softvera ili pisača s MS Excelom (ispis bankovnih čekova): Ovo je jednostavna Excel radna knjiga, koja će biti vrlo korisna za bilo koje poduzeće da napiše puno bankovnih čekova. Osim dobavljača, ne trebate poseban pisač ili softver, samo vam je potrebno računalo s MS Excelom i normalnim pisačem. Da, sada možete
Uradi sam sirenu za zračne napade sa otpornicima, kondenzatorima i tranzistorima: 6 koraka (sa slikama)
Uradi sam zračnu sirenu s otpornicima i kondenzatorima i tranzistorima: Ovaj pristupačni DIY projekt zračne sirene prikladan je za istraživanje kruga samoosciliranja koji se sastoji samo od otpornika i kondenzatora i tranzistora koji mogu obogatiti vaše znanje. Pogodan je za obrazovanje nacionalne obrane za djecu, u
Kako napraviti zračne mišiće!: 4 koraka (sa slikama)
Kako napraviti zračne mišiće !: Trebao sam stvoriti neke pokretače za projekt animatronike 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
Canonova ladica F za pisače Pixma-ispis izravno na CD/DVD-ove za ispis: 3 koraka
Canonova ladica F za pisače Pixma-ispis izravno na CD/DVD-ove za ispis: Kako napraviti ladicu za ispis CD-a za vaš Pixma MP600 ili drugi Canon kojem je potrebna ladica F