Idag kommer vi att montera en enhet som kommer att komma ihåg våra lösenord och genom att trycka på knappen automatiskt mata in dem i datorn. I detta fall kommer lösenord att skyddas. Författaren till den här hemlagade produkten är Michael (YouTube-kanalen "Arturos TV").
För en oberoende tillverkning av en sådan enhet behöver vi bara tre komponenter. Först och främst är detta naturligtvis en plattform (vänligen inte förväxla med arduino pro mini).
Denna arduino har en ATmega32u4-mikrokontroller, vilket innebär att den har en inbyggd USB, det vill säga datorn känner igen denna arduino som en mus eller tangentbord. Det är runt denna funktion som dagens projekt kommer att byggas.
Dessutom har denna arduino en något icke-standard utspänning. Men vi kommer att möta detta lite senare. Dessutom måste vi navigera i menyn och sedan ange lösenordet.
Låt oss kort behandla principen för dess arbete. Kodaren har två kontakter som kallas villkorligt, a och b, beroende på vilken riktning kodaren kommer att vridas.
Om vi till exempel roterar det medurs, stänger kontakten “a” först och först sedan kontakt “b”. Baserat på detta kan vi i programmet förstå att kodaren har roterats medurs. Om den roterar moturs stängs kontakten “b” först och först sedan ”a”. Efter varje revolution kännas också ett litet klick. Det är på denna grund som lösenordet kommer att baseras, vilket måste anges för att få tillgång till vår enhet.
Enhetsmenyn visas på den bekanta, naturligtvis på I2C-bussen.
Och det finns en liten nyans. I arduino pro micro finns I2C-kontakter inte på standardportarna A5 och A4, utan på kontakter 2 och 3, så du måste ansluta skärmen här.
I allmänhet ser diagrammet över hela den monterade enheten så här:
Naturligtvis kommer vi att skriva ut fallet på en 3D-skrivare.
Den här gången visade det sig mycket bra, men av någon anledning beslutade författaren att göra designen, och därför var bottenomslaget inte så vackert. Men det finns inget att göra, men med målets mål och avståndet mellan hålen den här gången visade sig allt mycket bra. Alla detaljer föll på plats, och med mycket liten svårighet visade det sig att dra åt alla skruvar för att fixa delarna. Tyvärr var hett lim igen möjligt, men i det här projektet var det redan lite.
Naturligtvis var det mest intressanta med detta projekt att skriva firmware.
Vi kommer inte gå in i detaljerna, men det är nödvändigt att berätta om några av dess funktioner. Först och främst är detta användningen av keyboard.h-biblioteket.
Detta bibliotek används endast med arduino leonardo och arduino pro-mikrokort eller med de som har inbyggda USB-mikrokontroller. Om du försöker blinka med denna skiss någon annan arduino som inte har en sådan inbyggd usb, kommer utvecklingsmiljön att svära, så var försiktig. Ett annat intressant bibliotek är EEPROM.h.
Dess författare använder för att komplicera angriparna som hackar vår enhet. Men mer om det senare. Den här linjen kommer att vara mycket intressant för dig:
Här ställer vi in åtkomstkoden för vår enhet för att låsa upp den. Men lite senare om säkerhet, men kom ihåg att vi här har möjlighet att ange antingen "0" eller "1". Just nu har vi ställt in lösenordet "101".
Och också ett mycket viktigt block, det är faktiskt där lösenord kommer att lagras.
Observera att detta är en tvådimensionell matris och antalet lösenord här är i allmänhet obegränsat. Även om det strikt sett begränsas av enhetens minne, kan detta försummas. Det är mycket viktigt att följa inspelningsformatet. Anta att det första fältet är det som visas i menyn på enheten. Det är till exempel "Admin".
Sedan, separerade med komma och med citattecken, måste vi skriva vårt lösenord, som vi vill att enheten ska mata in i datorn. Till exempel finns det ett "Test" -avsnitt (detta kommer att skrivas på skärmen på vår enhet).
Och om vi trycker på knappen kommer denna text att matas in i datorn:
Det fina med denna enhet är att om mikrokontrollern blinkas med någon form av skiss, är det omöjligt att få den därifrån. Om du ställer in alla lösenord och alla deras namn en gång och sedan raderar dem från den här firmware, har ingen annan tillgång till dina lösenord, förutom att en angripare kommer att spricka den här enheten och förstå hur den fungerar.
Följande är en ganska lång firmware och vi kommer inte att gå in på dess detaljer. Du kan ladda ner den från länken i beskrivningen under författarens video (SOURCE-länken i slutet av artikeln).
Så vi är klara med firmware, så nu ska vi se hur den här enheten fungerar. Vi ansluter den till datorn så att den får ström.
Nu är vår uppgift att ange lösenordet. Lösenordet är, som du kommer ihåg, nollor och sådana, och "1" är ett klick på kodaren rotation medurs och "0" är rotation moturs. Det vill säga, eftersom vi har ställt in lösenord 101, måste vi rulla spaken 1 gång till höger, en gång till vänster och sedan igen till höger.
Således anger vi lösenordet genom att klicka på kodaren och få åtkomst till lösenordet i datorn.
Observera att vi bara har tre försök. Om vi spenderar dem alla kommer enheten att be dig att vänta en minut innan vi kan försöka igen att ange lösenordet.
Och för de som är särskilt smarta, som förstår att de måste vänta en minut och koppla bort enheten från strömförsörjningen och sedan ansluta igen, kommer enheten att berätta för dem att de måste stoppa sina lumska tricks och att de vet allt om dem, eftersom det fortfarande behövs tid vänta registreras ständigt i icke-flyktigt minne.
Jag hoppas att du förstår hur den här enheten fungerar. Tack för din uppmärksamhet. Vi ses snart!
videor: