Përmbajtje:

Kronograf i pushkës ajrore, kronoskop. Shtypur 3D: 13 hapa
Kronograf i pushkës ajrore, kronoskop. Shtypur 3D: 13 hapa

Video: Kronograf i pushkës ajrore, kronoskop. Shtypur 3D: 13 hapa

Video: Kronograf i pushkës ajrore, kronoskop. Shtypur 3D: 13 hapa
Video: Ora 7 - Loja e stafit me pushkë ajrore, kush doli fitues? - 15.04.2021 - Klan Kosova 2024, Korrik
Anonim
Image
Image
Tipar
Tipar

Përshëndetje të gjithëve, sot ne do të rishqyrtojmë një projekt që kam bërë në vitin 2010. Një kronograf i pushkës ajrore. Kjo pajisje do t'ju tregojë shpejtësinë e një predhe. Pellet, BB apo edhe ajrosni topin e butë BB plastik.

Në vitin 2010 bleva një pushkë ajri për argëtim. Po godiste kanaçe, shishe, qëllim. Unë e di se shpejtësia e kësaj arme ishte maksimale 500 këmbë/s. Sepse është ligji i Kanadasë. Disa pushkë ajri më të forta janë në dispozicion, por ju duhet të keni një licencë dhe nuk mund t'i blini ato në Walmart.

Tani e kisha këtë licencë, mund të blija një tjetër. Por histori e shkurtër, e njëjta armë ishte në dispozicion për SHBA me 1000 këmbë/s. ÇFARË!? E njëjta armë? po … Në Kanada, goditja ka një vrimë në të dhe pranvera është më e butë.

Gjëja e parë që duhet të bëni është të mbushni vrimën. Kjo është ajo që kam bërë me saldim. Gjëja tjetër për të bërë ishte të porosisni një pranverë zëvendësuese. Por prisni … cila është shpejtësia aktuale e lodrës sime të re? A është pranvera vërtet e nevojshme? Unë nuk e di dhe dua të di. Dua të di tani, por si?

Kjo është arsyeja pse e bëra këtë projekt. E tëra që më duheshin ishin 2 sensorë, një uC dhe një ekran dhe ne jemi në biznes.

Javën e kaluar, pashë kronografin tim të vjetër blu në një raft dhe flas me veten: "Pse të mos e ndash këtë dhe të bësh një udhëzim me të?" Dhe nga rruga, ne mund të rrisim saktësinë dhe të shtojmë një tregues të baterisë. Vendos 1 buton në vend të 2 për ndezje/fikje. Montimi i të gjithë sipërfaqes. Tani jemi në 2020!

Pra, ja ku është … le të fillojmë!

Hapi 1: Veçori

-Shpejtësia e peletit

-Shpejtësia

-20 mhz duke vrapuar, saktësi e madhe

-Auto fikur

-Tensioni i baterisë i shfaqur

-skematike e disponueshme

-pcb në dispozicion

-Lista e pjesëve në dispozicion

-STL në dispozicion

-Kodi C në dispozicion

Hapi 2: Teoria e Funksionimit dhe Saktësisë

-Kemi një uC që funksionon në 20Mhz. Oscilatori i përdorur është një TCX0 +-2.5 ppm

-Kemi 2 sensorë në 3 inç larg njëri -tjetrit.

-Proketa goditi sensorin e parë. fillimi i numërimit të uC (kohëmatësi 1)

-Proketa goditi sensorin e dytë. uC ndalo numërimin.

-uC kontrolloni vlerën e kohëmatësit1, bëni matematikën dhe shfaqni shpejtësinë dhe shpejtësinë.

Unë jam duke përdorur 16 bit timer1 + flamurin e tejmbushjes tov1. Gjithsej 17 bit për 131071 "tic" për një numërim të plotë.

1/20 mhz = 50 ns Çdo tik është 50ns

131071 x 50 ns = 6.55355 ms për të bërë 3 inç.

6.55355 ms x 4 = 26.21 ms për të bërë 12 inç.

1/26.21 ms = 38.1472637 këmbë/s

Kjo është shpejtësia më e ngadaltë që mund të masë pajisja.

Pse 20 mhz? Pse nuk përdorni 8 mhz të brendshëm apo edhe një kristal?

Pajisja ime e parë ishte duke përdorur oshilatorin e brendshëm. Po punonte, por kjo nuk ishte mjaft e saktë. Ndryshimi është shumë i madh. Një kristal është më i mirë, por temperatura ndryshon në frekuencë. Ne nuk mund të bëjmë një pajisje matëse të saktë me këtë. Gjithashtu, sa më shumë frekuenca të jetë e lartë, aq më shumë tik do të numërohen për të njëjtën shpejtësi. Marrja e mostrave do të jetë më mirë të ketë një saktësi shumë të mirë. Për shkak se një tik nuk është i ndashëm, humbja është e vogël nëse cikli i punës është i shpejtë.

Në 20 MHz kemi hapa prej 50 ns. A e dimë sa e saktë është 50 ns për një predhë me 38 ft/s.

38.1472637 ft/s ndahet me 131071 = 0, 000291042 këmbë

0, 0003880569939956207 këmbë x 12 = 0, 003492512 inç

1/0, 003492512 = 286.37 ". Me fjalë të tjera. Në 50 ft/s ne kemi një saktësi prej +- 1/286" ose +- 0, 003492512 inç

Por nëse oshilatori im është më i keqi dhe funksionon në 20 mhz +2.5 ppm, a është mirë? Le ta zbulojmë…

2.5 ppm prej 20 000 000 është: (20000000/1000000) x 2.5 = 20000050 Hz

Pra, skenari më i keq kemi 50 orë më shumë në 20 mhz. 50shtë 50 orë në 1 sekondë. Sa më shumë tik në timer1 nëse peleti po bën të njëjtën shpejtësi (38.1472637 këmbë/s ose 6.55ms)?

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 këmbë/s

Pra, ne kemi 38.14735907 këmbë/s në vend të 38.1472637 këmbë/s

Tani ne e dimë se 2.5 ppm nuk ndikon në rezultatin.

Këtu është një shembull me shpejtësi të ndryshme

Për 1000 ft/s

1000 ft/s x 12 është 12000 inç/s

1 sekondë për 12000 "sa kohë për të bërë 3"? 3x1/12000 = 250 us sekonda

250 us / 50 ns = 5000 tik.

Timer1 do të jetë në 5000

uC bëni matematikën dhe shfaqet 1000 ft/s. Deri këtu mirë

Për 900 ft/s

900 ft/s është 10800 /s

3x1/10800 = 277.77 us

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

Kohëmatësi 1 do të jetë në 5555

uC bëni matematikën dhe 900, 09 do të shfaqen në vend të 900

Pse? sepse kohëmatësi 1 është në 5555 dhe 0, 5555 humbet. Tiku në kohëmatës nuk ndahet.

Ne kemi një gabim për 0, 09 në 900 ft/s

0, 09/900x100 = 0, vetëm gabim 01%

Për 1500 ft/s1500 ft/s është 18000 /s 3x1/10800 = 166.66 us

166.66 us / 50 ns = 3333.333 tic Timer 1 do të jetë në 3333

uC bëni matematikën dhe 1500.15 do të shfaqet në vend të 1500 është.15/1500x100 = 0, 01%

Për 9000 ft/s

9000 x 12 = 180000 inç / s

3x1/180000 = 27.7777 ne

27.77 us / 50 ns = 555, 555

Kohëmatësi1 do të jetë në 555 dhe 4/(1/555x50ns) do të shfaqet 9009, 00 do të shfaqet

Këtu gabimi është 9 këmbë/s në 9000 = 0, 1%

Siç mund ta shihni % gabimi po rritet kur shpejtësia është më e lartë. Por qëndroni <0.1%

Ato rezultate janë shumë të mira.

Por saktësia nuk është lineare. Me 10000 ft/s është 0, 1 %. E reja e mirë është se ne kurrë nuk testojmë një topth 10, 000 ft/s.

Një gjë tjetër që duhet mbajtur parasysh. Kur ndodh një ndërprerje, uC gjithmonë përfundon udhëzimin e fundit para se të hyjë në ndërprerje. Kjo është normale dhe të gjithë uC e bëjnë këtë. Nëse kodoni arduino, në C apo edhe montues. Shumicën e kohës ju do të prisni në një lak përgjithmonë … për të pritur. Problemi është, në një lak ne kalojmë 2 cikle. Normalisht kjo nuk është e rëndësishme. Por në rastin tonë. PO, çdo tik është i rëndësishëm. Le të shikojmë një lak të pafund:

montues:

lak:

lak rjmp

Në C:

ndërsa (1) {}

Në fakt përpiluesi C përdor udhëzimin rjmp. RJMP është 2 cikle.

Kjo do të thotë nëse ndërprerja ndodh në ciklin e parë, ne humbim një cikël (tic) (50ns).

Mënyra ime për ta rregulluar atë është të shtoj shumë udhëzime nop në lak. NOP është 1 cikël.

lak:

jo

jo

jo

jo

jo

lak rjmp

Nëse ndërprerja ndodh në një udhëzim jo. Ne jemi ok. Nëse ndodh në ciklin e dytë të udhëzimit rjmp ne jemi në rregull. Por nëse ndodh në ciklin e parë të udhëzimit rjmp, ne do të humbim një tik. Po është vetëm 50 ns, por siç mund ta shihni më lart, 50 ns në 3 inç nuk është asgjë. Ne nuk mund ta korrigjojmë këtë me softuer sepse nuk e dimë kur ndodh saktësisht ndërprerja. Kjo është arsyeja pse në kod do të shihni shumë udhëzime jo. Tani jam shumë i sigurt se ndërprerja do të bjerë në një udhëzim jo. Nëse shtoj 2000 nop kam 0, 05% për të rënë në udhëzimin rjmp.

Një gjë tjetër që duhet mbajtur parasysh. Kur ndodh ndërprerja. Përpiluesi bën shumë shtytje dhe tërheqje. Por është gjithmonë i njëjti numër. Pra, tani ne mund të bëjmë një korrigjim të softuerit.

Për të përfunduar për këtë:

Saktësia për një topth mesatar prej 1000 ft/s është 0, 01%

100 herë më i saktë se 1% tjetër në treg. Frekuenca është më e lartë dhe me TCXO, më e saktë

Për shembull, 1% e 1000 ft/s është pak a shumë 10 ft/s. Ashtë një ndryshim i madh.

Hapi 3: Skema dhe Lista e Pjesëve

Skema dhe Lista e Pjesëve
Skema dhe Lista e Pjesëve

Këtu zbatova qarkun e ndezjes/fikjes së një butoni tim. (shih udhëzimin tim të fundit) Ky qark është shumë i dobishëm dhe funksionon shumë mirë.

Unë jam duke përdorur një atmega328p. Ky është programuar në C.

Ekrani është i pajtueshëm me një linjë standarde LCD 2 HD me HD44780. Përdoret mënyra 4 bit.

Një rregullator 3.3v përdoret për të siguruar tension në TCXO 20mhz.

D1 është për ndriçim të pasmë LCD. Opsionale. Bateria do të zgjasë më shumë nëse nuk e instaloni D1.

Të gjithë rezistentët dhe kapakët janë pako 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

Shfaq LCD LCD 2 linjë HD44780. Nuk ka nevojë të blini modulin i2c.

Sensorë:

2x Emitter OP140A

2x Marrës OPL530

Kodifikuesi: PEC11R-4215K-S0024 *Mos harroni të shtoni rezistencë 4x 10k dhe 2x.01uf për të bërë filtrin e kodifikuesit. shihni foton më poshtë

Hapi 4: Skedari PCB Gerber

PCB Gerber File
PCB Gerber File
PCB Gerber File
PCB Gerber File
PCB Gerber File
PCB Gerber File
PCB Gerber File
PCB Gerber File

Këtu janë skedarët gerber

Hapi 5: Saldoni PCB -në tuaj

Saldoni PCB -në tuaj
Saldoni PCB -në tuaj
Saldoni PCB -në tuaj
Saldoni PCB -në tuaj
Saldoni PCB -në tuaj
Saldoni PCB -në tuaj

Me ndihmën skematike, lidhni të gjithë përbërësin tuaj në PCB. Çdo pjesë ose e shkruar në pcb, r1, r2… dhe kështu me radhë.

Unë nuk kam të instaluar D1. Kjo është për dritën e pasme LCD. Beautifulshtë e bukur, por jeta e baterisë ndikohet. Kështu që unë zgjedh ta mbaj dritën e pasme të LCD fikur.

Hapi 6: Programimi i Atmega328p

Programimi i Atmega328p
Programimi i Atmega328p

Kontrolloni këtu në hapin 12 për të programuar atmega328p. Unë ofroj këtu skedarin hex.

Këtu është programi avrdude gati për të programuar skedarin grumbull. Klikoni vetëm në programin usbasp.bat dhe usbasp juaj është instaluar në mënyrë korrekte. Të gjitha do të bëhen automatikisht duke përfshirë edhe siguresën.

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

Në këtë projekt po ndaj edhe kodin burimor C. Jini të vetëdijshëm se disa shënime në të mund të jenë në frëngjisht. Https: //1drv.ms/u/s! AnKLPDy3pII_vXUMXHdxajwGRFJx? E…

Hapi 7: Ekrani LCD

Ekran LCD
Ekran LCD
Ekran LCD
Ekran LCD

Instaloni disa kaseta dhe lidhni PCB dhe LCD së bashku

Hapi 8: Skedari STL

Skedari STL
Skedari STL
Skedari STL
Skedari STL
Skedari STL
Skedari STL

skedari stl

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

Mbështetja është e nevojshme për rrethimin, tubin e sensorit dhe mbajtësin e pushkës.

Të gjitha i kam shtypur në.2 mm të lartë.

Hapi 9: KODI ROTAR

KODIKU ROTAR
KODIKU ROTAR
KODIKU ROTAR
KODIKU ROTAR
KODIKU ROTAR
KODIKU ROTAR

Ky kodifikues rrotullues është i lidhur me lidhësin isp. përdoret për të ndryshuar peshën e peletit dhe për të ndezur dhe fikur pajisjen.

vcc isp pin 2 (tërheq rezistencën)

Terminali A (i verdhë) shkoni te kunja 1 e ISP -së

Terminali B (jeshil) shkoni në pinin 3 të ISP -së

Terminali C (gnd) isp pin 6

Unë jam duke shtuar 2 fotografi për të parë ndryshimin midis të pasurit një filtër kundrejt asnjë filtri. Ju mund ta shihni lehtësisht ndryshimin midis të dyve.

Butoni i shtypjes shkoni te lidhësi PCB SW.

Hapi 10: Tub sensori

Tub sensori
Tub sensori
Tub sensori
Tub sensori
Tub sensori
Tub sensori

E RORTNDSISHME:

Tubi i sensorit duhet të jetë i Zi dhe marrësi i sensorit duhet të jetë i fshehur

Përpjekjet e mia të para ishte të kisha një tub të bukur të kuq. Por kjo është e ndërlikuar! Nuk po punonte fare. Kuptova se drita e jashtme po hynte, hidheni plastikën dhe sensori i marrësit ishte gjithmonë i ndezur.

Për të pasur një rezultat të mirë, nuk kisha zgjidhje të ndryshoja ngjyrën në të zezë.

Instaloni marrësin në krye. Dhe fshihni plastikën e qartë me bojë të zezë, shirit ose çamçakëz, silikon të zi.

Instaloni emetuesin në fund.. Kontrolloni me një stilolaps nëse sensorët reagojnë mirë. Ndoshta vrima e emetuesit do të duhet të zmadhohet pak. do të varet nga kalibrimi i printerit tuaj.

Unë gjithashtu kam një rezultat më të mirë në hije. Shmangni rrezet e diellit direkte.

Hapi 11: Alternativa e tubave të sensorit

Alternativa e tubave të sensorit
Alternativa e tubave të sensorit
Alternativa e tubave të sensorit
Alternativa e tubave të sensorit

Nëse nuk keni një printer 3d, mund ta bëni të njëjtën gjë me një tub bakri. Do të funksionojë shumë mirë për. Gjëja e vështirë për të bërë është vrima në saktësisht 3 inç dhe marrësi dhe emetuesi duhet të jenë të përafruar.

Hapi 12: Një topth në osciloskop dhe kalibrim

Një topth në osciloskop dhe kalibrim
Një topth në osciloskop dhe kalibrim

Ky është një topth i vërtetë që kalon në tub. Sonda 1 e verdhë është sensori 1. Sonda 2 ngjyrë vjollce është sensori 2.

Koha/div është 50 ne.

Ne mund të numërojmë 6 divizione 50us. 50 us x 6 = 300 us (për 3 inç). 300 us x 4 = 1.2 ms për 1 këmbë

1/1.2ms = 833.33 ft/s

Ne gjithashtu mund të shohim që sensori është normalisht në 5v. Dhe a mund ta bllokojmë dritën emetuese, sensori bie në 0.

Theshtë mënyra se si fillon dhe ndalon kundërshtarin e tij (kohëmatësi 1)

Por për të ditur saktësisht nëse shpejtësia ishte e saktë, më duhej një mënyrë për ta matur këtë.

Për të bërë kalibrimin e softuerit dhe për të testuar saktësinë e kësaj pajisjeje, kam përdorur një oshilator reference 10 mhz. Shih GPSDO -në time në udhëzime të tjera.

Unë ushqej një atmega328 tjetër me këtë 10 mhz. Dhe programoni këtë në montues për të më dërguar 2 pulse sa herë që shtyp një buton për të simuluar një topth. Pikërisht ashtu siç pamë në foto, por në vend që të kisha një topth të vërtetë, ishte një tjetër UC që më dërgoi 2 impulse.

Sa herë që shtyhej butoni 1 dërgohej 1 puls dhe saktësisht 4 ms pasi ishte dërguar një impuls tjetër.

Në këtë mënyrë, unë jam në gjendje të balancoj përpiluesin e softuerit që të shfaqet gjithmonë 1000 ft/s.

Hapi 13: Më shumë…

Më shumë…
Më shumë…
Më shumë…
Më shumë…

Ky është prototipi im i parë i vitit 2010.

Për çdo pyetje ose raport gabimi mund të më dërgoni me email. Anglisht ose frëngjisht. Unë do të bëj çmos për të ndihmuar.

Recommended: