Talaan ng mga Nilalaman:

Air Rifle Chronograph, Chronoscope. Naka-print na 3D: 13 Mga Hakbang
Air Rifle Chronograph, Chronoscope. Naka-print na 3D: 13 Mga Hakbang

Video: Air Rifle Chronograph, Chronoscope. Naka-print na 3D: 13 Mga Hakbang

Video: Air Rifle Chronograph, Chronoscope. Naka-print na 3D: 13 Mga Hakbang
Video: NEW: FX Airguns Radar Wireless Mini Pocket Chronograph - Arrows CO2 Airsoft - Air Rifle Power Test 2024, Hunyo
Anonim
Image
Image
Tampok
Tampok

Kumusta kayong lahat, ngayon ay muling bisitahin namin ang isang projet na nagawa ko noong 2010. Isang Air Rifle Chronograph. Sasabihin sa iyo ng aparatong ito ang bilis ng isang projectile. Pellet, BB o kahit air soft BB plastic ball.

Noong 2010 bumili ako ng isang air rifle para masaya. Ang pagpindot sa mga lata, bote, layunin. Alam ko na ang bilis ng baril na ito ay maximum na 500 talampakan / s. Dahil sa batas ng Canada. Ang ilang mga mas malakas na air rifle ay magagamit ngunit kailangan mong magkaroon ng isang lisensya para at hindi mo mabili ang bagay na iyon sa Walmart.

Ngayon mayroon akong lisensya na ito, makakabili ako ng isa pa. Ngunit maikling kuwento, ang parehong baril ay magagamit sa U. S. sa 1000 talampakan / s. ANO!? Ang parehong baril? oo … Sa Canada, ang butas ay mayroong butas dito at ang tagsibol ay mas malambot.

Ang unang dapat gawin ay punan ang butas. Iyon ang nagawa ko sa solder. Susunod na dapat gawin ay mag-order ng kapalit na spring. Ngunit maghintay … ano ang kasalukuyang bilis ng aking bagong laruan? Kailangan ba talaga ang tagsibol? Hindi ko alam at nais kong malaman. Gusto kong malaman ngayon ngunit paano?

Iyon ang dahilan kung bakit ginawa ko ang proyektong ito. Ang kailangan ko lang ay 2 sensor, isang uC at isang display at nasa negosyo kami.

Noong nakaraang linggo, nakita ko ang aking matandang asul na kronograpo sa isang istante at kinakausap ko ang aking sarili: "Bakit hindi ko ito ibahagi at gumawa ng isang itinuturo dito?" At sa pamamagitan ng paraan, maaari naming itaas ang kawastuhan at magdagdag ng isang tagapagpahiwatig ng baterya. Maglagay ng 1 pindutan sa halip na 2 para sa on / off. Ang buong ibabaw ng bundok. Nasa 2020 na tayo!

Kaya ayan na … magsimula tayo!

Hakbang 1: Tampok

-Bilis ng pelet

-Kaligtasan

-20 mhz tumatakbo, malaking katumpakan

-Auto off

-Napakita ang boltahe ng baterya

-magagamit ang iskema

-pcb magagamit

-part list na magagamit

-STL magagamit

-C code na magagamit

Hakbang 2: Teorya ng Pagpapatakbo at Kawastuhan

-May isang uC kami na tumatakbo sa 20Mhz. Ang ginamit na oscillator ay isang TCX0 + -2.5 ppm

-May 2 kaming sensor sa 3 pulgada ang layo sa bawat isa.

-Natamaan ng projectile ang unang sensor. uC simulan ang pagbibilang (timer1)

-Natamaan ng projectile ang pangalawang sensor. itigil ang pagbibilang ng uC

-UC suriin ang halaga ng timer1, gawin ang matematika at bilis ng pagpapakita at bilis.

Gumagamit ako ng 16 bit timer1 + ang overflow flag tov1. Kabuuang 17 bit para sa 131071 "tic" para sa isang buong bilang.

1/20 mhz = 50 ns. Ang bawat tic ay 50ns

131071 x 50 ns = 6.55355 ms upang gawin ang 3 pulgada.

6.55355 ms x 4 = 26.21 ms na gawin 12 pulgada.

1 / 26.21 ms = 38.1472637 talampakan / s

Ito ang pinakamabagal na bilis ng aparato.

Bakit 20 mhz? Bakit hindi gumagamit ng panloob na 8 mhz o kahit isang cristal?

Ang aking unang aparato ay gumagamit ng panloob na oscillator. Nagtatrabaho ngunit ang isang ito ay hindi sapat na tumpak. Ang pagkakaiba-iba ay masyadong malaki. Ang isang cristal ay mas mahusay ngunit ang temperatura ay magkakaiba-iba ng dalas. Hindi namin magagawa ang isang tumpak na aparato sa pagsukat doon. Gayundin, mas maraming dalas ang mataas, mas maraming tic ang bibilangin para sa parehong bilis. Ang sampling ay magiging mas mahusay na magkaroon ng isang napakahusay na kawastuhan. Dahil ang tic ay hindi mahahati, ang pagkawala ay kaunti kung ang duty cycle ay mabilis.

Sa 20 MHz mayroon kaming mga hakbang na 50 ns. Alam ba natin kung gaano katumpak ito 50 ns para sa isang projectile sa 38 ft / s.

38.1472637 ft / s hatiin ng 131071 = 0, 000291042 talampakan

0, 0003880569939956207 talampakan x 12 = 0, 003492512 pulgada

1/0, 003492512 = 286.37 ". Sa madaling salita. Sa 50 ft / s mayroon kaming katumpakan na + - 1/286" o + - 0, 003492512 pulgada

Ngunit kung ang aking oscillator ay ang pinakapangit at tumatakbo sa 20 mhz +2.5 ppm ok lang ba? Alamin Natin…

2.5 ppm ng 20 000 000 ay: (20000000/1000000) x 2.5 = 20000050 Hz

Kaya ang pinakamasamang sitwasyon ng kaso mayroon kaming 50 pang orasan sa 20 mhz. Ito ay 50 orasan sa 1 segundo. Ilan pa ang mas maraming tic sa timer1 kung ang pellet ay gumagawa ng parehong bilis (38.1472637 talampakan / s o 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 talampakan / s

Sa gayon mayroon kaming 38.14735907 talampakan / s sa halip na 38.1472637 talampakan / s

Ngayon alam namin na ang 2.5 ppm ay hindi nakakaapekto sa resulta.

Narito ang ilang exemple ng iba't ibang bilis

Para sa 1000 ft / s

Ang 1000 ft / s x 12 ay 12000 pulgada / s

1 segundo para sa 12000 "kung gaano karaming oras upang gawin 3"? 3x1 / 12000 = 250 us segundo

250 sa amin / 50 ns = 5000 tic.

Ang Timer1 ay nasa 5000

gawin mo ang matematika at ang 1000 ft / s ay ipinapakita. Sa ngayon napakahusay

Para sa 900 ft / s

900 ft / s ay 10800 / s

3x1 / 10800 = 277.77 sa amin

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

Ang timer 1 ay nasa 5555

uC gawin ang matematika at 900, 09 ay ipapakita sa halip na 900

Bakit ? dahil ang timer 1 ay nasa 5555 at 0, 5555 ang nawala. Ang paghihiwalay sa timer ay hindi mahahati.

Mayroon kaming error sa 0, 09 sa 900 ft / s

0, 09 / 900x100 = 0, 01% error lamang

Para sa 1500 ft / s1500 ft / s ay 18000 / s 3x1 / 10800 = 166.66 sa amin

166.66 us / 50 ns = 3333.333 tic Timer 1 ay nasa 3333

uC gawin ang matematika at 1500.15 ay ipapakita sa halip na 1500 ito ay.15 / 1500x100 = 0, 01%

Para sa 9000 ft / s

9000 x 12 = 180000 pulgada / s

3x1 / 180000 = 27.7777 sa amin

27.77 sa amin / 50 ns = 555, 555

Ang Timer1 ay nasa 555 at ang 4 / (1 / 555x50ns) ay ipapakita 9009, ang 00 ay ipapakita

Narito ang error na 9 talampakan / s sa 9000 = 0, 1%

Tulad ng nakikita mong% error ay tumataas kapag ang bilis ay mas mataas. Ngunit manatili <0.1%

Ang mga resulta ay napakahusay.

Ngunit ang kawastuhan ay hindi linear. Sa 10000 ft / s ito ay 0, 1%. Magandang bago ay hindi namin sinubukan ang isang 10, 000 ft / s na peleksyon.

Isa pang bagay na dapat tandaan. Kapag nangyari ang isang nakakagambala, laging tapusin ng uC ang huling tagubilin bago pumasok sa abala. Normal ito at ginagawa ito ng lahat ng uC. Kung nag-code ka ng arduino, sa C o kahit na assembler. Karamihan sa mga oras ay maghihintay ka sa isang magpakailanman loop … maghintay. Ang problema ay, sa isang loop gumugol kami ng 2 cycle. Karaniwan hindi ito mahalaga. Ngunit sa aming kaso. YES, bawat tic ay mahalaga. Tingnan natin ang isang walang katapusang loop:

nagtitipon:

loop:

rjmp loop

Sa C:

habang (1) {}

Sa katunayan C compiler ay gumagamit ng rjmp na tagubilin. Ang RJMP ay 2 cycle.

Nangangahulugan iyon kung ang pagkagambala ay nangyari sa unang siklo, maluwag ang isang siklo (tic) (50ns).

Ang aking paraan upang ayusin iyon ay upang magdagdag ng maraming nop na tagubilin sa loop. Ang NOP ay 1 cycle.

loop:

hindi

hindi

hindi

hindi

hindi

rjmp loop

Kung ang nakakagambala mangyari sa isang nop na tagubilin. Ok naman kami Kung nangyari ito sa ikalawang ikot ng pagtuturo ng rjmp ok kami. Ngunit kung nangyari ito sa unang ikot ng tagubilin sa rjmp, mawawala sa amin ang isang pagkakasunud-sunod. Oo 50 ns lang ngunit tulad ng makikita mo sa itaas, 50 ns sa 3 pulgada ay wala. Hindi namin ito maitatama sa pamamagitan ng software dahil hindi namin alam kung kailan eksaktong nagagambala. Ito ang dahilan kung bakit sa code makikita mo ang maraming nop na tagubilin. Ngayon sigurado ako na ang makagambala ay mahuhulog sa isang hindi tagubilin. Kung nagdaragdag ako ng 2000 nop mayroon akong 0, 05% na mahulog sa tagubilin sa rjmp.

Isa pang bagay na dapat tandaan. Kapag naganap ang pagkakagambala. Ang tagatala ay maraming pinipilit at hinihila. Ngunit palaging pareho ang bilang. Kaya ngayon maaari kaming gumawa ng isang pagwawasto ng software.

Upang tapusin ito:

Ang kawastuhan para sa isang average na pellet na 1000 ft / s ay 0, 01%

100x mas tumpak kaysa sa iba pang 1% sa merkado. Mas mataas ang dalas at may TCXO, mas tumpak

Para sa exemple, 1% ng 1000 ft / s ay higit pa o mas mababa sa 10 ft / s. Napakalaking pagkakaiba nito.

Hakbang 3: Listahan ng Skema at Mga Bahagi

Listahan ng Skema at Mga Bahagi
Listahan ng Skema at Mga Bahagi

Dito ko ipinatupad ang aking isang push button sa / off circuit. (tingnan ang aking huling itinuturo) Ang circuit na ito ay napaka-madaling gamiting at gumagana nang napakahusay.

Gumagamit ako ng isang atmega328p. Ang isang ito ay nai-program sa C.

Ang display ay isang karaniwang 2 linya lcd HD44780 na katugma. 4 bit mode ang ginamit.

Ang isang 3.3v regulator ay ginagamit upang magbigay boltahe sa TCXO 20mhz.

Ang D1 ay para sa lcd backlight. Opsyonal. Mas magtatagal ang baterya kung hindi mo mai-install ang D1.

Ang lahat ng mga resistors at cap ay 0805 na pakete

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

Ipakita ang lcd 2 linya HD44780. Hindi kailangang bilhin ang i2c module.

Mga Sensor:

2x Emitter OP140A

2x Reciever OPL530

Encoder: PEC11R-4215K-S0024 * Huwag kalimutang magdagdag ng 4x 10k resistors at 2x.01uf upang gawin ang filter ng encoder. tingnan ang larawan sa ibaba

Hakbang 4: File ng Gerber ng PCB

File ng PCB Gerber
File ng PCB Gerber
File ng PCB Gerber
File ng PCB Gerber
File ng PCB Gerber
File ng PCB Gerber
File ng PCB Gerber
File ng PCB Gerber

Narito ang mga gerber file

Hakbang 5: Paghinang ng Iyong Pcb

Maghinang ng Iyong Pcb
Maghinang ng Iyong Pcb
Maghinang ng Iyong Pcb
Maghinang ng Iyong Pcb
Maghinang ng Iyong Pcb
Maghinang ng Iyong Pcb

Sa tulong na eskematiko, maghinang ng lahat ng iyong bahagi sa pcb. Ang bawat bahagi o magsulat sa pcb, r1, r2 … at iba pa.

Wala akong naka-install na D1. Ito ay para sa lcd back-light. Maganda ito ngunit apektado ang buhay ng baterya. Kaya pinili kong panatilihing off-light ang lcd.

Hakbang 6: Programming ang Atmega328p

Programming ang Atmega328p
Programming ang Atmega328p

Suriin dito sa hakbang 12 upang mai-program ang atmega328p. Ibinibigay ko dito ang.hex file para dito.

Narito ang avrdude program na handa nang mag-program ng file ng batch. Mag-click lamang sa program na usbasp.bat at ang iyong usbasp ay na-install nang tama. Ang lahat ay awtomatikong gagawin kasama ang fuse bit.

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

Sa proyektong ito binabahagi ko rin ang C code ng mapagkukunan. Magkaroon ng kamalayan na ang ilang mga tala dito ay maaaring nasa french.https://1drv.ms/u/s! AnKLPDy3pII_vXUMXHdxajwGRFJx? E…

Hakbang 7: Lcd Display

Lcd Display
Lcd Display
Lcd Display
Lcd Display

Mag-install ng ilang tape at magkonekta ng pcb at lcd

Hakbang 8: STL File

STL File
STL File
STL File
STL File
STL File
STL File

stl file

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

Kailangan ng suporta para sa enclosure, sensor pipe at may hawak ng rifle.

Na-print ko lahat sa taas na.2 mm.

Hakbang 9: ROTARY ENCODER

ROTARY ENCODER
ROTARY ENCODER
ROTARY ENCODER
ROTARY ENCODER
ROTARY ENCODER
ROTARY ENCODER

Ang rotary encoder na ito ay konektado sa konektor ng isp. ginagamit ito upang baguhin ang timbang ng pellet at upang i-on at i-off ang aparato.

vcc isp pin 2 (hilahin ang risistor)

Ang Terminal A (dilaw) pumunta sa ISP pin 1

Ang Terminal B (berde) ay pumunta sa ISP pin 3

Ang terminal C (gnd) ay isp pin 6

Nagdaragdag ako ng 2 mga larawan upang makita ang pagkakaiba sa pagitan ng magkaroon ng isang filter kumpara sa walang filter. Madali mong makikita ang pagkakaiba ng pareho.

Ang push button ay pumunta sa konektor ng pcb SW.

Hakbang 10: Sensor Pipe

Pipe ng Sensor
Pipe ng Sensor
Pipe ng Sensor
Pipe ng Sensor
Pipe ng Sensor
Pipe ng Sensor

MAHALAGA:

Ang sensor ng tubo ay dapat na Itim at ang tagatanggap ng sensor ay dapat na itago

Ang aking unang pagtatangka ay magkaroon ng isang magandang pulang tubo. Ngunit ito ay nakakalito! Hindi ito gumagana sa lahat. Nalaman ko na ang ilaw sa labas ay papasok na itapon ang plastik at laging laging nakabukas ang sensor ng tatanggap.

Upang magkaroon ng mabuting resulta wala akong pagpipilian na baguhin ang kulay sa itim.

I-install ang receiver sa itaas. At itago ang malinaw na plastik na may itim na pintura, tape o gum, itim na silikon.

I-install ang emitter sa ibaba.. Suriin gamit ang isang pluma kung ang mga sensor ay mahusay na tumutugon. Marahil ang butas ng emitter ay kailangang palakihin nang kaunti. depende ito sa pagkakalibrate ng iyong printer.

Mayroon din akong mas mahusay na resulta sa lilim. Iwasan ang direktang sikat ng araw.

Hakbang 11: Alternatibong Pipe ng Sensor

Alternatibong Pipe ng Sensor
Alternatibong Pipe ng Sensor
Alternatibong Pipe ng Sensor
Alternatibong Pipe ng Sensor

Kung wala kang isang 3d printer, magagawa mo ang pareho sa isang tanso na tubo. Ito ay gagana nang maayos sa. Ang mahirap gawin ay ang butas sa eksaktong 3 pulgada at dapat na nakahanay ang receiver at emitter.

Hakbang 12: Isang Pellet sa Oscilloscope at Pagkakalibrate

Isang Pellet sa Oscilloscope at Calibration
Isang Pellet sa Oscilloscope at Calibration

Ito ay isang tunay na pagpasa ng pellet na itapon ang tubo. Probe 1 dilaw ay sensor 1. Probe 2 purple ay sensor 2.

Ang oras / div ay 50 sa amin.

Maaari nating bilangin ang 6 na dibisyon ng 50us. 50 sa amin x 6 = 300 sa amin (para sa 3 pulgada). 300 us x 4 = 1.2 ms para sa 1 talampakan

1 / 1.2ms = 833.33 ft / s

Maaari din nating makita na ang sensor ay karaniwang nasa 5v. At maaari ba nating harangan ang ilaw ng emitter, mahuhulog ang sensor sa 0.

Ito ang paraan ng pagsisimula at pagtigil ng kanyang conter (timer1)

Ngunit upang malaman nang eksakto kung ang bilis ay tumpak, kailangan ko ng isang paraan upang mahalin ito.

Upang gawin ang pagkakalibrate ng software at subukan ang kawastuhan ng aparatong ito, gumamit ako ng isang 10 mhz reference oscillator. Tingnan ang aking GPSDO sa ibang itinuturo.

Nagpakain ako ng isa pang atmega328 sa 10 mhz na ito. At programa ang isang ito sa assembler upang magpadala sa akin ng 2 pulso sa bawat oras na itulak ko ang isang pindutan upang gayahin ang isang pellet. Eksakto tulad ng nakita natin sa larawan ngunit sa halip na magkaroon ng isang tunay na pellet ito ay isa pang uC na nagpapadala sa akin ng 2 pulso.

Sa bawat oras na pindutin ang pindutan ay pinindot 1 pulso ay ipinadala at eksaktong 4 ms pagkatapos ng isa pang pulso ay ipinadala.

Sa ganitong paraan, maaari kong balansehin ang tagatala ng software upang palaging ipakita ang 1000 ft / s.

Hakbang 13: Higit pa…

Dagdag pa…
Dagdag pa…
Dagdag pa…
Dagdag pa…

Ito ang aking unang prototype ng 2010.

Sa anumang mga katanungan o ulat ng error maaari kang mag-email sa akin. English o french. Gagawin ko ang aking makakaya upang makatulong.

Inirerekumendang: