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.
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.
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.
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.
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
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)
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.
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?
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:
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.
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