Cuprins:

Cryptap: o blocare a ușii bazată pe ritm: 5 pași
Cryptap: o blocare a ușii bazată pe ritm: 5 pași

Video: Cryptap: o blocare a ușii bazată pe ritm: 5 pași

Video: Cryptap: o blocare a ușii bazată pe ritm: 5 pași
Video: Установка ЭЦП на компьютер с флешки в КриптоПро 5.0. Пошаговая инструкция 2024, Iulie
Anonim
Cryptap: o blocare a ușii bazată pe ritm
Cryptap: o blocare a ușii bazată pe ritm
Cryptap: o blocare a ușii bazată pe ritm
Cryptap: o blocare a ușii bazată pe ritm
Cryptap: o blocare a ușii bazată pe ritm
Cryptap: o blocare a ușii bazată pe ritm

Inspirat de mai multe mecanisme de deblocare a ușilor pe care le-am văzut pe hackaday.com, am decis să creez unul singur. Aceasta are o interfață cu două butoane; una pentru a începe și a termina trimiterea parolei și una pentru a atinge efectiv ritmul care este parola dvs. Există, de asemenea, o lumină de stare. Am reușit să construiesc acest lucru foarte ieftin folosind piese pe care le-am scăpat în ultimele luni. Singurele lucruri pe care trebuia să le plătesc erau microcontrolerul în sine, care era de 21 USD (https://www.pjrc.com/teensy/), și niște sârme de agățare pe care le aveam de mai înainte.

Este foarte distractiv să atingi Tema Războiului Stelelor sau ceva care să intre în camera mea. Acum, nu trebuie să-mi fac griji că mă închid din nou din cameră! În plus, se simte bine și ciudat.

Pasul 1: Piese și instrumente

Piese și instrumente
Piese și instrumente
Piese și instrumente
Piese și instrumente

Am ales Teensy pentru că acesta este primul meu microcontroler și încă nu am programator. Teensy necesită doar un cablu USB A-miniB și software gratuit pentru instalare, compatibil cu Mac / Windows / Linux. De asemenea, este foarte ușor să încărcați fișierul hex; doar compilați și apăsați butonul de pe Teensy.

Costul acestui proiect pentru mine a fost de 21 USD, plus firul suspendat. Părți din stradă provin de la un percolator de cafea (releu, LED, condensator) și un router (LED, mufă modulară, mufă de alimentare, condensatori). Probele gratuite au fost regulatorul, butoanele și comutatorul 7805 de 5 volți. De asemenea, am găsit o mulțime de lucruri în cutia „părți rupte” din laboratorul meu de EE: conectori și cablu pentru banane, fir, driverul sn754410, un antet cu patru pini și rezistențe. Aveam un încărcător de laptop suplimentar pe care l-am folosit pentru alimentare și un cablu modem Apple a cărui filă a fost ruptă. Alte articole hardware: o placă de perete. Am folosit un pistol de lipit fierbinte, un fier de lipit, o pila cu ac și un burghiu electric, care sunt destul de standard. Cel mai neobișnuit lucru pe care l-am folosit a fost un instrument lung, flexibil.

Pasul 2: Hardware preexistent

Hardware preexistent
Hardware preexistent
Hardware preexistent
Hardware preexistent
Hardware preexistent
Hardware preexistent
Hardware preexistent
Hardware preexistent

Am avut mare noroc că au fost deja atât de multe instalate. Camera mea este accesibilă ADA și erau deja instalate diverse conducte, cutii electrice și o ușă electrică. Când am scos ușa din curiozitate, am constatat că nu era conectată. În camera mea se afla o țeavă de la ușă, până la o placă de perete goală și o altă țeavă de acolo până la o placă de perete goală.

Greva ușii spune că are nevoie de 24V @ 3A pentru a funcționa, dar am reușit să trec cu o sursă de alimentare de 19V, 7.9A pe care o aveam. Lovitura ușii a fost polarizată, deci asigurați-vă că aveți polaritatea corectă!

Pasul 3: Circuite

Circuite
Circuite
Circuite
Circuite
Circuite
Circuite
Circuite
Circuite

Pentru a controla lovitura ușii, am folosit releul pe care l-am găsit în percolatorul de cafea. Acest releu avea nevoie de mai mult de 5V TTL pentru al conduce, așa că sn754410 a fost folosit pentru a traduce TTL la 19V, care a condus releul. Sn754410 este într-adevăr un driver quad jumătate de H, așa că pierdeam 3/4 din cip, dar nu aveam tranzistori de putere, așa că asta am folosit.

Cipul sn754410 are doi pini VCC, unul pentru 5V, celălalt pentru tensiunea pe care vreți să o scoateți, care a fost de 19V pentru mine. Este un cip foarte tare. Puteți utiliza acest lucru pentru a conduce motoare și relee direct, deoarece poate comuta 1A pe sfert de cip și are diode de protecție încorporate. Aruncați o privire la foaia de date. În circuitul meu, am conectat sn754410 direct la pinul de ieșire al Teensy. Butoanele sunt conectate ca active-low, ceea ce este foarte frecvent pentru microcontrolere. Sunt conectate direct la Teensy, ceea ce înseamnă că trebuie să fac dezbateri în software. Lumina de stare este conectată la Teensy printr-un rezistor de 1K ohm; nimic special. Circuitul a funcționat fără condensatoare, dar le-am pus oricum pentru orice eventualitate. Există capace de protecție pe șinele de alimentare de 19V și 5V la sol. În timp ce programați Teensy, 5V provin de pe USB, dar când rulează pe cont propriu, puterea provine de la caramida de alimentare a laptopului. Când am conectat regulatorul 7805 direct la 19V, s-a încălzit ADEVĂRAT, așa că am introdus o rețea de rezistențe pentru a limita tensiunea de intrare și curentul la regulator. Acesta a fost un zbucium, dar acum totul este la o temperatură controlabilă.

Pasul 4: Cablare împreună

Cablare împreună
Cablare împreună
Cablare împreună
Cablare împreună

Teensy nu a fost o problemă. Este livrat cu știfturi, astfel încât să îl puteți conecta direct la panou.

Am decis să codez color firele de la ușă cu cabluri de banane roșii (+) și negre (-) din cutia de piese sparte a laboratorului. Au existat niște prize scoase din fire, așa că am îndepărtat niște plastic pentru a expune un punct de lipit. Îmi place foarte mult modul în care se pot conecta dopurile de laborator pentru banane. Am folosit cablul telefonului Apple pentru a conecta butoanele și lumina de stare din afara camerei la Teensy din interior. Deoarece o parte a fost ruptă, am tăiat capătul respectiv și am lipit în antetul cu patru pini, închizându-l cu adeziv fierbinte. Acest lucru s-a conectat frumos la panoul meu de verificare. Partea pe care am lăsat mufa a intrat în mufa modulară pe care am recuperat-o de pe router. Au fost utilizate toate cele patru fire (GND, indicator de stare, buton pornire / oprire, buton cod). În caz că nu ați observat, îmi plac prizele și conectorii. Caramida de alimentare conectată la mufa de alimentare pe care am glisat-o de la router. Infilarea firelor prin conductele de perete nu a fost prea dificilă, din cauza problemei flexibile. Asta chiar mi-a salvat ziua.

Pasul 5: Cod

Cod
Cod
Cod
Cod

Am încercat să comentez codul meu. Rețineți că acesta este software 1.0, ceea ce înseamnă că nu este fără erori. ## FUNCȚIONARE ## 1. Apăsați butonul Start / Stop pentru a semnaliza că sunteți gata să începeți introducerea codului. Lumina de stare începe să clipească încet. 2. Apăsați codul pe butonul de cod. Indicatorul luminos de stare va clipi la 120 BPM, deci îl puteți folosi ca metronom, dacă doriți. Cu toate acestea, programul cryptap va măsura proporțional lungimile pulsului unul față de celălalt, astfel încât să puteți utiliza și propriul tempo. Asigurați-vă că sunteți suficient de exacți! 3. După introducerea codului, apăsați din nou butonul Start / Stop. Programul va decide apoi dacă vă va permite să intrați. Deoarece oamenii nu sunt foarte exigenți (timpul dvs. nu este cu adevărat), am stabilit raportul de toleranță la +/- 30%. Asta înseamnă că lungimile bătăilor pot fi inexacte cu acea cantitate și, totuși, pot fi reduse. Acest lucru este suficient de bun pentru a face diferența între melodii destul de similare. Există o cantitate mică de suprapuneri greu accesibile din bătăile duble și triple, dar codul este încă destul de greu de rupt. Pentru a debloca ușa, bătăile trebuie să fie în proporțiile corecte între ele (+/- raportul de toleranță), iar numărul de bătăi trebuie să fie corect. Dacă este introdusă o parolă invalidă, programul așteaptă câteva secunde ignorând orice intrare de utilizator. De asemenea, va aprinde rapid lumina de stare. Dacă este introdus codul corect, indicatorul luminos de stare se va aprinde constant și ușa se va debloca timp de 8 secunde. ## CONFIGURARE UTILIZATOR ## Cheia este stocată într-o matrice ca aceasta: #define length keyl 5 const int key = {2, 1, 3, 3, 3}; // „La mulți ani pentru tine” Matricea stochează perioada de timp care se întâmplă ÎNTRE ritmuri. Deci, dacă parola dvs. conține ȘASE note precum „La mulți ani pentru dvs.”, ar trebui să existe CINE elemente în matrice. Dacă parola dvs. este foarte lungă și aveți mai mult de 16 bătăi în ea, (foarte greu, nu o recomand), trebuie să măriți numărul definit în această linie: #define inputCodeLength 16 ## RESTUL CODULUI # # Eram curios de întreruperi, așa că am avut butoanele care declanșează întreruperi. Pentru ca aceste întreruperi să fie ușor de utilizat, am solicitat operatorilor mei de întreruperi să verifice anumite indicatoare de funcție. Dacă indicatorul nu este setat la NULL, se invocă funcția la care indică. Acestea sunt setate cu diferite funcții de „setare mod” din cryptap.c. Am făcut un efort pentru a evita depășirile de tampon prin setarea unui număr maxim de impulsuri introduse. Dacă se introduce numărul maxim de impulsuri, programul pornește imediat analiza parolei și decide dacă se deblochează ușa. Sper că comentariile mele din cod vă vor ajuta. ## BUGS ## Am încercat să elimin codul de depanare USB, dar codul nu va funcționa dacă o fac. Așadar, am lăsat în usb_init () și diversele declarații print (). Aș aprecia dacă cineva le-ar putea elimina și va continua să funcționeze programul. Chiar mai bine dacă pot explica de ce nu a funcționat pentru mine. Imediat după ce a fost programat, Teensy nu acceptă uneori introducerea codului. Pentru a rezolva acest lucru, ciclați circuitul.

Recomandat: