Mundarija:

Havo miltig'ining xronografi, xronoskopi. 3D bosma: 13 qadam
Havo miltig'ining xronografi, xronoskopi. 3D bosma: 13 qadam

Video: Havo miltig'ining xronografi, xronoskopi. 3D bosma: 13 qadam

Video: Havo miltig'ining xronografi, xronoskopi. 3D bosma: 13 qadam
Video: РОССИЯНИНГ БУТУН ДУНЁНИ ҚУРҚИТГАН МАХФИЙ ҚУРОЛИ 2024, Noyabr
Anonim
Image
Image
Xususiyat
Xususiyat

Hammaga salom, bugun biz 2010 yilda qilgan loyihani qayta ko'rib chiqamiz. Havo miltig'ining xronografi. Bu qurilma sizga raketaning tezligini aytib beradi. Pellet, BB yoki hatto havo yumshoq BB plastik to'pi.

2010 yilda men qiziqish uchun pnevmatik miltiq sotib oldim. U bankalarga, butilkalarga, nishonlarga urilgan. Bilaman, bu qurolning tezligi maksimal 500 fut/s edi. Chunki bu Kanada qonuni. Yana kuchliroq pnevmatik miltiq mavjud, lekin siz litsenziyaga ega bo'lishingiz kerak va siz Walmart -da bunday narsalarni sotib ololmaysiz.

Endi menda bu litsenziya bor edi, men boshqasini sotib olardim. Ammo qisqa hikoya, xuddi shu qurol AQShda 1000 fut/s tezlikda mavjud edi. NIMA!? Xuddi shu qurol? ha … Kanadada zarbada teshik bor va buloq yumshoqroq.

Birinchi narsa - teshikni to'ldirish. Men lehim bilan shunday qildim. Keyingi ish - buloqni almashtirish. Lekin kuting … mening yangi o'yinchog'imning hozirgi tezligi qanday? Haqiqatan ham bahor kerakmi? Men bilmayman va bilishni xohlayman. Men hozir bilmoqchiman, lekin qanday qilib?

Shuning uchun men bu loyihani qildim. Menga faqat ikkita datchik, shahar va displey kerak edi, biz biznesdamiz.

O'tgan hafta men javonda eski ko'k xronografimni ko'rdim va o'zim bilan gaplashdim: "Nega buni baham ko'rmaysiz va u bilan ko'rsatma berasiz?" Aytgancha, biz aniqlikni oshirib, batareya ko'rsatkichini qo'shishimiz mumkin edi. Yoqish/o'chirish uchun 2 o'rniga 1 tugmani qo'ying. Barcha sirtni o'rnatish. Biz hozir 2020 yildamiz!

Mana, bor … boshlaylik!

1 -qadam: Xususiyat

-Pellet tezligi

-Tezlik

-20 MGts tezlikda ishlaydi, juda katta aniqlik

-Avtomatik o'chirilgan

-Batareya quvvati ko'rsatiladi

-sxematik mavjud

-pcb mavjud

-qismlar ro'yxati mavjud

-STL mavjud

-C kodi mavjud

2 -qadam: Operatsiya va aniqlik nazariyasi

-Bizda 20 MGts da ishlaydigan UC bor. Amaldagi osilator-bu TCX0 +-2,5 ppm

-Bizda bir -biridan 3 dyuym masofada 2 ta sensor bor.

-Raketa birinchi sensorga tegdi. uC hisoblashni boshlaydi (taymer1)

-Raketa ikkinchi sensorga tegdi. uC hisoblashni to'xtatadi.

-uC timer1 qiymatini tekshiring, matematikani bajaring va tezlik va tezlikni aks ettiring.

Men 16 bitlik taymer1 + tov1 to'lg'azish bayrog'idan foydalanmoqdaman. To'liq hisoblash uchun 131071 "tic" uchun 17 bit jami.

1/20 MGts = 50 ns. Har bir tik 50ns

3 dyuymni bajarish uchun 131071 x 50 ns = 6.55355 ms.

12 dyuymni bajarish uchun 6.55355 ms x 4 = 26.21 ms.

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

Bu qurilma o'lchaydigan eng past tezlik.

Nega 20 MGts? Nega ichki 8 MGts yoki hatto kristalni ishlatmayapsiz?

Mening birinchi qurilmam ichki osilatordan foydalangan. Ishlayotgan edi, lekin bu aniq emas edi. Variant juda katta. Kristall yaxshiroq, lekin harorat har xil chastotada. Biz aniq o'lchash moslamasini qila olmaymiz. Bundan tashqari, chastota qanchalik yuqori bo'lsa, shuncha tezlik bir xil tezlikda hisoblab chiqiladi. Namuna olish juda yaxshi aniqlikka ega bo'lishi yaxshiroq bo'ladi. Shomil bo'linmagani uchun, agar ish aylanishi tez bo'lsa, yo'qotish oz bo'ladi.

20 MGts da bizda 50 ns qadam bor. Biz bilamizmi, 38 fut/s tezlikdagi snaryad uchun 50 ns qanchalik aniq.

38.1472637 fut/sek 131071 = 0 ga bo'linadi, 000291042 fut

0, 0003880569939956207 fut x 12 = 0, 003492512 dyuym

1/0, 003492512 = 286.37 ". Boshqacha aytganda. 50 fut/s tezlikda bizda +- 1/286" yoki +- 0, 003492512 dyuym aniqlik bor.

Ammo agar mening osilatorim eng yomon bo'lsa va 20 MGts +2,5 ppmda ishlayotgan bo'lsa, bu to'g'rimi? Keling, bilib olaylik…

20 000 000 ning 2,5 ppm: (20000000/1000000) x 2,5 = 20000050 Gts

Eng yomon holatda, bizda 20 MGts chastotada yana 50 soat bor. 1 soniyada 50 soat. Agar pellet bir xil tezlikda harakat qilsa (38.1472637 fut/s yoki 6.55ms), taymer1da yana qancha tijorat bor?

1/20000050 = 49.999875 ns

49.999875 ns x 131071 = 6, 553533616 milodiy

6, 553533616 milodiy x 4 = 26.21413446 milodiy

1/26.21413446 ms = 38.14735907 fut/s

Shunday qilib, bizda 38.1472637 fut/s o'rniga 38.14735907 fut/s

Endi biz 2,5 ppm natijaga ta'sir qilmasligini bilamiz.

Mana, har xil tezlik misollari

1000 fut/s uchun

1000 fut/s x 12 - 12000 dyuym/s

12000 "3 marta necha marta bajarish" uchun 1 soniya? 3x1/12000 = 250 soniya

250 AQSh / 50 ns = 5000 tij.

Taymer1 5000 da bo'ladi

uC matematikani bajaradi va 1000 fut/s ko'rsatiladi. Hozircha hammasi yaxshi

900 fut/s uchun

900 fut/s tezlik - 10800 dyuym

3x1/10800 = 277.77 bizni

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

Taymer 1 5555 da bo'ladi

uC matematikani bajaradi va 900 o'rniga 09, 09 ko'rsatiladi

Nima uchun? chunki taymer 1 5555da va 0, 5555 yo'qoladi. Tijoriy taymer bo'linmaydi.

Bizda 900 fut/s tezlikda 0, 09 xato bor

0, 09/900x100 = 0, 01% xato

1500 fut/s uchun 1500 fut/s uchun 18000 dyuym/s 3x1/10800 = 166,66 bizni tashkil qiladi

166.66 us / 50 ns = 3333.333 tic Timer 1 3333 da bo'ladi

uC matematikani bajaradi va 1500.15 1500 o'rniga ko'rsatiladi.15/1500x100 = 0, 01%

9000 fut/s uchun

9000 x 12 = 180000 dyuym / s

3x1/180000 = 27.7777 bizni

27,77 biz / 50 ns = 555, 555

Taymer1 555da bo'ladi va 4/(1/555x50ns) 9009, 00 ko'rsatiladi

Bu erda xato 9000 = 0, 1% da 9 fut/s.

Ko'rib turganingizdek, tezlik yuqori bo'lganda % xatolari oshadi. Ammo <0,1% qoling

Bu natijalar juda yaxshi.

Ammo aniqlik chiziqli emas. 10000 fut/s tezlikda bu 0, 1 %. Yaxshi, biz hech qachon 10 000 fut/s granulani sinovdan o'tkazmaymiz.

Yana bir narsani yodda tutish kerak. Agar uzilish sodir bo'lsa, uC har doim oxirgi ko'rsatmani tugatishdan oldin tugatadi. Bu normal holat va hamma shahar buni qiladi. Agar siz arduino -ni C yoki hatto assambleyada kodlasangiz. Ko'pincha siz abadiy tsiklda kutasiz … kutish uchun. Muammo shundaki, biz 2 tsikl o'tkazamiz. Odatda bu muhim emas. Ammo bizning holatimizda. Ha, har bir tik muhim. Keling, cheksiz tsiklni ko'rib chiqaylik:

yig'uvchi:

pastadir:

rjmp pastadir

C da:

vaqt (1) {}

Aslida C kompilyatori rjmp ko'rsatmasidan foydalanadi. RJMP - 2 tsikl.

Bu shuni anglatadiki, agar uzilish birinchi tsiklda sodir bo'lsa, biz bitta tsiklni yo'qotamiz (tic) (50ns).

Buni tuzatishning yo'li - pastadirda ko'p nop ko'rsatmalarni qo'shish. NOP - 1 tsikl.

pastadir:

yo'q

yo'q

yo'q

yo'q

yo'q

rjmp pastadir

Agar uzilish nop buyrug'i bilan sodir bo'lsa. Biz yaxshimiz. Agar bu rjmp ko'rsatmasining ikkinchi tsiklida sodir bo'lsa, biz yaxshi. Ammo agar bu rjmp ko'rsatmasining birinchi tsiklida sodir bo'lsa, biz bitta tijoratni yo'qotamiz, ha, bu atigi 50 ns, lekin yuqorida ko'rib turganingizdek, 3 dyuymli 50 ns hech narsa emas. Biz buni dasturiy ta'minot bilan tuzatolmaymiz, chunki uzilish qachon sodir bo'lganini bilmaymiz. Shuning uchun kodda juda ko'p nop ko'rsatmalarni ko'rasiz. Ishonchim komilki, uzilish nop ko'rsatmasiga to'g'ri keladi. Agar men 2000 nop qo'shsam, rjmp ko'rsatmasiga tushish uchun 0, 05% bor.

Yana bir narsani yodda tutish kerak. Qachonki uzilish sodir bo'ladi. Kompilyator ko'p surish va tortishni amalga oshiradi. Ammo bu raqam har doim bir xil. Shunday qilib, endi biz dasturiy ta'minotni to'g'rilashimiz mumkin.

Bu haqda xulosa qilish uchun:

O'rtacha 1000 fut/s granulaning aniqligi 0, 01%

Bozordagi boshqa 1% ga qaraganda 100 barobar aniqroq. Chastotasi yuqori va TCXO bilan aniqroq

Masalan, 1000 fut/s ning 1% 10 fut/s ni tashkil qiladi. Bu juda katta farq.

3 -qadam: sxemalar va ehtiyot qismlar ro'yxati

Sxemalar va ehtiyot qismlar ro'yxati
Sxemalar va ehtiyot qismlar ro'yxati

Bu erda men bitta tugmachani yoqish/o'chirish sxemasini amalga oshirdim. (mening oxirgi ko'rsatmalarni ko'ring) Bu sxema juda qulay va juda yaxshi ishlaydi.

Men atmega328p dan foydalanmoqdaman. Bu C da dasturlashtirilgan.

Displey HD44780 standartli 2 satrli LCD displey bilan mos keladi. 4 bitli rejim ishlatiladi.

TCXO 20mhz kuchlanishini ta'minlash uchun 3,3V regulyator ishlatiladi.

D1 - LCD orqa nuri uchun. Majburiy emas. Agar siz D1 -ni o'rnatmasangiz, batareya uzoq davom etadi.

Barcha rezistorlar va qopqoqlar - 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

LCD 2 qatorli HD44780 displeyi. I2c modulini sotib olishning hojati yo'q.

Sensorlar:

2x emitent OP140A

2 marta qabul qiluvchi OPL530

Enkoder: PEC11R-4215K-S0024 *Enkoder filtrini bajarish uchun 4x 10k qarshilik va 2x.01uf qo'shishni unutmang. pastdagi rasmga qarang

4 -qadam: PCB Gerber fayli

PCB Gerber fayli
PCB Gerber fayli
PCB Gerber fayli
PCB Gerber fayli
PCB Gerber fayli
PCB Gerber fayli
PCB Gerber fayli
PCB Gerber fayli

Bu erda gerber fayllari

5 -qadam: shaxsiy kompyuteringizni lehimlang

Kompyuteringizni lehimlang
Kompyuteringizni lehimlang
Kompyuteringizni lehimlang
Kompyuteringizni lehimlang
Kompyuteringizni lehimlang
Kompyuteringizni lehimlang

Sxematik yordam yordamida barcha komponentlaringizni kompyuterga lehimlang. Kompyuter, r1, r2 va boshqalarda yozilgan har bir qism.

Menda D1 o'rnatilgan emas. Bu lcd orqa nuri uchun. Bu juda chiroyli, lekin batareyaning ishlash muddati ta'sir qiladi. Shunday qilib, men orqa nuri o'chirilishini tanladim.

6 -qadam: Atmega328p dasturlash

Atmega328p dasturlash
Atmega328p dasturlash

Atmega328p -ni dasturlash uchun 12 -qadamda bu erni tekshiring. Men bu erda.hex faylini taqdim etaman.

Mana, avrdude dasturi ommaviy faylni dasturlashga tayyor. Faqat usbasp.bat dasturini bosing va usbasp to'g'ri o'rnatilgan. Hammasi avtomatik ravishda sug'urta bitini o'z ichiga oladi.

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

Ushbu loyihada men C kodini ham baham ko'raman. Bilingki, undagi ba'zi yozuvlar frantsuz tilida bo'lishi mumkin.

7 -qadam: LCD displey

Lcd displey
Lcd displey
Lcd displey
Lcd displey

Bir nechta lentani o'rnating va pcb va lcd -ni bir -biriga ulang

8 -qadam: STL fayli

STL fayli
STL fayli
STL fayli
STL fayli
STL fayli
STL fayli

stl fayli

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

Korpus, drenaj trubkasi va miltiq ushlagichi uchun yordam kerak.

Hammasi.2 mm balandlikda chop etilgan.

9 -qadam: ROTARY ENKODER

ROTARY ENKODER
ROTARY ENKODER
ROTARY ENKODER
ROTARY ENKODER
ROTARY ENKODER
ROTARY ENKODER

Bu aylanadigan kodlovchi isp ulagichiga ulangan. u granulalarning og'irligini o'zgartirish va qurilmani yoqish va o'chirish uchun ishlatiladi.

vcc isp pin 2 (qarshilikni torting)

A terminali (sariq) provayder 1 -piniga o'tadi

B terminali (yashil) ISP pin 3 ga o'tadi

Terminal C (gnd) isp pin 6

Filtrga ega bo'lish va filtrsiz bo'lish o'rtasidagi farqni ko'rish uchun men 2 ta rasm qo'shyapman. Siz ikkalasining farqini osongina ko'rishingiz mumkin.

Bosish tugmasi kompyuterning SW ulagichiga o'tadi.

10 -qadam: Sensorli quvur

Sensorli quvur
Sensorli quvur
Sensorli quvur
Sensorli quvur
Sensorli quvur
Sensorli quvur

MUHIM:

Sensor trubkasi qora bo'lishi kerak va qabul qilgich yashirin bo'lishi kerak

Mening birinchi urinishlarim chiroyli qizil trubaga ega bo'lish edi. Lekin bu ayyor! Bu umuman ishlamadi. Men tushundimki, tashqi yorug'lik plastikdan tushadi va qabul qilgich sensori doimo yonib turadi.

Yaxshi natijaga erishish uchun men rangni qora rangga o'zgartirishdan boshqa ilojim yo'q edi.

Qabul qilgichni tepaga o'rnating. Va shaffof plastmassani qora bo'yoq, lenta yoki saqich, qora silikon bilan yashiring.

Pastga emitentni o'rnating. Sensorlar yaxshi javob berayotganini qalam bilan tekshiring. Ehtimol, emitentning teshigini biroz kattalashtirish kerak bo'ladi. Bu printerni kalibrlashiga bog'liq bo'ladi.

Menda soyada ham yaxshi natija bor. To'g'ridan -to'g'ri quyosh nurlaridan saqlaning.

11 -qadam: Sensorli quvur alternativasi

Sensorli quvur alternativasi
Sensorli quvur alternativasi
Sensorli quvur alternativasi
Sensorli quvur alternativasi

Agar sizda 3D printer bo'lmasa, xuddi shunday mis quvur bilan ham qilishingiz mumkin. Bu juda yaxshi ishlaydi. To'g'ri, 3 dyuymli teshik, qabul qilgich va emitent bir hil bo'lishi kerak.

12 -qadam: Osiloskop va kalibrlash bo'yicha granulalar

Osiloskop va kalibrlash bo'yicha granulalar
Osiloskop va kalibrlash bo'yicha granulalar

Bu quvurni tashlab yuboradigan haqiqiy pellet. Prob 1 sariq - sensor 1. 2 -sonli binafsha rang - sensor 2.

Vaqt/div - 50 kishi.

Biz 50usning 6 ta bo'linmasini sanashimiz mumkin. 50 us x 6 = 300 us (3 dyuym uchun). 1 fut uchun 300 x 4 = 1,2 milodiy

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

Bundan tashqari, biz sensor 5V kuchlanishli ekanligini ko'rishimiz mumkin. Va biz emitent nurini to'sa olamizmi, sensor 0 ga tushadi.

UC uning hisoblagichini ishga tushirish va to'xtatish usuli (timer1)

Ammo tezlik aniqligini bilish uchun menga buni o'lchash uchun usul kerak edi.

Dasturni kalibrlash va ushbu qurilmaning to'g'riligini tekshirish uchun men 10 MGts chastotali osilatordan foydalandim. Boshqa ko'rsatmali GPSDO -ga qarang.

Men bu 10 MGts bilan boshqa atmega328ni oziqlantiraman. Va har bir granulani simulyatsiya qilish tugmachasini bosganimda, menga 2 ta puls yuborish uchun assambleyada dasturlash. Xuddi biz rasmda ko'rganimizdek, lekin uning o'rniga haqiqiy pelletga ega bo'lish menga 2 ta puls yuboradigan boshqa shahar edi.

Har safar tugma bosilganda 1 ta puls yuboriladi va boshqa puls yuborilgandan keyin 4 ms.

Shunday qilib, men har doim 1000 fut/s ko'rsatiladigan dasturiy ta'minot kompilyatorini muvozanat qila olaman.

13 -qadam: Batafsil …

Ko'proq…
Ko'proq…
Ko'proq…
Ko'proq…

Bu mening 2010 yildagi birinchi prototipim.

Har qanday savol yoki xato haqida menga elektron pochta orqali xabar yuborishingiz mumkin. Ingliz yoki frantsuz. Men qo'limdan kelgancha yordam beraman.

Tavsiya: