Tartalomjegyzék:

Cryptap: ritmusalapú ajtózár: 5 lépés
Cryptap: ritmusalapú ajtózár: 5 lépés

Videó: Cryptap: ritmusalapú ajtózár: 5 lépés

Videó: Cryptap: ritmusalapú ajtózár: 5 lépés
Videó: CrypTap Bitcoin Maden Kazarak Para Kazanma 2024, Július
Anonim
Cryptap: ritmusalapú ajtózár
Cryptap: ritmusalapú ajtózár
Cryptap: ritmusalapú ajtózár
Cryptap: ritmusalapú ajtózár
Cryptap: ritmusalapú ajtózár
Cryptap: ritmusalapú ajtózár

A hackaday.com webhelyen látott számos ajtónyitó mechanizmus inspirálta, és úgy döntöttem, hogy létrehozok egyet. Ez egy kétgombos interfésszel rendelkezik; az egyik a jelszó beküldésének megkezdéséhez és befejezéséhez, a másik pedig a jelszavának megfelelő ütemben való koppintáshoz. Állapotfény is van. Ezt igazán olcsón tudtam megépíteni olyan alkatrészek felhasználásával, amelyeket az elmúlt hónapokban összegyűjtöttem. Az egyetlen dolog, amit fizetnem kellett, az maga a mikrokontroller volt, ami 21 dollár volt (https://www.pjrc.com/teensy/), és néhány képfüggő huzal, amivel korábban rendelkeztem.

Nagyon szórakoztató a Csillagok háborúja téma beütése, vagy valami, ami belép a szobámba. Most nem kell tartanom attól, hogy újra bezárkózom a szobámból! Ráadásul jó érzés és gusztustalan érzés.

1. lépés: Alkatrészek és eszközök

Alkatrészek és eszközök
Alkatrészek és eszközök
Alkatrészek és eszközök
Alkatrészek és eszközök

Azért választottam a Teensyt, mert ez az első mikrovezérlőm, és még nincs programozóm. A Teensy telepítéséhez csak A-miniB USB-kábel és ingyenes szoftver szükséges, amely kompatibilis a Mac/Windows/Linux rendszerrel. Ezenkívül nagyon könnyű feltölteni a hexafájlt; csak fordítsa le, és nyomja meg a gombot a Teensy -n.

Ennek a projektnek a költsége számomra 21 dollár volt, plusz a képre akasztható drót. Az utcáról származó alkatrészek kávéfőzőből (relé, LED, kondenzátor) és útválasztóból (LED, moduláris csatlakozó, tápcsatlakozó, kondenzátorok) érkeztek. Ingyenes minták voltak a 7805 5 voltos szabályozó, gombok és kapcsoló. Az EE-laborom "törött alkatrészek" dobozában is sok mindent találtam: banáncsatlakozókat és kábelt, vezetéket, az sn754410 illesztőprogramot, négy tűs fejlécet és ellenállásokat. Volt egy extra laptop töltő, amit tápellátásra használtam, és egy Apple modemkábel, amelynek a füle eltört. Egyéb hardver: fali lemez. Forró ragasztópisztolyt, forrasztópáka, tűreszelőt és fúrót használtam, amelyek meglehetősen szabványosak. A legszokatlanabb dolog, amit használtam, egy hosszú, rugalmas fogószerszám volt.

2. lépés: Meglévő hardver

Meglévő hardver
Meglévő hardver
Meglévő hardver
Meglévő hardver
Meglévő hardver
Meglévő hardver
Meglévő hardver
Meglévő hardver

Nagy szerencsém volt, hogy már ennyi telepítve volt. A szobám ADA-hozzáférhető, és különféle csövek, elektromos dobozok és elektromos ajtóütés volt már telepítve. Kíváncsiságból eltávolítva az ajtócsapást, azt tapasztaltam, hogy nincs csatlakoztatva. Volt egy cső az ajtócsapódástól a szobámban lévő üres fali lemezig, és egy másik cső onnan egy üres fali lemezig.

Az ajtócsapás azt mondja, hogy működéséhez 24V@3A szükséges, de meg tudtam oldani egy 19V, 7,9A tápegységgel. Az ajtócsapás polarizált, ezért ügyeljen a helyes polaritásra!

3. lépés: Áramkörök

Áramkörök
Áramkörök
Áramkörök
Áramkörök
Áramkörök
Áramkörök
Áramkörök
Áramkörök

Az ajtócsapás szabályozásához a kávépörkölőben talált relét használtam. Ennek a relének több mint 5 V -os TTL -re volt szüksége a meghajtásához, ezért az sn754410 -et használták a TTL 19 V -ra való lefordítására, ami meghajtotta a relét. Az sn754410 valóban quad half-H meghajtó, így a chip 3/4-ét pazaroltam el, de nem volt táp tranzisztorom, tehát ezt használtam.

Az sn754410 chipnek két VCC csapja van, az egyik 5V -ra, a másik arra a feszültségre, amit ki akar adni, ami számomra 19V volt. Ez egy nagyon klassz chip. Ezzel közvetlenül motorokat és reléket hajthat, mert negyedévente 1A-t tud kapcsolni, és beépített védődiódákkal rendelkezik. Nézze meg az adatlapot. Az áramkörömben az sn754410 -et közvetlenül a Teensy kimeneti tüskéjéhez kötöttem. A gombok aktív-alacsony szinten vannak csatlakoztatva, ami nagyon gyakori a mikrovezérlőknél. Közvetlenül kapcsolódnak a Teensy -hez, ami azt jelenti, hogy szoftveresen le kell kapcsolnom. Az állapotjelző lámpa 1K ohmos ellenálláson keresztül csatlakozik a Teensy -hez; semmi különös. Az áramkör kondenzátorok nélkül működött, de minden esetre betettem őket. Mind a 19V, mind az 5V -os tápkábel védősapkákkal rendelkezik a földhöz. A Teensy programozása közben az 5V az USB -ről jött, de amikor magától fut, az áram a laptop tápegységéből származik. Amikor a 7805 -ös szabályozót közvetlenül a 19 V -ra kötöttem, TÉNYLEG felmelegedett, ezért beraktam egy ellenálláshálózatot, hogy korlátozzam a szabályozó bemeneti feszültségét és áramát. Ez bunkóság volt, de most minden kezelhető hőmérsékleten van.

4. lépés: Együttes bekötés

Együttes bekötés
Együttes bekötés
Együttes bekötés
Együttes bekötés

A Teensy -vel nem volt gond. Tüskékkel van ellátva, így közvetlenül a kenyértáblához csatlakoztathatja.

Úgy döntöttem, hogy az ajtócsapódás vezetékeit színkódolom piros (+) és fekete (-) banánkábelekkel a laboratórium törött alkatrészeinek dobozából. Volt néhány dugó levágva a vezetékekről, úgyhogy eldobtam néhány műanyagot, hogy felfedezzem a forrasztási pontot. Nagyon szeretem, ahogy a laboratóriumi banán dugók egymásba csatlakozhatnak. Az Apple telefonkábellel kötöttem össze a szobán kívüli gombokat és állapotjelző lámpát a Teensy -vel. Mivel az egyik oldala eltört, ezt a végét levágtam, és forrasztottam a négytűs fejlécbe, forró ragasztóval lezárva. Ez szépen bedugódott a kenyértáblámba. Az az oldal, amelyen a csatlakozót hagytam, bement a moduláris aljzatba, amelyet kimentettem az útválasztóból. Mind a négy vezetéket használták (GND, állapotjelző, start/stop gomb, kód gomb). Ha nem vette észre, szeretem a csatlakozókat és csatlakozókat. A tápegység a hálózati aljzathoz csatlakozik, amelyet lecsúsztattam az útválasztóról. A vezetékek átvezetése a fali csöveken nem volt túl nehéz, a rugalmas fogó miatt. Ez tényleg megmentette a napomat.

5. lépés: Kód

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

Megpróbáltam megjegyzést fűzni a kódomhoz. Ne feledje, hogy ez az 1.0 szoftver, ami azt jelenti, hogy nem hibamentes. Az állapotjelző lassan villogni kezd. 2. Érintse meg a kódot a kód gombon. Az állapotjelző lámpa 120 BPM -nél villog, így ha szeretné, használhatja ezt metronómként. A cryptap program azonban arányosan méri az impulzushosszakat egymáshoz képest, így saját tempóját is használhatja. Csak győződjön meg róla, hogy elég pontos! 3. Amikor a kódbevitel befejeződött, nyomja meg újra a start/stop gombot. A program ezután eldönti, hogy beenged-e. Mivel az emberek nem túl pontos időmérők (a tiétek valóban nem), a tűrési arányt +/- 30%-ra állítottam. Ez azt jelenti, hogy az ütéshosszak pontatlanok lehetnek ennyivel, és még mindig passzolnak. Ez elég jó ahhoz, hogy megkülönböztesse a meglehetősen hasonló dallamokat. A dupla és a hármas ütések között van némi nehezen elérhető átfedés, de a kódot még mindig elég nehéz megtörni. Az ajtó kinyitásához az ütéseknek megfelelő arányban kell lenniük egymással (+/- a tűrési arány), és az ütések számának is megfelelőnek kell lenniük. Ha érvénytelen jelszót ad meg, a program vár néhány másodpercet, miközben figyelmen kívül hagyja a felhasználó által megadott adatokat. Az állapotjelző lámpát is gyorsan felvillanja. Ha a helyes kódot írja be, akkor az állapotjelző lámpa folyamatosan világítani kezd, és az ajtó 8 másodpercre kinyílik. ## USER CONFIGURATION ## A kulcs egy ilyen tömbben van tárolva: #define keylength 5 const int key = {2, 1, 3, 3, 3}; // "Boldog születésnapot neked" A tömb eltárolja az ütemek közötti időt. Tehát ha a jelszava HAT jegyzetet tartalmaz, például "Boldog születésnapot neked", akkor ÖT elemnek kell lennie a tömbben. Ha a jelszava valóban hosszú, és több mint 16 ütést tartalmaz, (nagyon nehéz, nem ajánlom), akkor növelnie kell a sorban meghatározott számot: #define inputCodeLength 16 ## THE COD REST # # Kíváncsi voltam a megszakításokra, ezért a gombjaim kiváltották a megszakításokat. Annak érdekében, hogy ezeket a megszakításokat könnyen lehessen használni, megszakításkezelőimet ellenőriztem bizonyos funkciómutatókon. Ha a mutató nincs NULL értékre állítva, akkor a meghívott funkció kerül meghívásra. Ezeket a cryptap.c különböző "módbeállítási" funkciói állítják be. Igyekeztem elkerülni a puffer túlcsordulását a beírt impulzusok maximális számának beállításával. Ha a maximális impulzusszámot adja meg, a program azonnal megkezdi a jelszóelemzést, és eldönti, kinyitja -e az ajtót. Remélem a kódban szereplő megjegyzéseim segítenek. ## BUGS ## Megpróbáltam eltávolítani az USB hibakeresési kódot, de a kód nem fog működni. Tehát elhagytam az usb_init () és a különböző print () utasításokat. Megköszönném, ha valaki eltávolítaná őket, és továbbra is működne a program. Még jobb, ha meg tudják magyarázni, miért nem működött számomra. Közvetlenül a programozás után a Teensy néha nem fogadja el a kódbevitelt. Ennek megoldásához kapcsolja be az áramkört.

Ajánlott: