Sisällysluettelo:

Ilmakivääri Chronograph, Chronoscope. 3D -tulostettu: 13 vaihetta
Ilmakivääri Chronograph, Chronoscope. 3D -tulostettu: 13 vaihetta

Video: Ilmakivääri Chronograph, Chronoscope. 3D -tulostettu: 13 vaihetta

Video: Ilmakivääri Chronograph, Chronoscope. 3D -tulostettu: 13 vaihetta
Video: maple leaf vsr-10 zero trigger gen3 2024, Marraskuu
Anonim
Image
Image
Ominaisuus
Ominaisuus

Hei kaikki, tänään palaamme uudelleen projektiin, jonka olen tehnyt vuonna 2010. Ilmakiväärikello. Tämä laite kertoo ammuksen nopeuden. Pelletti, BB tai jopa ilmapehmeä BB -muovipallo.

Vuonna 2010 ostin ilmakiväärin huvin vuoksi. Osui tölkkeihin, pulloihin, tavoite. Tiedän, että tämän aseen nopeus oli enintään 500 jalkaa/s. Koska se on Kanadan laki. Jotkut vahvemmat ilmakiväärit ovat saatavilla, mutta sinulla on oltava lisenssi, etkä voi ostaa niitä Walmartista.

Nyt minulla oli tämä lisenssi, voisin ostaa toisen. Mutta lyhyt tarina, sama ase oli Yhdysvaltojen käytettävissä nopeudella 1000 jalkaa/s. MITÄ!? Sama ase? kyllä… Kanadassa iskussa on reikä ja jousi on pehmeämpi.

Ensimmäinen asia on täyttää reikä. Näin tein juotoksella. Seuraava asia oli tilata uusi jousi. Mutta odota … mikä on uuden leluni nykyinen nopeus? Onko kevät todella tarpeellinen? En tiedä ja haluan tietää. Haluan tietää nyt, mutta miten?

Siksi tein tämän projektin. Tarvitsin vain 2 anturia, uC: n ja näytön, ja olemme liiketoiminnassa.

Viime viikolla näin vanhan sinisen kronografiini hyllyllä ja puhun itselleni: "Miksi et jaa tätä ja tee opettavaista sen kanssa?" Ja muuten, voimme lisätä tarkkuutta ja lisätä akun ilmaisimen. Laita päälle/pois päältä asettamalla 1 painike 2 sijasta. Kaikki pinta -asennukset. Olemme nyt vuonna 2020!

Joten siinä se on … aloitetaan!

Vaihe 1: Ominaisuus

-Pelletin nopeus

-Nopeus

-20 mhz käynnissä, valtava tarkkuus

-Automaattinen pois päältä

-Akkujännite näkyy

-kaavamainen saatavilla

-kpl saatavilla

-varaosaluettelo saatavilla

-STL saatavilla

-C -koodi saatavilla

Vaihe 2: Toimintateoria ja tarkkuus

-Meillä on uC 20Mhz. Käytetty oskillaattori on TCX0 +-2,5 ppm

-Meillä on 2 anturia 3 tuuman päässä toisistaan.

-Ammus osui ensimmäiseen anturiin. uC -aloituslaskenta (ajastin1)

-Ammus osui toiseen anturiin. uC lopeta laskeminen.

-uC tarkista ajastimen1 arvo, tee laskutoimitus ja näytön nopeus ja nopeus.

Käytän 16 -bittistä ajastinta1 + ylivuotolippua tov1. 17 bittiä yhteensä 131071 "tic": lle täydelle laskulle.

1/20 mhz = 50 ns. Jokainen tikti on 50ns

131071 x 50 ns = 6,55355 ms - 3 tuumaa.

6,55355 ms x 4 = 26,21 ms - 12 tuumaa.

1/26,21 ms = 38,1472637 jalkaa/s

Tämä on hitain nopeus, jonka laite voi mitata.

Miksi 20 mhz? Miksi et käytä sisäistä 8 MHz: n tai jopa cristalin?

Ensimmäinen laitteeni käytti sisäistä oskillaattoria. Toimi, mutta tämä ei ollut tarpeeksi tarkka. Vaihtelu on liian suuri. Cristal on parempi, mutta lämpötila vaihtelee taajuudella. Emme voi tehdä tarkkaa mittauslaitetta sen kanssa. Lisäksi mitä enemmän taajuus on korkea, sitä enemmän lasketaan samaa nopeutta. Näytteenotto on parempi, jos se on erittäin hyvä. Koska tikti ei ole jaettavissa, tappio on pieni, jos käyttöjakso on nopea.

Taajuudella 20 MHz on 50 ns askel. Tiedämmekö kuinka tarkkaa se on 50 ns ammukselle nopeudella 38 ft/s.

38,1472637 jalkaa/s jaa 131071 = 0, 000291042 jalkaa

0, 0003880569939956207 jalkaa x 12 = 0, 003492512 tuumaa

1/0, 003492512 = 286,37 ". Toisin sanoen nopeudella 50 jalkaa/s tarkkuus on +- 1/286" tai +- 0, 003492512 tuumaa

Mutta jos oskillaattorini on huonoin ja toimii 20 MHz +2,5 ppm: llä, onko se ok? Otetaan selvää…

2,5 ppm 20000000 on: (20000000/1000000) x 2,5 = 20000050 Hz

Joten pahimmassa tapauksessa meillä on vielä 50 kelloa 20 MHz: llä. Kello on 50 sekuntia. Kuinka monta tikkiä enemmän ajastimella 1, jos pelletti ajaa samaa nopeutta (38,1472637 jalkaa/s tai 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 jalkaa/s

Joten meillä on 38,143535907 jalkaa/s 38,1472637 jalkaa/s sijaan

Nyt tiedämme, että 2,5 ppm ei vaikuta tulokseen.

Tässä on esimerkki eri nopeudesta

1000 ft/s

1000 jalkaa/s x 12 on 12000 tuumaa/s

1 sekunti 12000 "kuinka monta aikaa tehdä 3"? 3x1/12000 = 250 us sekuntia

250 us / 50 ns = 5000 tic.

Ajastin1 on 5000

uC do the math ja 1000 ft/s tulee näkyviin. Toistaiseksi niin hyvin

900 jalkaa/s

900 jalkaa/s on 10800 tuumaa/s

3x1/10800 = 277,77 meitä

277, 77 ns / 50 ns = 5555, 5555 tic

Ajastin 1 on 5555

uC do the math ja 900, 09 näytetään 900: n sijasta

Miksi ? koska ajastin 1 on 5555 ja 0, 5555 häviää. Ajastimen tikkiä ei voi jakaa.

Meillä on virhe 0, 09 900 ft/s

0, 09/900x100 = 0, 01% vain virhe

1500 jalkaa/s 1500 jalkaa/s on 18000 tuumaa/s 3x1/10800 = 166,66 meitä

166.66 us / 50 ns = 3333.333 tic Ajastin 1 on 3333

uC do the math ja 1500.15 näytetään 1500: n sijasta.15/1500x100 = 0, 01%

9000 jalkaa/s

9000 x 12 = 180000 tuumaa / s

3x1/180000 = 27.7777 meille

27,77 us / 50 ns = 555, 555

Ajastin1 on 555 ja 4/(1/555x50ns) näytetään 9009, 00 näkyy

Tässä virhe on 9 jalkaa/s 9000 = 0, 1%

Kuten näette % virhe kasvaa, kun nopeus on suurempi. Mutta pysy <0,1%

Nuo tulokset ovat erittäin hyviä.

Mutta tarkkuus ei ole lineaarinen. Nopeudella 10000 ft/s se on 0, 1 %. Hyvä uutinen on, ettemme koskaan testaa 10 000 ft/s pellettiä.

Toinen asia pitää mielessä. Kun keskeytys tapahtuu, uC suorittaa aina viimeisen ohjeen ennen keskeytyksen aloittamista. Tämä on normaalia ja kaikki uC: t tekevät tämän. Jos koodit arduino, C: ssä tai jopa assemblerissa. Suurimman osan ajasta odotat ikuisesti silmukassa… odottamaan. Ongelma on, että silmukassa vietämme 2 sykliä. Normaalisti tämä ei ole tärkeää. Mutta meidän tapauksessamme. KYLLÄ, jokainen tikki on tärkeä. Katsotaan loputonta silmukkaa:

kokoonpanija:

silmukka:

rjmp -silmukka

C: ssä:

samalla (1) {}

Itse asiassa C -kääntäjä käyttää rjmp -käskyä. RJMP on 2 sykliä.

Tämä tarkoittaa, että jos keskeytys tapahtuu ensimmäiselle jaksolle, menetämme yhden syklin (tic) (50ns).

Minun tapa korjata se on lisätä monia nop -ohjeita silmukkaan. NOP on 1 sykli.

silmukka:

nop

nop

nop

nop

nop

rjmp -silmukka

Jos keskeytys tapahtuu nop -käskystä. Olemme kunnossa. Jos se tapahtuu rjmp -käskyn toisella jaksolla, olemme kunnossa. Mutta jos se tapahtuu rjmp -opetuksen ensimmäisellä kierroksella, menetämme yhden tikin. Kyllä, se on vain 50 ns, mutta kuten yllä näet, 50 ns 3 tuumaa ei ole mitään. Emme voi korjata tätä ohjelmistolla, koska emme tiedä milloin keskeytys tapahtuu. Siksi koodissa näet paljon nop -ohjeita. Nyt olen melko varma, että keskeytys kuuluu nop -käskyyn. Jos lisään 2000 nop, minulla on 0, 05% rjmp -käskystä.

Toinen asia pitää mielessä. Kun keskeytys tapahtuu. Kääntäjä tekee monia työntöjä ja vetoja. Mutta se on aina sama numero. Joten nyt voimme tehdä ohjelmistokorjauksen.

Lopuksi tähän:

Tarkkuus keskimäärin 1000 ft/s pelletille on 0, 01%

100x tarkempi kuin muut 1% markkinoilla. Taajuus on korkeampi ja TCXO: lla tarkempi

Esimerkiksi 1% 1000 ft/s on enemmän tai vähemmän 10 ft/s. Se on valtava ero.

Vaihe 3: Kaavio ja osaluettelo

Kaavio ja osaluettelo
Kaavio ja osaluettelo

Tässä toteutin yhden painikkeen päälle/pois -piirin. (katso viimeinen ohjeeni) Tämä piiri on erittäin kätevä ja toimii erittäin hyvin.

Käytän atmega328p: tä. Tämä on ohjelmoitu C.

Näyttö on vakiona 2 -rivinen lcd HD44780 -yhteensopiva. 4 -bittistä tilaa käytetään.

3.3 V: n säätimellä syötetään jännitettä TCXO 20 MHz: lle.

D1 on lcd -taustavalo. Valinnainen. Akku kestää kauemmin, jos et asenna D1: tä.

Kaikki vastukset ja korkit ovat paketissa 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.2k

R5 160

R6 160

R7 1M

R8 1M

U1 MIC5317-3.3 MIC5317 SOT23-5

U2 DMG6601LVT DMG6601LVT SOT23-6

Näyttö lcd 2 -rivinen HD44780. Ei tarvitse ostaa i2c -moduulia.

Anturit:

2x lähetin OP140A

2x vastaanotin OPL530

Kooderi: PEC11R-4215K-S0024 *Muista lisätä 4x 10k vastukset ja 2x.01uf anturisuodattimen tekemiseen. katso alla oleva kuva

Vaihe 4: PCB Gerber -tiedosto

PCB Gerber -tiedosto
PCB Gerber -tiedosto
PCB Gerber -tiedosto
PCB Gerber -tiedosto
PCB Gerber -tiedosto
PCB Gerber -tiedosto
PCB Gerber -tiedosto
PCB Gerber -tiedosto

Tässä ovat gerber -tiedostot

Vaihe 5: Juottaa tietokoneesi

Juotos PC
Juotos PC
Juotos PC
Juotos PC
Juotos PC
Juotos PC

Kaavion avulla voit juottaa kaikki komponentit piirilevylle. Jokainen osa tai kirjoitettu piirilevylle, r1, r2… ja niin edelleen.

En ole asentanut D1: tä. Tämä koskee LCD-taustavaloa. Se on kaunis, mutta akun kesto vaikuttaa. Joten päätän pitää LCD-taustavalon sammutettuna.

Vaihe 6: Atmega328p: n ohjelmointi

Atmega328p: n ohjelmointi
Atmega328p: n ohjelmointi

Tarkista täältä vaiheessa 12 ohjelmoidaksesi atmega328p. Annan tässä.hex -tiedoston tätä varten.

Tässä on avrdude -ohjelma valmis ohjelmoimaan erätiedosto. Napsauta vain ohjelmaa usbasp.bat ja usbasp on asennettu oikein. Kaikki tehdään automaattisesti, mukaan lukien sulake.

1drv.ms/u/s!AnKLPDy3pII_vXaGPIZKMXxaXDul?e…

Tässä projektissa jaan myös C -lähdekoodin. Huomaa, että jokin huomautus voi olla ranskaksi. Http://1drv.ms/u/s! AnKLPDy3pII_vXUMXHdxajwGRFJx? E…

Vaihe 7: LCD -näyttö

LCD -näyttö
LCD -näyttö
LCD -näyttö
LCD -näyttö

Asenna teippi ja liitä piirilevy ja LCD -näyttö yhteen

Vaihe 8: STL -tiedosto

STL -tiedosto
STL -tiedosto
STL -tiedosto
STL -tiedosto
STL -tiedosto
STL -tiedosto

stl -tiedosto

1drv.ms/u/s!AnKLPDy3pII_vgezy0i0Aw3nD-xr?e…

Tukea tarvitaan kotelolle, anturiputkelle ja kivääripidikkeelle.

Olen tulostanut kaikki.2 mm korkeat.

Vaihe 9: PYÖRIVÄ KOODERI

PYÖRIVÄ KOODERI
PYÖRIVÄ KOODERI
PYÖRIVÄ KOODERI
PYÖRIVÄ KOODERI
PYÖRIVÄ KOODERI
PYÖRIVÄ KOODERI

Tämä pyörivä anturi on kytketty isp -liittimeen. sitä käytetään pelletin painon muuttamiseen sekä laitteen käynnistämiseen ja sammuttamiseen.

vcc isp pin 2 (vedä vastus)

Liitin A (keltainen) siirry Internet -palveluntarjoajan nastaan 1

Liitin B (vihreä) siirry Internet -palveluntarjoajan nastaan 3

Liitin C (gnd) isp -nasta 6

Lisään 2 kuvaa nähdäkseni eron suodattimen ja suodattimen välillä. Näet helposti eron molempien välillä.

Painike siirtyy piirilevyn SW -liittimeen.

Vaihe 10: Anturiputki

Anturiputki
Anturiputki
Anturiputki
Anturiputki
Anturiputki
Anturiputki

TÄRKEÄ:

Anturiputken on oltava musta ja anturivastaanottimen on oltava piilossa

Ensimmäiset yritykseni oli saada kaunis punainen putki. Mutta tämä on hankalaa! Se ei toiminut ollenkaan. Tajusin, että ulkopuolinen valo tuli, heittäen muovi- ja vastaanottimen anturin aina päälle.

Hyvän tuloksen saavuttamiseksi minulla ei ollut vaihtoehtoa vaihtaa väriä mustaksi.

Asenna vastaanotin päälle. Ja piilota kirkas muovi mustalla maalilla, teipillä tai kumilla, mustalla silikonilla.

Asenna säteilijä pohjaan.. Tarkista kynällä, anturit reagoivat hyvin. Ehkä lähettimen reikää on suurennettava hieman. se riippuu tulostimen kalibroinnista.

Minulla on myös parempi tulos varjossa. Vältä suoraa auringonvaloa.

Vaihe 11: Vaihtoehtoinen anturiputki

Vaihtoehtoinen anturiputki
Vaihtoehtoinen anturiputki
Vaihtoehtoinen anturiputki
Vaihtoehtoinen anturiputki

Jos sinulla ei ole 3D -tulostinta, voit tehdä saman kupariputken kanssa. Se tulee toimimaan erittäin hyvin. Vaikea asia on, että reikä on täsmälleen 3 tuumaa ja vastaanotin ja lähetin on kohdistettava.

Vaihe 12: Pelletti oskilloskoopilla ja kalibrointi

Pelletti oskilloskoopilla ja kalibrointi
Pelletti oskilloskoopilla ja kalibrointi

Tämä on todellinen pelletin ohitus putkeen. Mittapää 1 keltainen on anturi 1. Anturi 2 violetti on anturi 2.

Aika/div on 50 meitä.

Voimme laskea 6 50us -divisioonaa. 50 us x 6 = 300 us (3 tuumaa). 300 us x 4 = 1,2 ms yhdelle jalalle

1/1,2 ms = 833,33 jalkaa/s

Voimme myös nähdä, että anturi on normaalisti 5 voltin jännitteellä. Ja voimmeko estää emitterivalon, anturin putoamisen 0: een.

Se on tapa, jolla uC aloittaa ja pysäyttää hänen laskurinsa (ajastin1)

Mutta tietääkseni tarkasti, onko nopeus tarkka, tarvitsin keinon mitata tämä.

Ohjelmiston kalibrointiin ja tämän laitteen tarkkuuden testaamiseen käytin 10 mhz: n vertailuoskillaattoria. Katso GPSDOni muista ohjeista.

Syön toista atmega328: ta tällä 10 MHz: llä. Ja ohjelmoi tämä kokoonpanossa lähettämään minulle 2 pulssia joka kerta, kun painan painiketta simuloidaksesi pellettiä. Täsmälleen kuten näimme kuvassa, mutta todellisen pelletin sijaan se oli toinen uC, joka lähetti minulle 2 pulssia.

Joka kerta, kun painiketta painettiin, lähetettiin 1 pulssi ja tarkalleen 4 ms toisen pulssin lähettämisen jälkeen.

Tällä tavalla pystyn tasapainottamaan ohjelmiston kääntäjän niin, että näytössä on aina 1000 jalkaa/s.

Vaihe 13: Lisää…

Lisää…
Lisää…
Lisää…
Lisää…

Tämä on ensimmäinen prototyyppini vuonna 2010.

Jos sinulla on kysyttävää tai virheraporttia, voit lähettää minulle sähköpostia. Englanti tai ranska. Teen parhaani auttaakseni.

Suositeltava: