Inhoudsopgave:

Op kleuren gebaseerde puzzel: 6 stappen
Op kleuren gebaseerde puzzel: 6 stappen

Video: Op kleuren gebaseerde puzzel: 6 stappen

Video: Op kleuren gebaseerde puzzel: 6 stappen
Video: RUBIKS KUBUS OPLOSSEN! [In 6 eenvoudige stappen] 2024, Juli-
Anonim
Op kleur gebaseerde puzzel
Op kleur gebaseerde puzzel
Op kleur gebaseerde puzzel
Op kleur gebaseerde puzzel

Hoi!

Voor een schoolproject met de naam "If This Then That" moest ik een interactief object bouwen met Arduino. Ik besloot een op kleuren gebaseerde puzzel te bouwen met een eenvoudig feedbacksysteem.

Wat het doet (in het kort):

  1. Het bepaalt de kleur van het object boven de kleursensor.
  2. Het controleert of die kleur overeenkomt met de juiste oplossing.
  3. Het verhoogt het "je stierf"-teken of niet, afhankelijk van het weer is de puzzel opgelost of niet.

Dus je zou denken dat deze puzzel makkelijk op te lossen is?

Nou, voor iemand die weet hoe het werkt, is het een beetje, ook al kun je de oplossing omdraaien! Maar maak je geen zorgen, voor iemand die geen idee heeft hoe het werkt, ziet het eruit als magie. In mijn ervaring dachten veel mensen dat de puzzel over gewicht ging, niet over kleur. En niet te vergeten, jij bent de meester van de puzzel, hoeveel aanwijzingen je geeft is aan jou.

Hoe ik het (wil) gebruiken:

Ik wil deze puzzel graag gebruiken als een interactief onderdeel van mijn D&D-campagne.

Stap 1: Materialen

Materialen
Materialen
Materialen
Materialen

Je hebt de volgende dingen nodig voordat je kunt beginnen met bouwen:

In het algemeen:

Een (creatief) brein om een puzzel te bedenken

Arduino-dingen:

  • Arduino Uno
  • Breadboard
  • Een servomotor
  • (TCS3200) Kleursensor
  • 7x Male - Female jumperdraden (bij voorkeur alle verschillende kleuren, sterk aanbevolen)
  • 11x Mannelijk - Mannelijke jumperdraden
  • powerbank (voor het geval je wilt dat het werkt zonder je computer/laptop)

Behuizing:

  • Een (schoenen)doos met deksel (om de puzzel op te bouwen)
  • een paar stukjes karton (om de muren te maken, pilaar in het midden en je stierf teken)
  • Houten blokken, (minstens) één kant moet groter zijn dan de kleursensor.
  • verf: zwart, rood, blauw en groen (en eventuele extra kleuren als je wilt*)
  • A4 stuk wit papier
  • Schaar
  • Een zwarte stift
  • Sterk dubbelzijdig plakband
  • Een potlood
  • Instant lijm
  • schilmesje of stanleymes

* kleine kanttekening bij de kleuren: in eerste instantie gebruikte ik ook paars maar de sensor kon rood en paars niet onderscheiden, dus heb ik het weggelaten. Houd er rekening mee dat andere kleuren misschien ook niet zo mooi uitkomen (maar dat zou kunnen, ik heb het niet geprobeerd). Mijn sensor was goedkoop, een preciezere sensor kan waarschijnlijk meer kleuren onderscheiden.

Stap 2: De puzzel

De puzzel
De puzzel

Het belangrijkste onderdeel van dit project is het hebben van een goede hersenkrakende puzzel.

Zoals je kunt zien op de eerste foto (die met de intro), heb ik Noorse runen op mijn blokken geschilderd (aan elke kant behalve de onderkant). Ze hebben te maken met de puzzel. Ik heb toen een eenvoudige vraag over de zaak geplakt: "Echte rijkdom is …?".

Ik heb de afbeelding hierboven gebruikt om de runen te vertalen. Ik gaf de vertalingen ook aan de mensen die mijn puzzel probeerden.

De oplossing van de puzzel:

Ware rijkdom is geluk!

Wat de speler dus moet doen, is de schat (blok met het rijkdomsymbool) vervangen door het blok met het gelukssymbool erop.

Voel je vrij om mijn puzzel te gebruiken, maar ik zou je willen aanmoedigen om met je eigen puzzel te komen.

Stap 3: De bedrading

de bedrading
de bedrading
de bedrading
de bedrading

De bedrading is vrij eenvoudig omdat er maar 2 componenten zijn (en de arduino). In de beschrijving gebruik ik het minimum aantal draden, als je meer wilt gebruiken, doe dat dan gerust. (Ik gebruikte meer draden op de foto)

Arduino naar het breadboard: (Gebruik 2 mannelijke - mannelijke draden)

  1. sluit de 5V pin aan op de + kant van je breadboard.
  2. sluit een van de grondpennen aan op de - kant van je breadboard.

De servo: (Gebruik 3 mannelijke - mannelijke draden)

de servo heeft drie draden: voeding, aarde en signaal.

  1. Stroom is meestal een rode draad, sluit deze draad aan op de + kant van je breadboard.
  2. Aarding is meestal een zwarte of bruine draad, sluit deze draad aan op de - zijkant van je breadboard.
  3. Signaal is meestal een gele of oranje draad, sluit deze draad aan op een horizontale rij op je breadboard.*

De kleurensensor: (gebruik 7 mannelijke - vrouwelijke draden)

  1. VCC: sluit deze draad aan op de + kant van je breadboard (dit is stroom).
  2. GND: sluit deze draad aan op de - kant van je breadboard (dit is massa).
  3. S0: sluit deze draad aan op een horizontale rij op je breadboard.*
  4. S1: sluit deze draad aan op een horizontale rij op je breadboard.*
  5. S2: sluit deze draad aan op een horizontale rij op je breadboard.*
  6. S3: sluit deze draad aan op een horizontale rij op je breadboard.*
  7. OUT: sluit deze draad aan op een horizontale rij op je breadboard.*

*Ik vertel je niet precies waar je het op het breadboard moet pinnen, omdat het gemakkelijker is om voor jezelf uit te zoeken wat het beste is in combinatie met je build.

Breadboard naar Arduino: **(Gebruik 6 mannelijke - mannelijke draden)

Het is slim om te kijken of alles werkt voordat je het in de koffer stopt, houd er rekening mee dat je daarvoor deze kabels eruit moet halen en er later weer in moet doen. Vergeet niet te onthouden of op te schrijven welke kabel waarop is aangesloten.

  1. sluit de rij die je hebt aangesloten op de signaalpin van de servo aan op pin 9 op de Arduino.
  2. sluit de rij die u hebt aangesloten op de S0-pin van de kleurensensor aan op pin 4 op de Arduino.
  3. sluit de rij die u hebt aangesloten op de S1-pin van de kleurensensor aan op pin 5 op de Arduino.
  4. sluit de rij die u hebt aangesloten op de S2-pin van de kleurensensor aan op pin 6 op de Arduino.
  5. sluit de rij die u hebt aangesloten op de S3-pin van de kleurensensor aan op pin 7 op de Arduino.
  6. verbind de rij die je hebt aangesloten op de OUT-pin van de kleurensensor met pin 8 op de Arduino.

** de rijen waar ik hierboven naar verwijs zijn die op je breadboard.

Stap 4: De code

In de bijlage hier vindt u de code die u nodig heeft om dit project uit te voeren. De opmerkingen in de code moeten duidelijk zijn over wat het doet. Als je wat meer diepgaande informatie wilt over hoe de kleurensensor werkt (voor als je de code volledig wilt begrijpen), raad ik je aan deze tutorials "Hoe werkt de sensor?" sectie.

Hoewel je er nog niet bent, zijn er een paar dingen die je in de code moet aanpassen:

  • Pas de variabelen aan.
  • Pas de if-statements aan uw raadsel aan (indien nodig).

Het is handig om de pilaar te maken en de blokken van de volgende stap te schilderen voordat je de variabelen aanpast, zodat je het niet opnieuw hoeft te doen.

Pas de variabelen aan:

Als je de bedrading correct hebt gebouwd, zou de code moeten werken, pak een stuk papier, een pen en de (geschilderde) blokken.*

  1. Tijdelijk commentaar op de ongeldige checkRiddle-functie uit de code. (zodat dat deel niet loopt)
  2. Upload de code naar je Arduino.
  3. Open de seriële monitor, deze begint te lopen en toont u R= … G= … B= … (en nog wat meer, ze doen er nu niet toe)
  4. Houd een gekleurd blok een paar seconden recht voor de sensor (zo dicht mogelijk bij je uiteindelijke ontwerp).
  5. Terwijl je hem nog steeds voor de sensor houdt, haal je de stroom uit je Arduino. (trek hem uit de usb-poort)
  6. Noteer de buitenste (hoogste en laagste) waarden die de kleurensensor heeft gemeten op elke kleur (R, G en B).
  7. Kies de twee waarden die het minst variëren (bijvoorbeeld R en B).**
  8. Tel +10 op de hoogste waarde en -10 op de laagste waarde, zodat de sensor kleine fouten mag maken.
  9. Vervang nu de waarden in de code door degene die je nu hebt. (Een opmerking zegt welke waarden je moet vervangen)
  10. Als je een andere kleur gebruikt dan ik, verander dan ook de serial.print.
  11. Upload nu de code opnieuw naar uw Arduino met uw vers gemeten waarden.
  12. Test of de seriële monitor de kleur die je zojuist in de code hebt ingevoerd mooi afdrukt door hetzelfde gekleurde blok ervoor te houden. Zorg ervoor dat het consistent is zolang u het voor de sensor houdt.
  13. Zo nee::(controleer de waarden, kijk of u het bereik groter moet maken. Zo ja::) de code herkent nu deze kleur.
  14. Herhaal nu dit proces (stap 4 - 13) totdat alle kleuren die je wilt gebruiken in de code zijn geïntegreerd.
  15. Vergeet niet om de void checkRiddle-functie te verwijderen!

* ga eerst naar de stap "de kast" als je ze nog niet hebt geverfd.

** je kunt nauwkeuriger zijn als je wilt door alle 3 (R, G en B) te gebruiken, maar voor dit project is dat niet nodig.

Pas de if-statements aan je raadsel aan: (alleen als je de oplossing wilt veranderen)

Stap 5: De zaak en het schilderen van de blokken

De zaak en de blokken schilderen
De zaak en de blokken schilderen
De zaak en de blokken schilderen
De zaak en de blokken schilderen
De zaak en de blokken schilderen
De zaak en de blokken schilderen
De zaak en de blokken schilderen
De zaak en de blokken schilderen

De behuizing is een wat lastig onderdeel, maar het is niet moeilijk om te maken, het gaat vooral om het hebben van de juiste afmetingen. Ik geef mijn metingen niet omdat we (hoogstwaarschijnlijk) geen materialen van dezelfde grootte gebruiken.

De blokken schilderen:

Verf de blokken in de kleuren die je wilt gebruiken. Ik raad rood, groen en blauw aan omdat het het gemakkelijkst is om die met de sensor te onderscheiden.

Als je niet je eigen puzzel maakt, verf dan ook de runen.

De pijler:

De pilaar is om de kleursensor en de kabels die eraan vast zitten (gedeeltelijk) te verbergen. Om de afmetingen van de pilaar te bepalen moet je de zijkanten van je kleursensor opmeten, en bepalen hoe hoog je je pilaar wilt hebben (degene die je zie op de foto is 3 cm hoog). Teken dat dan op karton en knip het uit, je kunt ze schilderen als je wilt.

Bevestig de draden aan de sensor VOORDAT je hem in de pilaar bouwt, je kunt niet meer bij de pinnen.

Ik heb dubbelzijdig plakband gebruikt om de sensor in de pilaar te bevestigen. Dit zie je op de derde foto.

Zorg ervoor dat de leds op de sensor in de pilaar zitten (niet over de rand), de blokjes moeten er later op komen te staan.

Het "je stierf" teken:

Knip een stuk karton en schrijf er "je stierf" op. Zoals je op de eerste foto kunt zien heb ik een foto van een boze man met zwaard aan de andere kant geplakt. Zorg ervoor dat het bord een nok aan de onderkant heeft. Gebruik de nok om het bord op de servo te plakken.

De kamer maken:

  1. Verf de doos die je voor de zaak hebt gekozen. (elke kleur die je wilt, ik gebruikte zwart)
  2. Teken de vorm van de kamer op de bodem van de doos om de lengte van de muren te bepalen. (Meet de lijnen met een liniaal).
  3. Bepaal welke hoogte je wilt dat de muren hebben. De muren in mijn voorbeeld zijn 5 centimeter hoog.
  4. Nu heb je de afmetingen van je muren, teken ze op het karton en knip ze uit.
  5. Schilder de muren. (ik heb ze zwart geverfd)
  6. Lijm de muren op de doos, op de lijnen die je eerder hebt getekend.

Je hebt nu de kamer ingericht.

Gaten voor de kabels en het bord:

Je moet twee gaten in de doos maken, een voor de kabels en een voor het "je stierf"-teken. en wees voorzichtig! gaten kunnen niet worden verwijderd als ze er eenmaal zijn.

maak een gat onder de plaats waar je de kleurensensor wilt hebben. Maak het gat zo klein mogelijk, maar vermijd spanning op de kabels, je wilt niet dat ze losraken.

Het gat voor het "je stierf"-teken moet een beetje dikker zijn dan het karton dat je gebruikt, zodat het omhoog kan komen zonder de behuizing te raken. De lengte van het gat is afhankelijk van hoe groot het bord is. Gebruik een stanleymes of schilmesje om het gat te maken.

Gebruik nu de dubbelzijdige tape om de servomotor aan de zijkant van de doos te bevestigen.

Stap 6: Vragen??

Dus nu zou je in staat moeten zijn om een geweldige, op kleuren gebaseerde puzzel te bouwen met Arduino. Als je vragen hebt, stel ze gerust!

Veel bouwplezier!

Aanbevolen: