Satura rādītājs:

Gaisa šautenes hronogrāfs, hronoskops. 3D drukāts: 13 soļi
Gaisa šautenes hronogrāfs, hronoskops. 3D drukāts: 13 soļi

Video: Gaisa šautenes hronogrāfs, hronoskops. 3D drukāts: 13 soļi

Video: Gaisa šautenes hronogrāfs, hronoskops. 3D drukāts: 13 soļi
Video: Регулировка мощности Hatsan AT44 без снятия приклада 2024, Jūlijs
Anonim
Image
Image
Iezīme
Iezīme

Sveiki visiem, šodien mēs atkārtoti apmeklēsim 2010. gadā veikto projetu. Gaisa šautenes hronogrāfs. Šī ierīce jums pateiks šāviņa ātrumu. Granulu, BB vai pat gaisa mīksta BB plastmasas bumba.

2010. gadā jautrībai nopirku gaisa šauteni. Sita ar kārbām, pudelēm, mērķēja. Es zinu, ka šī lielgabala ātrums bija maksimums 500 pēdas/s. Jo tas ir Kanādas likums. Ir pieejamas dažas spēcīgākas gaisa šautenes, taču jums ir nepieciešama licence, un jūs nevarat tās iegādāties Walmart.

Tagad man bija šī licence, es varētu nopirkt citu. Bet īss stāsts, tas pats lielgabals bija pieejams ASV ar ātrumu 1000 pēdas/s. KAS!? Tas pats lielgabals? jā… Kanādā triecienam ir caurums, un atspere ir mīkstāka.

Pirmais, kas jādara, ir aizpildīt caurumu. To es darīju ar lodmetālu. Nākamā lieta bija pasūtīt rezerves atsperi. Bet pagaidiet … kāds ir manas jaunās rotaļlietas pašreizējais ātrums? Vai pavasaris tiešām ir vajadzīgs? Nezinu un gribu zināt. Es gribu zināt tagad, bet kā?

Tāpēc es veicu šo projektu. Viss, kas man bija vajadzīgs, bija 2 sensori, uC un displejs, un mēs strādājam.

Pagājušajā nedēļā es plauktā ieraudzīju savu veco zilo hronogrāfu un runāju ar sevi: "Kāpēc nedalīties ar šo un nedarīt ar to pamācību?" Un, starp citu, mēs varētu palielināt precizitāti un pievienot akumulatora indikatoru. Lai ieslēgtu/izslēgtu, ievietojiet 1 pogu 2 vietā. Visas virsmas stiprinājums. Tagad esam 2020. gadā!

Tātad tas ir … sāksim!

1. darbība: iezīme

-granulu ātrums

-Tuvums

-20 mhz skriešana, milzīga precizitāte

-Automātiski izslēgts

-Tiek parādīts akumulatora spriegums

-pieejama shematiska

-pcb pieejams

-pieejams rezerves daļu saraksts

-STL pieejams

-C kods pieejams

2. darbība: darbības teorija un precizitāte

-Mums ir uC darbojas 20Mhz. Izmantotais oscilators ir TCX0 +-2,5 ppm

-Mums ir 2 sensori 3 collu attālumā viens no otra.

-Šāviņš trāpīja pirmajā sensorā. uC sākt skaitīšanu (taimeris1)

-Šāviņš trāpīja otrajā sensorā. uC beidz skaitīt.

-uC pārbaudiet taimera1 vērtību, veiciet matemātisko un displeja ātrumu un ātrumu.

Es izmantoju 16 bitu taimeri1 + pārpildes karodziņu tov1. 17 biti kopā par 131071 "tic" pilnam skaitīšanai.

1/20 mhz = 50 ns. Katrs tic ir 50ns

131071 x 50 ns = 6,55355 ms līdz 3 collām.

6,55355 ms x 4 = 26,21 ms līdz 12 collām.

1/26,21 ms = 38,1472637 pēdas/s

Šis ir lēnākais ātrums, ko ierīce var izmērīt.

Kāpēc 20 mhz? Kāpēc neizmantot iekšējo 8 MHz vai pat kristālu?

Mana pirmā ierīce izmantoja iekšējo oscilatoru. Darbojās, bet šis nebija pietiekami precīzs. Atšķirība ir pārāk liela. Kristāls ir labāks, bet temperatūra mainās. Ar to mēs nevaram izveidot precīzu mērīšanas ierīci. Turklāt, jo lielāka frekvence ir augsta, jo vairāk ticamības tiks skaitīts ar tādu pašu ātrumu. Paraugu ņemšana būs labāka, lai iegūtu ļoti labu precizitāti. Tā kā tic nav sadalāms, zaudējumi ir nelieli, ja darba cikls ir ātrs.

Pie 20 MHz mums ir soļi 50 ns. Vai mēs zinām, cik precīzs ir 50 ns šāviņam ar ātrumu 38 pēdas/s.

38,1472637 pēdas/s daliet ar 131071 = 0, 000291042 pēdas

0 0003880569939956207 pēdas x 12 = 0, 003492512 collas

1/0, 003492512 = 286,37 ". Citiem vārdiem sakot. Ar ātrumu 50 pēdas/s mums ir precizitāte +- 1/286" vai +- 0, 003492512 collas

Bet, ja mans oscilators ir vissliktākais un darbojas ar ātrumu 20 mhz +2,5 ppm, vai tas ir labi? Noskaidrosim…

2,5 ppm no 20 000 000 ir: (20000000/1000000) x 2,5 = 20000050 Hz

Tātad sliktākajā gadījumā mums ir vēl 50 pulksteņi 20 MHz. Tas ir 50 pulkstenis 1 sekundē. Cik daudz tic vairāk par taimeri1, ja granulas veic tādu pašu ātrumu (38,1472637 pēdas/s vai 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 pēdas/s

Tātad mums ir 38,143535907 pēdas/s, nevis 38,1472637 pēdas/s

Tagad mēs zinām, ka 2,5 ppm neietekmē rezultātu.

Šeit ir dažāda ātruma piemērs

Par 1000 pēdām/s

1000 pēdas/s x 12 ir 12000 collas/s

1 sekunde uz 12000 "cik daudz laika darīt 3"? 3x1/12000 = 250 ASV sekundes

250 ASV dolāri / 50 ns = 5000 tic.

Taimeris 1 būs pie 5000

uC do the math, un tiek parādīts 1000 pēdas/s. Tik tālu, labi

Par 900 pēdām/s

900 pēdas/s ir 10800 collas/s

3x1/10800 = 277,77 mums

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

Taimeris 1 būs pie 5555

uC do the math un 900, tiks parādīts 09, nevis 900

Kāpēc? jo taimeris 1 ir pie 5555 un 0, 5555 ir zaudēts. Taimera atzīmes nav sadalāmas.

Mums ir kļūda 0, 09 par 900 pēdām/s

0, 09/900x100 = 0, 01% tikai kļūda

1500 pēdām/s 1500 pēdas/s ir 18000 collas/s 3x1/10800 = 166,66 ASV

166,66 mums / 50 ns = 3333,3333 tic 1. taimeris būs pie 3333

uC veic matemātiku un 1500.15 tiks parādīts 1500 vietā, tas ir.15/1500x100 = 0, 01%

Par 9000 pēdām/s

9000 x 12 = 180000 collas / s

3x1/180000 = 27,77777 mums

27,77 mums / 50 ns = 555, 555

Taimeris 1 būs pie 555 un tiks parādīts 4/(1/555x50ns) 9009, 00

Šeit kļūda ir 9 pēdas/s uz 9000 = 0, 1%

Kā redzat, kļūda palielinās, kad ātrums ir lielāks. Bet palieciet <0,1%

Šie rezultāti ir ļoti labi.

Bet precizitāte nav lineāra. Pie 10000 pēdām/s tas ir 0, 1 %. Jauns ir tas, ka mēs nekad nepārbaudām 10 000 pēdu/s granulu.

Vēl viena lieta, kas jāpatur prātā. Kad notiek pārtraukums, uC vienmēr pabeidz pēdējo norādījumu pirms pārtraukuma ievadīšanas. Tas ir normāli, un visi UC to dara. Ja kodējat arduino, C vai pat montētājā. Lielāko daļu laika jūs gaidīsit mūžīgā ciklā… gaidīt. Problēma ir tāda, ka ciklā mēs pavadām 2 ciklus. Parasti tas nav svarīgi. Bet mūsu gadījumā. JĀ, katrs tic ir svarīgs. Apskatīsim bezgalīgu cilpu:

montētājs:

cilpa:

rjmp cilpa

C:

kamēr (1) {}

Faktiski C kompilators izmanto rjmp instrukciju. RJMP ir 2 cikli.

Tas nozīmē, ka, ja pārtraukums notiek pirmajā ciklā, mēs zaudējam vienu ciklu (tic) (50ns).

Mans veids, kā to novērst, ir ciklam pievienot daudzas nop instrukcijas. NOP ir 1 cikls.

cilpa:

nop

nop

nop

nop

nop

rjmp cilpa

Ja pārtraukums notiek pēc nop instrukcijas. Mums viss kārtībā. Ja tas notiek rjmp instrukciju otrajā ciklā, mums viss ir kārtībā. Bet, ja tas notiks pirmajā rjmp instrukciju ciklā, mēs zaudēsim vienu tic. Jā, tas ir tikai 50 ns, bet, kā redzat iepriekš, 50 ns uz 3 collām nav nekas. Mēs nevaram to labot ar programmatūru, jo mēs nezinām, kad tieši notiek pārtraukums. Tāpēc kodā redzēsit daudz nop instrukciju. Tagad es esmu diezgan pārliecināts, ka pārtraukums būs saistīts ar nop instrukciju. Ja es pievienoju 2000 nop man ir 0, 05%, lai nokristu uz rjmp instrukciju.

Vēl viena lieta, kas jāpatur prātā. Kad notiek pārtraukums. Sastādītājs daudz spied un velk. Bet tas vienmēr ir viens un tas pats numurs. Tātad tagad mēs varam veikt programmatūras korekciju.

Lai nobeigtu šo:

Vidējās granulas 1000 pēdu/s precizitāte ir 0,01%

100x precīzāk nekā citi 1% tirgū. Frekvence ir augstāka un ar TCXO precīzāka

Piemēram, 1% no 1000 pēdām/s ir vairāk vai mazāk 10 pēdas/s. Tā ir milzīga atšķirība.

3. darbība: shematisks un detaļu saraksts

Shematiskais un detaļu saraksts
Shematiskais un detaļu saraksts

Šeit es ieviesu savu vienas pogas ieslēgšanas/izslēgšanas ķēdi. (skatiet manu pēdējo pamācību) Šī shēma ir ļoti ērta un darbojas ļoti labi.

Es izmantoju atmega328p. Šis ir ieprogrammēts C.

Displejs ir standarta 2 rindu LCD HD44780 saderīgs. Tiek izmantots 4 bitu režīms.

Lai nodrošinātu spriegumu TCXO 20mhz, tiek izmantots 3.3v regulators.

D1 ir paredzēts LCD fona apgaismojumam. Neobligāti. Ja neinstalēsit D1, akumulators darbosies ilgāk.

Visi rezistori un vāciņi ir 0805 iepakojumā

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 1 milj

R2 1 milj

R4 2.2k

R5 160

R6 160

R7 1 milj

R8 1 milj

U1 MIC5317-3,3 MIC5317 SOT23-5

U2 DMG6601LVT DMG6601LVT SOT23-6

Displejs LCD 2 rindas HD44780. Nav nepieciešams iegādāties i2c moduli.

Sensori:

2x emitētājs OP140A

2x uztvērējs OPL530

Kodētājs: PEC11R-4215K-S0024 *Neaizmirstiet pievienot 4x 10k rezistorus un 2x.01uf, lai veiktu kodētāja filtru. skatiet attēlu zemāk

4. solis: PCB Gerber fails

PCB Gerber fails
PCB Gerber fails
PCB Gerber fails
PCB Gerber fails
PCB Gerber fails
PCB Gerber fails
PCB Gerber fails
PCB Gerber fails

Šeit ir gerber faili

5. solis: Pcb lodēšana

Lodējiet savu datoru
Lodējiet savu datoru
Lodējiet savu datoru
Lodējiet savu datoru
Lodējiet savu datoru
Lodējiet savu datoru

Ar shematisku palīdzību lodējiet visu savu komponentu uz PCB. Katra daļa vai rakstīta uz PCB, r1, r2 … un tā tālāk.

Man nav instalēts D1. Tas ir paredzēts LCD fona apgaismojumam. Tas ir skaisti, bet ietekmē akumulatora darbības laiku. Tāpēc es izvēlos izslēgt LCD fona apgaismojumu.

6. darbība: Atmega328p programmēšana

Atmega328p programmēšana
Atmega328p programmēšana

Pārbaudiet šeit 12. solī, lai ieprogrammētu atmega328p. Šeit es sniedzu.hex failu.

Šeit ir avrdude programma, kas ir gatava programmēt partijas failu. Noklikšķiniet tikai uz programmas usbasp.bat, un jūsu usbasp ir instalēts pareizi. Viss tiks darīts automātiski, ieskaitot drošinātāja bitu.

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

Šajā projektā es koplietoju arī C avota kodu. Ņemiet vērā, ka dažas piezīmes tajā var būt franču valodā. Https://1drv.ms/u/s! AnKLPDy3pII_vXUMXHdxajwGRFJx? E…

7. darbība: LCD displejs

LCD displejs
LCD displejs
LCD displejs
LCD displejs

Instalējiet lenti un savienojiet kopā PCB un LCD

8. solis: STL fails

STL fails
STL fails
STL fails
STL fails
STL fails
STL fails

stl failu

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

Nepieciešams atbalsts korpusam, sensora caurulei un šautenes turētājam.

Es esmu drukājis 0,2 mm augstumā.

9. solis: Rotējošais kodētājs

Rotējošais kodētājs
Rotējošais kodētājs
Rotējošais kodētājs
Rotējošais kodētājs
Rotējošais kodētājs
Rotējošais kodētājs

Šis rotējošais kodētājs ir pievienots ISP savienotājam. to izmanto, lai mainītu granulu svaru un ieslēgtu un izslēgtu ierīci.

vcc isp pin 2 (uzvilkt rezistoru)

Terminālis A (dzeltens) dodieties uz ISP 1. tapu

Terminālis B (zaļš) dodieties uz ISP 3. tapu

Termināļa C (gnd) isp pin 6

Es pievienoju 2 attēlus, lai redzētu atšķirību starp filtru un bez filtra. Jūs varat viegli redzēt atšķirību starp abiem.

Spiedpoga iet uz PCB SW savienotāju.

10. solis: sensora caurule

Sensora caurule
Sensora caurule
Sensora caurule
Sensora caurule
Sensora caurule
Sensora caurule

SVARĪGS:

Sensora caurulei jābūt melnai, un sensora uztvērējam jābūt paslēptam

Mani pirmie mēģinājumi bija iegūt skaistu sarkanu pīpi. Bet tas ir grūts! Tas vispār nedarbojās. Es sapratu, ka ienāca ārējā gaisma, un plastmasas un uztvērēja sensors vienmēr bija ieslēgts.

Lai iegūtu labu rezultātu, man nebija izvēles mainīt krāsu uz melnu.

Uzstādiet uztvērēju augšpusē. Un paslēpiet caurspīdīgo plastmasu ar melnu krāsu, lenti vai gumiju, melnu silikonu.

Uzstādiet emitētāju apakšā.. Pārbaudiet ar pildspalvu, vai sensori labi reaģē. Varbūt emitera atveri vajadzēs nedaudz palielināt. tas būs atkarīgs no printera kalibrēšanas.

Man ir arī labāks rezultāts ēnā. Izvairieties no tiešiem saules stariem.

11. solis: Sensora caurules alternatīva

Sensora caurules alternatīva
Sensora caurules alternatīva
Sensora caurules alternatīva
Sensora caurules alternatīva

Ja jums nav 3D printera, varat to darīt ar vara cauruli. Tas darbosies ļoti labi, lai. Grūti darīt, ir caurums tieši 3 collas un uztvērējs un emitētājs ir jāsaskaņo.

12. solis: granulas osciloskopā un kalibrēšana

Granulas osciloskopā un kalibrēšana
Granulas osciloskopā un kalibrēšana

Šī ir īsta granulu izmešana. Zonde 1 dzeltenais ir sensors 1. Zonde 2 violeta ir 2. sensors.

Laiks/div ir 50 ASV.

Mēs varam saskaitīt 6 50u nodaļas. 50 ASV x 6 = 300 ASV (3 collas). 300 us x 4 = 1,2 ms 1 pēdai

1/1,2 ms = 833,33 pēdas/s

Mēs varam arī redzēt, ka sensors parasti ir pie 5 V. Un vai mēs varam bloķēt izstarotāja gaismu, sensora kritumu līdz 0.

Tas ir veids, kā uC sāk un pārtrauc viņa skaitītāju (taimeris1)

Bet, lai precīzi zinātu, vai ātrums bija precīzs, man vajadzēja veidu, kā to izmērīt.

Lai veiktu programmatūras kalibrēšanu un pārbaudītu šīs ierīces precizitāti, es izmantoju 10 mhz atsauces oscilatoru. Skatiet manu GPSDO citu pamācību.

Es baroju citu atmega328 ar šo 10 mhz. Un ieprogrammējiet šo komplektu montētājā, lai man katru reizi, nospiežot pogu, tiktu nosūtīti 2 impulsi, lai simulētu granulu. Tieši tā, kā mēs redzējām attēlā, bet tā vietā, lai iegūtu īstu granulu, tas bija cits uC, kas man nosūtīja 2 impulsus.

Katru reizi nospiežot pogu, tika nosūtīts 1 impulss un tieši 4 ms pēc cita impulsa nosūtīšanas.

Tādā veidā es varu līdzsvarot programmatūras kompilatoru, lai vienmēr tiktu parādīts 1000 pēdas/s.

13. darbība: vairāk…

Vairāk…
Vairāk…
Vairāk…
Vairāk…

Šis ir mans pirmais 2010. gada prototips.

Uz visiem jautājumiem vai ziņojumu par kļūdām varat rakstīt man pa e -pastu. Angļu vai franču. Es darīšu visu iespējamo, lai palīdzētu.

Ieteicams: