Мазмуну:

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

Video: Пневматикалык мылтыктын хронографы, хроноскоп. 3D басылган: 13 кадам

Video: Пневматикалык мылтыктын хронографы, хроноскоп. 3D басылган: 13 кадам
Video: Kral Puncher Самозарядная пневматическая винтовка РСР 2024, Июль
Anonim
Image
Image
Feature
Feature

Салам баарына, бүгүн биз 2010 -жылы жасаган долбоорду кайра карап чыгабыз. Пневматикалык мылтыктын хронографы. Бул аппарат сизге снаряддын ылдамдыгын айтып берет. Пеллет, ВВ жада калса аба жумшак BB пластикалык топ.

2010 -жылы мен көңүл ачуу үчүн пневматикалык мылтык сатып алдым. Банкаларга, бөтөлкөлөргө, максатка тийип жатты. Мен билем, бул мылтыктын ылдамдыгы максималдуу 500 фут/сек. Анткени бул Канаданын мыйзамы. Кээ бир күчтүү пневматикалык мылтыктар бар, бирок лицензия алышыңыз керек жана Walmartтан бул нерсени сатып ала албайсыз.

Эми менде бул лицензия бар болчу, мен дагы башкасын сатып алмакмын. Бирок кыска окуя, ошол эле курал АКШга 1000 фут/с жеткиликтүү болгон. ЭМНЕ!? Ошол эле курал? ооба… Канадада, инсультта тешик бар жана булак жумшак.

Биринчи нерсе - тешикти толтуруу. Мен ширетүү менен ушундай кылдым. Кийинки нерсе алмаштыруучу булакка заказ кылуу болду. Бирок күтө туруңуз … менин жаңы оюнчугумдун азыркы ылдамдыгы кандай? Жаз чынында эле керекпи? Мен билбейм жана билгим келет. Мен азыр билгим келет, бирок кантип?

Ошол себептен бул долбоорду ишке ашырдым. Мага 2 сенсор, UC жана дисплей гана керек болчу, биз бизнес менен алекпиз.

Өткөн жумада мен текчедеги эски көк хронографымды көрүп, өзүм менен өзүм сүйлөштүм: "Эмнеге муну бөлүшпөйт жана аны менен көрсөтмө бербейт?" Баса, биз тактыкты жогорулатып, батарея көрсөткүчүн кошо алмакпыз. Күйгүзүү/өчүрүү үчүн 2 ордуна 1 баскычты коюңуз. Бардык бетине орнотуу. Биз азыр 2020 -жылыбыз!

Ошентип, бар … баштайлы!

1 -кадам: өзгөчөлүк

-Пеллет ылдамдыгы

-Ылдамдык

-20 МГц чуркоо, абдан тактык

-Автоматтык түрдө өчүк

-Батарея чыңалуусу көрсөтүлөт

-схема жеткиликтүү

-pcb жеткиликтүү

-бөлүктөрдүн тизмеси бар

-STL жеткиликтүү

-C коду жеткиликтүү

2 -кадам: Иштөө жана тактык теориясы

-Бизде 20 МГцте иштеген UC бар. Колдонулуучу осциллятор TCX0 +-2.5 ppm болуп саналат

-Бизде бири -биринен 3 дюйм аралыкта 2 сенсор бар.

-Снаряд биринчи сенсорго тийди. uC саноону баштоо (таймер1)

-Снаряд экинчи сенсорго тийди. uC саноону токтотот.

-uC timer1 маанисин текшерет, математиканы жана дисплей ылдамдыгын жана ылдамдыгын көрсөтөт.

Мен 16 биттик таймер1ди + tov1 толуп кетүү желегин колдонуп жатам. Толук эсептөө үчүн 131071 "tic" үчүн 17 бит бардыгы.

1/20 мГц = 50 нс. Ар бир тик 50нс

131071 x 50 ns = 6.55355 мс 3 дюйм кылуу.

6.55355 мс х 4 = 26.21 мс 12 дюйм кылуу.

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

Бул түзмөктүн эң жай ылдамдыгы.

Эмне үчүн 20 МГц? Эмне үчүн ички 8 МГц же кристалды колдонбойсуз?

Менин биринчи түзмөгүм ички осцилляторду колдонгон. Иштеп жаткан, бирок бул жетишерлик так эмес болчу. Вариация өтө чоң. Кристал жакшы, бирок температура ар кандай жыштыкта. Биз муну менен так өлчөөчү түзүлүштү жасай албайбыз. Ошондой эле, канчалык көп жыштык болсо, ошончо ылдамдыкта тик дагы эсептелет. Тандоо абдан жакшы тактыкка ээ болуу үчүн жакшы болот. Тик бөлүнбөгөндүктөн, кызмат цикли тез болсо, жоготуу аз болот.

20 МГцте бизде 50 нс кадамдар бар. 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де иштесе, жакшыбы? Келгиле, билип алалы…

2,5 ppm 20 000 000 - бул: (20000000/1000000) x 2.5 = 20000050 Гц

Эң начар сценарийде бизде 20 МГцте дагы 50 саат бар. Бул 1 секундда 50 саат. Эгерде гранул бирдей ылдамдыкта иштеп жатса (38.1472637 фут/с же 6.55ms), timer1де дагы канча соода бар?

1/20000050 = 49.999875 ns

49.999875 ns x 131071 = 6, 553533616 мс

6, 553533616 мс х 4 = 26.21413446 мс

1/26.21413446 мс = 38.14735907 фут/сек

Ошентип, бизде 38.1472637 фут/с ордуна 38.14735907 фут/с бар

Эми биз 2.5 ppm натыйжага таасир этпесин билебиз.

Бул жерде ар кандай ылдамдыктын мисалдары бар

1000 фут/с үчүн

1000 фут/с х 12 12000 дюйм/сек

12000 "1 үчүн канча убакыт керек 3"? 3x1/12000 = 250 бизге секунд

250 us / 50 ns = 5000 tic.

Таймер1 5000де болот

uC математиканы аткарат жана 1000 фут/с көрсөтүлөт. Азырынча ушунчалык жакшы

900 фут/с үчүн

900 фут/с 10800 /сек

3x1/10800 = 277.77 АКШ

277, 77 нс / 50 нс = 5555, 5555 тик

Таймер 1 5555те болот

uC математиканы жаса жана 900, 09 900 ордуна көрсөтүлөт

Неге ? анткени таймер 1 5555те жана 0, 5555 жоголгон. Таймердеги таймер бөлүнбөйт.

Бизде 900 фут/с боюнча 0, 09 катасы бар

0, 09/900x100 = 0, 01% ката гана

1500 фут/1500 фут/с үчүн 18000 дюйм/сек 3x1/10800 = 166.66 бизди түзөт

166.66 us / 50 ns = 3333.333 tic Timer 1 3333тө болот

uC математиканы жасайт жана 1500.15тин ордуна 1500 көрсөтүлөт.15/1500x100 = 0, 01%

9000 фут/с үчүн

9000 x 12 = 180000 дюйм / сек

3x1/180000 = 27.7777 бизге

27.77 us / 50 ns = 555, 555

Timer1 555те болот жана 4/(1/555x50ns) 9009, 00 көрсөтүлөт

Бул жерде 9000 = 0, 1% боюнча 9 фут/с болуп саналат

Көрүнүп тургандай, ылдамдык жогору болгондо % ката жогорулайт. Бирок <0.1% кал

Бул жыйынтыктар абдан жакшы.

Бирок тактык сызыктуу эмес. 10000 фут/с боюнча бул 0, 1 %. Жакшы нерсе, биз 10 000 ф/сек гранулду эч качан сынабайбыз.

Дагы бир нерсени эстен чыгарбоо керек. Үзгүлтүк болгондо, UC үзгүлтүккө кирерден мурун ар дайым акыркы көрсөтмөнү бүтүрөт. Бул нормалдуу жана бардык UC муну жасайт. Эгерде сиз arduino кодун C же жада калса ассемблерде. Көбүнчө түбөлүк циклде күтөсүз … күтүш үчүн. Маселе, биз бир циклде 2 циклди өткөрөбүз. Адатта бул маанилүү эмес. Бирок биздин учурда. Ооба, ар бир тик маанилүү. Чексиз циклди карап көрөлү:

монтаждоочу:

цикл:

rjmp укуругу

C тилинде:

учурда (1) {}

Чындыгында C компилятору rjmp көрсөтмөсүн колдонот. RJMP - 2 цикл.

Демек, эгер үзгүлтүк биринчи циклге туш келсе, биз бир циклди (tic) (50ns) жоготобуз.

Муну оңдоонун жолу - циклге көптөгөн nop көрсөтмөлөрүн кошуу. NOP - 1 цикл.

цикл:

жок

жок

жок

жок

жок

rjmp укуругу

Эгерде үзгүлтүк nop көрсөтмөсү боюнча болсо. Бизде баары жакшы. Эгерде бул rjmp көрсөтмөсүнүн экинчи циклинде боло турган болсо, биз макулбуз. Бирок, бул rjmp көрсөтмөсүнүн биринчи циклинде боло турган болсо, биз бир тикти жоготобуз. Ооба, бул болгону 50 нс, бирок жогоруда көрүнүп тургандай, 3 дюймдагы 50 нс эч нерсе эмес. Биз муну программалык камсыздоо аркылуу оңдой албайбыз, анткени үзгүлтүк качан болорун билбейбиз. Мына ошондуктан коддо сиз көп нускамаларды көрөсүз. Эми мен үзгүлтүк жок нускамага түшөрүнө толук ишенем. Эгерде мен 2000 ноп кошсом, анда rjmp инструкциясына түшүү үчүн 0, 05% бар.

Дагы бир нерсени эстен чыгарбоо керек. Үзгүлтүк болгондо. Компилятор көп түртүү жана тартууну жасайт. Бирок бул дайыма эле сан. Ошентип, азыр биз программалык камсыздоону оңдой алабыз.

Бул боюнча жыйынтык чыгаруу үчүн:

1000 фут/с орточо гранул үчүн тактык 0, 01%

Базардагы башка 1% га караганда 100 эсе так. Жыштык жогору жана TCXO менен, тагыраак

Мисалы, 1000 футтун 1% ы 10 фут/сек. Бул чоң айырма.

3 -кадам: схемалык жана тетиктердин тизмеси

Схемалык жана тетиктердин тизмеси
Схемалык жана тетиктердин тизмеси

Бул жерде мен бир баскычты күйгүзүү/өчүрүү схемасын ишке ашырдым. (менин акыркы көрсөтмөмдү караңыз) Бул схема абдан ыңгайлуу жана абдан жакшы иштейт.

Мен atmega328p колдонуп жатам. Бул C тилинде программаланган.

Дисплей HD44780 стандарттуу 2 саптуу LCD экраны менен шайкеш келет. 4 бит режими колдонулат.

3.3v жөндөгүч TCXO 20mhz чыңалуусун камсыздоо үчүн колдонулат.

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 модулун сатып алуунун кажети жок.

Сенсорлор:

2x эмитент OP140A

2x Reciper OPL530

Encoder: PEC11R-4215K-S0024 *4x 10k каршылыгын жана 2x.01uf коддоочу чыпкасын кошууну унутпаңыз. төмөндөгү сүрөттү караңыз

4 -кадам: PCB Gerber File

PCB Gerber File
PCB Gerber File
PCB Gerber File
PCB Gerber File
PCB Gerber File
PCB Gerber File
PCB Gerber File
PCB Gerber File

Бул жерде gerber файлдары

5 -кадам: Компьютериңизди ширетүү

Компьютериңизди Solder
Компьютериңизди Solder
Компьютериңизди Solder
Компьютериңизди Solder
Компьютериңизди Solder
Компьютериңизди Solder

Схемалык жардам менен бардык компоненттериңизди ПКБга ээрчиңиз. Ар бир бөлүк же 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 булак кодун да бөлүшүп жатам. Билиңиз, андагы айрым жазуулар француз тилинде болушу мүмкүн.https://1drv.ms/u/s! AnKLPDy3pII_vXUMXHdxajwGRFJx? E…

7 -кадам: Lcd Display

Lcd дисплей
Lcd дисплей
Lcd дисплей
Lcd дисплей

Бир нече лента орнотуп, pcb менен lcdди бирге туташтырыңыз

8 -кадам: STL File

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 пин 6

Мен чыпкасы менен чыпкасы жок болуунун ортосундагы айырманы көрүү үчүн 2 сүрөт кошуп жатам. Сиз экөөнүн ортосундагы айырманы оңой көрө аласыз.

Баскыч баскычы pcb SW туташтыргычына өтөт.

10 -кадам: сенсор түтүк

Сенсордук түтүк
Сенсордук түтүк
Сенсордук түтүк
Сенсордук түтүк
Сенсордук түтүк
Сенсордук түтүк

МААНИЛҮҮ:

Сенсордук түтүк кара түстө болушу керек, ал эми сенсордун кабылдагычы жашыруун болушу керек

Биринчи аракетим сулуу кызыл түтүккө ээ болуу болду. Бирок бул татаал! Бул таптакыр иштеген жок. Мен сырттагы жарыктын пластмассадан ыргып жатканын жана кабылдагычтын сенсорунун дайыма күйүп турганын түшүндүм.

Жакшы жыйынтыкка жетүү үчүн, түсүмдү кара кылып өзгөртүүдөн башка арга жок болчу.

Үстүнө ресиверди орнотуңуз. Жана тунук пластикти кара боек, скотч же сагыз, кара силикон менен жашырып коюңуз.

Төмөндө эмитентти орнотуңуз. Сенсорлор жакшы жооп берип жатса, калем менен текшериңиз. Балким, эмитенттин тешигин бир аз кеңейтүү керек болот. Бул принтердин калибрлөөсүнө жараша болот.

Мен дагы көлөкөдө жакшы жыйынтыкка ээ болдум. Түз нурдан алыс болуңуз.

11 -кадам: Sensor Pipe Alternative

Sensor Pipe Alternative
Sensor Pipe Alternative
Sensor Pipe Alternative
Sensor Pipe Alternative

Эгерде сизде 3d принтер жок болсо, анда сиз жез түтүк менен да жасай аласыз. Бул абдан жакшы иштейт. Туура 3 дюймдук тешикти жасоо кыйын жана алуучу менен эмитент тегизделиши керек.

12 -кадам: Осциллограф жана калибрлөө боюнча пеллет

Осциллограф жана калибрлөө боюнча пеллет
Осциллограф жана калибрлөө боюнча пеллет

Бул чоорду ыргытып жиберүүчү чыныгы гранул. Зонд 1 сары - сенсор 1. Зоб 2 кызгылт сенсор 2.

Убакыт/div 50 бизге.

Биз 50usтун 6 бөлүмүн санай алабыз. 50 us x 6 = 300 us (3 дюйм үчүн). 300 us x 4 = 1.2 мс 1 фут

1/1.2ms = 833.33 фут/с

Биз ошондой эле сенсор 5vде кадимкидей экенин көрө алабыз. Жана эмитенттин жарыгын бөгөй алабызбы, сенсор 0гө түшөт.

Бул UC анын контурун баштоо жана токтотуу жолу (Timer1)

Бирок ылдамдык так болгонун так билүү үчүн, мен муну байкап көрүүнүн жолуна муктаж болчумун.

Программалык камсыздоону жүргүзүү жана бул түзмөктүн тууралыгын текшерүү үчүн мен 10 МГц справочный осцилляторду колдондум. Менин GPSDOну башка көрсөтмөлөрдөн караңыз.

Мен бул 10 МГц менен дагы бир atmega328ди азыктандырам. Жана мунун баарын монтаждоочуга гранулду симуляциялоо үчүн баскычты басканымда мага 2 импульсту жөнөтүүгө программалаңыз. Так сүрөттө көргөндөйбүз, бирок чыныгы гранулга ээ болуу үчүн бул башка UC мага 2 импульсту жөнөттү.

Басуу баскычы басылган сайын 1 импульс жана башка пульс жөнөтүлгөндөн кийин так 4 мс жөнөтүлгөн.

Ошентип, мен программалык камсыздоочуга ар дайым 1000 фут/с көрсөтүү үчүн тең салмактуулукту сактай алам.

13 -кадам: Дагы…

Дагы…
Дагы…
Дагы…
Дагы…

Бул менин 2010 -жылдагы биринчи прототипим.

Бардык суроолорго же каталар жөнүндө мага электрондук кат жөнөтө аласыз. Англис же француз. Мен колумдан келген жардамымды берем.

Сунушталууда: