Мазмұны:
- 1 -қадам: ерекшелігі
- 2 -қадам: Операция мен дәлдік теориясы
- 3 -қадам: схемалық және бөлшектер тізімі
- 4 -қадам: PCB Gerber файлы
- 5 -қадам: компьютерді дәнекерлеңіз
- 6 -қадам: Atmega328p бағдарламалау
- 7 -қадам: Lcd дисплейі
- 8 -қадам: STL файлы
- 9 -қадам: РОТАРЛЫҚ КОДКОДЕР
- 10 -қадам: сенсорлық құбыр
- 11 -қадам: сенсорлық құбырдың баламасы
- 12 -қадам: осциллограф пен калибрлеуге арналған түйіршік
- 13 -қадам: Толығырақ…
Бейне: Пневматикалық винтовка хронографы, хроноскоп. 3D басып шығару: 13 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:23
Сәлем баршаңызға, бүгін біз 2010 жылы жасаған жобаны қайталаймыз. Әуе атқыштар хронографы. Бұл құрылғы снарядтың жылдамдығын көрсетеді. Пеллет, ВВ немесе тіпті ауа жұмсақ ВВ пластикалық шар.
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 нс. Әр тик 50нс
3 дюйм жасау үшін 131071 x 50 ns = 6.55355 мс.
12 дюйм жасау үшін 6.55355 мс х 4 = 26.21 мс.
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 болса, бұл жақсы ма? Білейік…
20 000 000 2,5 ppm - бұл: (20000000/1000000) x 2,5 = 20000050 Гц
Ең нашар сценарийде бізде 20 МГц тағы 50 сағат бар. 1 секундта 50 сағат. Егер түйіршіктер бірдей жылдамдықпен (38.1472637 фут/с немесе 6.55 мс) жұмыс жасаса, таймер1 -де қанша тауар бар?
1/20000050 = 49.999875 нс
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 фут/с x 12 - 12000 дюйм/с
1 секунд 12000 «қанша уақыт 3 жасау керек»? 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 орнына 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
Таймер1 555 болады және 4/(1/555x50нс) 9009 көрсетіледі, 00 көрсетіледі
Бұл жерде 9000 = 0, 1% бойынша 9 фут/с.
Көріп отырғаныңыздай, жылдамдық жоғары болған кезде % қате жоғарылайды. Бірақ <0,1% қалу
Бұл нәтижелер өте жақсы.
Бірақ дәлдік сызықтық емес. 10000 фут/с жылдамдықта ол 0,1 %құрайды. Жақсы жаңалық - біз 10 000 фут/с түйіршікті ешқашан сынамаймыз.
Есте сақтау керек тағы бір нәрсе. Үзіліс болған кезде, uC үзіліс енгізбес бұрын әрқашан соңғы нұсқауды аяқтайды. Бұл қалыпты жағдай және барлық UC мұны жасайды. Егер сіз arduino кодын C немесе тіпті ассемблерде жазсаңыз. Көбінесе сіз мәңгілік циклде күтесіз … күту үшін. Мәселе мынада, біз 2 цикл өткіземіз. Әдетте бұл маңызды емес. Бірақ біздің жағдайда. ИӘ, әр сауда маңызды. Шексіз циклды қарастырайық:
құрастырушы:
цикл:
rjmp циклы
С тілінде:
уақыт (1) {}
Шын мәнінде C компиляторы rjmp нұсқауын пайдаланады. RJMP - 2 цикл.
Бұл егер үзіліс бірінші циклде орын алса, біз бір циклды (tic) (50ns) жоғалтып аламыз.
Менің түзету әдісім - бұл циклге көптеген nop нұсқауларын қосу. NOP - 1 цикл.
цикл:
жоқ
жоқ
жоқ
жоқ
жоқ
rjmp циклы
Егер үзіліс nop нұсқауымен орын алса. Бізде бәрі жақсы. Егер бұл rjmp нұсқауының екінші циклінде орын алса, бізде бәрі жақсы. Бірақ егер бұл rjmp нұсқауының бірінші циклінде орын алса, біз бір сауда жоғалтып аламыз. Иә, бұл тек 50 нс, бірақ жоғарыда көріп тұрғандай, 3 дюймдегі 50 нс ештеңе емес. Біз мұны бағдарламалық қамтамасыз ету арқылы түзете алмаймыз, себебі үзілістің нақты қашан болатынын білмейміз. Сондықтан кодта сіз көптеген нұсқауларды көресіз. Енді үзіліс жоқ нұсқаулыққа түсетініне сенімдімін. Егер мен 2000 nop қоссам, rjmp нұсқаулығына түсу үшін менде 0, 05% болады.
Есте сақтау керек тағы бір нәрсе. Үзіліс болған кезде. Компилятор көптеген итеру мен тартуды жасайды. Бірақ бұл әрқашан бірдей сан. Енді біз бағдарламалық жасақтаманы түзете аламыз.
Бұл туралы қорытынды жасау үшін:
Орташа түйіршіктің 1000 фут/с дәлдігі - 0,1%
Нарықтағы басқа 1% -ға қарағанда 100 есе дәл. Жиілік жоғары және TCXO кезінде дәлірек
Мысалы, 1000 фт/с -тың 1% -ы 10 фут/с -қа тең. Бұл үлкен айырмашылық.
3 -қадам: схемалық және бөлшектер тізімі
Мұнда мен бір басу түймесін қосу/өшіру схемасын енгіздім. (менің соңғы нұсқаулықты қараңыз) Бұл схема өте ыңғайлы және өте жақсы жұмыс істейді.
Мен atmega328p қолданамын. Бұл C тілінде бағдарламаланған.
Дисплей HD44780 стандартты LCD 2 жолды үйлесімді. 4 биттік режим қолданылады.
TCXO 20 мГц кернеуді қамтамасыз ету үшін 3,3 вольтты реттегіш қолданылады.
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.1в 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
HD44780 2 жолақты дисплей. I2c модулін сатып алудың қажеті жоқ.
Датчиктер:
2x OP140A эмитенті
2x OPL530 қабылдағыш
Кодер: PEC11R-4215K-S0024 *Кодер сүзгісін жасау үшін 4x 10k резистор мен 2x.01uf қосуды ұмытпаңыз. төмендегі суретті қараңыз
4 -қадам: PCB Gerber файлы
Мұнда gerber файлдары бар
5 -қадам: компьютерді дәнекерлеңіз
Схемалық көмекпен компьютердегі барлық компоненттерді дәнекерлеңіз. Pcb, r1, r2… және т.б. бойынша жазылған әрбір бөлік.
Менде D1 орнатылған жоқ. Бұл LCD артқы жарыққа арналған. Бұл әдемі, бірақ батареяның қызмет ету мерзімі әсер етеді. Сондықтан мен LCD артқы жарығын өшіруді шештім.
6 -қадам: Atmega328p бағдарламалау
Atmega328p бағдарламалау үшін 12 -қадамда осында тексеріңіз. Мен бұл үшін.hex файлын ұсынамын.
Міне пакеттік файлды бағдарламалауға дайын avrdude бағдарламасы. Usbasp.bat бағдарламасын нұқыңыз, ал сіздің usbasp дұрыс орнатылған. Барлығы автоматты түрде сақтандырғышты қосады.
1drv.ms/u/s!AnKLPDy3pII_vXaGPIZKMXxaXDul?e…
Бұл жобада мен C бастапқы кодын бөлісемін. Ондағы кейбір ескертулер француз тілінде болуы мүмкін екенін біліңіз.
7 -қадам: Lcd дисплейі
Кейбір таспаны орнатыңыз және компьютер мен дискіні бірге қосыңыз
8 -қадам: STL файлы
stl файлы
1drv.ms/u/s!AnKLPDy3pII_vgezy0i0Aw3nD-xr?e…
Қоршауға, сенсорлық құбырға және мылтық ұстағышқа қолдау қажет.
Мен барлығын.2 мм биіктікте басып шығардым.
9 -қадам: РОТАРЛЫҚ КОДКОДЕР
Бұл айналмалы кодер isp коннекторына қосылған. ол түйіршіктердің салмағын өзгертуге және құрылғыны қосуға және өшіруге арналған.
vcc isp pin 2 (резисторды көтеріңіз)
А терминалы (сары) провайдердің 1 түйреуішіне өтеді
В терминалы (жасыл) 3 провайдер түйреуішіне өтіңіз
C терминалы (gnd) isp pin 6
Мен сүзгі мен сүзгісіз арасындағы айырмашылықты көру үшін 2 сурет қосамын. Сіз екеуінің арасындағы айырмашылықты оңай көре аласыз.
Басу түймесі pcb SW қосқышына өтеді.
10 -қадам: сенсорлық құбыр
МАҢЫЗДЫ:
Сенсорлық құбыр қара болуы керек, ал сенсор қабылдағышы жасырын болуы керек
Менің бірінші талпынысым әдемі қызыл құбыр болды. Бірақ бұл қиын! Бұл мүлде жұмыс істемеді. Мен пластмассадан сырттан жарық түсетінін және қабылдағыш сенсоры үнемі қосылып тұрғанын білдім.
Жақсы нәтижеге жету үшін түсімді қара түске өзгертуге еш мүмкіндік болмады.
Қабылдағышты үстіне орнатыңыз. Ал мөлдір пластикті қара бояумен, таспамен немесе сағызмен, қара силиконмен жасырыңыз.
Эмитентті төменгі жағына орнатыңыз. Сенсорлар жақсы жауап беретінін қаламмен тексеріңіз. Мүмкін, эмитенттің тесігін сәл ұлғайту қажет болуы мүмкін. Бұл принтердің калибрлеуіне байланысты болады.
Менде көлеңкеде жақсы нәтиже бар. Тікелей күн сәулесінен аулақ болыңыз.
11 -қадам: сенсорлық құбырдың баламасы
Егер сізде 3D принтері болмаса, сіз мұны мыс құбырмен жасай аласыз. Бұл өте жақсы жұмыс істейтін болады. Қиын нәрсе - дәл 3 дюймдік тесік және қабылдағыш пен эмитент туралануы керек.
12 -қадам: осциллограф пен калибрлеуге арналған түйіршік
Бұл нағыз түйіршіктер құбырды лақтырады. Зонд 1 сары - сенсор 1. Зонд 2 күлгін - сенсор 2.
Уақыт/div - 50 бізге.
Біз 50us -тың 6 бөлімін санауға болады. 50 us x 6 = 300 us (3 дюйм үшін). 300 фунт х 4 = 1,2 фут 1 футқа
1/1,2 мс = 833,33 фут/с
Сондай -ақ, сенсордың әдетте 5 вольтінде екенін көре аламыз. Біз эмитент жарығын бөгей аламыз ба, сенсор 0 -ге түседі.
Дәл осылай uC оның есептегішін бастайды және тоқтатады (таймер1)
Бірақ жылдамдық дәл болғанын білу үшін маған мұны өлшеу әдісі қажет болды.
Бағдарламалық қамтамасыз етуді калибрлеу және осы құрылғының дәлдігін тексеру үшін мен 10 МГц анықтамалық осцилляторды қолдандым. Басқа нұсқаулықта менің GPSDO -ны қараңыз.
Мен осы 10 МГц -пен басқа atmega328 беремін. Және бұл түйіршікті модельдеуге арналған түймені басқан сайын маған 2 импульс жіберетін ассемблерде бағдарламалау. Дәл біз суретте көргендей болдық, бірақ нағыз түйіршікті алудың орнына бұл маған басқа импульсті жіберді.
Түймені басқан сайын 1 импульс жіберіледі және басқа импульсті жібергеннен кейін дәл 4 мс.
Осылайша, мен бағдарламалық жасақтама компиляторын әрқашан 1000 фут/с дисплейде теңестіре аламын.
13 -қадам: Толығырақ…
Бұл менің 2010 жылғы алғашқы прототипім.
Кез келген сұрақтар мен қателер туралы маған электрондық хат жібере аласыз. Ағылшын немесе француз. Мен қолымнан келгенше көмектесемін.
Ұсынылған:
EASY Infinity Mirror Cube жасаңыз - 3D басып шығару жоқ және бағдарламалау жоқ: 15 қадам (суреттермен)
EASY Infinity Mirror Cube жасаңыз | 3D басып шығару жоқ және бағдарламалау жоқ: Барлығы жақсы шексіздік текшесін ұнатады, бірақ оларды жасау қиынға соғады. Бұл нұсқаулықтағы менің мақсатым-сізге оны қалай жасау керектігін біртіндеп көрсету. Бұл ғана емес, мен сізге берген нұсқаулармен сіз оны жасай аласыз
Power Bank 10 доллардан төмен! - DIY - 3D басып шығару: 6 қадам (суреттермен)
Power Bank 10 доллардан төмен! | DIY | 3D басып шығару: Қазіргі заманғы смартфондар индустриясы өте қуатты телефон шығарады, біз 90 -шы жылдары күткен едік, бірақ оларда тек бір нәрсе жетіспейді, олар батарея. Ал қазір бізде жалғыз шешім - бұл қуат банкі. Бұл бейнеде мен сізге қалай болатынын көрсетемін
Мысық тағамдарына қол жеткізуді басқару (ESP8266 + Servo Motor + 3D басып шығару): 5 қадам (суреттермен)
Мысықтардың тамақтануын бақылау (ESP8266 + Servo Motor + 3D басып шығару): Бұл жоба менің қарт диабеттік мысық Чазға арналған мысықтарға арналған автоматтандырылған ыдыс жасау процесін қамтиды. Қараңыз, ол инсулин алмастан бұрын таңғы асты ішуі керек, бірақ мен ұйықтамас бұрын оның тағамын алуды ұмытып кетемін, бұл
MS Excel көмегімен арнайы бағдарламалық жасақтамасыз немесе принтерсіз басып шығаруды тексеру (банк чектерін басып шығару): 6 қадам
MS Excel көмегімен арнайы бағдарламалық қамтамасыз етусіз немесе принтерсіз басып шығаруды тексеріңіз (банк чектерін басып шығару): Бұл қарапайым Excel жұмыс кітабы, ол кез келген бизнес үшін банкілік чектерді олардың жеткізушілерінен кейін екінші рет жазуға өте пайдалы болады, сізге арнайы принтер немесе бағдарламалық қамтамасыз ету қажет емес, Сізге тек MS Excel мен қалыпты принтері бар компьютер қажет. Иә, енді сіз
3D басып шығарылған робот ит (робототехника және жаңадан бастаушыларға арналған 3D басып шығару): 5 қадам
3D басып шығарылған робот ит (робототехника және жаңадан бастаушыларға арналған 3D басып шығару): робототехника мен 3D басып шығару - бұл жаңа нәрсе, бірақ біз оларды пайдалана аламыз! Егер сізге мектепке тапсырма беру керек болса немесе қызықты жоба іздеп жүрсеңіз, бұл жоба жақсы бастаушы болады