Բովանդակություն:
- Քայլ 1: Բայց.. Ինչպե՞ս:
- Քայլ 2: Սովորեք, թե ինչպես միացնել տեսախցիկը
- Քայլ 3: Գործարկման ուղիներ
- Քայլ 4. Գրգռման օրենսգիրք գրել
- Քայլ 5: Դասի միջակայք {};
- Քայլ 6. Միջակայքի շահարկում Arduino- ի միջոցով
- Քայլ 7: Displayուցադրել ընդմիջումը
- Քայլ 8: Ամեն ինչ միասին դնել
- Քայլ 9. Մեկ վերջին բանի ավելացում
- Քայլ 10: Խառնաշփոթ պարունակող
- Քայլ 11: Sens0rs
- Քայլ 12: PoweeEeEer
- Քայլ 13 ՝ պարիսպ
- Քայլ 14: Fin
Video: Կավատ իմ խցիկը. 14 քայլ (նկարներով)
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:52
Ահա, թե որտեղից է գալիս այս նախագիծը:
Որոշ ժամանակ անց ես մտածում էի որոշ ժամանակային թռիչքներ նկարահանելու մասին: «Ինչպե՞ս»: Ինքս ինձ հարցրեցի. Առաջին պատասխանը «Դե.. դու պարզապես ինչ -որ բան նկարահանում ես և արագացնում այն և վերջ»: Բայց մի՞թե դա իրոք այդքան պարզ է: Նախ, ես ուզում եմ օգտագործել իմ DSLR- ը դրա համար, և իմ Nikon D3100- ը տեսաերիզների նկարահանման համար ունի 10 րոպե ժամկետ: Երկրորդ, նույնիսկ եթե ես տեսախցիկ ունենայի ՝ տեսանկարահանման ժամանակի սահմանափակում չունենալով, իսկ ի՞նչ կպատահի, եթե ես ցանկանամ իրոք երկար ժամանակահատել, ինչպես 12 ժամ տևողությունը: Ես պատրաստում եմ 12 ժամ տևողությամբ 1080p տեսանյութ: Ես կասկածում եմ, որ մարտկոցը այդքան կդիմանա, և, դա այնքան էլ գործնական չէ, այնպես չէ՞: Լավ, հատելով «տեսանկարահանման գաղափարը»: Դե, ապա կան նկարներ: Որոշակի ընդմիջումով լուսանկարել ֆոտոխցիկի վրա և ավարտվել հարյուրավոր պատկերներով, որոնք ես ծրագրային ապահովման միջոցով մշակում եմ տեսանյութ պատրաստելու համար:
Թվում էր, թե լավ գաղափար է, ուստի որոշեցի այն տալ: Այսպիսով, ես վերջ գտա այն ցանկությունը, որ սարք սարքեմ, որի մեջ կարող եմ մուտքագրել որոշակի ժամանակահատված, և այդ ժամանակաշրջանի հիման վրա դա անընդհատ կխթանի իմ տեսախցիկը: Եվ մինչ մենք դրան հասնում ենք, ինչու՞ չավելացնել այլ իրեր, ինչպիսիք են շարժման ձգան և այլն:
Քայլ 1: Բայց.. Ինչպե՞ս:
ԻՆՉՊԵՍ սա մեր հաջորդ հարցն է, որի պատասխանը բացակայում է: Timամանակի, միացման, սենսորների և նման բաների պատճառով զարմանալի չէ, որ առաջինը, որ մտքով եկավ, իհարկե, Արդուինոն էր: Լավ, բայց, այնուամենայնիվ, մենք պետք է սովորենք, թե ինչպես միացնել խցիկը մեր տեսախցիկի վրա: Hm.. servo տաք սոսնձված է մարմնի տեսախցիկին: Բացարձակապես ոչ, մենք ցանկանում ենք, որ սա լուռ և էներգաարդյունավետ լինի: Էներգաարդյունավետ - ինչու? Քանի որ ես ուզում եմ այն դյուրակիր դարձնել և մարտկոց կպցնել դրա մեջ, ամեն անգամ հոսանքի վարդակից մոտ չեմ լինի: Այսպիսով, ինչպես կարող ենք այն առաջացնել այդ դեպքում: դա իրականում բավականին պարզ է:
Nikon- ն արդեն գիտեր, որ դու հեռակառավարման և այլ աքսեսուարներ ես ուզելու, և նրանք ասացին «լավ, մենք այդ ամենը կտանք նրանց, բայց մենք հատուկ նավահանգիստ կկատարենք, որպեսզի ավելի շատ գումար աշխատենք այդ աքսեսուարների վրա», ամոթ ձեզ, Nikon. Այդ նավահանգիստը (իմ դեպքում) կոչվում է MC-DC2, և այն ձեռք բերելու ամենաէժան միջոցը eBay- ում 2-3 դոլարով հեռակառավարման փեղկեր գնելն ու պարզապես մալուխն օգտագործելն է:
*Որոշ այլ տեսախցիկներ, ինչպիսիք են Canon- ը, ունեն 3.5 մմ ականջակալների միակցիչ ՝ նույն օգտագործման համար, որպեսզի կարողանաք օգտագործել հին բարձրախոսներից/ականջակալներից մալուխ:
Քայլ 2: Սովորեք, թե ինչպես միացնել տեսախցիկը
Ինչևէ, ահա գործարքը, նավահանգիստը կունենա 3 միացում, որոնք մեզ հետաքրքրող կլինեն (Ground, Focus և Shutter), և դուք կունենաք դրանք նոր գնված հեռակառավարման վահանակի ձեր մալուխի վերջում, որը դուք պարզապես ոչնչացրել եք: Այդ երեք կապերը մեզ համար կարևոր են, քանի որ եթե կարճացնենք Ground- ը և Focus- ը, տեսախցիկը կկենտրոնանա այնպես, ինչպես սեղմում եք ֆոկուսի կոճակը, այնուհետև մինչ այդ կապը մնա, կարող եք կարճացնել Ground- ը և Shutter- ը, և տեսախցիկը լուսանկարելու է: ճիշտ այնպես, ինչպես դուք սեղմել եք տեսախցիկի փակման կոճակը:
Դուք կարող եք դա ստուգել `բառացիորեն կարճացնելով մալուխի ծայրին գտնվող լարերը` պարզելու համար, թե որ մետաղալարն է: Դա անելուց հետո, ավելի հեշտ նույնականացման համար, մենք դրանք գունավորելու ենք այսպես.
Հող = ՍԵՎ; Ֆոկուս = Սպիտակ; Փեղկ = ԿԱՐՄԻՐ:
Լավ, հիմա մենք պետք է սովորեցնենք Arduino- ին դա անել մեզ համար:
Քայլ 3: Գործարկման ուղիներ
Ամենապարզ բանը, որ մենք կարող ենք ասել, որ Arduino- ն ուղարկի արտաքին աշխարհ, դա թվային ելքային ազդանշանն է: Այս ազդանշանը կարող է լինել կամ HIGH (տրամաբանական «1»), կամ LOW (տրամաբանական «0»), ուստի անունը «թվային» է, կամ այն վերածվել է իր հիմնական նշանակության ՝ տրամաբանական բարձրության համար 5V, իսկ տրամաբանական ցածր մակարդակի համար ՝ 0V:
Ի՞նչ անենք այս թվային ազդանշանների հետ: Մենք չենք կարող պարզապես դրանք միացնել տեսախցիկին և ակնկալել, որ տեսախցիկը կիմանա, թե ինչ ենք ուզում: Ինչպես տեսանք, մենք պետք է կարճացնենք տեսախցիկի միացումները, որպեսզի այն արձագանքի, ուստի մենք պետք է օգտագործենք Arduino- ի թվային ազդանշանները `որոշ բաղադրիչներ վարելու համար, որոնք կարող են կարճացնել իրենց տերմինալները` կախված մեր ուղարկած էլեկտրական ազդանշանից:. *Ինչպես նկարագրեցի այն, դուք կարող եք մտածել «Ահ, ռելեներ»: բայց ոչ ոչ Ռելեը կանի աշխատանքը, բայց մենք գործ ունենք այնպիսի փոքր հոսանքների հետ, որ հեշտությամբ կարող ենք օգտագործել կիսահաղորդիչների սև մոգությունը:
Առաջին բաղադրիչը, որը ես կփորձեմ, օպտիկական միացումն է: Ես տեսել եմ, որ դրանք ամենից շատ են կիրառվում դրա համար, և դա երևի լավագույն լուծումն է: Optocoupler- ը էլեկտրական բաղադրիչ է, որի միջոցով դուք վերահսկում եք ելքային սխեման, մինչդեռ մուտքային շղթան ամբողջությամբ մեկուսացված է դրանից: Սա ձեռք է բերվում տեղեկատվության փոխանցմամբ լույսի միջոցով, մուտքային սխեման լուսավորում է LED, և ելքի վրա գտնվող ֆոտոտրանսիստորը համապատասխանաբար անջատվում է:
Այսպիսով, մենք կօգտագործենք օպտիկական միացնող սարքը. Մենք ասում ենք մեր Arduino- ին, որ այն թվային HIGH ուղարկի, եթե դա թվային կապում է, այդ ազդանշանը գործնականում 5 Վ է, որը LED- ը կշարժի օպտիկական զույգի ներսում, իսկ դրա ներսում գտնվող ֆոտոտրանսիստորը `« կարճ »: դա ելքային տերմինալներ է, երբ հայտնաբերում է այդ լույսը, և հակառակը, այն «կպոկի» իր տերմինալները, քանի որ LED- ից լույս չկա, երբ թվային OWԱOWՐ ենք ուղարկում Arduino- ով:
Գործնականում դա նշանակում է. Arduino- ի թվային կապումներից մեկը կցված է օպտիկական զույգի ANODE կապին, Arduino- ի GND- ը `CATHODE- ին, տեսախցիկի GND- ը` EMITTER- ին և FOCUS- ը (կամ ՓԱԿՈ)ՍՏԸ) `Հավաքիչին: Անդրադառնացեք ձեր օգտագործած օպտիկական միացման սարքի տվյալների թերթիկին ՝ ձեր կապերը գտնելու համար: Ես օգտագործում եմ 4N35, այնպես որ դուք կարող եք կուրորեն հետևել իմ սխեմատիկ պատկերին, եթե ձեզ իրականում չի հետաքրքրում այն, ինչ տեղի է ունենում օպտիկական միակցիչի ներսում: Ավելորդ է ասել, որ դրանցից երկուսը մեզ պետք կգան, քանի որ մենք պետք է վերահսկենք և՛ խցիկի ֆոկուսը, և՛ փակիչը:
Քանի որ մենք տեսանք, թե ինչպես է դա աշխատում ՝ ելքի վրա ֆոտոտրանսիստորով, ինչու՞ չփորձենք դա միայն մի պարզ NPN տրանզիստորով: Այս անգամ մենք թվային ազդանշանը կբերենք ուղղակիորեն (ռեզիստորի միջով) տրանզիստորի հիմքին և միացնենք ինչպես տեսախցիկի, այնպես էլ Arduino- ի GND- ը ճառագայթիչին, իսկ տեսախցիկի ֆոկուսը/փակիչը `տրանզիստորի կոլեկտորին:
Կրկին, մեզ հարկավոր կլինի դրանցից երկուսը, քանի որ մենք վերահսկում ենք երկու ազդանշան: Ես օգտագործում եմ BC547B- ը, և դրա համար հիմնականում կարող եք օգտագործել ցանկացած NPN, քանի որ հոսանքը, որը մենք վերահսկում ենք, մեկ միլիամպ է:
Այս երկու բաղադրիչներն էլ կաշխատեն, բայց օպտիկական զույգ ընտրելը, հավանաբար, ավելի լավ գաղափար է, քանի որ այն ավելի անվտանգ է: Ընտրեք տրանզիստորները միայն այն դեպքում, եթե գիտեք, թե ինչ եք անում:
Քայլ 4. Գրգռման օրենսգիրք գրել
Ինչպես արդեն ասել էինք, մենք ազդանշանի համար կօգտագործենք Arduino- ի թվային կապերը: Arduino- ն կարող է օգտագործել դրանք և՛ դրանից տվյալները կարդալու, և՛ դրան գրելու համար, այնպես որ առաջին բանը, որ մենք պետք է անենք, նշեք setup () գործառույթում, որ Arduino- ի թվային երկու կապում մենք կօգտագործենք ելքի համար.
pinMode (FOCUS_PIN, OUTPUT);
pinMode (SHUTTER_PIN, OUTPUT);
որտեղ FOCUS_PIN- ը և SHUTTER_PIN- ը կարող են կամ սահմանվել «#սահմանել NAME արժեքը» կամ որպես int նախքան setup () գործառույթը, որովհետև կարող եք փոխել քորոցը, այնպես որ ավելի հեշտ է փոխել արժեքը միայն մեկ տեղում, այլ ոչ թե ամբողջ ծածկագրից հետո:
Հաջորդ բանը, որ մենք կանենք, գրել է triger () ֆունկցիան, որը գործելու է հենց դա: Ես պարզապես կներառեմ ծածկագրով նկար: Այն, ինչ դուք պետք է իմանաք, այն է, որ նախ մենք FOCUS_PIN- ը պահում ենք HIGH- ում որոշակի ժամանակահատվածում, քանի որ պետք է սպասել, որ տեսախցիկը կենտրոնանա այն թեմայի վրա, որի վրա մենք այն ցույց ենք տալիս, այնուհետև ընդամենը մի պահ (մինչ FOCUS_PIN- ը դեռ բարձր է) SHUTTER_PIN- ը դրեք HIGH- ի վրա, պարզապես նկարը վերցնելու համար:
Ես նաև ներառեցի կենտրոնացումը բաց թողնելու ունակությունը, որովհետև դրա կարիքը չի լինի, եթե նկարահանում ենք մի բանի ժամանակացույց, որը ժամանակի ընթացքում չի փոխում տեսախցիկից նրա հեռավորությունը:
Քայլ 5: Դասի միջակայք {};
Այժմ, երբ մենք խցիկին դուրս ենք մղում այն ճանապարհից, որը մենք պետք է այն դարձնենք ինտերվալոմետր `ավելացնելով երկու կրակոցի միջև ընկած ժամանակահատվածը շահարկելու գործառույթ: Որպեսզի դուք պատկերացնեք, թե ինչ ենք անում, ահա մի պարզունակ կոդ ՝ մեր ուզած ֆունկցիոնալությունը ցուցադրելու համար.
դատարկ շրջան () {
հետաձգում (ընդմիջում); ձգան (); }
Ես ուզում եմ կարողանալ փոխել այս միջակայքը, ենթադրենք, 5 վայրկյանից մինչև 20-30 րոպե: Եվ ահա խնդիրը, եթե ես ուզում եմ այն փոխել 5s- ից 16s կամ որևէ միջանկյալ, ես կօգտագործեմ 1s հավելում, որտեղ յուրաքանչյուր իմ խնդրանքով ընդմիջումը մեծացնելու համար միջակայքը կավելանա 1s- ի համար: Դա հիանալի է, բայց ինչ անել, եթե ես ուզում եմ 5 վայրկյանից անցնել 5 րոպեի: Ինձ համար կպահանջվեր 295 հարցում 1 -ական քայլով, այնպես որ ես ակնհայտորեն պետք է ավելացման արժեքը հասցնեմ ավելի մեծ բանի, և պետք է սահմանեմ, թե որ ճշգրիտ միջակայքի արժեքը (շեմը) փոխի ավելացումը: Ես իրականացրի սա.
5s-60s: 1s աճ; 60s-300s: 10s ավելացում; 300-ից 3600-ականներ `60-ականների աճ;
բայց ես գրել եմ, որ այս դասը կարգավորելի է, որպեսզի կարողանաք սահմանել ձեր սեփական շեմերն ու ավելացումները (ամեն ինչ մեկնաբանվում է.h ֆայլում, որպեսզի կարողանաք իմանալ, թե որտեղ ինչ արժեքներ փոխել):
Ինտերվալը շահարկելու իմ տված օրինակը ակնհայտորեն արված է ԱՀ -ում, այժմ մենք պետք է այն տեղափոխենք Arduino: Այս ամբողջ դասը ՝ Interval, տեղադրվում է մեկ վերնագրի ֆայլի մեջ, որն օգտագործվում է մեր դասի/գործառույթների հայտարարությունները և սահմանումները (ոչ իրականում, բայց դա կարելի է անել առանց օրինակ վնասելու): Այս վերնագրի ֆայլը մեր arduino կոդին ծանոթացնելու համար մենք օգտագործում ենք «#include» Interval.h (ֆայլերը պետք է լինեն նույն գրացուցակում), ինչը համոզված է, որ մենք կարող ենք օգտագործել գլխավոր ծածկագրում վերնագրի ֆայլում սահմանված գործառույթները:
Քայլ 6. Միջակայքի շահարկում Arduino- ի միջոցով
Այժմ մենք ցանկանում ենք, որ կարողանանք փոխել միջակայքի արժեքը ՝ այն մեծացնել կամ նվազեցնել: Այսպիսով, դա երկու բան է, այնպես որ մենք կօգտագործենք երկու թվային ազդանշան, որոնք կառավարվելու են երկու կոճակով: Մենք բազմիցս կկարդանք կոճակներին հատկացված թվային կապում նշված արժեքները և կվերլուծենք այդ արժեքները checkButtons գործառույթին (int, int); որը կբարձրացնի միջակայքը, եթե կոճակը սեղմվի «վեր», և նվազի միջակայքը, եթե «ներքև» կոճակը: Բացի այդ, եթե երկու կոճակները սեղմված լինեն, այն կփոխի փոփոխական ֆոկուսի արժեքը, որը վերահսկում է միացման ժամանակ կենտրոնանալը, թե ոչ:
Կոդի մի մասը ((millis () - prevBtnPress)> = debounceTime) օգտագործվում է հանելու համար: Ինչպես ես գրել եմ դա, նշանակում է, որ ես գրանցում եմ կոճակի առաջին սեղմումը բուլյան փոփոխականով btnPressed և հիշում եմ, թե երբ է դա տեղի ունեցել: Դրանից հետո ես սպասում եմ որոշակի ժամանակ (debounceTime) և եթե կոճակը դեռ սեղմված է, ես արձագանքում եմ: Այն նաև «դադար» է տալիս կոճակի յուրաքանչյուր մյուս սեղմման միջև, որպեսզի խուսափի բազմաթիվ սեղմումներից, որտեղ դրանք չկան:
Եվ վերջապես ՝
if ((millis () - prevTrigger) / 1000> = interval.getVal ()) {
prevTrigger = millis (); ձգան (); }
մենք նախ ստուգում ենք, թե արդյոք վերջին գործարկման (prevTrigger) և ընթացիկ ժամանակի (millis ()) միջև ընկած ժամանակահատվածը (ամեն ինչ բաժանված է 1000 -ի վրա, քանի որ այն գտնվում է միլիվայրկյաններում, իսկ միջակայքը `վայրկյաններում) հավասար է կամ ավելի մեծ, քան միջակայքը մենք ուզում ենք, և եթե այդպես է, մենք հիշում ենք ընթացիկ ժամանակը որպես վերջին անգամ, երբ մենք գործարկել ենք տեսախցիկը, այնուհետև այն միացրել:
Այս ամբողջականության շնորհիվ մենք հիմնականում կազմեցինք ինտերվալոմետր, բայց մենք դեռ հեռու ենք ավարտից: Մենք դեռ չենք տեսնում ինտերվալոմետրի արժեքը: Այն ցուցադրվում է միայն Սերիական մոնիտորի վրա, և մենք միշտ չենք լինի համակարգչի մոտ, այնպես որ այժմ մենք կիրականացնենք մի բան, որը ցույց կտա մեզ այն փոփոխելիս:
Քայլ 7: Displayուցադրել ընդմիջումը
Այստեղ մենք ներկայացնում ենք ցուցադրումը: Ես օգտագործել եմ 4 նիշանոց մոդուլը, որը վարում է TM1637- ը, քանի որ այն պետք է օգտագործեմ միայն ժամանակը ցուցադրելու համար և ուրիշ ոչինչ: Arduino- ի համար պատրաստված այս մոդուլներից օգտվելու ամենահեշտ ձևը դրանց համար արդեն պատրաստված գրադարաններն օգտագործելն է: Arduino կայքում կա TM1673 չիպը նկարագրող էջ և առաջարկվող գրադարանի հղում: Ես ներբեռնեցի այս գրադարանը, և կան երկու եղանակներ, որոնցով կարող եք այդ գրադարաններին ծանոթացնել Arduino IDE- ին.
- Arduino ծրագրակազմից գնացեք ուրվագիծ> Ներառել գրադարան> Ավելացնել. ZIP գրադարան և գտեք հենց նոր ներբեռնած.zip ֆայլը
- Դուք կարող եք անել այն, ինչ անում է Arduino- ն ձեռքով և պարզապես բացել գրադարանը այն թղթապանակում, որում Arduino- ն պահում է գրադարանները ՝ Windows- ում ՝ C: / Users / Username / Documents / Arduino / libraries \:
Գրադարանը ներառելուց հետո դուք պետք է կարդաք «ReadMe» ֆայլը, որում կգտնեք այն տարբերակների գործառույթների ամփոփագիրը: Երբեմն դա բավարար չէ, այնպես որ դուք կցանկանաք մի փոքր ավելի խորանալ և ուսումնասիրել վերնագրի ֆայլերը, որոնցում կարող եք տեսնել, թե ինչպես են գործառույթներն իրականացվում և ինչ են դրանք պահանջում որպես մուտքային փաստարկներ: Եվ, իհարկե, գրադարանին հասկանալու լավագույն միջոցը սովորաբար տալիս է մի օրինակ, որը կարող եք գործարկել Arduino ծրագրից ՝ File> Examples> LibraryName> ExampleName միջոցով: Այս գրադարանը առաջարկում է մեկ օրինակ, որը ես խորհուրդ եմ տալիս գործարկել ձեր էկրանին `պարզելու համար, թե արդյոք ձեր էկրանը ճիշտ է աշխատում, և ես ձեզ խրախուսում եմ փոփոխել օրինակում տեսած կոդը և ինքներդ տեսնել, թե ինչ է անում յուրաքանչյուր գործառույթ և ինչպես է արձագանքում ցուցադրումը այն Ես դա արել եմ, և ահա թե ինչ պարզեցի.
յուրաքանչյուր թվանշանի համար օգտագործում է 8 բիթից բաղկացած 4 անստորագիր ամբողջ թիվ (0bB7, B6, B5, B4, B3, B2, B1, B0): Եվ B6-B0 այդ բիթերից յուրաքանչյուրը օգտագործվում է որոշակի թվանշանի յուրաքանչյուր հատվածի համար, և եթե բիթը 1 է, նրա կողմից վերահսկվող հատվածը լուսավորվում է: Այս ամբողջ թվերը պահվում են զանգվածում, որը կոչվում է տվյալներ : Այս բիթերը ցուցադրման վրա դնելը կատարվում է display.setSegments (տվյալներ) միջոցով; կամ, բնականաբար, կարող եք մուտք գործել ցանկացած թվանշան հատկապես և տեղադրել դրանք ձեռքով (տվյալներ [0] = 0b01111001) կամ կարող եք օգտագործել encodeDigit (int) գործառույթը; և փոխարկեք ձեր ուղարկած թվանշանը ըստ բիթերի (տվյալներ [0] = display.encodeDigit (3)); Bit B7- ը օգտագործվում է միայն երկրորդ թվանշանի կամ տվյալների [1] համար ՝ հաստ աղիք ակտիվացնելու համար:
Քանի որ ես գրել եմ INTERVAL դասի կախարդի գործառույթները, որոնցով կարող եմ ստանալ միջակայքի որոշակի թվանշաններ M1M0 տեսքով ՝ S1S0, որտեղ M- ը րոպեներով է, իսկ S- ը վայրկյաններով, բնական է, որ ես օգտագործում եմ encodeDigitFunction (int); ընդմիջումն այսպես ցուցադրելու համար.
displayInterval () {
տվյալներ [0] = display.encodeDigit (interval.getM1 ()); տվյալներ [1] = 0x80 | display.encodeDigit (interval.getM0 ()); տվյալներ [2] = display.encodeDigit (interval.getS1 ()); տվյալներ [3] = display.encodeDigit (interval.getS0 ()); display.setSegment (տվյալներ); }
Այժմ, ցանկացած պահի, երբ Ինտերվալը պետք է ցուցադրեմ էկրանին, կարող եմ զանգահարել displayInterval () գործառույթին:
*Նշեք «0x80 |…» տվյալները [1]: Այն օգտագործվում է ապահովելու համար, որ տվյալների B7 բիթը [1] միշտ 1 է, այնպես որ հաստ կետը լուսավորվում է:
Էկրանի, էներգիայի սպառման մասին վերջին բանը: Դա կարող է մեծ նշանակություն չունենալ, քանի որ մենք երկար ժամանակ չենք պահի այն, բայց եթե ձեզ հետաքրքրում է մարտկոցը ավելի բարեկամական դարձնելը, ապա մտածեք էկրանի պայծառությունն իջեցնելու մասին, քանի որ այն առավելագույն պայծառությունից 3 անգամ ավելի հոսանք է հաղորդում: քան ամենացածրը:
Քայլ 8: Ամեն ինչ միասին դնել
Մենք գիտենք, թե ինչպես միացնել տեսախցիկը, ինչպես շահարկել միջակայքը և ինչպես ցուցադրել այդ նույն ընդմիջումը էկրանին: Այժմ մենք պարզապես պետք է միավորենք այս ամենը միասին: Մենք, իհարկե, կսկսենք loop () գործառույթից: Մենք անընդհատ ստուգելու ենք կոճակները սեղմելու համար և համապատասխան արձագանքելու ենք checkButtons (int, int) և համապատասխանաբար փոխում ենք միջակայքը և ցուցադրում ենք փոփոխված միջակայքը: Նաև () օղակի մեջ մենք անընդհատ ստուգելու ենք, թե արդյոք բավական ժամանակ է անցել վերջին միացման կամ կոճակը սեղմելու և անհրաժեշտության դեպքում կանչելու ձգան () գործառույթը: Ավելի ցածր էներգիայի սպառման համար մենք որոշ ժամանակ անց անջատելու ենք էկրանը:
Ես ավելացրեցի երկգույն լուսարձակ (կարմիր և կանաչ, ընդհանուր կաթոդ), որը կանաչը կբացվի մինչ ձգանը () և այն կարմիր կդառնա ցուցադրման հետ միասին, եթե կենտրոնացումը միացված է, և այն անջատված կլինի, եթե կենտրոնացումը լինի անջատված
Բացի այդ, մենք կտեղափոխվենք նույնիսկ ավելի փոքր Arduino ՝ Pro Mini:
Քայլ 9. Մեկ վերջին բանի ավելացում
Մինչ այժմ.. մենք ստեղծել ենք միայն Ինտերվալոմետր: Օգտակար է, բայց մենք կարող ենք ավելի լավ անել:
Ահա այն, ինչ ես մտքում ունեի. Ինտերվալոմետրը լռելյայն դա անում է, բացառությամբ այն դեպքերի, երբ մենք միացնում ենք ինչ -որ արտաքին անջատիչ/սենսոր, որն այնուհետև կանգնեցնում է ինտերվալոմետրը և արձագանքում անջատիչի/սենսորի մուտքին: Եկեք այն անվանենք սենսոր, այն պարտադիր չէ, որ միացված սենսոր լինի, բայց ես դրան կանդրադառնամ որպես այդպիսին:
Նախ, ինչպե՞ս կարող ենք պարզել, որ սենսորը միացրել ենք:
Սենսորները, որոնք մենք կօգտագործենք/պատրաստենք, բոլորին կպահանջվի երեք լար, որոնք դրանք կապում են արդուինոյին (Vcc, GND, Signal): Դա նշանակում է, որ մենք կարող ենք օգտագործել 3.5 մմ աուդիո խցիկ ՝ որպես սենսորի մուտքի միակցիչ: Իսկ ինչպե՞ս է դա լուծում մեր խնդիրը: Դե, կան 3.5 մմ «անջատիչով» միակցիչի տեսակներ, որոնցում կան կապեր, որոնք կարճ են միակցիչի կապումներին, եթե դրանց մեջ տղամարդկային միակցիչ չկա, և դրանք անջատվում են, երբ առկա է միակցիչ: Դա նշանակում է, որ մենք ունենք տեղեկատվություն ՝ հիմնված սենսորի առկայության վրա: Ես կօգտագործեմ ներքևի դիմադրությունը, ինչպես ցույց է տրված (թվային քորոցը առանց սենսորի կարդալ HIGH, և LOW- ը կցված սենսորով) նկարի վրա, կամ կարող եք թվային կապակցին կցել միակցիչի քորոցին, որը սովորաբար միացված է գետնին և սահմանեք այդ թվային կապը որպես INPUT_PULLUP, այն կաշխատի ցանկացած դեպքում: Այսպիսով, այժմ մենք պետք է շտկենք մեր ծածկագիրը, որպեսզի այն կատարի այն, ինչ մենք գրել ենք մինչ այժմ, միայն եթե սենսորը բացակայում է, կամ երբ թվային քորոցը ստուգում է ԲԱՐՁՐ: Ես նաև այն շտկեցի, որպեսզի այն ցուցադրի «SENS» էկրանին ՝ այս ռեժիմում անօգուտ միջակայքի փոխարեն, բայց կենտրոնացումը մեզ համար դեռ կարևոր է, մենք կպահպանենք երկու կոճակների սեղմումով կենտրոնացման փոփոխման գործառույթը: կարմիր լուսադիոդի միջոցով ցույց է տալիս կենտրոնացման վիճակը:
Ի՞նչ է իրականում անում սենսորը:
Այն ամենը, ինչ պետք է անի, ազդանշանի ազդանշանի վրա 5V դնելն է, երբ մենք ցանկանում ենք միացնել տեսախցիկը: Դա նշանակում է, որ մեզ անհրաժեշտ կլինի Arduino- ի մեկ այլ թվային կապ, որը պետք է ստուգի այս քորոցի վիճակը, և երբ այն գրանցվի HIGH, այն ամենը, ինչ անհրաժեշտ է անել, կանչել ձգան () գործառույթն է, և տեսախցիկը նկարելու է նկարը: Ամենահեշտ օրինակը, և այն, որը մենք կօգտագործենք ՝ ստուգելու, թե արդյոք դա աշխատում է, պարզ կոճակ է ՝ ձգվող դիմադրիչով: Կցեք կոճակը սենսորի Vcc- ի և Ազդանշանի քորոցի միջև և ռեզիստոր ավելացրեք Signal pin- ի և GND- ի միջև, այս կերպ ազդանշանի կապը կլինի GND- ի վրա, երբ կոճակը չի սեղմվում, քանի որ դիմադրության միջով հոսանք չի հոսում, և երբ կոճակը սեղմված է, մենք ազդանշանի քորոցն ուղղակիորեն դնում ենք HIGH- ի վրա, և Arduino- ն կարդում է դա և միացնում տեսախցիկը:
Սրանով մենք ավարտեցինք ծածկագիրը գրելը:
*Ես կցանկանայի նշել որոշ խնդիրներ, որոնք ես ունեի իմ օգտագործած աուդիո խցիկների հետ: Միակցիչին արական խցիկ մտցնելիս GND- ը և մյուս երկու կապումներից մեկը երբեմն կարճանում են: Դա տեղի է ունենում ակնթարթորեն և միայն միակցիչը դնելիս, բայց դեռ բավական երկար է, որ Arduino- ն կարճ գրանցի, որպեսզի Arduino- ն պարզապես վերագործարկվի: Դա այնքան էլ հաճախ չի պատահում, բայց դեռ կարող է վտանգ ներկայացնել, և Arduino- ն ոչնչացնելու ներուժ կա, այնպես որ խուսափեք իմ օգտագործած միակցիչներից:
Քայլ 10: Խառնաշփոթ պարունակող
Պատկերներից կարող եք տեսնել, որ տախտակը խառնաշփոթ է դառնում, և մենք ավարտել ենք, այնպես որ մենք պետք է ամեն ինչ տեղափոխենք տախտակ/PCB: Ես գնացի PCB- ի, որովհետև կարծում եմ, որ դրանք ավելի շատ կպատրաստեմ, որպեսզի հեշտությամբ վերարտադրեմ դրանք:
Ես օգտագործել եմ Eagle- ը PCB- ի նախագծման համար և գտել եմ նմուշներ իմ օգտագործած բոլոր մասերի համար: Իմ դիզայնի մեջ կա մի չնչին բան, որը կուզենայի, որ ես դա չարած լինեի, և դա մետաղալարն է ցուցադրման Vcc- ի համար: Ես դա շատ ուշ եմ տեսել և չեմ ուզում փչացնել այն, ինչ ես նախապես նախագծել էի և գնացի ծույլ ճանապարհով ՝ ավելացնելով մետաղալարերի բարձիկներ, իսկ հետագայում ստիպված էի մետաղալարեր ավելացնել այս միացումներին պղնձի հետքերի փոխարեն:.
Arduino- ի տախտակը և էկրանը միացված են PCB- ին կանացի կապի վերնագրերի միջոցով, այլ ոչ թե ակնհայտ պատճառներով ուղղակիորեն զոդվելով PCB- ի վրա: Այս կերպ էկրանի տակ մնացած բաղադրիչների համար շատ տեղ կա այլ բաղադրիչների համար, ինչպիսիք են դիմադրողները, տրանզիստորները և նույնիսկ աուդիո խցիկը:
Ես դրել եմ միկրո մղման կոճակներ, որոնք, ըստ նախագծի, պետք է ուղղակիորեն զոդվեն, բայց կարող եք նաև օգտագործել կանացի քորոցների վերնագրերի անցքերը և կոճակները միացնել մետաղալարով, եթե ցանկանում եք, որ դրանք տեղադրվեն պատյանում և ոչ թե PCB- ի վրա:
Մենք նաև մեկ այլ կին աուդիո խցիկ կդնենք տեսախցիկին միացող մալուխը միացնելու համար: Այս կերպ խորհուրդը դառնում է ավելի բազմակողմանի, քանի որ այդ կերպ մենք կկարողանանք միանալ այլ տեսախցիկներին այլ միակցիչներով:
Քայլ 11: Sens0rs
Եկեք դիտարկենք սենսորը ներդնելու եղանակները:
Այսպիսով, սենսորը կունենա մատակարարման լարումը 5 Վ, և այն պետք է կարողանա ապահովել թվային HIGH ազդանշանի ազդանշանի վրա, երբ մենք ցանկանում ենք միացնել տեսախցիկը: Առաջին բանը, որ մտքիս եկավ, շարժման ցուցիչն է, կոնկրետ ՝ PIR- ը: Կան Arduino- ի համար վաճառվող մոդուլներ, որոնց վրա կա այս սենսորը և անում են այն, ինչ մենք ուզում ենք: Նրանք սնուցվում են 5 Վ լարման վրա և ունեն ելքային պին, որի վրա նրանք միացնում են 5 Վ, երբ դրանք միանում են, մենք պարզապես պետք է դրա կապումներն միացնենք 3.5 մմ աուդիո խցիկին և կարող ենք միացնել անմիջապես տախտակին: Մի բան, սակայն, պետք է նշել, որ այս սենսորին ժամանակ է պետք տաքանալու և ճիշտ աշխատելու համար, այնպես որ մի ակնկալեք, որ այն միանգամից կաշխատի, երբ միացնեք այն, որոշ ժամանակ տրամադրեք, այնուհետև տեղադրեք այն և ինչ կենդանի է մտնում դրա մեջ: տիրույթը կխթանի տեսախցիկը:
Քանի որ մենք մտածում ենք արդեն պատրաստված Arduino սենսորային տախտակների ուղղությամբ, մեկ այլ բան է գալիս `ձայն: Սովորաբար այս տախտակները պատրաստված են այնպես, որ ունեն մեկ քորոց, որը դուրս է բերում հնչյունի անալոգային արժեքը, և մեկ այլ `թվային, որը տրամաբանական բարձր է թողնում, եթե դրա բարձրացրած ձայնը հատում է որոշակի մակարդակ: Մենք կարող ենք այս մակարդակը սահմանել այնպես, որ սենսորը անտեսի մեր ձայնը, բայց գրանցի ծափ: Այդ կերպ, ամեն անգամ, երբ ծափ ես տալիս, միացնում ես տեսախցիկը:
Քայլ 12: PoweeEeEer
Կարծում եմ, որ այս բանն իշխանության դնելու ամենահեշտ ձևը Power Bank- ն է, և ոչ արտաքին: Մենք կպահպանենք մեր հեռախոսը կամ որևէ այլ բան լիցքավորելու գործառույթը և անջատիչի միջոցով վերահսկելու ենք դեպի տախտակ ընթացիկ հոսքը: Մենք տեղադրելու ենք ելքային USB միակցիչի կապերը էլեկտրահաղորդման տախտակի վրա, որոնք GND և Vcc (5V) են, և oldոդման լարերը անմիջապես դրանց վրա, իսկ այնտեղից ՝ մեր տախտակի մեջ:
Քայլ 13 ՝ պարիսպ
Ես իսկապես պայքարեցի դրա հետ: Երբ տուփը քանդեցի, որի մեջ ցանկանում էի տեղադրել առկա PCB- ն, ես հասկացա, որ ամեն ինչ այնպես, ինչպես ուզում եմ, հարմար ձև չկա, և որոշեցի նախագծել նոր PCB, այս անգամ օպտիկական միացնող սարքերով: Ես ուզում էի PCB- ն տեղադրել հենց այն կողմի տակ, որի վրա ես պետք է անցքեր բացեի որոշակի բաղադրիչների համար, որոնք պետք է տեսնել/դիպչել: Որպեսզի դա աշխատի, ես պետք է կցեմ էկրանը և Arduino- ն անմիջապես տախտակին, առանց վարդակների կամ վերնագրերի, և հենց այստեղ է առաջին խնդիրը: Բացարձակապես սարսափելի էր որևէ բան լուծելը, քանի որ ես պատրաստ չէի այն անմիջապես կպցնել, մինչև չփորձեմ, որ ամեն ինչ աշխատում է, և ես իսկապես ոչինչ չէի կարող ստուգել, քանի որ չէի կարող զոդել և այլն: մի արա սա: Խնդիր numero dos, պատյանների վրա անցքեր անելով: Ենթադրում եմ, որ սխալ չափումներ եմ կատարել, քանի որ պատյանների անցքերից ոչ մեկը չի համապատասխանել PCB- ի բաղադրիչներին, և ես ստիպված էի դրանք մեծացնել, իսկ կոճակները չափազանց բարձր էին PCB- ի վրա, և դրանք միշտ կսեղմվեին, երբ տախտակը տեղադրեի և քանի որ ես ուզում էի, որ կողքի աուդիո խցիկները, ես նույնպես պետք է մեծացնեի այդ անցքերը, որպեսզի սկզբում տեղավորեի խցիկները, այնուհետև իջեցնեի տախտակը, որպեսզի էկրանը և կոճակները հայտնվեին: արդյունքը սարսափելի է:
Ես ինչ -որ չափով սարսափելի դարձրեցի սարսափելի անցքերը ՝ վերևը ծածկելով բարակ ստվարաթղթով, որի մեջ ես ավելի խելամիտ անցքեր էի կտրում բաղադրիչների համար և … դա դեռ սարսափելի է, բայց կարծում եմ, որ աչքի համար ավելի հեշտ է:
Դատավճիռ, ես առաջարկում եմ դա անել `գնելով բաղադրամասեր, որոնք ամրացվում են պարիսպին, և ոչ անմիջապես PCB- ին: Այդ կերպ դուք կունենաք ավելի շատ ազատություն բաղադրիչների տեղադրման և ավելի քիչ սխալներ թույլ տալու համար:
Քայլ 14: Fin
Ես ավարտեցի, բայց ահա մի բան, որը ես այլ կերպ կանեի.
Օգտագործեք ավելի լավ որակի 3.5 մմ ձայնային խցիկներ: Նրանք, որոնք ես օգտագործել եմ, հակված են կարճացնել տերմինալները, երբ տեղադրում կամ դուրս են բերում խցիկը, ինչը հանգեցնում է մատակարարման կարճացման, այդպիսով վերագործարկելով Arduino- ն, կամ այն պարզապես արտադրում է կեղծ գործարկիչներ: Ես դա ասել եմ նախորդ քայլին, բայց նորից կասեմ.. մի ամրացրեք Arduino- ի տախտակն առանց վերնագրերի/վարդակների, այն պարզապես դժվարացնում է ցանկացած տեսակի անսարքությունների վերբեռնումը կամ վերբեռնումը և այլն: Ես նաև կարծում եմ, որ լուսադիոդային ազդանշան ունենալը, որ սարքը միացված է, օգտակար կլիներ, քանի որ ես հաճախ չեմ կարող ասել առանց կոճակը սեղմելու, քանի որ էկրանն անջատվում է: Եվ վերջին բանը, դադար գործառույթը: Ես պատկերացնում եմ, որ դա օգտակար կլինի, երբ, օրինակ, PIR սենսորը միացնելիս այնպես, որ դրա համար ժամանակ է պետք տաքանալու համար, կամ պարզապես այն շրջելիս չես ուզում, որ այն ձգվի, այնպես որ կարող ես պարզապես դադարեցնել ամեն ինչ, բայց կարող ես նաև պարզապես միացնել անջատված տեսախցիկից այնպես.. ինչ էլ որ լինի:
Մեկ այլ կոկիկ բան այն է, որ այն Velcro- ն տեղադրեք եռոտանի վրա, քանի որ այն, ամենայն հավանականությամբ, կօգտագործվի այնտեղ:
Ազատ զգալ մեկնաբանություններում այս նախագծի մասին որևէ բան հարցնելու համար, և ես կցանկանայի իմանալ, թե արդյոք դուք կառուցում եք այն և ինչպես է դա ձեզ մոտ ստացվել:
Խորհուրդ ենք տալիս:
Կավատ զոմբի ՝ փայլուն աչքերով. 5 քայլ (նկարներով)
Կավատ զոմբի ՝ փայլուն աչքերով. Իմացեք, թե ինչպես կարելի է ավելացնել փայլուն աչքերով լուսադիոդներ գոյություն ունեցող կերպարին: Իմ դեպքում ես Հելոուինի համար օգտագործել եմ զոմբիի կերպար: Դա բավականին հեշտ է անել և չի պահանջում որևէ առաջադեմ հմտություն
Կավատ մեգաֆոնի սաղավարտ. 11 քայլ (նկարներով)
Կծկված մեգաֆոնի սաղավարտ. Այստեղ ես ցույց եմ տալիս, թե ինչպես կարող եք շատ պարզ ձևափոխել մեգաֆոնը `ընդունելով iPod- ի 1/8 դյույմանոց մուտքագրումը և բարձրախոսը տեղադրել մոտոցիկլետի սաղավարտի վերևում: Արդյունքում ստացված« Մեգա սաղավարտ »-ը բերում է լսողության առավելագույն հիմարություն: օրենքով թույլատրված
Ինչպես մաքրել ականջակալների 1/8 դյույմանոց (3,5 մմ) խցիկը ՝ 6 քայլ
Ինչպես մաքրել ականջակալների 1/8 դյույմանոց (3,5 մմ) խցիկ. Ինչպես մաքրել ականջակալների ընդհանուր խցիկը, որը գտնվում է շատ շարժական սարքերում: 1/8 «վարդակները» հայտնաբերվում են դյուրակիր սարքավորումների մեծ մասում (իսկ iPod- ների տարածմամբ ՝ միլիոններ կան): նման խցիկների): Լինելով դյուրակիր, խցիկը շփվում է շատ
Հարմարեցրեք բջջային հեռախոսի վնասված կամ անհայտ հոսանքի խցիկը `5 քայլ
Հարմարեցրեք բջջային սարքի վնասված կամ անհայտ հոսանքի խցիկը. Բացեք բջիջը, որի համար հոսանքի ադապտեր չունեք կամ եթե խցիկը վնասված է: Օգտագործեք բջջային հեռախոսի էներգիայի ցանկացած այլ ադապտեր և տվեք ձեր բջջային հեռախոսին երկրորդ հնարավորություն
Կավատ ձեր USB կրիչը. 10 քայլ (նկարներով)
Կավատ ձեր USB կրիչը. Ձեզ դուր է գալիս տվյալներ պահել: Իհարկե, դուք դա անում եք: Բայց երբ այն փողոց ես հանում, մարդիկ ծիծաղում են քեզ վրա: Այո, ես գիտեմ, նրանք պարզապես չեն հասկանում ձեզ, այնպես չէ՞: Դե, գուցե դուք պետք է նրանց օգնեք: Ինքներդ ձեզ մի փոքր փող տվեք ՝ ավազամաններ կառուցելով