Inhoudsopgave:

Arduino Riddlebox: 4 stappen (met afbeeldingen)
Arduino Riddlebox: 4 stappen (met afbeeldingen)

Video: Arduino Riddlebox: 4 stappen (met afbeeldingen)

Video: Arduino Riddlebox: 4 stappen (met afbeeldingen)
Video: VL53L1X Лазерный дистанционный датчик времени полета 400 см 2024, Oktober
Anonim
Arduino Raadseldoos
Arduino Raadseldoos

In deze Instructable laat ik je zien hoe je een Arduino-aangedreven Riddlebox maakt. Ik heb dit gemaakt om een beetje plezier toe te voegen aan het echte kerstcadeau van mijn vriendinnen, dat ik in het vak van de doos verstopte.

Zodra 5V op de USB-kabel is toegepast, wordt de Arduino ingeschakeld en toont het LCD-scherm een korte tutorial en vervolgens een reeks van tien raadsels, die moeten worden opgelost om het servo-bediende compartiment te openen, dat een geschenk of cadeau kan bevatten.

Er is ook een stiekem, met een wachtwoord beveiligd, instellingenmenu om de voortgang te resetten en het compartiment te openen.

Ik gebruikte wat ik kon vinden in mijn plaatselijke ijzerhandel en 3D printte de rest. Uiteraard kun je de Riddlebox aanpassen door meer sensoren toe te voegen of onderdelen weg te laten. Laat je creativiteit de vrije loop.

Je zal nodig hebben:

  • Arduino Mega (een Uno kan ook volstaan)
  • Flexibele jumperdraden
  • Hoofdschakelaar
  • Toetsenbord 4x4
  • I2C LCD 20x04
  • 2x SG90 servomotoren
  • Aluminium behuizing
  • Metalen scharnier
  • Aluminium plaat
  • Copingzaag of roterend gereedschap met een doorslijpschijf
  • Heet lijmpistool
  • Hoge hechtlijm
  • USB stick
  • Metalen vijl

Stap 1: De hardware instellen

De hardware instellen
De hardware instellen

Ik maakte eerst een prototype van de raadsels, met de Arduino een breadboard en de componenten die ik wilde gebruiken, namelijk de sleutelschakelaar en het toetsenbord. Om de Arduino-code van dit instructable te gebruiken zoals het is, sluit u de onderdelen aan zoals hieronder beschreven. Natuurlijk kunt u componenten toevoegen en verwijderen, of verschillende pinnen gebruiken, zolang u de juiste wijzigingen in de code aanbrengt.

De meeste toetsenborden hebben een pin voor elke rij en elke kolom. Zoek uit welke pinnen de rijpinnen zijn door te testen op continuïteit tussen verschillende pinnen terwijl u op knoppen drukt om het circuit te sluiten (zie voorbeelddiagram). De overige 4 pinnen moeten de kolompinnen zijn. (Opmerking: soms zijn de twee meest buitenste pinnen verbonden met de koperen vulling op de print en kunnen deze worden genegeerd)

Verbind de toetsenbordpinnen COL0 - COL3 met Arduino-pinnen 12 - 9 en ROW0 - ROW3 met Arduino-pinnen 8 - 5.

Het LCD-scherm is aangesloten via I2C, dus er zijn slechts vier pinnen nodig: SDA, SCL, 5V en GND.

De sleutelschakelaar heeft drie standen en zes pinnen: beide C (gewone) pinnen gaan naar aarde, terwijl de twee pinnen met het label NO (normaal open) naar respectievelijk Arduino-pin 22 en 23 gaan. (Opmerking: de arduino-ingangen zijn hoog getrokken, dus we hoeven alleen aarde aan te sluiten op de gemeenschappelijke pinnen van de schakelaar)

De twee servo's worden gebruikt om de deur van het compartiment fysiek te openen en te vergrendelen via een grendel.

Sluit 5V en GND van de servo's aan op de Arduino en sluit de signaallijnen als volgt aan: lock servo = pin 44, deurservo = pin 45.

Stap 2: Arduino-code en raadsels

Arduino-code en raadsels
Arduino-code en raadsels
Arduino-code en raadsels
Arduino-code en raadsels

De code voor de Arduino bestaat uit meerdere bestanden. De hoofdschets start alle hardware, bibliotheken en globale variabelen. Alle raadsels en menublokken zijn in functies in aparte bestanden opgeslagen voor eenvoudig beheer. De voortgangsstatus, die wordt opgeslagen in de EEPROM (d.w.z. veilig is zelfs na powercylce), bepaalt welke raadselfuncties worden aangeroepen in de schakelfunctie van het hoofdbestand.

Ik heb alle persoonlijke informatie uit de code verwijderd en enkele oplossingen vervangen door generieke oplossingen (1234…). Voel je vrij om de code naar eigen inzicht te wijzigen en enkele gepersonaliseerde oplossingen toe te voegen.

Raadsels en menublokken:

  1. Geavanceerd: Geavanceerd instellingenmenu met voortgangsreset en compartimentbedieningen.
  2. Intro: Intro-menu met begroetingstekst en zelfstudie.
  3. Elementair: Raadsel dat vraagt naar het atoomnummer van jodium.
  4. Outsourcing: Speler moet contact opnemen met een e-mailadres dat automatisch een nummerraadsel beantwoordt. (Stervormig raadsel in afbeeldingen)
  5. Zestien: Speler moet een hexadecimaal getal omzetten in decimaal.
  6. Keuzes: Speler moet een tekstavontuur op een flashstation voltooien, het wachtwoord voor het volgende niveau is verborgen in het verhaal. (zie Amnesia.rtf)
  7. Offline: Speler moet de sleutel ontvangen om de sleutelschakelaar te activeren (bijvoorbeeld via e-mail, goede manier om ze te vertragen als ze te snel zijn).
  8. Onzichtbaar: het wachtwoord voor het volgende niveau is met onzichtbare inkt op een stuk papier geschreven.
  9. Calculus: eenvoudige rekentaak. (Meer een tijdelijke aanduiding die nooit werd ingevuld, omdat ik geen tijd meer had)
  10. Wijziging: Kort raadsel over eurobankbiljetten, kan worden aangepast aan elke valuta met bankbiljetten in verschillende kleuren.
  11. Geduld: Speler mag de sleutel gedurende een periode van 5 minuten niet omdraaien, anders wordt de timer gereset en verdubbelt. (Opmerking: als u de sleutel vaak genoeg draait, loopt de variabele over en wordt deze teruggezet op nul vanwege de beperkte grootte.)
  12. Het Antwoord: "Wat is HET antwoord?". De oplossing is duidelijk 42.
  13. Eindscherm: Gefeliciteerd en instructies voor het openen van het compartiment. (via de sleutelschakelaar)

Ik heb verdere documentatie in de vorm van opmerkingen in de codebestanden opgenomen.

Ter info: als je 'A' ingedrukt houdt tijdens het opstartscherm, wordt het instellingenmenu geopend. Wachtwoord: 2582

Stap 3: Het voorpaneel bouwen

De voorplaat bouwen
De voorplaat bouwen
De voorplaat bouwen
De voorplaat bouwen
De voorplaat bouwen
De voorplaat bouwen

Ik kocht de behuizing samen met de aluminiumplaat in mijn plaatselijke ijzerhandel. Het kwam met verdelers die ik later opnieuw gebruikte om de compartimentwanden te maken.

De aluminium plaat was te breed, dus ik schreef en verkortte het met een zaag. Een rolzaag, roterend gereedschap of zelfs een slijper met een doorslijpschijf zou echter een betere pasvorm kunnen zijn, omdat het me eeuwen kostte en ik tijdens het proces twee bladen brak. De opening aan de voorkant van de behuizing is opzettelijk. Het biedt ruimte voor het plaatsen van een powerbank en de memorystick.

Nadat ik had aangegeven waar ik alles wilde hebben, boorde ik gaten in de hoeken van de afgebakende delen en zaagde ik ze opnieuw uit met de copingzaag. Voor het compartimentgedeelte probeerde ik een doorslijpschijf op een grinder, en het werkte fantastisch. Ik heb een metalen vijl gebruikt om de openingen in te korten om in de componenten te passen en ze te ontbramen. Een snelle pass met de vlakschuurmachine gaf het allemaal een matte afwerking. Dit is natuurlijk volledig optioneel, ik heb de aluminium plaat veel opgeschuurd, dus schuren leek een goede manier om ze te verbergen en mijn scherpe markeringen te verwijderen.

De deur naar het compartiment is gewoon een afgesneden stuk van de overgebleven aluminiumplaat.

Ik bevestigde het scharnier aan de deur en de metalen plaat met behulp van de lijm met hoge binding. Het wordt op beide oppervlakken aangebracht en laat het 10-20 minuten uitharden. en dan worden beide zijden tegen elkaar gedrukt. De binding is onmiddellijk en er is geen manier om de twee stukken later aan te passen.

Het toetsenbord en het LCD-scherm houden op hun plaats met wat hete lijm aan de zijkanten. (Opmerking: zorg ervoor dat u de pinnen van de componenten isoleert van de aluminiumplaat. Een beetje hete lijm doet de truc)

De sleutelschakelaar heeft een schroefdraad en een moer, dus ik heb een gat in de juiste maat geboord en de schakelaar erdoorheen gestoken.

Om het compartiment automatisch te laten openen, heb ik de deur- en slotservo's met hotglue aan de onderkant van de aluminiumplaat bevestigd. De vergrendelingshaak en openingshendel en slotvergrendeling heb ik gebogen om uit enkele beugels te vormen (vergelijkbaar met loodgieterstape). Naar mijn mening zou ik deze componenten in 3D kunnen en waarschijnlijk moeten laten printen, omdat ze op deze manier een beetje dun zijn en waarschijnlijk het eerste zullen zijn dat faalt. Ik heb deze onderdelen respectievelijk met hotglue en high bond lijm vastgemaakt (zie foto's).

Omdat de voorkant er op deze manier niet zo mooi uitzag, besloot ik om wat kaders te printen om de verschillende onderdelen heen te gaan en deze ook met hete lijm vast te maken.

Stap 4: De zaak afronden

De zaak afronden
De zaak afronden
De zaak afronden
De zaak afronden

Zoals ik eerder al zei, kwam de zaak met enkele verdelers. Ik besloot een afspraak te maken om een ruw compartiment en wat ruimte voor de Arduino te maken en gebruikte toen de high-bond lijm om alles op zijn plaats te fixeren.

Nadat ik alle componenten op de Arduino Mega had aangesloten en deze warm op de behuizing had gelijmd, voerde ik de USB-kabel door de kleine opening tussen de verdelers, zodat deze van buitenaf toegankelijk was.

Nadat ik de aluminium plaat voorzichtig in zijn definitieve positie had laten vallen, bevestigde ik hem op zijn plaats door het mondstuk van het hete lijmpistool tegen de naad tussen de plaat en de behuizing te drukken en de lijm in de opening te dwingen. In het begin was ik sceptisch over de kracht van deze fixatiemethode, maar tot nu toe houdt het stand.

Het laatste wat er nog moest gebeuren was nog wat finishing touch aanbrengen. Ik ontwierp enkele eenvoudige stickers in MS Publisher die ik uitprint, uitknipte en met een simpele lijmstift op de voorplaat plakte.

Het is natuurlijk helemaal aan jou of en hoeveel stickers je wilt maken en plakken. Dit kan ook een goede gelegenheid zijn om wat verweringstechnieken te oefenen om het er allemaal wat stoerder uit te laten zien. Helaas kwam dit alleen bij mij tijdens het schrijven van dit Instructable.

Hoe dan ook, ik hoop dat je genoten hebt van deze Riddlebox-build. Als je vragen of verbeterideeën hebt, laat dan hieronder een reactie achter en ik zal proberen zo snel mogelijk contact met je op te nemen.

Aanbevolen: