Het project
Samen met tabletop Kingdom in Haarlem zijn we bezig geweest om een smart Catan bord te maken. Het idee is dat je Catan kan spelen tegen iemand zonder dat je in dezelfde kamer bent, maar alsnog op een fysiek bord kunnen spelen. Een goede bijkomstigheid is dat je dan ook tegen een AI kan spelen.
Projectonderdelen
- De electronica
- [De aansturing]
- [Het ontwerp]
- [3D tegels]
- [Netwerken]
- [Tegen de computer]
De electronica
Om Catan te kunnen spelen moet je wat inputs en outputs hebben
- Detectie straten, dorpenen
- Detectie tegel type
- Detectie rover
- Detectie volgende beurt
- Laten zien wat gegooid
- Laten zien waar straten, dorpen en steden zijn.
Detectie straten, dorpen en steden
Om straten en dorpen te detecteren zitten er op elke plek waar je iets kan plaatsen twee metaaldraden. De straten en dorpen hebben op de onderkant een laagje aluminium. Wanneer deze contact maakt met de metaaldraden, gaat er stroom lopen, deze stroom kunnen meten om te weten dat er een straatje of dorp is geplaatst. Als je weet wie er aan de beurd is, weet je welke kleur straat het is.
Omdat je twee dingen op een hoek kan plaatsen (dorp en stad), moet je nog iets doen. Als je de steden geen laag aluminium geeft, kun je detecteren dat er een stad staat door te meten dat er geen stoom meer loopt. Dit kan omdat je alleen een stad kan bouwen als je eerst een dorp bouwt.
Detectie tegel type
Om te detecteren wat voor soort tegel op elke plek ligt, zit in elke tegel een weerstand. De waarde van die weerstand kan dan gemeten worden. Elk type tegel heeft een eigen weerstandswaarde, dus zo meet je wat voor soort tegel het is.
Detectie rover
Voor de detectie van de rover gebruiken we een mengeling tussen tegel-detectie en straat-detectie. De rover heeft een laagje aluminium waarmee er stroom via de rover loopt, en niet via de weerstand. Als je nu de weerstand meer is deze veel lager. Je weet nu waar de rover staat.
Detectie volgende beurt
Om de detecteren wanneer een beurt voorbij is word een simpele drukknop aan elke kant van het bord gemaakt.
Laten zien wat gegooid
Om te kunnen laten zien wat er gegooid is, zitten er lampjes in elke tegel. Deze lampjes kunnen worden aangestuurd door een Arduino om aan te geven wat er is gegooid.
Laten zien waar straten, dorpen en steden zijn
Om te laten zien wiens straten en dorpen waar staan, wordt een WS2812B led strip gebruik. Zo kun je kiezen welke led welke kleur heeft.
De aansturing
Alle electronica moet aangestuurd worden. Hiervoor wordt gebruik gemaakt van een Arduino en een ESP32
- Objecten
- Coördinaten
- Communicatie
Objecten
Om bij te houden wat er op het bord moet worden laten zien, worden een paar objecten gebruikt.
Spel
- Players
Player
- Materials
- Hout (int)
- Steen (int)
- Wol (int)
- Erts (int)
- Graan (int)
- Kaarten
Bord
- Hexes
- Corners
- Roads
Hex
- Type
- Nummer
Corner
- Kleur (int)
- Gebouw (int 0-2)
Road
- Kleur
- Gebouw (bool 0-1)
Coördinaten
Omdat een catan bord een hexagon-voormig bord is in plaats van vierkand, kan hier niet een standaard co-ordinaten systeem worden gebruikt. Daarom hebben we een eigen systeem gemaakt dat werkt voor hexagons.
Communicatie
Het ontwerp
Om te zorgen dat alles goed in elkaar zou passen hebben we ban tevoren een CAD ontwerp gemaakt. Het leek ons het makkelijk om het catanbord van lasergesneden onderdelen te maken.