Obsah:

Cryptap: Zámek dveří založený na rytmu: 5 kroků
Cryptap: Zámek dveří založený na rytmu: 5 kroků

Video: Cryptap: Zámek dveří založený na rytmu: 5 kroků

Video: Cryptap: Zámek dveří založený na rytmu: 5 kroků
Video: CrypTap Bitcoin Maden Kazarak Para Kazanma 2024, Listopad
Anonim
Cryptap: zámek dveří založený na rytmu
Cryptap: zámek dveří založený na rytmu
Cryptap: zámek dveří založený na rytmu
Cryptap: zámek dveří založený na rytmu
Cryptap: zámek dveří založený na rytmu
Cryptap: zámek dveří založený na rytmu

Inspirován několika mechanismy odemykání dveří, které jsem viděl na hackaday.com, rozhodl jsem se vytvořit jeden sám. Tenhle má rozhraní se dvěma tlačítky; jeden pro zahájení a ukončení zadávání hesla a jeden pro skutečné klepnutí v rytmu, který je vaším heslem. K dispozici je také stavová kontrolka. Byl jsem schopen to postavit opravdu levně pomocí dílů, které jsem během několika posledních měsíců uklízel. Jediné, za co jsem musel zaplatit, byl samotný mikrokontrolér, který stál 21 $ (https://www.pjrc.com/teensy/), a nějaký závěsný drát, který jsem měl předtím.

Je spousta legrace klepnout na téma Star Wars nebo něco, co vstoupí do mého pokoje. Nyní se nemusím obávat, že se znovu zamknu ze svého pokoje! Navíc se cítí dobře a podivínsky.

Krok 1: Díly a nástroje

Díly a nástroje
Díly a nástroje
Díly a nástroje
Díly a nástroje

Vybral jsem si Teensy, protože toto je můj první mikrokontrolér a zatím nemám programátora. Teensy vyžaduje k instalaci pouze USB kabel A-miniB a bezplatný software, kompatibilní s Mac/Windows/Linux. Také je opravdu snadné nahrát hexadecimální soubor; stačí zkompilovat a stisknout tlačítko na Teensy.

Náklady na tento projekt pro mě byly 21 USD plus drát na zavěšení obrazu. Části z ulice pocházely z kávovaru (relé, LED, kondenzátor) a routeru (LED, modulární konektor, napájecí konektor, kondenzátory). Bezplatné vzorky byly 5voltový regulátor 7805, tlačítka a přepínač. V krabici „rozbitých částí“v mé laboratoři EE jsem také našel spoustu věcí: banánové konektory a kabel, vodič, ovladač sn754410, čtyřpinový konektor a odpory. Kolem mě ležela další nabíječka na notebook, kterou jsem používal k napájení, a kabel modemu Apple, jehož jazýček byl zlomený. Další hardware: nástěnná deska. Použil jsem horkou lepicí pistoli, páječku, jehlový pilník a elektrickou vrtačku, které jsou celkem standardní. Nejneobvyklejší věc, kterou jsem použil, byl dlouhý, flexibilní nástroj pro uchopení.

Krok 2: Již existující hardware

Již existující hardware
Již existující hardware
Již existující hardware
Již existující hardware
Již existující hardware
Již existující hardware
Již existující hardware
Již existující hardware

Měl jsem velké štěstí, že už toho bylo tolik nainstalovaného. Můj pokoj je přístupný ADA a byly zde již nainstalovány různé potrubí, elektrické skříně a elektrický dveřní zámek. Když jsem ze zvědavosti odstranil úder dveří, zjistil jsem, že nejsou propojené. V mém pokoji byla roura od dveřního úderu na prázdnou nástěnnou desku a další trubka odtud na prázdnou nástěnnou desku venku.

Dveřní úder říká, že k provozu potřebuje 24 V@3 A, ale dokázal jsem se obejít s napájecím zdrojem 19 V, 7,9 A, který jsem měl. Úder dveří byl polarizovaný, takže se ujistěte, že máte správnou polaritu!

Krok 3: Obvody

Obvody
Obvody
Obvody
Obvody
Obvody
Obvody
Obvody
Obvody

K ovládání úderu dveří jsem použil relé, které jsem našel v kávovaru. Toto relé potřebovalo k pohonu více než 5V TTL, takže sn754410 byl použit k překladu TTL na 19V, který relé poháněl. Sn754410 je opravdu ovladač quad half-H, takže jsem ztrácel 3/4 čipu, ale neměl jsem žádné výkonové tranzistory, takže jsem to použil.

Čip sn754410 má dva piny VCC, jeden pro 5V, druhý pro jakékoli napětí, které chcete vyjít, což pro mě bylo 19V. Je to opravdu skvělý čip. Můžete to použít k přímému pohonu motorů a relé, protože může přepínat 1A na čtvrtinový čip a má vestavěné ochranné diody. Podívejte se na datasheet. V mém obvodu jsem připojil sn754410 přímo na výstupní pin mého Teensy. Tlačítka jsou připojena jako active-low, což je u mikrokontrolérů velmi běžné. Jsou přímo připojeny k Teensy, což znamená, že musím provést debounding v softwaru. Stavová kontrolka je připojena k Teensy přes odpor 1K ohm; nic zvláštního. Obvod fungoval bez kondenzátorů, ale pro každý případ jsem je vložil. Na 19V a 5V napájecích lištách k zemi jsou ochranné kryty. Při programování Teensy 5V pocházelo z USB, ale když běží samostatně, energie pochází z napájecí kostky notebooku. Když jsem připojil regulátor 7805 přímo na 19V, OPRAVDU se zahřál, a tak jsem vložil síť odporů, abych omezil vstupní napětí a proud do regulátoru. Byl to kal, ale teď má všechno zvládnutelnou teplotu.

Krok 4: Spojte to dohromady

Zapojení dohromady
Zapojení dohromady
Zapojení dohromady
Zapojení dohromady

Teensy nebyl žádný problém. Dodává se s kolíky, takže jej můžete zapojit přímo do prkénka.

Rozhodl jsem se barevně kódovat dráty ke dveřnímu úderu červenými (+) a černými (-) banánovými kabely z krabice rozbitých částí laboratoře. Z jejich drátů byly uříznuty nějaké zátky, a tak jsem odhrnul trochu plastu, abych odhalil pájecí bod. Moc se mi líbí, jak se do sebe mohou zapojit laboratorní banánkové zástrčky. Pomocí telefonního kabelu Apple jsem připojil tlačítka a stavové světlo mimo místnost k Teensy uvnitř. Protože byla jedna strana zlomená, odřízl jsem ten konec a připájel do čtyřpólového záhlaví a utěsnil horkým lepidlem. To se mi pěkně zapojilo do prkénka. Strana, na které jsem nechal zástrčku, šla do modulárního konektoru, který jsem zachránil z routeru. Byly použity všechny čtyři vodiče (GND, stavová kontrolka, tlačítko start/stop, tlačítko kódu). Pokud jste si toho nevšimli, mám rád zástrčky a konektory. Napájecí kostka připojená k napájecímu konektoru, který jsem přejel ze směrovače. Provlékání drátů stěnovými trubkami nebylo příliš obtížné, kvůli pružnému drapáku. To mi opravdu zachránilo den.

Krok 5: Kód

Kód
Kód
Kód
Kód

Pokusil jsem se okomentovat svůj kód. Mějte na paměti, že se jedná o software 1.0, což znamená, že není bez chyb. ## OPERATION ## 1. Stisknutím tlačítka start/stop signalizujete, že jste připraveni zahájit zadávání kódu. Stavová kontrolka začne pomalu blikat. 2. Klepněte na kód na tlačítku kódu. Stavová kontrolka bude blikat při 120 BPM, takže ji můžete použít jako metronom, pokud chcete. Program cryptap však bude proporcionálně měřit délky pulsů vůči sobě navzájem, takže můžete použít i vlastní tempo. Jen se ujistěte, že jste dostatečně přesní! 3. Po zadání kódu stiskněte znovu tlačítko start/stop. Program pak rozhodne, zda vás pustí dovnitř. Jelikož lidé nejsou příliš přesní strážci času (vy opravdu ne), nastavil jsem poměr tolerance na +/- 30%. To znamená, že délky úderů mohou být o tuto částku nepřesné a stále musejí projít. To je dost dobré na to, abychom poznali rozdíl mezi docela podobnými melodiemi. Mezi beaty s dvojitou a trojitou délkou existuje malé množství těžko dosažitelného překrývání, ale kód je stále docela těžké prolomit. K odemčení dveří musí být údery navzájem ve správném poměru (+/- poměr tolerance) a počet úderů musí být správný. Pokud je zadáno neplatné heslo, program několik sekund čeká a ignoruje jakýkoli uživatelský vstup. Rovněž bude rychle blikat stavová kontrolka. Pokud zadáte správný kód, stavová kontrolka se trvale rozsvítí a dveře se odemknou na 8 sekund. ## USER CONFIGURATION ## Klíč je uložen v poli takto: #define keylength 5 const int key = {2, 1, 3, 3, 3}; // "Všechno nejlepší k narozeninám" Pole ukládá čas, který se stane MEZI beaty. Pokud má tedy vaše heslo SIX poznámek jako „Všechno nejlepší k narozeninám“, v poli by mělo být PĚT prvků. Pokud je vaše heslo opravdu dlouhé a máte v něm více než 16 úderů ((opravdu těžké, nedoporučuji to)), musíte zvýšit počet definovaný v tomto řádku: #define inputCodeLength 16 ## THE REST OF THE CODE # # Byl jsem zvědav na přerušení, takže jsem nechal tlačítka spouštět přerušení. Aby byla tato přerušení snadno použitelná, nechal jsem své obsluhy přerušení zkontrolovat určité ukazatele funkcí. Pokud ukazatel není nastaven na NULL, vyvolá se funkce, na kterou ukazuje. Ty jsou nastaveny pomocí různých funkcí „nastavení režimu“uvnitř cryptap.c. Snažil jsem se vyhnout přetečení vyrovnávací paměti nastavením maximálního počtu zadaných impulsů. Pokud je zadán maximální počet impulsů, program okamžitě zahájí analýzu hesla a rozhodne, zda odemknout dveře. Doufám, že moje komentáře v kódu pomohou. ## CHYBY ## Pokusil jsem se odstranit ladicí kód USB, ale kód nebude fungovat, pokud ano. Takže jsem nechal usb_init () a různé příkazy print (). Ocenil bych, kdyby je někdo dokázal odstranit a přesto měl program fungující. Ještě lepší je, když mohou vysvětlit, proč mi to nefungovalo. Ihned po naprogramování Teensy někdy nepřijímá zadávání kódu. Chcete-li to vyřešit, vypněte a zapněte obvod.

Doporučuje: