Introduction: Interactieve Doos Met Zwaartekrachtsensor

In deze Instructable leg ik uit hoe ik mijn project voor school heb gemaakt met behulp van een Arduino en Arduino IDE.

Beschrijving ontwerp

Het is een doos met twee zijden die je vast houdt. De andere vier zijden zijn om mee te spelen. Aan een van deze vier kanten, willekeurig gekozen zal een lampje beginnen te branden. De speler moet deze kant vinden en deze omlaag houden. Daarna zal een nieuw, ander lampje oplichten. Dit lampje zal een andere zijn dan de vorige. Op deze manier reageert de doos op input van de speler.

Benodigdheden

Arduino set. Ik heb de mijne gekocht op floris.cc
Kleine, geleidende bal. Ik gebruik een magnetix balletje.
Zwaartekracht sensor, die ik heb gemaakt met een 3D model en 3D printer.
Omhulsel waar ik later meer over uitleg

Omhulsel

Om deze manier werkend te krijgen moet het omhulsel dus twee zijkanten hebben waar een speler de doos vast houdt. Ook moet het vier kanten hebben waar de lampjes doorheen gaan. Ik gebruikte tape om de zijkanten stevig te maken en heb er daarna een laag overheen gedaan met een patroon naar keuze. Ik ging hier voor een 'retro gaming' thema.

Materiaal omhulsel

Ik heb persoonlijk als materiaal voor mijn omhulsel gekozen voor karton. Ik koos karton omdat het licht is en mensen bij dit materiaal al snel het gevoel hebben dat ze er niet heel voorzichtig mee hoeven te zijn. Ik wou de speler het idee geven dat hij de doos op mag pakken en er mee mag bewegen.

Step 1: Zwaartekrachtsensor

Voor mijn zwaartekrachtsensor heb ik een 3D model gemaakt en geprint. Hierboven een foto van hoe dit er uit ziet.

De vorm van het model is een vierkant. Hierdoor is het makkelijk te verwerken in het uiteindelijke omhulsel van het project, omdat het makkelijk bij de vorm van een balk past. Omdat het vierkant waar het balletje in komt gekanteld is hoef je het grote vierkant niet te kantelen in je project omhulsel. Er zitten ook gaten in waar de draadjes doorheen gehaald kunnen worden. Deze draden krijgen een oppervlak waardoor het balletje contact maakt met twee draden en stroom doorgeeft als het in een van de hoeken valt.

Step 2: Bedrading

Hierboven staat een foto van hoe de bedrading moet zitten om het werkende te krijgen. Ik zal het hieronder nog even uitleggen.

De linkerpinnen in de A0 t/m A3 zijn de draden die meten of er kortsluiting wordt gevormd.

De GND staat in verbinding met de lampjes en met de draad waar de sensor aan komt.

De digitale pinnen 13,11,9 en 7 geven de output wanneer een lampje moet branden. Deze gaan eerst langs een 220 ohm weerstand.

Op de foto zit de 5V aangesloten aan de pluskant op mijn breadboard. Dit hoeft niet, maar had ik zo gedaan vanwege een test.

Step 3: Bedrading Bij De Sensor

Wanneer je de bedrading goed hebt zitten en je het model uitgeprint hebt kun je de bedrading rondom de sensor maken. In alle hoeken waar het balletje kan komen moet een draad zitten die naar de GND gaat en een naar de analoge binnen A0 t/m A3. Ik splits de draad die vanuit de GND komt op in vier verschillende draden door ze zo te solderen.

Om er voor te zorgen dat de bal goed contact maakt strip je de draden die je door de sensor haalt en buig je deze om. Zorg daarna dat deze stevig vastzitten.

Step 4: Code

Hier staat een document met de gehele code die ik heb gebruikt.

https://docs.google.com/document/d/1Tva5I0H3LxXDty...

Ik zal sommige delen nog even uitleggen:

Het eerste gedeelte met de int randomKleur en de if- en else-statements is het gedeelte waarin ik een willekeurig getal pak. Dit zijn de getallen 1 tot en met 4 die zullen staan voor welk lampje aan gaat. De digitalWrite van een lampje staat dus alleen op HIGH als dat nummer random gekozen is.

Daarna heb ik een if-statement gemaakt met een while-loop er in. De if-statement hier controleert of de kant waar kortsluiting is gecreeërd, dus waar het balletje de stroomkring dicht maakt, klopt met de kant waar het lampje brand. Wanneer dit waar is, kiest het een nieuw getal en daarmee een nieuw lampje om aan te gaan.
De while-loop hier zorgt er voor dat er niet twee maal achter elkaar hetzelfde getal wordt gekozen. Wanneer dit wel het geval is zal er opnieuw een willekeurig getal worden gekozen totdat hij er een krijgt die anders is dan de vorige.

Step 5: Alles Samen

Als de bedrading goed zit kun je deze vast solderen.

Maak het blok-vormige omhulsel zo dat er twee kanten zijn waar de gebruiker deze vast kan houden en vier zijden met een gat er in waar het lampje door heen gaat.

Plaats de sensor aan een van de kanten waar gebruikers het project vasthouden. Dit is namelijk de kant die het draaien gaat meten.

Zorg ten slotte er voor dat de Arduino en de sensor goed vastzitten. Omdat het project draait kan het losschieten wanneer je niet goed genoeg vastzet.