7 Februari 2019

CubeCulator

Idé

Vi tror att leka är att lära, och att lek genom fysiska interaktioner i ett abstrakt ämne som matematik kan ge stora fördelar. Genom att kombinera kuber som representerar siffror och operatorer, ville vi skapa ett lekfullt sätt att utforska matematik. Resultatet skulle visas på en speciell “resultat”-kub som placeras i slutet av talet.

Vi ville ha två olika typer av kuber:

Symbolkuben

  • Har en symbol, antingen en siffra eller en operator
  • Kan ta emot en lista av symboler från sin granne till vänster om sig
  • Kan skicka vidare den mottagna listan av symboler, samt sin egen symbol till kuben till höger om sig

Resultatkuben

  • Kan ta emot en list av symboler från kuben till vänster
  • Kan räkna ut och visa resultatet av talet som den tagit emot

Kommunikationen går från vänster till höger, där varje kub skickar vidare det den tagit emot, samt sitt eget värde till nästa kub.

Skapande

Varje kub innehåller en Arduino som drivs att ett 9V batteri. För att spara batteri, la vi till en reed-switch och en magnet i varje kub. Genom att använda en reed-switch kan varje kub startas av sin högra granne.

För att kuberna ska kunna kommunicera valde vi att använda IR. Vi la till en IR-mottagare på vänster sida och en IR-mottagare på höger sida av varje symbolkub. Resultkuben hade bara en IR-mottagare, samt en OLED-skärm för att visa resultatet.

Lärdomar

Ett problem vi upptäckte tidigt var att varje Arduino endast har en tråd. Detta innebär att den endast kan göra en sak i taget. Antingen skicka eller ta emot data via IR. Detta skapade utmaningar kring timingen av att skicka/ta emot i protokollet.

Vi upptäckte också att skicka data via IR är ganska oexakt. Även när vi placerar sändare och mottagaren väldigt nära varandra läste mottagaren ibland fel värde. Effekten av detta blir att risken att alla symboler skickas och tas emot felaktigt ökar exponentiellt med varje kub.

Om vi får rätt värde 9 av 10 gånger och använder 4 symbolkuber, får vi en 66% chans att rätt meddelande kommer fram till resultatkuben.

Resultat

Vi är nöjda med resultatet. Kuberna fungerar, även om protokollet är ostabilt lyckas vi skicka vidare 1+2 till resultatkuben och visa upp resultat.