Përmbajtje:
- Hapi 1: Veçori
- Hapi 2: Teoria e Funksionimit dhe Saktësisë
- Hapi 3: Skema dhe Lista e Pjesëve
- Hapi 4: Skedari PCB Gerber
- Hapi 5: Saldoni PCB -në tuaj
- Hapi 6: Programimi i Atmega328p
- Hapi 7: Ekrani LCD
- Hapi 8: Skedari STL
- Hapi 9: KODI ROTAR
- Hapi 10: Tub sensori
- Hapi 11: Alternativa e tubave të sensorit
- Hapi 12: Një topth në osciloskop dhe kalibrim
- Hapi 13: Më shumë…
Video: Kronograf i pushkës ajrore, kronoskop. Shtypur 3D: 13 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:11
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
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
Këtu janë skedarët gerber
Hapi 5: 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
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
Instaloni disa kaseta dhe lidhni PCB dhe LCD së bashku
Hapi 8: 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
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
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
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
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ë…
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:
Ajër - kitarë ajrore e vërtetë celulare (prototip): 7 hapa (me fotografi)
Ajër - Kitarë Ajrore e Vërtetë Mobile (Prototip): Mirë, kjo do të jetë një udhëzues vërtet i shkurtër për pjesën e parë të përfundimit më në fund të ëndrrës sime të fëmijërisë. Kur isha një djalë i ri, unë gjithmonë shikoja artistët dhe grupet e mia të preferuara duke luajtur kitarë në mënyrë të papërlyer. Ndërsa u rrita, nuk isha
Piano ajrore duke përdorur sensorin e afërsisë IR, altoparlantin dhe Arduino Uno (i azhurnuar/pjesa 2): 6 hapa
Piano ajrore duke përdorur sensorin IR të afërsisë, altoparlantin dhe Arduino Uno (i azhurnuar/pjesa 2): Ky është një version i azhurnuar i projektit të mëparshëm të pianos ajrore?. Këtu unë jam duke përdorur një altoparlant JBL si dalje. Kam përfshirë gjithashtu një buton të ndjeshëm në prekje për të ndryshuar mënyrat sipas kërkesave. Për shembull- Mënyra e fortë e basit, modaliteti normal, i lartë fr
Opsioni 7-ditor: Si të ndaheni nga Forcat Ajrore: 22 hapa
Opsioni 7-ditor: Si të ndaheni nga Forcat Ajrore: Ky tutorial tregon hap pas hapi në fotografi se si një oficer i Forcave Ajrore mund të aplikojë për të lënë Forcat Ajrore sipas opsionit 7-ditor. " Ushtrimi i opsionit 7-ditor " ose " zgjedhja 7-ditore " do të thotë të aplikosh për ndarje nga Forcat Ajrore me
Piano ajrore duke përdorur sensorin e afërsisë IR dhe Arduino Uno Atmega 328: 6 hapa (me fotografi)
Piano ajrore duke përdorur sensorin IR të afërsisë dhe Arduino Uno Atmega 328: Normalisht pianot qofshin punë elektrike ose mekanike në mekanizmin e thjeshtë të shtypjes së butonit. Por këtu është një kthesë, ne thjesht mund të eliminojmë nevojën e çelësave në një piano duke përdorur disa sensorë. Dhe sensorët e afërsisë infra të kuqe i përshtaten më së miri kauzës sepse t
Hapësirë Sallatë Dhoma Instruktueshme- Robotika e Shkollës së Mesme Ajrore: 8 hapa
Robotikë e Shkollës së Mesme Ajrore të Dhomës së Sallatës së Dhomës Instruktive- Kjo është një Udhëzues i bërë nga tre nxënës të shkollave të mesme të regjistruar në një klasë robotike. Ne do të krijojmë një dhomë për të rritur marule në hapësirë për Konkursin Growing Beyond Earth nga NASA. Ne do t'ju tregojmë se si të krijoni enën. Le të gjejmë