Cryptap: Ett rytm-baserat dörrlås (5 / 5 steg)

Steg 5: kod



jag har försökt att kommentera min kod. Tänk på att detta är 1.0 programvara, vilket innebär att det inte är felfri.

## DRIFT ##

1. Tryck på start/stopp knappen för att signalera att du är redo att börja koden input. Statuslampan börjar blinka långsamt.
2. Klicka i din kod på knappen kod. Statuslampan blinkar på 120 slag/minut, så du kan använda detta som din metronome om du vill. Dock mäter cryptap programmet puls längderna i förhållande till varandra proportionellt, så du kan också använda ditt eget tempo. Se bara till att du som är tillräckligt exakta!
3. När koden input är gjort, tryck på knappen start/stopp igen. Programmet kommer sedan besluta om att släppa in dig.

Eftersom människor inte mycket exakt tid djurhållare (din inte är verkligen), satt jag tolerans i förhållande till +/-30%. Det innebär att slå längder kan vara felaktiga av detta belopp, och fortfarande passera uppbåda. Detta är bra nog att skilja mellan ganska liknande låtar. Det finns en liten mängd svårt att nå överlappning mellan dubbel och trippel-längd beats, men koden är fortfarande ganska svårt att bryta.

För att låsa upp dörren, beats måste finnas i rätt proportioner till varandra (+/-tolerans förhållandet), och antalet slag måste vara korrekt. Om ett ogiltigt lösenord anges, väntar programmet några sekunder och bortse från någon användarindata. Det också blinkar statuslampan snabbt. Om rätt kod anges statuslampan tänds stadigt och dörren kommer att låsa upp till 8 sekunder.

## ANVÄNDARKONFIGURATION ##

Nyckeln som lagras i en rad som denna:
#define keylength 5
CONST int nyckel = {2, 1, 3, 3, 3}; "Happy birthday to you"

Matrisen lagrar mängden tid som händer mellan beats. Så om ditt lösenord har sex toner som "Happy birthday to you", det bör finnas fem element i matrisen. Om ditt lösenord är verkligen lång och du har mer än 16 beats i den, (riktigt hårt, jag inte rekommenderar det), måste du öka antalet definieras i den här raden:
#define inputCodeLength 16

## RESTEN AV KODEN ##

Jag var nyfiken på avbrott, så jag hade min knappar utlösa avbrott. För att göra dessa avbrott lätt att använda, hade jag min avbryta hanterare kontrollera vissa funktionspekare. Om pekaren inte har angetts till NULL anropas funktionen den pekar på. Dessa sätts med olika "-inställningen" funktioner inuti cryptap.c.

Jag gjorde ett försök att undvika buffertspill genom att ange ett maximalt antal matas in pulser. Om det maximala antalet pulser är ingång, omedelbart startas lösenord analys, och beslutar om att låsa upp dörren.

Jag hoppas mina kommentarer i kod hjälp.

## BUGGAR ##

Jag försökte ta bort USB felsökning koden, men koden fungerar inte om jag gör. Så, jag lämnade usb_init() och olika print() uttalanden. Jag skulle uppskatta om någon kunde ta bort dem och fortfarande har programmet fungerar. Ännu bättre om de kan förklara varför det inte fungerar för mig.

Omedelbart efter programmeras, accepterar Teensy ibland inte koden input. För att lösa detta, makt-cykel kretsen.

Se Steg
Relaterade Ämnen

Ett inbrottslarm baserat på PIR-sensorn med Sms-larm med 8051

"Målet med detta projekt är att känna den omgivande miljön med hjälp av passiv infraröd sensor (PIR sensor) och skickar önskad information om upptäckt av ett objekt till mobila nummer med hjälp av GSM-modul för att varna ägaren"Passiv infraröd s...

TapTunes - ett Tap-baserat gränssnitt till iTunes

som en del av min människa-dator interaktion sikt projekt, jag piskade upp ett litet program som skulle tillåta förbrukaren till kontroll iTunes genom att trycka på olika mönster på en piezoelektrisk sensor. Grunden för detta projekt var gaspedalsign...

Fender Tweed Deluxe 5e3 klon bygga baserat på TAD Tweed Deluxe Kit

Fender Tweed Deluxe är en gitarrförstärkare som byggdes av Fender från 1948-1966 i olika versioner. Den senaste versionen var 5E3 smal panel version. Fender Tweed Deluxe var den mest populära tweed amp produceras av Fender och användes av många gitar...

Ett roligt spel/Trick i Microsoft Visual Basic

Hej alla! I detta Instructable, jag kommer att visa dig hur att förvåna dina vänner med ett spel baserat på webbplatsen Peter svar, ett trick där användaren berättar en vän att ställa en fråga till den stora "Peter", först framställningar Peter...

Plant Care System baserat på Pi3 och Wio nod

Jag ville alltid bulid ett projekt som kan styra många noder för grönt hus bevattningssystem, men aldrig hittat den rätta lösningen. Noden Wio är lämplig för mitt projekt.WiO nod är utformad för att förenkla din sakernas utveckling, syftar till att g...

Hur man identifierar ett Mineral

Identifiera mineraler är som att spela en sport. Du får en specifik uppsättning principer eller regler att följa. För att vara bra på en sport som basket, till exempel en måste inte bara veta reglerna, men han/hon måste också öva. Samma koncept gälle...

En enkel hydroponiska System med MediaTek LinkIt™ en

Idag vill vi beskriva ett projekt baserat på den nya styrelsen Mediatek Linkit en. Vi vill med denna styrelse inser en enkel hydroponiska system som kan:1) att göra hydroponics näringslösning:Detta kommer att göras med hjälp av magnetventiler aktiver...

Jeff Killer masken

JEFF THE KILLER, är en berättelse från läskiga pasta. Det har gått därifrån till berömmelse, och nu finns det en manga och ett spel baserat på en berättelse.I grund och botten berättelsen går såhär, hans familj har precis flyttat till sina nya hem, h...

Klipp/beteende diagram för hem

Många elementära klassrum är nu med hjälp av klipp baserad beteende diagram. Jag vet att de är något kontroversiellt men mina barn älskar deras diagram i skolan och ville ha en för hemmet. Vi har 2 barn som använder dessa diagram så detta instructabl...

Hur till sätta fast HP Pavilion dv7-6000 serien täcka / gångjärn / kablar

Hej alla! GodmanGen här och detta Instructable är om min lilla historia som en ägare av en Pavilion HP DV7 Laptop.Det hela började när jag var ute efter den perfekta bärbara datorn... Som PC användare tidigare hade jag behov av något kraftfullt med s...

Lätt Raspberry Pi baserad skärmsläckare/bildspel för utställningar/butik Front

På utställningar vill du ofta Visa upp ditt arbete i hopp om att locka potentiella kunder. Den här också arbeten för Fönstren av butiker att marknadsföra produkter som säljs inom. De flesta kommer helt enkelt skapa en stor fast bild affisch till stor...

Bluetooth-kommunikation med MSP430 microcontroller via MIT App Inventor

Syftet med detta projekt var att använda en mikrokontroller för att skapa en modulerad ljus cykel av någon period, och, med de extra funktionerna att någon pekar i modulering cykeln kan avbrytas och omprogrammeras från en smart telefon. Anta exempelv...

Akvarium guide

Hej och Välkommen till min instructable. I denna korta men mycket informativ guide kommer du förhoppningsvis att få en tydlig förståelse för hur att starta och underhålla ett akvarium. Om du vill skapa en vacker akvarium som de i bilderna ovan (eller...

ARUPi - en billig automatiserade inspelningsenhet för ljudlandskap ekologer

Detta instructable skrevs av Anthony Turner. Projektet utvecklades med massor av hjälp från Boden i den skolan för datavetenskap och kommunikation, University of Kent (Herr Daniel Knox var till stor hjälp!).Det kommer att visa dig hur man bygger en a...

Anpassade Alarm-Clock/musik över Radio

Detta en ganska enkel Raspberry Pi projekt för nybörjare nivå Raspberry Pi entusiaster. I detta Instructable kommer jag visa dig hur man gör en väckarklocka som kommer att sända över FM-bandet. Detta gör att du ska kunna lyssna på radio och har fortf...

Billiga hem Automation med trådlös utlopp moduler

det är den tiden på året igen, när butikerna är fulla av juldekorationer och tillbehör. Julen kan vara månader bort ännu, men aldrig underskatta kraften i hacking säsongsbetonade semester tillbehör, ett tillbehör i synnerhet är otroligt användbara år...

Arduino autonom gräsklippare som CutFlower

Hej, här är en artikel om inrättandet av en autonom gräsklippare, en första förkroppsligandet av ett projekt baserat arduino uno bennurre.MEG motor framdrivning (motorn essuis is), skärande motor borstlös 1000KV, hinder detektering av tre sonar senso...

DIY Solar PV Step-by-step

bygga din egen billiga solar PV paneler - steg för steg guide.1/3 - 1/2 kostnad/Watt av kommersiella installation.Denna video kompletteras av öppen källkod online skrivit guide finns här: http://www.demandenergyequality.org/build-your-own-panels.html...

Döda Bug prototyper och frihandsfigur elektronik

Döda bugg prototyper och frihandsfigur elektronik är ett sätt att bygga arbetar elektroniska kretsar, genom lödning delarna direkt tillsammans, eller genom ledningar i stället för det traditionella sättet att använda ett mönsterkort (PCB).Döda bugg p...