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

Cryptap: ռիթմի վրա հիմնված դռան կողպեք ՝ 5 քայլ
Cryptap: ռիթմի վրա հիմնված դռան կողպեք ՝ 5 քայլ

Video: Cryptap: ռիթմի վրա հիմնված դռան կողպեք ՝ 5 քայլ

Video: Cryptap: ռիթմի վրա հիմնված դռան կողպեք ՝ 5 քայլ
Video: CrypTap Bitcoin Maden Kazarak Para Kazanma 2024, Հուլիսի
Anonim
Cryptap: ռիթմի վրա հիմնված դռան կողպեք
Cryptap: ռիթմի վրա հիմնված դռան կողպեք
Cryptap: ռիթմի վրա հիմնված դռան կողպեք
Cryptap: ռիթմի վրա հիմնված դռան կողպեք
Cryptap: ռիթմի վրա հիմնված դռան կողպեք
Cryptap: ռիթմի վրա հիմնված դռան կողպեք

Ոգեշնչված hackaday.com կայքում տեսած դռների բացման մի քանի մեխանիզմներով, ես որոշեցի ինքնուրույն ստեղծել մեկը: Այս մեկն ունի երկու կոճակի ինտերֆեյս; մեկը `գաղտնաբառի ներկայացումը սկսելու և ավարտելու համար, և մեկը` իրականում ձեր գաղտնաբառի ռիթմի վրա թակելու համար: Կա նաև կարգավիճակի լույս: Ես կարողացա կառուցել սա իսկապես էժան ՝ օգտագործելով մասեր, որոնք ես մաքրեցի վերջին մի քանի ամիսների ընթացքում: Միակ բանը, որի համար ես պետք է վճարեի, դա միկրոկառավարիչն էր, որը 21 դոլար էր (https://www.pjrc.com/teensy/) և նկարներից կախված մետաղալարեր, որոնք ունեի նախկինում:

Շատ զվարճալի է «Աստղային պատերազմների» թեման կամ ինչ -որ բան մտնել իմ սենյակ: Հիմա ես կարիք չունեմ անհանգստանալու, որ նորից փակվեմ իմ սենյակից: Բացի այդ, այն իրեն լավ ու հմայիչ է զգում:

Քայլ 1: Մասեր և գործիքներ

Մասեր և գործիքներ
Մասեր և գործիքներ
Մասեր և գործիքներ
Մասեր և գործիքներ

Ես ընտրեցի Teensy- ն, քանի որ սա իմ առաջին միկրոկոնտրոլերն է, իսկ ծրագրավորող դեռ չունեմ: Teensy- ն պահանջում է միայն A-miniB USB մալուխ և տեղադրելու անվճար ծրագրակազմ ՝ համատեղելի Mac/Windows/Linux- ի հետ: Բացի այդ, իսկապես հեշտ է վերբեռնել վեցանկյուն ֆայլը. պարզապես կազմեք և սեղմեք դեռահասի կոճակը:

Այս նախագծի արժեքը ինձ համար 21 դոլար էր ՝ գումարած նկարը կախող մետաղալարը: Փողոցից մասեր էին գալիս սուրճի պերկոլյատորից (ռելե, LED, կոնդենսատոր) և երթուղիչից (LED, մոդուլային խցիկ, հոսանքի վարդակ, կոնդենսատորներ): Անվճար նմուշներ էին 7805 5 վոլտ կարգավորիչը, կոճակները և անջատիչը: Ես նաև բազմաթիվ իրեր գտա իմ EE լաբորատորիայում `« կոտրված մասերի »տուփում` բանանի միակցիչներ և մալուխ, մետաղալարեր, sn754410 վարորդը, չորս պտտվող գլխիկ և դիմադրիչներ: Ես ունեի նոթբուքի լրացուցիչ լիցքավորիչ, որը ես օգտագործում էի էներգիայի համար, և Apple մոդեմի մալուխ, որի ներդիրը կոտրված էր: Այլ սարքավորումներ `պատի ափսե: Ես օգտագործեցի տաք սոսինձ ատրճանակ, եռակցման երկաթ, ասեղի ֆայլ և էլեկտրական փորվածք, որոնք բավականին ստանդարտ են: Ամենաարտասովոր բանը, որ ես օգտագործեցի, երկար, ճկուն գրավի գործիք էր:

Քայլ 2. Նախապես գոյություն ունեցող սարքավորում

Նախապես գոյություն ունեցող Սարքաշար
Նախապես գոյություն ունեցող Սարքաշար
Նախապես գոյություն ունեցող Սարքաշար
Նախապես գոյություն ունեցող Սարքաշար
Նախապես գոյություն ունեցող Սարքաշար
Նախապես գոյություն ունեցող Սարքաշար
Նախապես գոյություն ունեցող Սարքաշար
Նախապես գոյություն ունեցող Սարքաշար

Ես շատ բախտավոր էի, որ արդեն այդքան տեղադրված կար: Իմ սենյակը հասանելի է ADA- ին, և արդեն տեղադրված էին տարբեր խողովակներ, էլեկտրական արկղեր և էլեկտրական դռան հարված: Հետաքրքրասիրությունից դռան հարվածը հեռացնելով ՝ ես պարզեցի, որ այն միացված չէ: Դռան հարվածից դեպի սենյակս պատի դատարկ ափսե կար մի խողովակ, իսկ այնտեղից `մեկ այլ խողովակ` դրսի պատի դատարկ ափսեի մեջ:

Դռան հարվածը ասում է, որ այն 24V@3A կարիք ունի աշխատելու համար, բայց ես կարողացա գլուխ հանել 19V, 7.9A հոսանքով, որն ունեի: Դռան հարվածը բևեռացված էր, այնպես որ համոզվեք, որ բևեռականությունը ճիշտ է:

Քայլ 3: Շղթաներ

Շղթաներ
Շղթաներ
Շղթաներ
Շղթաներ
Շղթաներ
Շղթաներ
Շղթաներ
Շղթաներ

Դռան հարվածը վերահսկելու համար ես օգտագործեցի ռելեն, որը գտել էի սուրճի թրծիչում: Այս ռելեին անհրաժեշտ էր ավելի քան 5V TTL այն վարելու համար, ուստի sn754410- ը օգտագործվում էր TTL- ը 19V- ի թարգմանելու համար, ինչը փոխանցում էր ռելեին: Sn754410- ն իրոք քառամսյա H- ի վարորդ է, այնպես որ ես վատնում էի չիպի 3/4-ը, բայց ես չունեի որևէ ուժային տրանզիստոր, ուստի այն, ինչ ես օգտագործել էի:

Sn754410 չիպը ունի երկու VCC կապ, մեկը 5 Վ -ի համար, մյուսը `ինչ լարվածության համար եք ուզում դուրս գալ, որն ինձ համար 19 Վ էր: Դա իսկապես թույն չիպ է: Դուք կարող եք դա օգտագործել շարժիչներ և ռելեներ անմիջականորեն վարելու համար, քանի որ այն կարող է միկրոսխեմայի 1 Ա-ն փոխել և ներկառուցված պաշտպանական դիոդներ ունի: Նայեք տվյալների թերթիկին: Իմ միացումում ես sn754410- ը միացրեցի անմիջապես Teensy- ի ելքային քորոցին: Կոճակները միացված են որպես ակտիվ-ցածր, ինչը շատ տարածված է միկրոկոնտրոլերների համար: Նրանք ուղղակիորեն կապված են Teensy- ի հետ, ինչը նշանակում է, որ ես պետք է ծրագրաշարում debouncing անեմ: Կարգավիճակի լույսը միացված է Teensy- ին 1K ohm դիմադրության միջոցով; առանձնապես ոչինչ. Շղթան աշխատում էր առանց կոնդենսատորների, բայց ամեն դեպքում դրանք դնում եմ ամեն դեպքում: Կան պաշտպանական գլխարկներ ինչպես 19V, այնպես էլ 5V հոսանքի ռելսերի վրա գետնին: Teensy- ի ծրագրավորման ժամանակ 5V- ը գալիս էր USB- ից, բայց երբ այն աշխատում է ինքնուրույն, էներգիան գալիս է նոութբուքի հզորության աղյուսից: Երբ ես միացրեցի 7805 կարգավորիչը անմիջապես 19 Վ -ին, այն ԻՐԱԿԱՆ տաքացավ, ուստի ես տեղադրեցի ռեզիստորների ցանց `մուտքային լարումը և հոսանքը կարգավորիչին սահմանափակելու համար: Սա կուլդաժ էր, բայց հիմա ամեն ինչ կառավարելի ջերմաստիճանում է:

Քայլ 4: Միացրեք այն միասին

Միացնել այն միասին
Միացնել այն միասին
Միացնել այն միասին
Միացնել այն միասին

The Teensy- ը խնդիր չէր: Այն գալիս է կապում, այնպես որ կարող եք այն ուղղակիորեն միացնել հացատախտակին:

Որոշեցի լաբորատորիայի կոտրված մասերի տուփից կարմիր (+) և սև (-) բանանի մալուխներ ներկել դռան հարվածի լարերը: Կային մի քանի խրոցակներ, որոնք կտրված էին նրանց լարերից, այնպես որ ես հեռացրեցի պլաստմասսայից ՝ կպցնելով կպցնելու տեղը: Ինձ շատ դուր է գալիս, թե ինչպես են լաբորատոր բանանի խրոցակները կարող միացվել միմյանց: Ես օգտագործեցի Apple- ի հեռախոսի մալուխը `սենյակից դուրս գտնվող կոճակները և կարգավիճակի լույսը Teensy- ին միացնելու համար: Քանի որ մի կողմը կոտրված էր, ես կտրեցի այդ ծայրը և կպցրեցի չորս կապանի վերնագրում ՝ այն փակելով տաք սոսինձով: Սա գեղեցիկ կերպով միացվեց իմ տախտակին: Այն կողմը, որը ես թողեցի վարդակից, մտավ մոդուլային խցիկի մեջ, որը ես փրկեցի երթուղիչից: Բոլոր չորս լարերն էլ օգտագործվել են (GND, կարգավիճակի լույս, մեկնարկի/կանգառի կոճակ, կոդի կոճակ): Եթե դուք չեք նկատել, ես սիրում եմ վարդակներ և միակցիչներ: Էլեկտրաէներգիայի աղյուսը միացված է հոսանքի վարդակին, որը ես հեռացրի երթուղիչից: Պատերի խողովակներով լարերը լարելը այնքան էլ դժվար չէր, քանի որ ճկուն գրավի առարկան էր: Դա իսկապես փրկեց իմ օրը:

Քայլ 5: Կոդ

Կոդ
Կոդ
Կոդ
Կոդ

Փորձեցի մեկնաբանել իմ կոդը: Նկատի ունեցեք, որ սա 1.0 ծրագրակազմ է, այսինքն ՝ այն սխալներից զերծ չէ: ## ԳՈՐՈՆԵՈ #ԹՅՈ #Ն ## 1. Սեղմեք մեկնարկի/կանգառի կոճակը ՝ ազդանշան տալու համար, որ պատրաստ եք սկսել մուտքագրման ծածկագիրը: Կարգավիճակի լույսը սկսում է դանդաղ բռնկվել: 2. Հպեք ձեր կոդը կոդի կոճակին: Կարգավիճակի լույսը կթարթվի 120 BPM- ով, այնպես որ, ցանկության դեպքում, կարող եք օգտագործել այն որպես ձեր չափագրիչ: Այնուամենայնիվ, գաղտնագրման ծրագիրը չափելու է զարկերակի երկարությունները միմյանց համեմատաբար, այնպես որ կարող եք նաև օգտագործել ձեր սեփական տեմպը: Պարզապես համոզվեք, որ դուք բավականաչափ ճշգրիտ եք: 3. Երբ ծածկագրի մուտքագրումն ավարտված է, նորից սեղմեք մեկնարկ/դադարեցման կոճակը: Programրագիրը այնուհետև կորոշի ՝ թույլ կտա ձեզ ներս թողնել: Քանի որ մարդիկ այնքան էլ ճշգրիտ ժամանակապահ չեն (ձերն իրականում այդպես չէ), ես հանդուրժողականության հարաբերակցությունը սահմանել եմ +/- 30%: Դա նշանակում է, որ հարվածի երկարությունը կարող է այդ չափով ճշգրիտ չլինել և, այնուամենայնիվ, ավելի արագ անցնել: Սա բավական լավ է, որպեսզի տարբերվի բավականին նմանատիպ մեղեդիների միջև: Կա փոքր քանակությամբ դժվար հասանելի համընկնում կրկնակի և եռակի երկարության զարկերի միջև, բայց կոդը դեռևս բավականին դժվար է կոտրել: Դուռը բացելու համար հարվածները պետք է լինեն միմյանց միջև ճիշտ համամասնությամբ (+/- հանդուրժողականության հարաբերակցությունը), իսկ հարվածների թիվը `ճիշտ: Եթե սխալ գաղտնաբառ է մուտքագրվում, ծրագիրը սպասում է մի քանի վայրկյան ՝ անտեսելով օգտվողի ցանկացած մուտքագրում: Այն նաև արագ կթափի կարգավիճակի լույսը: Եթե ճիշտ կոդը մուտքագրվի, կարգավիճակի լույսը անշեղորեն կմիանա, և դուռը կբացվի 8 վայրկյան: ## USER CONFIGURATION ## Բանալին պահվում է այսպիսի զանգվածում ՝#սահմանել բանալիի երկարությունը 5 const int key = {2, 1, 3, 3, 3}; // «Happyնունդդ շնորհավոր քեզ» arանգվածը պահում է այն ժամանակը, որը տեղի է ունենում հարվածների միջև: Այսպիսով, եթե ձեր գաղտնաբառը ունի վեց գրառում, ինչպիսին է «birthdayնունդդ շնորհավոր քեզ», ապա զանգվածում պետք է լինի ՀԻՆԱԿ տարր: Եթե ձեր գաղտնաբառն իսկապես երկար է, և դրա մեջ ավելի քան 16 հարված կա, (իսկապես դժվար է, խորհուրդ չեմ տալիս), դուք պետք է ավելացնեք այս տողում սահմանված թիվը. # Ես հետաքրքրված էի ընդհատումներով, այնպես որ ես ունեի իմ կոճակների ձգան ընդհատումները: Այս ընդհատումները դյուրին դարձնելու համար ես իմ ընդհատիչ կարգավորիչներին ստուգեցի գործառույթի որոշակի ցուցիչների առկայությունը: Եթե սլաքը դրված չէ NULL- ի վրա, ապա կանչվում է այն գործառույթը, որը ցույց է տալիս: Դրանք դրված են cryptap.c- ի ներսում առկա տարբեր «ռեժիմի կարգավորման» գործառույթներով: Ես ջանքեր գործադրեցի խուսափելու բուֆերի արտահոսքից `սահմանելով մուտքագրված իմպուլսների առավելագույն քանակ: Եթե զարկերակների առավելագույն քանակը մուտքագրվում է, ծրագիրը անմիջապես սկսում է գաղտնաբառի վերլուծությունը և որոշում, թե արդյոք բացելու է դուռը: Հուսով եմ, որ կոդի իմ մեկնաբանությունները կօգնեն: ## BUGS ## Ես փորձեցի հեռացնել USB կարգաբերման կոդը, բայց եթե չանեմ, կոդը չի աշխատի: Այսպիսով, ես թողեցի usb_init () և տարբեր print () հայտարարությունները: Ես կգնահատեի, եթե ինչ -որ մեկը կարողանար հեռացնել դրանք և դեռ աշխատել ծրագրի հետ: Նույնիսկ ավելի լավ, եթե նրանք կարողանան բացատրել, թե ինչու դա ինձ մոտ չաշխատեց: Medրագրավորվելուց անմիջապես հետո Teensy- ն երբեմն չի ընդունում կոդի մուտքագրումը: Դա լուծելու համար միացրեք հոսանքի ցիկլը միացումով:

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