INHOUDSOPGAWE:

Cryptap: 'n ritmes-gebaseerde deurslot: 5 stappe
Cryptap: 'n ritmes-gebaseerde deurslot: 5 stappe

Video: Cryptap: 'n ritmes-gebaseerde deurslot: 5 stappe

Video: Cryptap: 'n ritmes-gebaseerde deurslot: 5 stappe
Video: Бен Герцель: Неудержимый рост искусственного интеллекта 2024, Julie
Anonim
Cryptap: 'n op ritme gebaseerde deurslot
Cryptap: 'n op ritme gebaseerde deurslot
Cryptap: 'n op ritme gebaseerde deurslot
Cryptap: 'n op ritme gebaseerde deurslot
Cryptap: 'n op ritme gebaseerde deurslot
Cryptap: 'n op ritme gebaseerde deurslot

Geïnspireer deur verskeie meganismes om deur te ontsluit wat ek op hackaday.com gesien het, het ek besluit om self een te skep. Hierdie een het 'n tweeknoppie-koppelvlak; een om die wagwoordindiening te begin en te beëindig, en een om eintlik die ritme wat u wagwoord is, in te tik. Daar is ook 'n statuslig. Ek kon dit baie goedkoop bou met behulp van onderdele wat ek die afgelope paar maande opgevang het. Die enigste ding waarvoor ek moes betaal, was die mikrobeheerder self, wat $ 21 was (https://www.pjrc.com/teensy/), en 'n paar hangende draad wat ek vantevore gehad het.

Dit is baie lekker om na die Star Wars -tema te kyk of om iets in my kamer te betree. Nou hoef ek my nie meer te bekommer om myself uit my kamer te sluit nie! Boonop voel dit goed en snaaks.

Stap 1: Onderdele en gereedskap

Onderdele en gereedskap
Onderdele en gereedskap
Onderdele en gereedskap
Onderdele en gereedskap

Ek het die Teensy gekies omdat dit my eerste mikrobeheerder is, en ek het nog nie 'n programmeerder nie. Die Teensy benodig slegs 'n A-miniB USB-kabel en gratis sagteware om te installeer, versoenbaar met Mac/Windows/Linux. Dit is ook baie maklik om die hex -lêer op te laai; stel net saam en druk op die knoppie op die Teensy.

Die koste van hierdie projek was $ 21, plus die hangdraad. Dele van die straat af kom van 'n koffiepercolator (aflos, LED, kapasitor) en 'n router (LED, modulêre aansluiting, kragaansluiting, kapasitors). Gratis monsters was die 7805 5-volt-reguleerder, knoppies en skakelaar. Ek het ook baie dinge in die boks met 'gebreekte dele' in my EE-laboratorium gevind: piesangverbindings en kabel, draad, die sn754410-bestuurder, 'n vierpen-kop en weerstande. Ek het 'n ekstra skootrekenaarlaaier gelê wat ek vir krag gebruik het, en 'n Apple -modemkabel waarvan die oortjie gebreek is. Ander hardeware: 'n muurplaat. Ek het 'n warm lijmpistool, 'n soldeerbout, 'n naaldlêer en 'n kragboor gebruik, wat redelik standaard is. Die mees ongewone ding wat ek gebruik het, was 'n lang, buigsame grypgereedskap.

Stap 2: Bestaande hardeware

Bestaande hardeware
Bestaande hardeware
Bestaande hardeware
Bestaande hardeware
Bestaande hardeware
Bestaande hardeware
Bestaande hardeware
Bestaande hardeware

Ek was baie gelukkig dat daar al soveel geïnstalleer is. My kamer is toeganklik vir ADA, en daar is al verskeie pype, elektriese bokse en 'n elektriese deurstaking geïnstalleer. By die verwydering van die deurstaking uit nuuskierigheid, het ek agtergekom dat dit nie verbind is nie. Daar was 'n pyp van die deur na 'n leë muurbord in my kamer, en 'n ander pyp van daar na 'n leë muurbord buite.

Die deurstaking sê dat dit 24V@3A benodig om te werk, maar ek kon klaarkom met 'n 19V, 7.9A kragtoevoer wat ek gehad het. Die deurstaking was gepolariseer, dus maak seker dat u die polariteit korrek het!

Stap 3: stroombane

Kringe
Kringe
Kringe
Kringe
Kringe
Kringe
Kringe
Kringe

Om die deurstaking te beheer, het ek die relais gebruik wat ek in die koffiemasjien gevind het. Hierdie relais het meer as 5V TTL nodig om dit te bestuur, dus die sn754410 is gebruik om TTL na 19V te vertaal, wat die aflos aangedryf het. Die sn754410 is regtig 'n vierwiel-half-H-bestuurder, so ek het 3/4 van die chip gemors, maar ek het geen kragtransistors gehad nie, so ek het dit gebruik.

Die sn754410 -chip het twee VCC -penne, een vir 5V, die ander vir watter spanning u ook al wil uitkom, wat vir my 19V was. Dit is 'n baie goeie chip. U kan dit direk gebruik om motors en relais aan te dryf, want dit kan 1A per kwart chip skakel en ingeboude beskermingsdiodes hê. Kyk na die datablad. In my kring het ek die sn754410 direk gekoppel aan die uitvoerpen van my tiener. Knoppies word as aktief-laag gekoppel, wat baie algemeen voorkom by mikrobeheerders. Hulle is direk gekoppel aan die Teensy, wat beteken dat ek die sagteware moet ontbloot. Die statuslig is aan die Teensy gekoppel deur 'n 1K ohm weerstand; Niks spesiaals. Die stroombaan werk sonder kapasitors, maar ek het dit in elk geval ingesit. Daar is beskermingsdoppies op die 19V- en 5V -kragrails tot op die grond. Tydens die programmering van die Teensy kom 5V van die USB af, maar as dit op sy eie werk, kom die krag van die kragsteen van die skootrekenaar. Toe ek die 7805 -reguleerder direk aan 19V koppel, het dit regtig warm geword, en ek het 'n netwerk van weerstande ingesit om die ingangsspanning en stroom na die reguleerder te beperk. Dit was 'n knou, maar nou is alles op 'n hanteerbare temperatuur.

Stap 4: Verbind dit saam

Bedek dit saam
Bedek dit saam
Bedek dit saam
Bedek dit saam

Die Teensy was geen probleem nie. Dit bevat penne, sodat u dit direk in die broodbord kan aansluit.

Ek het besluit om die drade na die deur te kleur met rooi (+) en swart (-) piesangkabels uit die kassie van die laboratorium. Daar is 'n paar proppe van hul drade afgekap, so ek het plastiek weggesmyt om 'n soldeerpunt bloot te stel. Ek hou baie van hoe die piesangproppe in die laboratorium aan mekaar kan koppel. Ek het die telefoonkabel van Apple gebruik om die knoppies en statuslig buite die kamer aan die binnekant van die Teensy te koppel. Aangesien die een kant gebreek was, het ek die punt afgesny en in die vierpen-kopstuk gesoldeer en dit met warm gom verseël. Dit het mooi by my broodbord ingeprop. Die kant waarop ek die prop gelos het, gaan in die modulêre aansluiting wat ek van die router af gered het. Al vier die drade is gebruik (GND, statuslig, begin/stop -knoppie, kode -knoppie). As u dit nie agtergekom het nie, hou ek van proppe en verbindings. Die kragsteen wat gekoppel is aan die kragaansluiting wat ek van die router gevee het. Om die drade deur die muurpype te trek, was nie te moeilik nie, as gevolg van die buigsame gryp -ding. Dit het my dag regtig gered.

Stap 5: Kode

Kode
Kode
Kode
Kode

Ek het probeer om my kode kommentaar te lewer. Hou in gedagte dat dit 1.0-sagteware is, wat beteken dat dit nie foutloos is nie. ## WERKING ## 1. Druk die start/stop-knoppie om aan te dui dat u gereed is om met die invoer van die kode te begin. Die statuslig begin stadig flikker. 2. Tik u kode op die kode -knoppie in. Die statusliggie knipper by 120 BPM, sodat u dit as u metronoom kan gebruik as u wil. Die kriptaprogram meet egter die polslengtes relatief tot mekaar in verhouding, sodat u ook u eie tempo kan gebruik. Maak net seker dat u akkuraat genoeg is! 3. Druk die start/stop -knoppie weer as die kode ingevoer is. Die program sal dan besluit of u u moet toelaat. Aangesien mense nie 'n baie akkurate tydhouer is nie (die uwe is dit nie), stel ek die toleransieverhouding op +/- 30%. Dit beteken dat die maatlengte met die hoeveelheid onakkuraat kan wees en steeds kan slaag. Dit is goed genoeg om die verskil tussen mooi soortgelyke liedjies te onderskei. Daar is 'n klein mate van moeilik bereikbare oorvleueling tussen slae van dubbele en driedubbele lengte, maar die kode is nog steeds redelik moeilik om te breek. Om die deur te ontsluit, moet die slae in die regte verhoudings tot mekaar wees (+/- die verdraagsaamheidsverhouding), en die aantal slae moet korrek wees. As 'n ongeldige wagwoord ingevoer word, wag die program 'n paar sekondes terwyl die gebruikersinvoer nie geïgnoreer word nie. Dit sal ook die statuslig vinnig flikker. As die korrekte kode ingevoer word, gaan die statuslig voortdurend aan en die deur sal vir 8 sekondes ontsluit. ## GEBRUIKERSKONFIGURASIE ## Die sleutel word in 'n skikking soos hierdie gestoor: #define keylength 5 const int key = {2, 1, 3, 3, 3}; // "Baie geluk met jou verjaardag" Die reeks stoor die hoeveelheid tyd wat TUSSEN die slae plaasvind. As u wagwoord SES notas bevat, soos 'Gelukkige verjaardag', behoort daar VYF elemente in die skikking te wees. As u wagwoord regtig lank is en meer as 16 slae daarin is (regtig moeilik, ek beveel dit nie aan), moet u die getal wat in hierdie reël gedefinieer word, verhoog: #define inputCodeLength 16 ## THE REST OF THE CODE # # Ek was nuuskierig oor onderbrekings, en ek het my knoppies laat onderbreek. Om hierdie onderbrekings maklik te maak, het ek my onderbrekingshanteerders laat kyk na sekere funksie -aanwysings. As die wyser nie op NULL gestel is nie, word die funksie waarop dit wys, opgeroep. Dit is ingestel met die verskillende funksies "modus-instelling" binne cryptap.c. Ek het 'n poging aangewend om buffervlakke te vermy deur 'n maksimum aantal ingevoerde pulse in te stel. As die maksimum aantal pulse ingevoer word, begin die program onmiddellik met die ontleding van die wagwoord en besluit of die deur oopgemaak moet word. Ek hoop dat my kommentaar in die kode help. ## BUGS ## Ek het probeer om die USB -ontfoutingskode te verwyder, maar die kode werk nie as ek dit doen nie. Dus, ek het usb_init () en die verskillende druk () state agtergelaat. Ek sal dit waardeer as iemand dit kan verwyder en die program nog kan laat werk. Nog beter as hulle kan verduidelik hoekom dit nie vir my werk nie. Onmiddellik nadat dit geprogrammeer is, aanvaar die Teensy soms nie kode -invoer nie. Om dit op te los, skakel die kring deur die kring.

Aanbeveel: