Съдържание:

Cryptap: Заключване на врата на базата на ритъм: 5 стъпки
Cryptap: Заключване на врата на базата на ритъм: 5 стъпки

Видео: Cryptap: Заключване на врата на базата на ритъм: 5 стъпки

Видео: Cryptap: Заключване на врата на базата на ритъм: 5 стъпки
Видео: 40 полезных автотоваров с Aliexpress, которые упростят жизнь любому автовладельцу #7 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. Също така е много лесно да качите шестнадесетичния файл; просто компилирайте и натиснете бутона на Teensy.

Цената на този проект за мен беше $ 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 щифта, единият за 5V, другият за каквото и да е напрежение, което искате да излезете, което за мен беше 19V. Това е наистина страхотен чип. Можете да използвате това за директно задвижване на двигатели и релета, защото може да превключва 1A на тримесечен чип и има вградени защитни диоди. Разгледайте листа с данни. В моята схема свързах sn754410 директно към изходния щифт на моя Teensy. Бутоните са свързани като активно-ниско, което е много често срещано за микроконтролерите. Те са директно свързани с Teensy, което означава, че трябва да направя премахване на софтуера. Светлината за състоянието е свързана към Teensy чрез 1K ом резистор; нищо специално. Схемата работеше без кондензатори, но така или иначе ги поставих за всеки случай. Има защитни капачки както на 19V, така и на 5V захранващи релси към земята. Докато програмирате Teensy, 5V идва от USB, но когато работи самостоятелно, захранването идва от тухла за захранване на лаптопа. Когато свързах регулатора 7805 директно към 19V, той наистина се нагорещи, затова поставих мрежа от резистори, за да огранича входното напрежение и ток към регулатора. Това беше глупост, но сега всичко е на контролируема температура.

Стъпка 4: Свържете го заедно

Свържете го заедно
Свържете го заедно
Свържете го заедно
Свържете го заедно

Teensy не беше проблем. Той идва с щифтове, така че можете да го включите директно в платката.

Реших да оцветя цветно проводниците към удара на вратата с червени (+) и черни (-) бананови кабели от кутията за счупени части на лабораторията. Някакви щепсели бяха откъснати от проводниците им, затова извадих малко пластмаса, за да изложа място за запояване. Много ми харесва как лабораторните бананови щепсели могат да се включат един в друг. Използвах телефонния кабел на Apple, за да свържа бутоните и индикатора за състоянието извън стаята с Teensy вътре. Тъй като едната страна беше счупена, отрязах този край и запоех в четириконтактната заглавка, запечатвайки я с горещо лепило. Това се включи добре в моята дъска. Страната, на която оставих щепсела, влезе в модулния жак, който спасих от рутера. Използвани са и четирите проводника (GND, индикатор за състоянието, бутон за стартиране/спиране, кодов бутон). В случай, че не сте забелязали, харесвам щепсели и конектори. Захранващата тухла, свързана към гнездото за захранване, която плъзнах от рутера. Прокарването на проводниците през стенните тръби не беше твърде трудно поради гъвкавия грайфер. Това наистина ми спаси деня.

Стъпка 5: Код

Код
Код
Код
Код

Опитах се да коментирам кода си. Имайте предвид, че това е 1.0 софтуер, което означава, че не е без грешки. ## ОПЕРАЦИЯ ## 1. Натиснете бутона за стартиране/спиране, за да сигнализирате, че сте готови да започнете въвеждането на код. Индикаторът за състоянието започва да мига бавно. 2. Докоснете кода си върху кодовия бутон. Индикаторът за състоянието ще мига при 120 BPM, така че можете да го използвате като метроном, ако искате. Програмата за криптап обаче ще измерва пропорционално дължините на импулсите един спрямо друг, така че можете да използвате и свое собствено темпо. Просто се уверете, че сте достатъчно точни! 3. Когато въведете кода, натиснете отново бутона за стартиране/спиране. След това програмата ще реши дали да ви пусне. Тъй като хората не са много точни пазители на времето (вашият наистина не е такъв), аз зададох коефициента на толеранс на +/- 30%. Това означава, че дължината на ритъма може да бъде неточна с това количество и все пак да премине. Това е достатъчно добро, за да направи разлика между доста сходни мелодии. Има малко количество труднодостъпни припокривания между битове с двойна и тройна дължина, но кодът все още е доста труден за разбиване. За да отключите вратата, ударите трябва да са в правилните пропорции помежду си (+/- съотношението на толеранс), а броят на ударите трябва да е правилен. Ако е въведена невалидна парола, програмата изчаква няколко секунди, като пренебрегва въвеждането от потребителя. Също така ще мига бързо светлината за състоянието. Ако е въведен правилният код, светлинният индикатор за състоянието ще светне постоянно и вратата ще се отключи за 8 секунди. ## ПОТРЕБИТЕЛСКА КОНФИГУРАЦИЯ ## Ключът се съхранява в масив като този: #define keylength 5 const int key = {2, 1, 3, 3, 3}; // "Честит рожден ден на вас" Масивът съхранява времето, което се случва МЕЖДУ ритъма. Така че, ако вашата парола има ШЕСТ бележки като „Честит рожден ден на вас“, трябва да има ПЕТ елемента в масива. Ако паролата ви е наистина дълга и имате повече от 16 удара в нея ((наистина трудно, не я препоръчвам)), трябва да увеличите броя, определен в този ред: #define inputCodeLength 16 ## ОСТАВКАТА НА КОДА # # Бях любопитен за прекъсвания, затова накарах бутоните ми да задействат прекъсвания. За да направя тези прекъсвания лесни за използване, накарах моите манипулатори за прекъсвания да проверят за определени указатели на функции. Ако показалецът не е зададен на NULL, функцията, към която сочи, се извиква. Те се задават с различните функции за настройка на режим в cryptap.c. Положих усилия да избегна препълването на буфера, като зададох максимален брой въведени импулси. Ако се въведе максималният брой импулси, програмата незабавно започва анализ на паролата и решава дали да отключи вратата. Надявам се коментарите ми в кода да помогнат. ## BUGS ## Опитах се да премахна кода за отстраняване на грешки в USB, но кодът няма да работи, ако го направя. И така, оставих в usb_init () и различните оператори print (). Ще съм благодарен, ако някой може да ги премахне и програмата да продължи да работи. Още по -добре, ако могат да обяснят защо не работи при мен. Веднага след програмирането Teensy понякога не приема въвеждане на код. За да разрешите това, включете веригата.

Препоръчано: