Morgen
Ich plane ein Spiel basierend auf "Schiffe versenken" auf einer 10*10 Matrix zu programmieren.
Dazu soll zufällig ein gegnerisches (vielleicht auch zwei) Schiffe erzeugt werden.
Dann hat man eine begrenzte Anzahl an "Schüssen" um das Schiff zu finden.
Dazu sollen zweifarbige LEDs eingesetzt werden.
Eine Farbe für "Treffer" eine für "Daneben".
Mit je 10 Tastern je Reihe bzw. Spalte kann ich dann das Feld zum schießen auswählen.
Gibt es hierfür ein gutes Matrix-IC für zweifarbige 10*10 Matrixen?
Die Taster werde ich ja am besten per Schieberegister abfragen, oder gibt es hier auch eine optimalere Möglichkeit? (muss zugeben, dass ich mich in das Schieberegister-Zeugs noch einlesen muss)
Zum Einsatz soll wohl ein Nano kommen.
Wobei ich
einen Pin für einen reset Taster
zwei Pins für ein mp3 Modul
ein Pin für ein Relai
evtl. ein 7-Segment Display (Ansteuerung muss ich auch noch googeln, ob es da auch was Pin sparendes gibt)
benötige.
Danke
Für einfarbige 88 eignet sich ja ein MAX7219 sehr schön, inkl. leicht verwendbarer Library.
Aber für ein 1010 das auch noch zweifarbig ist, finde ich auch nach längerer Suche nichts
Hat hier bereits jemand soetwas (in der Art) mal aufgebaut?
Dürfen es ein paar Farben und Euro mehr sein? Dann könntest Du APA102 (Dotstar) oder WS2812 (NeoPixel) als Streifen oder einzelne LEDs oder verdrahtet in Betracht ziehen. Beim Preis für die Matrix bin ich erschrocken.
Diese RGB-LEDs haben ein Schieberegister-IC eingebaut, das auch noch PWM macht. Der Ardiono braucht nur eine Daten- und eine Taktleitung (APA102) oder sogar nur eine kombinierte Daten-Takt-Leitung (WS2812). Wasser hellblau, getroffene gelb, versenkte Schiffe rot ... und wenn das Spiel vorbei ist, startet eine nette Regenbogenanimation.
Preislich mußt Du noch ein kräftiges Netzteil einplanen, 100*60mA=6A. Als Bibliothek FastLED.
Danke, habe ich vorhin auch schon gefunden.
Mal schauen, ob es da auf ebay die einzelnen LEDs auch günstiger gibt
So wie ich das sehe, gibt es da eine Library, wo ich die sogar ganz einfach einzeln ansprechen kann.
Kann ich da auch die Helligkeit jeder einzelnen LED regeln?
Programmieren werde ich das dann wohl über 2D-Arrays.
OK, Matrixansteuerung sagt mir jetzt nichts
Muss ich mich mal einlesen.
Ich hätte das Array jetzt Inhalt für Inhalt (in einer Schleife) auf die LEDs geschrieben und auch abgefragt ob da ein Schiff ist oder nicht.
z.B.:
0 Wasser
1 Schiff
2 beschossen
3 Treffer
Lost-Wolf:
OK, Matrixansteuerung sagt mir jetzt nichts
Schaue Dir mal das Beispiel XYMatrix.ino mit kMatrixSerpentineLayout=true/false an.
Lost-Wolf:
... ob da ein Schiff ist oder nicht.
Du brauchst ein Feld für die LEDs (Standard bei FastLED mit einem Byte pro Farbe) und zusätzlich die Information, wo sich das unsichtbare Ziel befindet.
DrDiettrich:
... einen Joystick zum Zielen verwenden ...
Interessante Idee, kommt in den Hinterkopf zum 'will ich auch Mal bauen'-Kram
100Stk WS2812B zum Ausbrechen
Achtung: Die Löterei ist bei dem Kram nicht ganz ohne - habe bisher nur 400 Lötpunkte fertig ... die Datenleitungen fehlen noch komplett.
Der Link ist nur als Beispiel, Meine sind schon einige Tage älter, trotzdem noch nicht fertig.
Gute Frage ... "masochistisch veranlagt" liegt mir gerade auf der Zunge.
Eigentlich wollte ich mir eine Aufnahme fräsen und dort die LEDs quasi auslegen und frei fliegend verdrahten.
Ala Mensch-Ärgere-Dich-Nicht ... aber da kam mir dann der Gedanke, wenn der µC schon das Würfeln übernimmt und die Figuren setzt ... braucht Der mich auch nicht mehr zum Spielen.
Dann dachte ich mir: eine 10x10er Matrix hat doch bestimmt auch was ... jo, kurze Storry
Wenn Du "dicke Bretter bohren" möchtest, kannst Du auch Adalight Boblight verwenden.
Lost-Wolf:
OK, Matrixansteuerung sagt mir jetzt nichts
Die LEDs werden von 0 an in der Reihenfolge, wie sie mechanisch aneinanderhängen, gezählt. Bei einer Matrix möchtest Du aber LEDs in x- und y-Koordinaten wie beim Schachbrett angeben. Praktisch ist es, wenn die Umrechnung von einer Bibliothek übernommen wird.
Wenn man den Ergeiz hat, kann man die Bibliotheksunterstützung natürlich auch ignorieren. Ich möchte niemanden vom Selbermachen abhalten, wollte nur die Frage beantworten
Das kenne ich halt bereits und muss mich nicht in eine neue Library reindenken.
Und man will ja auch Spaß dran haben
Aber natürlich trotzdem vielen Dank für den Vorschlag und die Antworten