För att bygga vår tärning behöver vi koppla en tryckknapp och en servomotor till vårt utvecklingskort. Tanken är att tryckknappen ska få Arduinon att slumpa fram ett värde mellan 1 och 6. Vilket värdet blir visas med en arm som vrids med hjälp av servomotorn. Observera att armen inte har något fast läge, utan den kan monteras nästan hur som helst. Ha detta i åtanke om armen pekar fel.
För att tydliggöra vilka värden tärningen visar behövs ett papper med siffrorna 1 till 6. En färdig pappersmall för detta finns i slutet av boken. Den passar för övrigt i akrylglashållaren som finns i bokens tillhörande komponentkit.
I slutet av boken finns en mall för tärningen.
Illustration gjord med komponenter från Fritzing (fritzing.org). CC BY-SA 3.0
I denna sketch måste vi använda två bibliotek: Servo och Button. Servo är förinstallerat i utvecklingsmiljön men Button måste installeras manuellt (se Bibliotek). Vi skapar ett objekt av varje typ.
Del 1/5 av RollDice.ino
I setup-funktionen anropar vi funktionen randomSeed för att få pseudoslumpmässiga värden. Värdena är alltså inte 100 % slumpmässiga och denna tärning är därför inte något som bör användas på ett kasino. Värdena är dock tillräckligt slumpmässiga för att inte orsaka familjebråk under Monopolkvällar.
Del 2/5 av RollDice.ino
I loop-funktionen lägger vi en if-sats som gör att två andra funktioner anropas när någon släpper upp knappen: upDown och setDice.
Del 3/5 av RollDice.ino
Funktionen upDown använder vi för att servon ska röra sig lite innan den vrider sig till det rätta tärningsutfallet. Det är nödvändigt eftersom tärningen kan ge samma utfall (värde) två gånger i rad.
Del 4/5 av RollDice.ino
Funktionen setDice använder vi för att visa utfallet av tärningskastet. In i funktionen skickar vi ett slumpmässigt tärningsnummer. Funktionen börjar med att mappa utfallsmöjligheterna (1-6) efter servots vridning (20-140). Lägg märke till att vi inte drar nytta av hela 180°-spannet. Sedan vrider funktionen servots pil till siffran som tärningen hamnade på.
Del 5/5 av RollDice.ino
Som medlem hos oss får du alltid lite mer. Som till exempel låga medlemspriser, unika kampanjer, 100 dagars öppet köp och bonuscheckar. Dessutom sparas alla dina köp i ditt medlemskap så att du slipper spara papperskvitton för eventuella returer. Ditt medlemskap är helt digitalt och helt kortlöst. Och väldigt smidigt.
Läs mer