[Anfänger] Hex Brettspiel mit LED´s angesteuert über Arduino?

Hallo Leute,

ich bin Industriedesign-Student und möchte in einem Projekt folgende Idee realisieren:

Ich möchte das Spiel Hex von John Nash in die Gegenwart holen und mit Hilfe von LED´s neu interpretieren. http://mflechl.web.cern.ch/mflechl/hex.html

Hierbei möchte ich 2 mal 11x11 LED´s (rot und blau) einzeln ansteuern, sodass man sich an jeweils einem Controller gegenüber sitzt, die wählbaren Felder (blinkend) durchklickt, auswählt (starr) und der Gegenspieler an der Reihe ist.

Somit brauche ich ein Feld (warsch aus Holz gebaut) in welches jeweils 11x11 LED´s eingelassen werden (z.B. 11x11 rote und 11x11 blaue), einen Arduino-Controller welcher einmal die LED´s einer Farbe sowie den Controller (4 Pfeile und ein Enter oÄ(zerlegte PC-Tastatur?)) ansteuert. Der Arduino muss wissen, welche Farbe an der Reihe ist, LED´s blinkend und durch Enter erstarren lassen, wissen, welche Felder noch nicht besetzt sind durch den Gegner, sowie erkennen wann das Spiel verloren/gewonnen ist (an der gegnerischen Seite angelangt).

Da ich leider von ganz vorne beginne, wollte ich grundsätzlich fragen ob es überhaupt möglich wäre. Wenn ja ob es Ideen, Tuts zur Umsetzung gibt und wenn nein vllt. ein Vorschlag wie sonst (Rasperry Pi etc).

Vielen vielen Dank für alle Antworten schonmal im Vorraus.

Grüße Winni

es gibt Leds die haben 2 Farben in sich http://www.leds24.com/navi.php?suchausdruck=duo+led&JTLSHOP=8326345b2a385fbd03d6d4f8a13b66d9 hier zum Beispiel

Da du viele Leds steuern möchtes, würde ich mich mal mit einem Schieberegister oder Multiplexin befassen :slight_smile:

Ich denke schon, das ein Arduino das schafft. das spannendste wird vermutlich, die 242 LEDs anzusteuern. Durch die Designvorgabe, das es 2x11x11 LEDs sind, könnte man das ganze über 30 Schieberegister abbilden.
Jeweils 15 Stück sind für 120 Stück einer Farbe plus je eine noch extra an einem Pin. Das wären dann 8 Pins für 242 LEDs. Ggf. sollten die LEDs über ULN2803 Darlington Treiber versorgt werden, damit die Scheiberegister nicht überlastet werden, wenn alle LEDs an sind.
Die "Joysticks" inkl. "Enter" kann man recht einfach über eine Widerstandskaskade an einem analogen Eingang abbilden. Dann reicht ein Eingang pro Joystick. Es bleiben dann noch genug GPIOs für diverse Status-LEDs oder andere Knöpfe.

Alternativ kann man die LEDs auch über einen max7219 Matrix-Treiber steuern. Davon dürften dann 4 Stück reichen. Da einer je 64 (8x8) LEDs ansteuern kann. Da der Chip die LEDs direkt treiben kann, reduziert sich damit die Anzahl der Bauteile enorm.

Auf alle Fälle ein spannendes Projekt mit viel Potential.

Mario.

hi,

25 leds um 10€, da würd' ich mir lieber ws2812er besorgen, 60 stk 25€, und man muß nicht mehr über schieberegister und multiplexing nachdenken...

gruß stefan

Vielen Dank für die Antworten bisher.

Da ich auch im Programmieren leider wirklich von (fast) 0 Anfangen muss, wäre "Einfach" aufjedenfall priorisiert gegenüber "Billig" :slight_smile:

Edit: Zumindest wenn es um Beträge im ein bis zweistelligen Bereich geht :wink:

Die Idee mit dem WS2812 ist gut. Die können mehr als nur eine Farbe (RGB LEDs), damit braucht man nur 121 Stück und nicht 242. Von der Steuerung ist das sogar noch einfacher als mit den Schieberegistern und man muss sich keine Gedanken um die Verkabelung wie bei einer Matrix machen.

Das ist nicht nur einfacher, sondern bietet aufgrund der RGB-LEDs noch jede Menge weitere Möglichkeiten.

Wince:
Da ich leider von ganz vorne beginne, wollte ich grundsätzlich fragen ob es überhaupt möglich wäre. Wenn ja ob es Ideen, Tuts zur Umsetzung gibt und wenn nein vllt. ein Vorschlag wie sonst (Rasperry Pi etc).

Die Ansteuerung der LEDs ist möglich, wie schon in anderen Beiträgen dargestellt.

Aber wenn Du vorhast, den Arduino das Strategiespiel gegen einen Menschen spielen zu lassen, dürfte der RAM-Speicher nicht ausreichen, um eine auch nur minimale Spielstärke mit einem Arduino als Computerspieler zu realisieren.

Wenn Du vorhast, einen Computerspieler mit hoher Spielstärke zu programmieren, wirst Du den Arduino also nur zum Ansteuern des Spielfelds, LEDs, ggf. Spielsteinerkennung und Gewinnstanderkennung verwenden können, aber als "Gehirn" zur Ermittlung möglichst ausgefeilter Computer-Spielzüge wirst Du stattdessen eine Recheneinheit mit mindesten 1 bis 2 Megabytes RAM-Speicher einsetzen müssen (Raspberry, Smartphone, PC etc.). Sonst wird Deine Implementation wohl nur eine Spielstärke knapp oberhalb von "Zufallszug setzen" erreichen können.

jurs:

Wince:
Da ich leider von ganz vorne beginne, wollte ich grundsätzlich fragen ob es überhaupt möglich wäre. Wenn ja ob es Ideen, Tuts zur Umsetzung gibt und wenn nein vllt. ein Vorschlag wie sonst (Rasperry Pi etc).

Die Ansteuerung der LEDs ist möglich, wie schon in anderen Beiträgen dargestellt.

Aber wenn Du vorhast, den Arduino das Strategiespiel gegen einen Menschen spielen zu lassen, dürfte der RAM-Speicher nicht ausreichen, um eine auch nur minimale Spielstärke mit einem Arduino als Computerspieler zu realisieren.

Wenn Du vorhast, einen Computerspieler mit hoher Spielstärke zu programmieren, wirst Du den Arduino also nur zum Ansteuern des Spielfelds, LEDs, ggf. Spielsteinerkennung und Gewinnstanderkennung verwenden können, aber als "Gehirn" zur Ermittlung möglichst ausgefeilter Computer-Spielzüge wirst Du stattdessen eine Recheneinheit mit mindesten 1 bis 2 Megabytes RAM-Speicher einsetzen müssen (Raspberry, Smartphone, PC etc.). Sonst wird Deine Implementation wohl nur eine Spielstärke knapp oberhalb von "Zufallszug setzen" erreichen können.

Danke für die Antwort. Es sollen schon 2 reale Personen spielen. Mich überfordert schon das einfachste noch im Moment, da möchte ich nicht noch einen Computer-Spieler programmieren müssen. Schön wäre es aufjedenfall und sicher eine Option das Projekt zu verfeinern, sobald das Grundsätzliche fertig sein sollte und wenn mir die Zeit und Lust dann noch gegeben ist.

Grüße

Wäre es möglich jetzt schon eine Komponentenliste zu erstellen, damit ich schonmal weiß mit was für Geräten ich es zu tun bekommen werde? Mal ausgegangen davon, dass man es mit den genannten WS2812 realisieren würde.
Auch eine kurze Skizzierung der Vorgangsweise, je nach Lust und Zeit detailliert, würde mir sehr helfen und zeigen mit was ich mich beschäftigen muss.

Vielen dank an alle!

Grüße

Edit: Ich weiß ich erbitte einiges und es klingt sicher so als hätte ich vor euch die Arbeit machen zu lassen. Das ist nicht der Fall, man weiß als blutiger Anfänger immer garnicht wo man bei der Masse an Infos, Tutorials und verschiedenen Lösungswegen beginnen soll :confused:

2x121 LED sind viele.

  • 4 MAX7219
  • Chalieplexing (da können aber nur ein LED eingeshaltet sein und wenige im Multiplexing). Charlieplexing - Wikipedia
  • RGB LED-Strip mit Kontrollern zB den WS2811/12

Bin etwas in Verzug. Haben andere bereits geantwortet.

Die WS2811/12 Strips kannst Du in beliebigen Längen abschneiden und unter die Felder Einbauen. Wenn sie zu nahe beieinander sind kannst Du sie auch auseinanderschneiden und nittels 3 Dratbrücken verbinden. Die Ansteuerung erfolgt über eine Bibiothek. Also ist das alles bereits gemacht. Du brauchst nur ein starkes Netzteil. Bei allen eingeschalteten LEDs (weiß) brauchst DU 60mA pro LED; bei 121 also fast 7,5A bei 5V.

Das Joystick würde ich nicht wie mkl0815 Vorschlägt (Widerstandskaskade) realisieren da diese keine gleichzeitigen Tastendrücke oder 45° Ausschlag des joysticks zulassen sondern jeden Taster einzeln abfragen (notfalls über Schieberegister oder Port expander)

Viele Grüße Uwe

Das Joystick würde ich nicht wie mkl0815 Vorschlägt (Widerstandskaskade) realisieren da diese keine gleichzeitigen Tastendrücke oder 45° Ausschlag des joysticks zulassen

Das Spiel heisst nicht umsonst Hex, man hat also 6 Richtungen wie die Zielposition für den neuen Stein bewegt wird. Die 7 Taster (incl. "Enter") könnte man schon noch über eine Widerstandskaskade an einem Analog-Eingang realisieren. In der Realisierung sind 2*7 Taster zwar mehr Bastel-Arbeit, sonst dürfte es aber einfacher zu realiserien sein.

Und wann gehst du auf ein 13er oder 19er Brett ?

Also benötige ich erst einmal einen Arduino (Uno oder Mega?), 2x MAX7219 und die WS2812 Strips, richtig soweit?
Was könnte ich Konkret für die Joystick-Steuerung nehmen?

Grüße

Ein Arduino Uno reicht und die WS2811/12 Strips und ein starkes 5V Netzteil.
Der WS2812 ist eine RGB LED mit integrierten WS2811. Oft werden die WS2812 auch als WS2811 bezeichnet.
Grüße Uwe

Wenn Du vorhast, einen Computerspieler mit hoher Spielstärke zu programmieren, wirst Du den Arduino also nur zum Ansteuern des Spielfelds, LEDs, ggf. Spielsteinerkennung und Gewinnstanderkennung verwenden können, aber als "Gehirn" zur Ermittlung möglichst ausgefeilter Computer-Spielzüge wirst Du stattdessen eine Recheneinheit mit mindesten 1 bis 2 Megabytes RAM-Speicher einsetzen müssen (Raspberry, Smartphone, PC etc.). Sonst wird Deine Implementation wohl nur eine Spielstärke knapp oberhalb von "Zufallszug setzen" erreichen können.

Der STM32F4 Discovery währe da eine sehr preisgünstige Möglichkeit:

http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/PF252419

hi,

schau bei ebay rein und suche ws2812, da findest Du strips in verschiedenen längen. 121 ist eine blöde zahl, weil immer 60 auf einem meter sind. da bleibt halt einiges über...(oder mach 13).
wenn Du bei ebay noch nach "joystick arduino" suchst, findest Du ein paar kleine joysticks , die praktisch sein könnten.
bei ebay immer auf weltweite suche gehen.
wegen der programmierung mach Dir keine sorgen, da lotsen wir Dich schon durch.

gruß stefan

Versuch auch nach WS2811 zu suchen; oft nennen die Verkäufer diese Bauteile und haben in wahrheit WS2812 auf die Strips montiert. Es gibt auch eine Verion der Strips mit 66 LED pro meter; so kommst Du mit 2m aus.
Grüße Uwe

Schau mal hier:
http://www.ebay.de/itm/WS2811-LED-RGB-Lauflicht-Strip-60LED-m-Lange-Wahlbar-/330876638565?pt=DE_Möbel_Wohnen_Lampen&var=&hash=item4d09c8d565
Da kann man auch einzelne LEDs bestellen. Damit wäre dann ein 2m Streifen mit 120 und ggf. ein Streifen mit 5 zusätzlichen LEDs möglich. Die 4 zusätzlichen kann man immer noch für andere Zwecke einsetzen, oder man läßt sie als Ersatz.