Агуулгын хүснэгт:

Агаарын бууны хронограф, хроноскоп. 3D хэвлэсэн: 13 алхам
Агаарын бууны хронограф, хроноскоп. 3D хэвлэсэн: 13 алхам

Видео: Агаарын бууны хронограф, хроноскоп. 3D хэвлэсэн: 13 алхам

Видео: Агаарын бууны хронограф, хроноскоп. 3D хэвлэсэн: 13 алхам
Видео: Старая техника изготовления шестигранников на соединителях трубок пневматического оружия. 2024, Долдугаар сарын
Anonim
Image
Image
Онцлог
Онцлог

Сайн байцгаана уу, өнөөдөр бид 2010 онд хийсэн төсөлөө эргэн харах болно. Агаарын бууны хронограф. Энэ төхөөрөмж нь пуужингийн хурдыг танд хэлэх болно. Пеллет, ВВ эсвэл бүр агаарын зөөлөн BB хуванцар бөмбөг.

2010 онд би хөгжилтэй байхын тулд хийн буу худалдаж авсан. Лааз, шил, зорилгод цохиж байсан. Энэ бууны хурд хамгийн ихдээ 500 фут/сек байсан гэдгийг би мэднэ. Учир нь энэ бол Канадын хууль. Илүү хүчирхэг агаарын винтов бэлэн байгаа боловч та лицензтэй байх ёстой бөгөөд үүнийг Walmart дээрээс худалдаж авах боломжгүй.

Одоо би энэ лицензтэй байсан, өөр лиценз худалдаж авах боломжтой байсан. Гэсэн хэдий ч богино өгүүллээр ижил бууг АНУ -д 1000 фут/сек -ээр авах боломжтой байв. ЯАГААД !? Адил буу? тийм … Канадад цус харвалт нь нүхтэй бөгөөд булаг нь илүү зөөлөн байдаг.

Хамгийн эхний хийх зүйл бол нүхийг бөглөх явдал юм. Үүнийг би гагнуураар хийсэн. Дараагийн хийх зүйл бол солих булаг захиалах явдал байв. Гэхдээ түр хүлээгээрэй … миний шинэ тоглоом ямар хурдтай байна вэ? Хавар үнэхээр хэрэгтэй юу? Би мэдэхгүй, мэдэхийг хүсч байна. Би одоо мэдэхийг хүсч байна, гэхдээ яаж?

Тийм учраас би энэ төслийг хийсэн. Надад зөвхөн 2 мэдрэгч, UC, дэлгэц л хэрэгтэй байсан бөгөөд бид бизнес эрхэлж байна.

Өнгөрсөн долоо хоногт би хуучин цэнхэр хронографаа тавиур дээр байхыг хараад өөртэйгээ "Яагаад үүнийг хуваалцаж, зааварчилгаа өгөхгүй байгаа юм бэ?" Дашрамд хэлэхэд бид нарийвчлалыг дээшлүүлж, батерейны индикаторыг нэмж болно. Асаах/унтраахын тулд 2 товчлуурын оронд 1 товчлуурыг дарна уу. Бүх гадаргуугийн бэхэлгээ. Бид одоо 2020 онд байна!

Энд байна … эхэлцгээе!

Алхам 1: Онцлог

-Пеллетийн хурд

-Хурд

-20 МГц гүйдэг, маш нарийвчлалтай

-Автомат унтраалттай

-Батерейны хүчдэлийг харуулав

-схем боломжтой

-PCB боломжтой

-хэсгүүдийн жагсаалт боломжтой

-STL ашиглах боломжтой

-С код авах боломжтой

Алхам 2: Үйл ажиллагаа ба нарийвчлалын онол

-Манайд 20 МГц давтамжтай ажилладаг UC ажилладаг. Ашигласан осциллятор нь TCX0 +-2.5 ppm юм

-Бид бие биенээсээ 3 инчийн зайтай 2 мэдрэгчтэй.

-Пуужин анхны мэдрэгчийг оносон. uC тоолж эхлэх (таймер1)

-Пуужин хоёр дахь мэдрэгчийг оносон. uC тоолохоо боль.

-uC timer1 -ийн утгыг шалгаж, математик, дэлгэцийн хурд, хурдыг хийнэ үү.

Би 16 битийн таймер1 + tov1 халих туг ашиглаж байна. Бүрэн тоолохын тулд 131071 "tic" нийт 17 бит.

1/20 мГц = 50 ns. Тик бүр нь 50 н

3 инч хийх 131071 x 50 ns = 6.55355 ms.

12 инч хийхэд 6.55355 ms x 4 = 26.21 ms.

1/26.21 ms = 38.1472637 фут/сек

Энэ бол төхөөрөмжийн хэмжих хамгийн удаан хурд юм.

Яагаад 20 МГц вэ? Яагаад дотоод 8 МГц, эсвэл бүр кристал ашигладаггүй юм бэ?

Миний анхны төхөөрөмж дотоод осцилляторыг ашиглаж байсан. Ажиллаж байсан боловч энэ нь хангалттай нарийвчлалтай биш байсан. Өөрчлөлт нь хэтэрхий том юм. Кристал нь илүү дээр боловч температур нь өөр өөр давтамжтай байдаг. Бид үүгээр нарийн хэмжих төхөөрөмжийг хийж чадахгүй. Түүнчлэн, давтамж өндөр байх тусам ижил хурдыг тооцох болно. Маш сайн нарийвчлалтай байхын тулд дээж авах нь илүү дээр байх болно. Тик нь хуваагддаггүй тул үүргийн мөчлөг хурдан байвал алдагдал бага байдаг.

20 МГц давтамжтайгаар бид 50 ns алхамтай. 38 фут/сек хурдтай харвах нь 50 нс хэр нарийвчлалтай болохыг бид мэдэх үү.

38.1472637 фут/сек -ийг 131071 = 0, 000291042 футад хуваана

0, 0003880569939956207 фут x 12 = 0, 003492512 инч

1/0, 003492512 = 286.37 ". Өөрөөр хэлбэл. 50 фут/сек-ийн нарийвчлалтайгаар +- 1/286" эсвэл +- 0, 003492512 инч байна

Гэхдээ хэрэв миний осциллятор хамгийн муу бөгөөд 20 МГц +2.5 ppm дээр ажилладаг бол зүгээр үү? Үүнийг олж мэдье …

20 000 000 -ийн 2.5 ppm нь: (20000000/1000000) x 2.5 = 20000050 Гц

Хамгийн муу тохиолдолд 20 мГц давтамжтай 50 цагтай болно. 1 секундэд 50 цаг байна. Пеллет ижил хурдтай (38.1472637 фут/сек буюу 6.55 мс) байвал timer1 дээр хичнээн их tic байдаг вэ?

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 фут/сек

Тиймээс бид 38.1472637 фут/сек -ийн оронд 38.14735907 фут/сек байна

2.5 ppm нь үр дүнд нөлөөлөхгүй гэдгийг бид одоо мэдэж байна.

Энд өөр өөр хурдны жишээ байна

1000 фут/сек -ийн хувьд

1000 ft/s x 12 нь 12000 инч/сек юм

12000 "3 -ийг хэдэн удаа хийх вэ?" 1 секунд? 3x1/12000 = 250 секунд

250 us / 50 ns = 5000 tic.

Таймер1 нь 5000 байх болно

uC математик хийх ба 1000 фут/сек харагдана. Одоогоор маш сайн

900 фут/сек -ийн хувьд

900 фут/сек нь 10800 инч/сек юм

3x1/10800 = 277.77 бид

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

Таймер 1 5555 дээр байх болно

uC математикийг хий, 900 биш, 900, 09 гарч ирэх болно

Яагаад? таймер 1 нь 5555 байхад 0, 5555 алдагдсан. Tic on timer нь хуваагддаггүй.

Бид 900 ft/s дээр 0, 09 гэсэн алдаатай байна

0, 09/900x100 = 0, 01% -ийн алдаа

1500 ft/s1500 ft/s -ийн хувьд 18000 инч/сек 3x1/10800 = 166.66 байна

166.66 us / 50 ns = 3333.333 tic Timer 1 нь 3333 дээр байх болно

uC математикийг хийдэг бөгөөд 1500.15 -ийн оронд 1500.15 гарч ирнэ.15/1500x100 = 0, 01%

9000 фут/сек -ийн хувьд

9000 x 12 = 180000 инч / сек

3x1/180000 = 27.7777 бид

27.77 us / 50 ns = 555, 555

Таймер1 555 дээр байх ба 4/(1/555x50нс) 9009, 00 харагдана.

Энд алдаа 9000 = 0, 1% дээр 9 фут/сек байна.

Таны харж байгаагаар хурд өндөр байх үед % алдаа нэмэгддэг. Гэхдээ <0.1% үлдэх

Эдгээр үр дүн маш сайн байна.

Гэхдээ нарийвчлал нь шугаман биш юм. 10000 фут/сек хурдтай байхад энэ нь 0, 1 %байна. Сайн зүйл бол бид 10,000 фут/сек үрэлийг хэзээ ч туршдаггүй.

Санаж байх ёстой өөр нэг зүйл. Тасалдал гарах үед uC тасалдалд орохоосоо өмнө үргэлж сүүлчийн зааврыг дуусгадаг. Энэ бол хэвийн зүйл бөгөөд бүх UC үүнийг хийдэг. Хэрэв та arduino -г C эсвэл бүр ассемблер дээр кодлодог бол. Ихэнх тохиолдолд та үүрд хүлээх болно … хүлээх. Асуудал нь гогцоонд бид 2 мөчлөг зарцуулдаг. Дүрмээр бол энэ нь тийм ч чухал биш юм. Гэхдээ манай тохиолдолд. ТИЙМ, tic бүр чухал ач холбогдолтой. Хязгааргүй хүрдийг харцгаая.

угсрагч:

гогцоо:

rjmp давталт

C хэл дээр:

байхад (1) {}

Үнэн хэрэгтээ C хөрвүүлэгч нь rjmp зааврыг ашигладаг. RJMP нь 2 мөчлөг юм.

Хэрэв тасалдал эхний мөчлөгт тохиолдвол бид нэг мөчлөг (tic) (50ns) алдана гэсэн үг юм.

Үүнийг засах миний арга бол гогцоонд олон nop заавар нэмэх явдал юм. NOP бол 1 мөчлөг юм.

гогцоо:

үгүй

үгүй

үгүй

үгүй

үгүй

rjmp давталт

Хэрэв тасалдал нь nop зааврын дагуу болвол. Бид зүгээр. Хэрэв энэ нь rjmp зааврын хоёр дахь мөчлөг дээр тохиолдвол бид зүгээр байна. Гэхдээ хэрэв энэ нь rjmp зааврын эхний мөчлөг дээр тохиолдвол бид нэг tic -ээ алдах болно. Тийм ээ, энэ нь ердөө 50 ns боловч дээр дурдсанчлан 3 инчийн 50 ns нь юу ч биш юм. Яг тасалдал хэзээ болохыг мэдэхгүй учраас бид үүнийг програм хангамжаар засч залруулж чадахгүй байна. Тиймээс код дээр та маш олон nop зааврыг харах болно. Одоо тасалдал нь nop зааварчилгаа өгөх болно гэдэгт би итгэлтэй байна. Хэрэв би 2000 nop нэмбэл би rjmp заавар дээр 0, 05% байна.

Санаж байх ёстой өөр нэг зүйл. Тасалдал гарах үед. Хөрвүүлэгч олон түлхэх, татах үйлдлийг хийдэг. Гэхдээ энэ нь үргэлж ижил тоо юм. Тиймээс одоо бид програм хангамжийн залруулга хийж болно.

Үүнийг дүгнэж хэлэхэд:

1000 фут/сек дундаж үрлийн нарийвчлал нь 0, 01% байна

Зах зээл дээрх бусад 1% -аас 100 дахин нарийвчлалтай. Давтамж нь илүү өндөр бөгөөд TCXO -ийн хувьд илүү нарийвчлалтай байдаг

Жишээлбэл, 1000 фут/сек -ийн 1% нь 10 фут/с -ээс ихгүй байна. Маш том ялгаа байна.

Алхам 3: Схем ба эд ангиудын жагсаалт

Схем ба эд ангиудын жагсаалт
Схем ба эд ангиудын жагсаалт

Энд би нэг товчлуурыг асаах/унтраах хэлхээгээ хэрэгжүүлэв. (Миний сүүлчийн зааврыг үзнэ үү) Энэ хэлхээ нь маш тохиромжтой бөгөөд маш сайн ажилладаг.

Би atmega328p ашиглаж байна. Үүнийг C дээр програмчилсан болно.

Дэлгэц нь HD44780 стандарт LCD дэлгэцтэй 2 мөртэй. 4 битийн горимыг ашигладаг.

TCXO 20mhz хүчдэлийг хангахын тулд 3.3v зохицуулагчийг ашигладаг.

D1 нь lcd арын гэрэлтүүлэг юм. Нэмэлт. Хэрэв та D1 -ийг суулгаагүй бол батерей удаан үргэлжлэх болно.

Бүх резистор ба таг нь 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 шугам HD44780. I2c модулийг худалдаж авах шаардлагагүй.

Мэдрэгч:

2х ялгаруулагч OP140A

2х хүлээн авагч OPL530

Кодлогч: PEC11R-4215K-S0024 *Кодлогч шүүлтүүр хийхийн тулд 4x 10k эсэргүүцэл, 2x.01uf нэмэхээ бүү мартаарай. доорх зургийг үзнэ үү

Алхам 4: ПХБ -ийн Гербер файл

ПХБ Гербер файл
ПХБ Гербер файл
ПХБ Гербер файл
ПХБ Гербер файл
ПХБ Гербер файл
ПХБ Гербер файл
ПХБ Гербер файл
ПХБ Гербер файл

Энд gerber файлууд байна

Алхам 5: Pcb -ээ гагнах

Компьютерээ гагнах
Компьютерээ гагнах
Компьютерээ гагнах
Компьютерээ гагнах
Компьютерээ гагнах
Компьютерээ гагнах

Схемийн тусламжтайгаар бүх бүрэлдэхүүн хэсгүүдийг PCB дээр гагнана. Pcb, r1, r2 … гэх мэт хэсгүүд эсвэл бичсэн зүйлс тус бүр.

Надад D1 суулгаагүй байна. Энэ нь lcd арын гэрэлд зориулагдсан болно. Энэ нь үзэсгэлэнтэй боловч батерейны ашиглалтад нөлөөлдөг. Тиймээс би lcd арын гэрлийг унтраахаар шийдсэн.

Алхам 6: Atmega328p програмчлах

Atmega328p програмчлах
Atmega328p програмчлах

Atmega328p програмчлахын тулд 12 -р алхамыг эндээс үзээрэй. Би энд.hex файлыг энд оруулав.

Багц файлыг програмчлахад бэлэн байгаа avrdude програм энд байна. Зөвхөн usbasp.bat програм дээр дарахад таны usbasp зөв суулгасан байна. Гал хамгаалагчийг оруулаад бүгдийг автоматаар хийх болно.

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

Энэ төсөлд би C эх кодыг хуваалцаж байна. Зарим тэмдэглэл франц хэл дээр байж болохыг анхаарна уу.

Алхам 7: Lcd дэлгэц

Lcd дэлгэц
Lcd дэлгэц
Lcd дэлгэц
Lcd дэлгэц

Бага зэрэг соронзон хальс суулгаж, pcb болон lcd -ийг хооронд нь холбоно уу

Алхам 8: STL файл

STL файл
STL файл
STL файл
STL файл
STL файл
STL файл

stl файл

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

Хашаа, мэдрэгч хоолой, винтов эзэмшигчийн дэмжлэг шаардлагатай.

Би бүгд.2 мм өндөрт хэвлэсэн.

Алхам 9: Ротари кодлогч

Ротари кодлогч
Ротари кодлогч
Ротари кодлогч
Ротари кодлогч
Ротари кодлогч
Ротари кодлогч

Энэхүү эргэлдэгч кодлогч нь isp холбогчтой холбогдсон байна. Энэ нь үрлэнгийн жинг өөрчлөх, төхөөрөмжийг асаах, унтраахад ашиглагддаг.

vcc isp pin 2 (эсэргүүцэл татах)

А терминал (шар) нь ISP зүү 1 рүү очно

Терминал B (ногоон) ISP 3 -р зүү рүү очно уу

Терминал C (gnd) isp pin 6

Шүүлтүүртэй байх, шүүлтүүргүй байх хоёрын ялгааг харахын тулд би 2 зураг нэмж байна. Та хоёулангийнх нь ялгааг хялбархан харж чадна.

Товчлуур нь pcb SW холбогч руу очно.

Алхам 10: Мэдрэгчийн хоолой

Мэдрэгчийн хоолой
Мэдрэгчийн хоолой
Мэдрэгчийн хоолой
Мэдрэгчийн хоолой
Мэдрэгчийн хоолой
Мэдрэгчийн хоолой

ЧУХАЛ:

Мэдрэгч хоолой нь хар өнгөтэй, мэдрэгч хүлээн авагч нь далд байх ёстой

Миний анхны оролдлого бол сайхан улаан хоолойтой болох явдал байв. Гэхдээ энэ бол төвөгтэй юм! Энэ нь огт ажиллахгүй байсан. Гаднах гэрэл нь хуванцар, хүлээн авагчийн мэдрэгч үргэлж асдаг болохыг олж мэдэв.

Сайн үр дүнд хүрэхийн тулд өнгийг хар болгож өөрчлөхөөс өөр арга байгаагүй.

Дээд талд хүлээн авагч суулгана уу. Мөн тунгалаг хуванцарыг хар будаг, соронзон хальс эсвэл бохь, хар силиконоор нуу.

Доод талд ялгаруулагч суулгаарай.. Мэдрэгч сайн хариу өгч байгаа эсэхийг үзэгээр шалгана уу. Ялгаруулагчийн нүхийг бага зэрэг томруулах шаардлагатай байж магадгүй юм. Энэ нь таны хэвлэгчийн тохируулгаас хамаарна.

Би бас сүүдэрт илүү сайн үр дүнд хүрсэн. Нарны шууд тусгалаас зайлсхий.

Алхам 11: Мэдрэгч хоолойн өөр хувилбар

Мэдрэгч хоолойн өөр хувилбар
Мэдрэгч хоолойн өөр хувилбар
Мэдрэгч хоолойн өөр хувилбар
Мэдрэгч хоолойн өөр хувилбар

Хэрэв танд 3d принтер байхгүй бол та үүнийг зэс хоолойгоор хийж болно. Энэ нь маш сайн ажиллах болно. Хийхэд хэцүү зүйл бол яг 3 инчийн нүх бөгөөд хүлээн авагч ба ялгаруулагчийг зэрэгцүүлсэн байх ёстой.

Алхам 12: Осциллограф ба калибровкийн үрэл

Осциллограф ба калибровкийн үрэл
Осциллограф ба калибровкийн үрэл

Энэ бол дамжуулах хоолойн жинхэнэ үрэл юм. 1 -р шар нь мэдрэгч юм. 2 -р ягаан бол 2 -р мэдрэгч юм.

Цаг/div бол бидний 50.

Бид 50us -ийн 6 хэлтсийг тоолж чадна. 50 us x 6 = 300 us (3 инчийн хувьд). 1 хөлийн хувьд 300 us x 4 = 1.2 ms

1/1.2ms = 833.33 ft/s

Мэдрэгч нь ихэвчлэн 5V хүчдэлтэй байгааг бид бас харж болно. Мөн бид ялгаруулагч гэрлийг хааж болно, мэдрэгч 0 болж буурна.

Энэ бол түүний хөрвүүлэгчийг эхлүүлэх, зогсоох арга юм (таймер1)

Гэхдээ хурд үнэн зөв эсэхийг мэдэхийн тулд надад үүнийг хэмжих арга хэрэгтэй байсан.

Програм хангамжийн шалгалт тохируулга хийх, энэ төхөөрөмжийн нарийвчлалыг шалгахын тулд би 10 МГц давтамжтай осциллятор ашигласан. Миний GPSDO -г бусад зааварчилгаанаас үзнэ үү.

Би энэ 10 мГц -ийн тусламжтайгаар өөр atmega328 -ийг тэжээдэг. Мөн үүнийг үрчлэх загварчлах товчлуурыг дарах бүрт надад 2 импульс илгээхийг ассемблерт програмчлаарай. Яг л бид зурган дээр харсан шиг харин жинхэнэ үрэл авахын тулд өөр нэг UC нь надад 2 импульс илгээсэн юм.

Товчлуурыг дарах бүрт 1 импульс, өөр импульс явуулсны дараа яг 4 мс илгээдэг.

Ийм байдлаар би програм хангамжийн хөрвүүлэгчийг үргэлж 1000 фут/сек харуулахын тулд тэнцвэржүүлж чаддаг.

Алхам 13: Дэлгэрэнгүй…

Бусад…
Бусад…
Бусад…
Бусад…

Энэ бол миний 2010 оны анхны загвар юм.

Аливаа асуулт, алдааны талаар надад имэйлээр илгээж болно. Англи эсвэл Франц. Би чадах бүхнээрээ туслах болно.

Зөвлөмж болгож буй: