Inhaltsverzeichnis:

Cryptap: ein rhythmusbasiertes Türschloss - Gunook
Cryptap: ein rhythmusbasiertes Türschloss - Gunook

Video: Cryptap: ein rhythmusbasiertes Türschloss - Gunook

Video: Cryptap: ein rhythmusbasiertes Türschloss - Gunook
Video: SUPER MARIO BROS. WONDER 🌸 #13: Tanzende Ninjis, Armad-Bande, Kegelbahn & Raseratte 2024, Juli
Anonim
Cryptap: ein rhythmusbasiertes Türschloss
Cryptap: ein rhythmusbasiertes Türschloss
Cryptap: ein rhythmusbasiertes Türschloss
Cryptap: ein rhythmusbasiertes Türschloss
Cryptap: ein rhythmusbasiertes Türschloss
Cryptap: ein rhythmusbasiertes Türschloss

Inspiriert von mehreren Türöffnungsmechanismen, die ich auf hackaday.com gesehen habe, beschloss ich, selbst einen zu erstellen. Dieser hat eine Zwei-Tasten-Schnittstelle; eine zum Starten und Beenden der Passwortübergabe und eine zum Tippen im Rhythmus Ihres Passworts. Es gibt auch eine Statusleuchte. Ich konnte dies wirklich billig mit Teilen bauen, die ich in den letzten Monaten geplündert hatte. Die einzigen Dinge, für die ich bezahlen musste, waren der Mikrocontroller selbst, der 21 US-Dollar (https://www.pjrc.com/teensy/) kostete, und ein Draht zum Aufhängen von Bildern, den ich von früher hatte.

Es macht viel Spaß, das Star Wars-Thema oder etwas anzutippen, um mein Zimmer zu betreten. Jetzt muss ich mir keine Sorgen mehr machen, mich wieder aus meinem Zimmer auszusperren! Außerdem fühlt es sich gut und geeky an.

Schritt 1: Teile und Werkzeuge

Teile und Werkzeuge
Teile und Werkzeuge
Teile und Werkzeuge
Teile und Werkzeuge

Ich habe mich für den Teensy entschieden, weil dies mein erster Mikrocontroller ist und ich noch keinen Programmierer habe. Für die Installation des Teensy sind nur ein A-miniB-USB-Kabel und kostenlose Software erforderlich, die mit Mac/Windows/Linux kompatibel ist. Außerdem ist es sehr einfach, die Hex-Datei hochzuladen; kompilieren Sie einfach und drücken Sie den Knopf auf dem Teensy.

Die Kosten für dieses Projekt betrugen 21 US-Dollar zuzüglich des Drahts zum Aufhängen des Bildes. Teile von der Straße kamen von einer Kaffeemaschine (Relais, LED, Kondensator) und einem Router (LED, Modularbuchse, Strombuchse, Kondensatoren). Kostenlose Muster waren der 7805 5-Volt-Regler, Knöpfe und Schalter. Ich habe auch viele Sachen in der Box "kaputte Teile" in meinem EE-Labor gefunden: Bananenstecker und -kabel, Kabel, den sn754410-Treiber, einen vierpoligen Header und Widerstände. Ich hatte ein zusätzliches Laptop-Ladegerät herumliegen, das ich für die Stromversorgung benutzte, und ein Apple-Modemkabel, dessen Lasche gebrochen war. Andere Hardware: eine Wandplatte. Ich habe eine Heißklebepistole, einen Lötkolben, eine Nadelfeile und eine Bohrmaschine verwendet, die ziemlich Standard sind. Das ungewöhnlichste, was ich verwendet habe, war ein langes, flexibles Greifwerkzeug.

Schritt 2: Vorhandene Hardware

Vorhandene Hardware
Vorhandene Hardware
Vorhandene Hardware
Vorhandene Hardware
Vorhandene Hardware
Vorhandene Hardware
Vorhandene Hardware
Vorhandene Hardware

Ich hatte großes Glück, dass schon so viel installiert war. Mein Zimmer ist ADA-zugänglich, und es waren bereits verschiedene Rohre, Elektrokästen und ein elektrischer Türöffner installiert. Als ich aus Neugier den Türöffner entfernte, stellte ich fest, dass er nicht angeschlossen war. Es gab ein Rohr vom Türöffner zu einer leeren Wandplatte in meinem Zimmer und ein weiteres Rohr von dort zu einer leeren Wandplatte draußen.

Der Türöffner sagt, dass er 24 V @ 3 A zum Betrieb benötigt, aber ich konnte mit einem 19 V, 7,9 A-Netzteil auskommen, das ich hatte. Der Türöffner war polarisiert, also auf die richtige Polarität achten!

Schritt 3: Schaltungen

Schaltungen
Schaltungen
Schaltungen
Schaltungen
Schaltungen
Schaltungen
Schaltungen
Schaltungen

Um den Türöffner zu steuern, habe ich das Relais verwendet, das ich in der Kaffeemaschine gefunden habe. Dieses Relais benötigte mehr als 5 V TTL, um es anzusteuern, daher wurde das sn754410 verwendet, um TTL in 19 V zu übersetzen, die das Relais ansteuerten. Der sn754410 ist wirklich ein Quad-Halb-H-Treiber, also habe ich 3/4 des Chips verschwendet, aber ich hatte keine Leistungstransistoren, also habe ich das verwendet.

Der sn754410-Chip hat zwei VCC-Pins, einen für 5 V, den anderen für jede Spannung, die Sie herausbringen möchten, die für mich 19 V war. Es ist ein wirklich cooler Chip. Sie können damit Motoren und Relais direkt ansteuern, da es 1A pro Viertelchip schalten kann und über eingebaute Schutzdioden verfügt. Schauen Sie sich das Datenblatt an. In meiner Schaltung habe ich den sn754410 direkt an den Ausgangspin meines Teensys angeschlossen. Taster werden als Active-Low geschaltet, was bei Mikrocontrollern sehr üblich ist. Sie sind direkt mit dem Teensy verbunden, was bedeutet, dass ich die Entprellung in der Software vornehmen muss. Die Statusleuchte ist über einen 1K Ohm Widerstand mit dem Teensy verbunden; nichts Besonderes. Die Schaltung funktionierte ohne Kondensatoren, aber ich habe sie trotzdem für alle Fälle eingebaut. Sowohl an den 19-V- als auch an den 5-V-Stromschienen gegen Masse befinden sich Schutzkappen. Während der Programmierung des Teensy kamen 5V vom USB, aber wenn es alleine läuft, kommt der Strom vom Laptop-Power-Brick. Als ich den 7805-Regler direkt an 19V angeschlossen habe, wurde er WIRKLICH heiß, also habe ich ein Netzwerk von Widerständen eingebaut, um die Eingangsspannung und den Strom zum Regler zu begrenzen. Das war ein Schlamassel, aber jetzt hat alles eine überschaubare Temperatur.

Schritt 4: Zusammen verdrahten

Zusammen verdrahten
Zusammen verdrahten
Zusammen verdrahten
Zusammen verdrahten

Der Teensy war kein Problem. Es wird mit Stiften geliefert, sodass Sie es direkt in das Steckbrett stecken können.

Ich beschloss, die Drähte zum Türöffner mit roten (+) und schwarzen (-) Bananenkabeln aus der Box mit defekten Teilen des Labors farblich zu kennzeichnen. Es wurden einige Stecker von ihren Drähten abgehackt, also habe ich etwas Plastik weggenommen, um eine Lötstelle freizulegen. Ich mag es sehr, wie sich die Laborbananenstecker ineinander stecken lassen. Ich habe das Telefonkabel von Apple verwendet, um die Tasten und das Statuslicht außerhalb des Zimmers mit dem Teensy im Inneren zu verbinden. Da eine Seite gebrochen war, habe ich dieses Ende abgehackt und in den vierpoligen Header gelötet und ihn mit Heißkleber abgedichtet. Dies steckte gut in mein Steckbrett. Die Seite, auf der ich den Stecker gelassen habe, ging in die modulare Buchse, die ich vom Router gerettet habe. Alle vier Adern wurden verwendet (GND, Statusleuchte, Start/Stopp-Taste, Code-Taste). Falls Sie es noch nicht bemerkt haben, ich mag Stecker und Anschlüsse. Der Strombaustein, der mit der Strombuchse verbunden ist, die ich vom Router gezogen habe. Das Einfädeln der Drähte durch die Wandrohre war aufgrund des flexiblen Greifers nicht allzu schwierig. Das hat mir wirklich den Tag gerettet.

Schritt 5: Code

Code
Code
Code
Code

Ich habe versucht, meinen Code zu kommentieren. Denken Sie daran, dass es sich um 1.0-Software handelt, was bedeutet, dass sie nicht fehlerfrei ist.## BETRIEB ## 1. Drücken Sie die Start/Stopp-Taste, um zu signalisieren, dass Sie bereit sind, mit der Codeeingabe zu beginnen. Die Statusleuchte beginnt langsam zu blinken. 2. Tippen Sie Ihren Code auf die Code-Schaltfläche. Die Statusleuchte blinkt mit 120 BPM, sodass Sie dies bei Bedarf als Metronom verwenden können. Das cryptap-Programm misst die Pulslängen jedoch proportional zueinander, sodass Sie auch Ihr eigenes Tempo verwenden können. Stellen Sie nur sicher, dass Sie genau genug sind! 3. Wenn die Codeeingabe abgeschlossen ist, drücken Sie erneut die Start/Stopp-Taste. Das Programm wird dann entscheiden, ob es dich reinlässt. Da Menschen keine sehr genauen Zeitmesser sind (deine wirklich nicht), setze ich das Toleranzverhältnis auf +/- 30%. Das bedeutet, dass die Beatlängen um diesen Betrag ungenau sein können und trotzdem das Muster bestehen. Dies ist gut genug, um den Unterschied zwischen ziemlich ähnlichen Melodien zu erkennen. Es gibt eine kleine Menge schwer zu erreichender Überlappungen zwischen Beats mit doppelter und dreifacher Länge, aber der Code ist immer noch ziemlich schwer zu knacken. Um die Tür zu entriegeln, müssen die Schläge im richtigen Verhältnis zueinander stehen (+/- das Toleranzverhältnis) und die Anzahl der Schläge muss stimmen. Wenn ein ungültiges Passwort eingegeben wird, wartet das Programm einige Sekunden und ignoriert dabei jegliche Benutzereingaben. Es wird auch die Statusleuchte schnell blinken. Wenn der richtige Code eingegeben wird, leuchtet die Statusleuchte dauerhaft und die Tür wird 8 Sekunden lang entriegelt.## BENUTZERKONFIGURATION ## Der Schlüssel wird in einem Array wie folgt gespeichert: #define keylength 5 const int key = { 2, 1, 3, 3, 3}; // "Alles Gute zum Geburtstag" Das Array speichert die Zeit zwischen den Beats. Wenn Ihr Passwort also SECHS Notizen wie "Happy birthday to you" enthält, sollte das Array FÜNF Elemente enthalten. Wenn Ihr Passwort wirklich lang ist und Sie mehr als 16 Schläge enthalten (wirklich schwer, ich empfehle es nicht), müssen Sie die in dieser Zeile definierte Zahl erhöhen: #define inputCodeLength 16## DER REST DES CODES # # Ich war neugierig auf Interrupts, also ließ ich meine Tasten Interrupts auslösen. Um diese Interrupts einfach zu verwenden, ließ ich meine Interrupt-Handler auf bestimmte Funktionszeiger prüfen. Wenn der Zeiger nicht auf NULL gesetzt ist, wird die Funktion aufgerufen, auf die er zeigt. Diese werden mit den verschiedenen "Mode-Setting"-Funktionen innerhalb von cryptap.c eingestellt. Ich habe versucht, Pufferüberläufe zu vermeiden, indem ich eine maximale Anzahl von eingegebenen Impulsen festgelegt habe. Bei Eingabe der maximalen Impulszahl startet das Programm sofort die Passwortanalyse und entscheidet, ob die Tür entriegelt werden soll. Ich hoffe, meine Kommentare im Code helfen. ## BUGS ## Ich habe versucht, den USB-Debugging-Code zu entfernen, aber der Code funktioniert nicht, wenn ich dies tue. Also habe ich usb_init() und die verschiedenen print()-Anweisungen verlassen. Ich würde es begrüßen, wenn jemand sie entfernen könnte und das Programm noch funktioniert. Noch besser, wenn sie erklären können, warum es bei mir nicht funktioniert hat. Unmittelbar nach der Programmierung akzeptiert der Teensy manchmal keine Codeeingabe. Um dies zu lösen, schalten Sie die Schaltung aus und wieder ein.

Empfohlen: