Բովանդակություն:

Օդային հրացանի ժամանակագրիչ, ժամանակագրություն: 3D տպագիր ՝ 13 քայլ
Օդային հրացանի ժամանակագրիչ, ժամանակագրություն: 3D տպագիր ՝ 13 քայլ

Video: Օդային հրացանի ժամանակագրիչ, ժամանակագրություն: 3D տպագիր ՝ 13 քայլ

Video: Օդային հրացանի ժամանակագրիչ, ժամանակագրություն: 3D տպագիր ՝ 13 քայլ
Video: Սոթք-Հաթերք օդային գծի հոսանքալարերը գողանալիս բռնվել էին․ Վարդենիսի ոստիկանների բացահայտումը 2024, Հուլիսի
Anonim
Image
Image
Խաղարկային
Խաղարկային

Ողջույն բոլորին, այսօր մենք նորից կանդրադառնանք 2010 -ին կատարածս նախագծին: Օդային հրացանի ժամանակագրիչ: Այս սարքը ձեզ կպատմի արկի արագությունը: Գնդիկ, BB կամ նույնիսկ օդային փափուկ BB պլաստիկ գնդիկ:

2010 -ին ես զվարճանքի համար օդային հրացան եմ գնել: Հարվածում էր տարաներին, շշերին, նպատակին: Ես գիտեմ, որ այս ատրճանակի արագությունը առավելագույնը 500 ոտնաչափ/վ էր: Քանի որ դա Կանադայի օրենքն է: Առավել ուժեղ օդային հրացան կա, բայց դուք պետք է լիցենզիա ունենաք, և չեք կարող գնել այն Walmart- ում:

Հիմա ես ունեի այս լիցենզիան, կարող էի գնել ևս մեկը: Կարճ պատմություն ՝ նույն զենքը ԱՄՆ -ին հասանելի էր 1000 ոտնաչափ/վրկ արագությամբ: ԻՆՉ!? Նույն ատրճանակը: այո… Կանադայում ինսուլտի մեջ անցք կա, և գարունը ավելի մեղմ է:

Առաջին բանը, որ պետք է անել, լրացնել փոսը: Դա այն է, ինչ ես արեցի զոդի հետ: Հաջորդ բանը, որ պետք էր անել, փոխարինող զսպանակ պատվիրելն էր: Բայց սպասեք … ո՞րն է իմ նոր խաղալիքի ներկայիս արագությունը: Իսկապե՞ս գարունն է անհրաժեշտ: Ես չգիտեմ և ուզում եմ իմանալ: Ես հիմա ուզում եմ իմանալ, բայց ինչպե՞ս:

Ահա թե ինչու ես արեցի այս նախագիծը: Ինձ անհրաժեշտ էր ընդամենը 2 տվիչ, uC և էկրան, և մենք բիզնեսով ենք զբաղվում:

Անցյալ շաբաթ ես տեսա դարակում մի հին կապույտ ժամանակագրություն և ինքս ինձ հետ խոսում էի. Եվ ի դեպ, մենք կարող էինք բարձրացնել ճշգրտությունը և ավելացնել մարտկոցի ցուցիչ: Միացման/անջատման համար 2 -ի փոխարեն դրեք 1 կոճակ: Ամբողջ մակերևույթի ամրացում: Մենք այժմ 2020 թ.

Այսպիսով, ահա… եկեք սկսենք:

Քայլ 1: Առանձնահատկություն

-Գնդիկների արագություն

-Արագություն

-20 մՀց վազք, հսկայական ճշգրտություն

-Ավտոմատ անջատում

-Մարտկոցի լարումը ցուցադրվում է

-առկա է սխեմատիկ

-առկա է pcb

-առկա է մասերի ցուցակ

-STL հասանելի է

-առկա է C կոդ

Քայլ 2. Գործողության տեսություն և ճշգրտություն

-Մենք ունենք 20 ՄՀց արագությամբ աշխատող uC: Օգտագործվող տատանումն է TCX0 +-2.5 ppm

-Մենք ունենք 2 տվիչ ՝ միմյանցից 3 դյույմ հեռավորության վրա:

-Արկը հարվածեց առաջին սենսորին: uC սկսել հաշվել (ժամանակաչափ 1)

-Արկը հարվածեց երկրորդ սենսորին: uC դադարեցնել հաշվարկը:

-uC ստուգեք ժմչփի արժեքը, կատարեք մաթեմատիկայի և ցուցադրման արագությունն ու արագությունը:

Ես օգտագործում եմ 16 բիթ ժամաչափ 1 + գերհոսքի դրոշ tov1: 17 բիթ ընդհանուր ՝ 131071 «տիկ» -ի համար ՝ ամբողջական հաշվարկի համար:

1/20 ՄՀց = 50 նս Յուրաքանչյուր տիկ 50 նն է

131071 x 50 ns = 6.55355 մվ 3 դյույմ կատարելու համար:

6.55355 ms x 4 = 26.21 ms ՝ 12 դյույմ կատարելու համար:

1/26.21 մս = 38.1472637 ոտնաչափ/վ

Սա ամենադանդաղ արագությունն է, որը սարքը կարող է չափել:

Ինչու՞ 20 ՄՀց: Ինչու՞ չեք օգտագործում ներքին 8 մՀց հաճախականությունը կամ նույնիսկ կրիստալը:

Իմ առաջին սարքը ներքին տատանումն էր: Աշխատում էր, բայց այս մեկը բավականաչափ ճշգրիտ չէր: Տատանումը չափազանց մեծ է: Բյուրեղն ավելի լավ է, բայց ջերմաստիճանը տարբեր հաճախականություններ ունի: Մենք չենք կարող դրանով ճշգրիտ չափիչ սարք անել: Բացի այդ, ավելի հաճախականությունը բարձր է, ավելի շատ տիկ կհաշվարկվի նույն արագության համար: Նմուշառումը ավելի լավ կլինի ունենալ շատ լավ ճշգրտություն: Քանի որ տիկը չի բաժանվում, կորուստը փոքր է, եթե աշխատանքի ցիկլը արագ է:

20 ՄՀց հաճախականությամբ մենք ունենք 50 նս քայլ: Արդյո՞ք մենք գիտենք, թե որքանով է դա ճշգրիտ 50 ns արկի համար 38 ֆտ/վ արագությամբ:

38.1472637 ոտնաչափ/վ բաժանել 131071 = 0, 000291042 ոտնաչափի

0, 0003880569939956207 ոտնաչափ x 12 = 0, 003492512 դյույմ

1/0, 003492512 = 286.37 ": Այլ կերպ ասած. 50 ֆտ/վ արագությամբ մենք ունենք +- 1/286" կամ +- 0 ճշգրտություն, 003492512 դյույմ

Բայց եթե իմ տատանումն ամենավատն է և աշխատում է 20 mhz +2.5 ppm արագությամբ, արդյո՞ք դա լավ է: Եկեք պարզենք…

2,5 ppm 20 000 000 -ից `(20000000/1000000) x 2.5 = 20000050 Հց

Այսպիսով, վատագույն դեպքում մենք ունենք ևս 50 ժամացույց 20 մՀց հաճախականությամբ: 50 վայրկյան է 1 վայրկյանում: Քանի՞ տիկին ավել է ժամաչափի վրա 1, եթե գնդիկը նույն արագությունն է կատարում (38,1472637 ոտնաչափ/վ կամ 6,55 մկս):

1/20000050 = 49.999875 նս

49.999875 ns x 131071 = 6, 553533616 ms

6, 553533616 մս x 4 = 26.21413446 մվ

1/26.21413446 մս = 38.14735907 ոտնաչափ/վ

Այսպիսով, մենք ունենք 38.14735907 ոտնաչափ/վ ՝ 38.1472637 ոտնաչափ/վ -ի փոխարեն

Այժմ մենք գիտենք, որ 2,5 ppm- ը չի ազդում արդյունքի վրա:

Ահա տարբեր արագության օրինակ

1000 ֆտ/վ -ի համար

1000 ֆտ/վ x 12 -ը 12000 դյույմ/վ է

1 վայրկյան 12000 «քանի՞ անգամ 3» կատարելու համար: 3x1/12000 = 250 ԱՄՆ վայրկյան

250 us / 50 ns = 5000 տիկ:

Timer1- ը կլինի 5000

uC անել մաթեմատիկա և ցուցադրվում է 1000 ֆտ/վրկ: Առայժմ ամեն ինչ լավ է

900 ֆտ/վ արագությամբ

900 ոտնաչափ/վրկ 10800 դ/վ է

3x1/10800 = 277,77 մեզ

277, 77 նս / 50 նս = 5555, 5555 տիկ

Timամաչափ 1 -ը կլինի 5555

uC անել մաթեմատիկա և 900, 09 -ը կցուցադրվի 900 -ի փոխարեն

Ինչո՞ւ: քանի որ ժամաչափ 1 -ը 5555 և 0 է, 5555 կորած է: Icամաչափի վրա հնարքը բաժանելի չէ:

Մենք ունենք սխալ 0, 09 -ի համար 900 ֆտ/վ արագությամբ

0, 09/900x100 = 0, միայն 01% սխալ

1500 ֆտ/վ 1500 ֆտ/վ է 18000 դ/վ 3x1/10800 = 166.66 մեզ

166.66 us / 50 ns = 3333.333 տիկ Timամաչափ 1 -ը կլինի 3333 -ում

uC անել մաթեմատիկա, և 1500.15 -ը կցուցադրվի 1500 -ի փոխարեն.15/1500x100 = 0, 01%

9000 ֆտ/վ արագությամբ

9000 x 12 = 180000 դյույմ / վ

3x1/180000 = 27.7777 մեզ

27,77 մեզ / 50 ns = 555, 555

Erամաչափ 1 -ը կլինի 555 -ում և 4/(1/555x50ns) կցուցադրվի 9009, 00 -ը `

Այստեղ սխալը 9 ոտնաչափ/վ է 9000 = 0, 1%

Ինչպես տեսնում եք, % սխալը բարձրանում է, երբ արագությունն ավելի մեծ է: Բայց մնա <0.1%

Այդ արդյունքները շատ լավ են:

Բայց ճշգրտությունը գծային չէ: 10000 ֆտ/վ արագությամբ դա 0, 1 %է: Լավ նոր է, որ մենք երբեք չենք փորձարկում 10 000 ֆտ/վրկ գնդիկ:

Մեկ այլ բան, որ պետք է նկատի ունենալ: Երբ ընդհատում է տեղի ունենում, uC- ն միշտ ավարտում է վերջին հրահանգը `ընդհատումը մտնելուց առաջ: Սա նորմալ է, և բոլոր uC- ն դա անում են: Եթե ծածկագրում եք arduino- ն, C- ով կամ նույնիսկ հավաքողով: Ofամանակի մեծ մասը դուք կսպասեք հավերժական օղակում … սպասել: Խնդիրն այն է, որ մի հանգույցում մենք 2 ցիկլ ենք անցկացնում: Սովորաբար սա կարևոր չէ: Բայց մեր դեպքում: ԱՅՈ, յուրաքանչյուր տիկ կարևոր է: Եկեք նայենք անսահման մի հանգույց.

հավաքող:

հանգույց:

rjmp հանգույց

C- ում:

մինչդեռ (1) {}

Իրականում C կոմպիլյատորը օգտագործում է rjmp հրահանգը: RJMP- ն 2 ցիկլ է:

Դա նշանակում է, որ եթե ընդհատումը տեղի է ունենում առաջին ցիկլի հետ, մենք կորցնում ենք մեկ ցիկլ (տիկ) (50 ն):

Դա շտկելու եղանակը հանգույցում բազմաթիվ nop հրահանգներ ավելացնելն է: NOP- ը 1 ցիկլ է:

հանգույց:

ոչ

ոչ

ոչ

ոչ

ոչ

rjmp հանգույց

Եթե ընդհատումը տեղի է ունենում ոչ հրահանգով: Մենք լավ ենք: Եթե դա տեղի ունենա rjmp հրահանգի երկրորդ փուլի ժամանակ, մենք լավ ենք: Բայց եթե դա տեղի ունենա rjmp հրահանգի առաջին ցիկլի ժամանակ, մենք կկորցնենք մեկ հնարք: Այո, դա ընդամենը 50 ns է, բայց ինչպես տեսնում եք վերևում, 50 ns 3 դյույմի վրա ոչինչ չէ: Մենք չենք կարող դա ուղղել ծրագրային ապահովման միջոցով, քանի որ չգիտենք, թե կոնկրետ երբ է տեղի ունենում ընդհատումը: Ահա թե ինչու ծածկագրում դուք կտեսնեք բազմաթիվ ոչ հրահանգներ: Այժմ ես բավականին վստահ եմ, որ ընդհատումը ընկնում է ոչ մի հրահանգի վրա: Եթե ավելացնեմ 2000 ոչ, ապա 0, 05% -ը ընկնում է rjmp հրահանգի վրա:

Ուրիշ բան, որ պետք է նկատի ունենալ: Երբ ընդհատում է տեղի ունենում: Կոմպիլյատորը շատ հրում և ձգում է: Բայց դա միշտ նույն թիվն է: Այսպիսով, այժմ մենք կարող ենք կատարել ծրագրային ուղղում:

Այս մասին եզրակացնել.

Միջին 1000 ֆտ/վրկ գնդակի ճշգրտությունը 0, 01% է

100 անգամ ավելի ճշգրիտ, քան շուկայում առկա այլ 1% -ը: Հաճախականությունն ավելի բարձր է և TCXO- ով `ավելի ճշգրիտ:

Օրինակ ՝ 1000 ֆտ/վ -ի 1% -ը քիչ թե շատ 10 ֆտ/վ է: Դա հսկայական տարբերություն է:

Քայլ 3. Սխեմատիկ և մասերի ցուցակ:

Սխեմատիկ և մասերի ցուցակ
Սխեմատիկ և մասերի ցուցակ

Այստեղ ես գործի դրի իմ անջատման/անջատման մի կոճակը: (տես իմ վերջին հրահանգը) Այս շրջանը շատ հարմար է և շատ լավ է աշխատում:

Ես օգտագործում եմ atmega328p: Այս մեկը ծրագրված է C- ով:

Էկրանը ստանդարտ 2 տող LCD 444480 LCD համատեղելի է: Օգտագործվում է 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.1v SOT123

IC1 ATMEGA328p

IC2 MIC5225-5.0YM5-TR TPS70950DBVT SOT23-DBV

OSC1 TXETDCSANF-20.000000

R1 1 Մ

R2 1 Մ

R4 2.2k

R5 160

R6 160

R7 1 Մ

R8 1 Մ

U1 MIC5317-3.3 MIC5317 SOT23-5

U2 DMG6601LVT DMG6601LVT SOT23-6

Displayուցադրել lcd 2 տող HD44780: Կարիք չկա i2c մոդուլ գնել:

Սենսորներ:

2x Emitter OP140A

2x ընդունիչ OPL530

Կոդավորիչ ՝ PEC11R-4215K-S0024 *Մի մոռացեք ավելացնել 4x 10k դիմադրիչներ և 2x.01uf կոդավորիչի զտիչը կատարելու համար: տե՛ս ստորև նկարը

Քայլ 4: PCB Gerber ֆայլ

PCB Gerber ֆայլ
PCB Gerber ֆայլ
PCB Gerber ֆայլ
PCB Gerber ֆայլ
PCB Gerber ֆայլ
PCB Gerber ֆայլ
PCB Gerber ֆայլ
PCB Gerber ֆայլ

Ահա գերբեր ֆայլեր

Քայլ 5: oldոդեք ձեր համակարգիչը

Sոդեք ձեր հատը
Sոդեք ձեր հատը
Sոդեք ձեր հատը
Sոդեք ձեր հատը
Sոդեք ձեր հատը
Sոդեք ձեր հատը

Սխեմատիկ օգնությամբ ձեր բոլոր բաղադրիչները կպցրեք pcb- ին: Յուրաքանչյուր մաս կամ գրված է pcb, r1, r2… և այլն:

Ես D1 չեմ տեղադրել: Սա LCD լուսավորության համար է: Գեղեցիկ է, բայց մարտկոցի կյանքը տատանվում է: Այսպիսով, ես ընտրում եմ LCD լուսարձակը անջատված պահել:

Քայլ 6. Atmega328p ծրագրավորում

Meրագրավորում Atmega328p
Meրագրավորում Atmega328p

Ստուգեք այստեղ 12 -րդ քայլում ՝ atmega328p- ը ծրագրավորելու համար: Ես այստեղ տրամադրում եմ. Hex ֆայլը դրա համար:

Ահա avrdude ծրագիրը, որը պատրաստ է խմբաքանակի ֆայլ ծրագրելու համար: Կտտացրեք միայն ծրագիրը usbasp.bat և ձեր usbasp- ը ճիշտ տեղադրված է: Ամեն ինչ կկատարվի ինքնաբերաբար, ներառյալ ապահովիչի բիտը:

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

Այս նախագծում ես կիսում եմ նաև C աղբյուրի կոդը: Տեղյակ եղեք, որ դրա մեջ ինչ -որ նշում կարող է լինել ֆրանսերեն: https://1drv.ms/u/s! AnKLPDy3pII_vXUMXHdxajwGRFJx? E…

Քայլ 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 քորոց 2 (ձգեք դիմադրությունը)

A տերմինալը (դեղին) անցեք ISP կապ 1 -ին

B տերմինալը (կանաչ) անցեք ISP կապ 3 -ին

C տերմինալ (gnd) isp pin 6

Ես ավելացնում եմ 2 նկար ՝ տեսնելու համար զտիչ և զտիչ չունենալու տարբերությունը: Դուք հեշտությամբ կարող եք տեսնել երկուսի միջև եղած տարբերությունը:

Կտտացրեք կոճակը դեպի pcb SW միակցիչ:

Քայլ 10: Սենսորային խողովակ

Սենսորային խողովակ
Սենսորային խողովակ
Սենսորային խողովակ
Սենսորային խողովակ
Սենսորային խողովակ
Սենսորային խողովակ

ԿԱՐԵՎՈՐ:

Սենսորային խողովակը պետք է լինի սև, իսկ տվիչը ՝ թաքնված:

Իմ առաջին փորձերը գեղեցիկ կարմիր խողովակ ունենալն էր: Բայց սա բարդ է! Այն ընդհանրապես չէր աշխատում: Ես պարզեցի, որ արտաքին լույսը մտնում է պլաստիկ, իսկ ընդունիչի սենսորը միշտ միացված էր:

Լավ արդյունք ունենալու համար ես այլընտրանք չունեի փոխել գույնը սևի:

Տեղադրեք ընդունիչը վերևում: Եվ թաքցրեք թափանցիկ պլաստիկը սև ներկով, ժապավենով կամ մաստակով, սև սիլիկոնով:

Տեղադրեք արտանետիչը ներքևում: Գրիչով ստուգեք, արդյոք տվիչները լավ են արձագանքում: Միգուցե արտանետողի անցքը պետք է մի փոքր մեծանա: դա կախված կլինի ձեր տպիչի ճշգրտումից:

Ստվերում նույնպես ավելի լավ արդյունք ունեմ: Խուսափեք արևի ուղիղ ճառագայթներից:

Քայլ 11. Սենսորային խողովակների այլընտրանք

Սենսորային խողովակների այլընտրանք
Սենսորային խողովակների այլընտրանք
Սենսորային խողովակների այլընտրանք
Սենսորային խողովակների այլընտրանք

Եթե չունեք 3D տպիչ, նույնը կարող եք անել պղնձե խողովակով: Այն շատ լավ կաշխատի: Դժվար բան այն է, որ անցքը լինի ուղիղ 3 դյույմ, և ընդունիչն ու թողարկողը պետք է հավասարեցված լինեն:

Քայլ 12: Գնդիկ տատանումների և չափագրման վրա:

Գնդիկ ՝ տատանումների և չափագրման վրա
Գնդիկ ՝ տատանումների և չափագրման վրա

Սա իսկական գնդիկ է, որն անցնում է խողովակը: Beոնդ 1 դեղինը սենսոր է 1. beոնդ 2 մանուշակագույնը սենսոր 2 է:

Timeամանակը/div- ը 50 us է:

Մենք կարող ենք հաշվել 50us- ի 6 բաժանում: 50 us x 6 = 300 us (3 դյույմ): 300 us x 4 = 1,2 ms 1 ոտքի համար

1/1.2 մգ = 833.33 ֆտ/վ

Մենք կարող ենք նաև տեսնել, որ սենսորը սովորաբար 5 վ լարման դեպքում է: Եվ կարո՞ղ ենք արգելափակել ճառագայթող լույսը, սենսորը ընկնում է 0 -ի:

Դա այն եղանակն է, որով uC- ն սկսում և դադարեցնում է իր կոնտերը (ժամանակաչափ 1)

Բայց ճշգրիտ իմանալու համար, թե արդյոք արագությունը ճշգրիտ էր, ինձ անհրաժեշտ էր դա չափելու միջոց:

Softwareրագրային ապահովման ճշգրտում կատարելու և այս սարքի ճշգրտությունը ստուգելու համար ես օգտագործեցի 10 մՀց հաճախականությամբ տատանում: Տեսեք իմ GPSDO- ն այլ հրահանգների մասին:

Ես կերակրում եմ մեկ այլ atmega328 այս 10 ՄՀց -ով: Եվ ծրագրիր այս մեկը հավաքողի մեջ, որպեսզի ինձ ուղարկի 2 իմպուլս ամեն անգամ, երբ սեղմում եմ մի գնդիկ ՝ գնդիկը նմանակելու համար: Իշտ այնպես, ինչպես մենք տեսանք նկարում, բայց փոխարենը իսկական գնդիկ ունենալու համար դա մեկ այլ uC էր, որն ինձ ուղարկեց 2 իմպուլս:

Ամեն անգամ կոճակը սեղմելիս ուղարկվում էր 1 զարկերակ և մեկ այլ զարկերակի ուղարկումից ուղիղ 4 ms:

Այս կերպ, ես կկարողանամ հավասարակշռել ծրագրակազմի կազմողին, որը միշտ ցուցադրվի 1000 ֆտ/վրկ:

Քայլ 13: Ավելին…

Ավելին…
Ավելին…
Ավելին…
Ավելին…

Սա 2010 -ի իմ առաջին նախատիպն է:

Questionsանկացած հարցի կամ սխալի մասին զեկույցի դեպքում կարող եք ուղարկել ինձ էլ. Անգլերեն կամ ֆրանսերեն: Ես կանեմ ամեն ինչ, որպեսզի օգնեմ:

Խորհուրդ ենք տալիս: