Verborgen Knop Om Een Computer Te Ontgrendelen?

by LucasVanDerSloot in Circuits > Arduino

99 Views, 0 Favorites, 0 Comments

Verborgen Knop Om Een Computer Te Ontgrendelen?

WhatsApp Image 2023-05-19 at 12.01.13.jpeg
WhatsApp Image 2023-05-19 at 16.16.15 (1).jpeg
WhatsApp Image 2023-05-19 at 12.01.13 (1).jpeg
WhatsApp Image 2023-05-19 at 12.01.13 (2).jpeg
Dia1.PNG

Voor je bevind zich een computer, vol met de diepste geheimen en indrukwekkende prestaties. Maar wat is dit?! De computer is vergrendelt achter een digitaal wachtwoord... Geef echter nog niet op, want misschien is de oplossing te vinden binnen dezelfde kamer! Neem de boekenkast bijvoorbeeld; misschien kan je wel één van de boeken verder naar achteren indrukken. Opeens hoor je een klik, gevolgd door een overwinnende jingle. Alsof er sprake is van magie word het wachtwoord automatisch ingevoerd op de computer.

Al mijn bloed, zweet en tranen culmineerde hier in een verborgen knop; Een kleine en compacte doos die makkelijk achter bijvoorbeeld boeken verstopt kan worden. Wanneer deze knop ingedrukt word door er in dit geval een boek tegenaan te drukken, voert deze automatisch je vooraf ingestelde wachtwoord in op je computer. Ook word hierbij een schattige Zelda solved-the-puzzle jingle afgespeeld.

Ik vind verborgen knoppen altijd al enorm cool. Iets dat niet verbonden lijkt te zijn, maar toch zomaar een connectie creeërt. Voor dit project wist ik ook al snel dat ik de 'Arduino Leonardo' wilde gebruiken wanneer ik hier over las. De Leonardo kan namelijk input doorgeven aan computers, zoals ingedrukte toetsen of zelfs muisposities. Het invoeren van een wachtwoord was dan ook een van de eerste dingen waar ik aan dacht.


Het proces:

Echter was dit niet mijn eerste idee. Eerder wilde ik gebruik maken van een Wii Nunchuk, waar de input doorgegeven zou worden naar je computer. Ook herkent de nunchuk in welke positie deze gedraaid is, wat voor interessante mogelijkheden geeft. Uiteindelijk ben ik toch van dit idee afgestapt, sinds ik het niet te werken kreeg met de Leonardo. Ik zou in principe de Uno en de Leonardo allebei kunnen gebruiken met een connectie ertussen, maar dat werd al snel te ingewikkeld voor mij.

Een verborgen knop was al snel mijn volgende idee, maar ging ook door een paar ontwikkelingen heen. Zo zat ik erg te overwegen op welke manier deze geactiveerd zou moeten worden. Interactie met een boek in de kast stond al snel vast, maar hoe deze verder zou werken...

Ik dacht aan iets van een druksensor achter op het boek, die je dan tegen de wand aan zou moeten drukken. Ook kon ik gebruik maken van een magneetsensor en een kleine magneet die achter op het boek geplakt zou zijn. Een lichtsensor was ook een optie; als het boek tegen de muur zou staan zou het daar achter een stuk donkerder worden. Al deze ideeën waren goed, maar eigenlijk had ik niet echt meer de tijd en het budget om nog deze onderdelen te halen en te leren. Zo ging ik toch maar voor de simpele knop. Deze had ik al in bezit en was niet moeilijk te begrijpen.

Maar hoe zou ik deze knop gebruiken? Een eerdere iteratie was door de knop plat op de ondergrond te leggen. Je zou dan het boek een beetje omhoog moeten kantelen, net zoals van die echte typische verborgen boek switches. De knop zou echter al te veel ruimte in nemen, waardoor het boek altijd standaard al een beetje gekanteld zou zijn. Ook vroeg ik mij af of het handig was dat de knop standaard altijd ingedrukt was en het signaal door ging wanneer deze uit zou staan.

De oplossing was uiteindelijk zoals gewoonlijk om niet zo moeilijk te denken. Ik ging voor het plan waar er een knop tegen te muur zou staan waar je het boek tegenaan zou drukken. Simpel maar effectief.


Mijn reflectie:

Niet alles ging compleet soepel tijdens dit project. Mijn hele Wii Nunchuk plan viel in het water doordat ik te veel verschillende ideeën wilde combineren. Ook ging er helemaal aan het einde wat dingen fout met het apparaat; Ik had te slordig gesoldeerd waardoor deze op een gegeven moment spontaan niet meer werkte en opnieuw gesoldeerd moest worden.

Supplies

Elektronica:

  • Arduino Leonardo Pro Micro
  • Micro USB naar USB A kabel
  • Draad, 6 verschillende kleuren voor de handigheid
  • Een weerstand (10 Ohms 5%)
  • Een drukknop
  • Een buzzer
  • Kleine soldeerplaat, die van mij was zo'n 6 bij 4 cm
  • Spul om mee te solderen

Behuizing:

  • Tandenstokers
  • Karton
  • Een dikke kurk
  • Een elastiek, 2 is nog beter
  • Een zwarte pen als je leuk wilt doen

De Basis Coderen

// Deze code is vrij simpel! Er word gekeken naar het moment dat de knop word ingedrukt, waar dan toetsenbord input // word doorgegeven die een vooraf ingesteld wachtwoord vanzelf invoert. 
// Ook word er via een buzzer een korte jingle afgespeeld.

#include "Keyboard.h"

// Button variabelen
const int buttonPin = 2;
int buttonState;
bool pressed = false;

// Buzzer variabelen
const int buzzerPin = 9;
int buzzerSpeed = 300;

String password = "<voer hier je wachtwoord in>";

// Schakel toetsenbordbesturing in + stel de pin mode in van de knop
void setup() 
{
  Keyboard.begin();
  pinMode(buttonPin, INPUT_PULLUP);
}

void loop() 
{
// Deze code zorgt er voor dat er alleen een signaal doorgaat bij het eerste moment van indrukken
  buttonState = digitalRead(buttonPin);
  if (!pressed && buttonState == HIGH) 
  {     
    pressed = true;
  } 
  else if (pressed && buttonState == LOW) 
  {
    pressed = false;

// Nu word het wachtwoord ingevoerd, nadat er backspace ingedrukt word om het inlogscherm te laten verschijnen.
    Keyboard.press(KEY_BACKSPACE);
    Keyboard.releaseAll();
    delay(1000);
    Keyboard.print(password);

    playSong();
  }
}

// Speelt een schattige Zelda puzzle jingle af
void playSong()
{
  tone(buzzerPin, 784, buzzerSpeed);
  delay(buzzerSpeed);
  tone(buzzerPin, 740, buzzerSpeed);
  delay(buzzerSpeed);
  tone(buzzerPin, 622, buzzerSpeed);
  delay(buzzerSpeed);
  tone(buzzerPin, 440, buzzerSpeed);
  delay(buzzerSpeed);
  tone(buzzerPin, 415, buzzerSpeed);
  delay(buzzerSpeed);
  tone(buzzerPin, 659, buzzerSpeed);
  delay(buzzerSpeed);
  tone(buzzerPin, 830, buzzerSpeed);
  delay(buzzerSpeed);
  tone(buzzerPin, 1046, buzzerSpeed * 2);
}

Solderen Van De Knop

WhatsApp Image 2023-05-19 at 15.51.35 (1).jpeg
WhatsApp Image 2023-05-19 at 15.51.35.jpeg

Laten we beginnen met het solderen van de knop, zodat deze verbonden is met de Arduino.

Zo maak je de knop vast aan de 'VCC' (5 Volt) met de weerstand er tussen.

Dan verbind je de andere kant van de knop direct aan de 'GND' (Ground).


Nu de knop lekker vast zit moet deze nog verbonden worden aan de juiste pin. Zet dan een draad tussen pin 2 en het uiteinde van de knop die ook in de ground zit!

Puzzle Jingle

WhatsApp Image 2023-05-19 at 15.51.34 (1).jpeg

De jingle is al geprogrammeerd zoals in stap 1 te zien. Het enige wat je dan hoeft te doen is de buzzer aan de ene kant verbinden met 'GND' (Ground), en de andere kan aan pin 9.

De noten van de jingle heb ik zelf in elkaar weten te zetten door deze te baseren op de noten van een piano!

Tandenstokers

WhatsApp Image 2023-05-19 at 15.51.34.jpeg

Alles zit lekker vast gesoldeerd aan de plaat, maar heeft nu geen comfortabele manier om recht te liggen zonder de draden of onderdelen er onder te pletten. Zo heb ik de uiteindes van tandenstokers eraf geknipt en gebruikt als pilaren voor de soldeerplaat. Door ze door de gaten te steken en wat lijm toe te voegen blijven deze goed en stevig staan.

Van Kurk Tot Knop

WhatsApp Image 2023-05-19 at 15.51.33 (2).jpeg

De knop is nu echter nog best wel klein en verstopt. Hiervoor heb ik een goeie dikke kurk gebruikt die op de knop ligt. Hier heb ik een holte aan de onderkant voor gemaakt zodat de kurk comfortabel op de knop klemt. Ook heb ik deze door wat karton gestoken zodat deze aan de deksel van de uiteindelijke doos vast gaat zitten.

Doos

WhatsApp Image 2023-05-19 at 15.51.33 (1).jpeg
WhatsApp Image 2023-05-19 at 15.51.33.jpeg
WhatsApp Image 2023-05-19 at 12.01.12.jpeg

Nu de doos nog! Hiervoor heb ik niks bijzonders gedaan. Ik vond het belangrijk dat het zo klein mogelijk bleef, dus heb ik er strak wat karton aan elkaar gelijmd, met een gat op de juiste plek voor de USB. Zet de deksel er op vast met behulp van een elastiek of twee. Ook wilde ik leuk doen en tekende ik er met een pen wat sci-fi achtige patronen op!

Geniet

Als je nu het apparaat verbind met je computer via een USB kabel, kan je via de klik van de knop het ontgrendelen!

Verstop de knop achteren wat boeken in je kast. Zorg wel dat de kabel lang genoeg is om naar je computer te gaan.

Bonus?

De Arduino Leonardo kan op enorm veel verschillende manieren gebruikt worden! Zo kan je hele rijen aan inputs doorgeven, zoals dit...