Forum: Mikrocontroller und Digitale Elektronik Welche Komponenten für ein elektronisches "4 gewinnt"


von Martin S. (morton)


Lesenswert?

Hallo zusammen,

momentan mache ich meine Ausbildung zum staatl. gepr. Techniker in 
Elektrotechnik und bei uns steht ab nächste Woche eine 
Test-Projektarbeit an. Unsere Gruppe möchte gerne das Spiel "4 gewinnt" 
als elektronische Version mit LED's und Tastern und sowas bauen. Leider 
hatten wir bisher nur höchstens Einleitungen/Grundlagen bezüglich der 
Microcontroller gehabt und nun weiß ich nicht wirklich, wo ich dort 
anfangen soll und welche Komponenten wir benötigen.

Das ganze soll wie folgt aussehen:

- 7*6 = 42 Spielfelder mit zweifarbigen LED's (1 Farbe pro Spieler)
- Das "Einwerfen" der "Chips" erfolgt mittels Taster (-> 7 Taster für 7 
Spielfeldspalten)

Zusätzlich (optional):
- 1 Schalter/Taster für eine Neustart-Funktion
- akustische Wiedergabe (Beim Betätigen der Taster & wenn das Spiel 
zuende ist)
- Schalter zum Umstellen auf 2-Spieler-Modus bzw. 1-Spieler vs KI - 
Modus
- Schalter zum Aktivieren der "Linetris"-Version

Ich nehme mal an, für die 42 Spielfelder * 2 (zweifarbige LED's) 
brauchen wir schon einmal 84 Eingänge/Ausgänge. Dazu noch 7 Taster = 91. 
Die optionalen Funktionen benötigen wiederum ca. 4 Ein/Ausgänge, wären 
wir bei ca. 95 (???).


Zu was für Komponenten könnt ihr uns raten? Bzw. wie kann man das am 
sinnvollsten (hardware-)technisch lösen?

Vielen, vielen Dank vorab!

Schöne Grüße,
Martin

von Der Andere (Gast)


Lesenswert?

Martin S. schrieb:
> Ich nehme mal an, für die 42 Spielfelder * 2 (zweifarbige LED's)
> brauchen wir schon einmal 84 Eingänge/Ausgänge.

Such mal nach "Multiplexing"

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Martin S. schrieb:
> Ich nehme mal an, für die 42 Spielfelder * 2 (zweifarbige LED's)
> brauchen wir schon einmal 84 Eingänge/Ausgänge.
Stichwort: Multiplexen von LEDs. Dann reichen 16 Ausgänge.
Und mit dem selben Multiplexer lassen sich dann noch die Taster 
einlesen, damit wird nur 1 Pin für die 7 Tasten benötigt...

Das Hirnschmalz steckt dann in der Software.

> Schalter zum Umstellen auf 2-Spieler-Modus bzw. 1-Spieler vs KI - Modus
KI-Modus?
Da würde ich vorschlagen, dass einer mal einen hardwareunabhängigen 
Algorithmus ausarbeitet. Das macht am PC mit VisualStudio sowieso viel 
mehr Spass als auf einem uC.

> Unsere Gruppe möchte gerne das Spiel "4 gewinnt" als elektronische
> Version mit LED's und Tastern und sowas bauen.
Wieviel Zeit habt ihr?
Wieviel Erfahrung habt ihr?

Denn "etwas machen" hat weniger mit "möchte gerne" zu tun als mit 
"kann".

: Bearbeitet durch Moderator
von Martin S. (morton)


Lesenswert?

Lothar M. schrieb:
> Martin S. schrieb:
>> Ich nehme mal an, für die 42 Spielfelder * 2 (zweifarbige LED's)
>> brauchen wir schon einmal 84 Eingänge/Ausgänge.
> Stichwort: Multiplexen von LEDs. Dann reichen 16 Ausgänge.
> Und mit dem selben Multiplexer lassen sich dann noch die Taster
> einlesen, damit wird nur 1 Pin für die 7 Tasten benötigt...
>
> Das Hirnschmalz steckt dann in der Software.

Auf Multiplexer bin ich bei einer Suche schon gestoßen. Das klingt schon 
einmal gut, danke. Ja, die Software wird das Aufwändige schätze ich. Ich 
denke den KI-Modus werden wir zeitlich nicht schaffen.

>> Schalter zum Umstellen auf 2-Spieler-Modus bzw. 1-Spieler vs KI - Modus
> KI-Modus?
> Da würde ich vorschlagen, dass einer mal einen hardwareunabhängigen
> Algorithmus ausarbeitet. Das macht am PC mit VisualStudio sowieso viel
> mehr Spass als auf einem uC.
>
>> Unsere Gruppe möchte gerne das Spiel "4 gewinnt" als elektronische
>> Version mit LED's und Tastern und sowas bauen.
> Wieviel Zeit habt ihr?
> Wieviel Erfahrung habt ihr?
>
> Denn "etwas machen" hat weniger mit "möchte gerne" zu tun als mit
> "kann".

Richtig. Erfahrung besteht beim Designen und Ätzen von Platinen, sowie 
das Löten und auch allgemein recht gute Erfahrung mit C# bzw. C++ - 
Programmierung.

Der zeitliche Rahmen sieht leider nur 4 Wochen mit insgesamt 48 Stunden 
pro Person (3 Personen = 144 Stunden) vor, wo jedoch auch noch das 
Gehäuse/Modell gebaut und die Dokumentation, sowie Präsentation erstellt 
werden muss...

von CAN-Fan (Gast)


Lesenswert?

Als Spielfeld würde ich eine Platine mit zweifarbigen SMD-LEDs nehmen, 
das dürfte relativ einfach sein. (Würth hat z.B. solche LEDs) Dann ein 
Gehäuse, das runde und matte Glasscheiben hat, damit es annähernd gleich 
hell wird.

Ansonsten durch Multiplexen die LEDs ansteuern. Was du testen kannst 
ist, wenn du die beiden LEDs in Reihe schaltest und die Mitte an einen 
MCU-Port legst, kannst du mit TriState, High, Low die LEDs entsprechend 
schalten. Bei Tristate können die, je nach Vorwiderstand, leicht 
leuchten. Bei den bicolor-smd LEDs fällt das bei Signalanwendungen kaum 
auf. Mit Leistungsleds hab ich es nicht getestet, aber da bräuchtest du 
so oder so einen extra Treiber.

von Martin (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

hier etwas zur KI ...
Aus meinem alten VG-Programm.
Da ist das Spielfeld enthalten, man kann Züge machen und Züge berechnen
lassen. Es wird mehrere Züge voraus berechnet.
Damals auf einem 386/20 war das Programm schon kaum zu schlagen.

Gruß,
Martin

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Martin S. schrieb:
> Richtig. Erfahrung besteht beim Designen und Ätzen von Platinen
Die Leiterplatten für den uC müsst ihr auch noch selber machen?

> Zu was für Komponenten könnt ihr uns raten?
Und die Komponenten selbst auswählen?

> Der zeitliche Rahmen sieht leider nur 4 Wochen mit insgesamt
> 48 Stunden pro Person (3 Personen = 144 Stunden) vor
Dann komme ich zum Schluss: die Zeit wird nicht reichen. Plant 
Überstunden ein.

> und auch allgemein recht gute Erfahrung mit C# bzw. C++ - Programmierung.
Das hilft auf einem uC nur sehr begrenzt weiter.
Mein Tipp: nehmt einen Arduino, dann habt ihr schon mal einen 
lauffähigen uC. Und zwischenzeitlich gibts dafür augenscheinlich sogar 
einen Debugger...

von Dussel (Gast)


Lesenswert?

Martin schrieb:
> hier etwas zur KI ...
Das sieht vom Code her nicht schlecht aus. Leider sind wenige Kommentare 
drin. Könntest du vielleicht bitte kurz das Grundprinzip erläutern?

von Dussel (Gast)


Lesenswert?

Lothar M. schrieb:
> nehmt einen Arduino
Und das von einem Moderator. Mit dem Forum geht es wirklich bergab :-(

;-P

von Der Andere (Gast)


Lesenswert?

Dussel schrieb:
> Mit dem Forum geht es wirklich bergab :-(

Nö, er berücksichtigt nur Tatsachen statt einfach "toll" zu rufen:

Martin S. schrieb:
> Der zeitliche Rahmen sieht leider nur 4 Wochen mit insgesamt 48 Stunden
> pro Person (3 Personen = 144 Stunden) vor, wo jedoch auch noch das
> Gehäuse/Modell gebaut und die Dokumentation, sowie Präsentation erstellt
> werden muss...

Martin S. schrieb:
> momentan mache ich meine Ausbildung zum staatl. gepr. Techniker in
> Elektrotechnik

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Dussel schrieb:
> Lothar M. schrieb:
>> nehmt einen Arduino
> Und das von einem Moderator. Mit dem Forum geht es wirklich bergab :-(
Ich muss mich hier ein Stück weit "outen": ich habe die Dinger selbst 
schon eingesetzt. Aber ich verwende eben auch auf dem Arduino kein 
delay(), sondern verwende wie gehabt Zustandsautomaten und 
Delta-Zeiten...  ;-)

: Bearbeitet durch Moderator
von Jens (Gast)


Lesenswert?

Moin,

den Aufwand für das Multiplexen und für die großen Platinen des 
Spielfeldes könnte der Einsatz von LED-Stripes mit WS2812b erheblich 
reduzieren.

Software gibt es fertig für den Arduino (den ich hier auch einsetzen 
würde), die Stripes sind im Raster 3,3cm verfügbar - das sollte doch 
passen. Einfach auf eine Trägerplatte aufkleben, weiße Plexiglasplatte 
davor und fertig. Vielleicht noch das Lochmuster aufkleben.

Ein Pin steuert alle 42 (oder bei zweiseitiger Ausführung 84) LEDs. Da 
bleiben genug Eingänge für Taster und Schalter.

Gruß
Jens

von F. F. (foldi)


Lesenswert?

Lothar M. schrieb:
>> und auch allgemein recht gute Erfahrung mit C# bzw. C++ - Programmierung.
> Das hilft auf einem uC nur sehr begrenzt weiter.

Arduino kannst du sogar in der dazugehörigen IDE mit C oder C++ 
programmieren.
Was im Hintergrund läuft, ist doch weitestgehend C++.

https://www.arduino.cc/en/Main/FAQ
Can I program the Arduino board in C? In fact, you already are; the 
Arduino language is merely a set of C/C++ functions that can be called 
from your code. Your sketch undergoes minor changes (e.g. automatic 
generation of function prototypes) and then is passed directly to a 
C/C++ compiler (avr-g++). All standard C and C++ constructs supported by 
avr-g++ should work in Arduino. For more details, see the page on the 
Arduino build process.

: Bearbeitet durch User
von Markus (Gast)


Lesenswert?

'Vier gewinnt' mit 'KI' haben wir damals in einer Vierer-Gruppe 
semesterbegleitend programmiert, darin war aber noch keine Hardware 
enthalten. Wie Lothar schon sagte: Sehr ambitioniert. Seid Ihr Euch 
sicher, daß das tatsächlich von Euch erwartet wird?

von F. F. (foldi)


Lesenswert?

Markus schrieb:
>Seid Ihr Euch sicher, daß das tatsächlich von Euch erwartet wird?

Scotty zu Kirk: "Ich brauche einen halben Tag!"
Kirk: "Ist viel zu lange!"
Scotty: "Gut, ich schaffe es in einer Stunde!"

: Bearbeitet durch User
von Martin S. (morton)


Lesenswert?

Hallo zusammen,

Karneval ist nun vorbei (Niederrhein und so ;)) und heute ist unser 
erster Projekttag.

Vielen Dank für die ganzen Ratschläge. Wir werden heute Abend die Sachen 
zusammentragen und ein genaueres Konzept für die Realisierung 
ausarbeiten.

Ich schätze, wir werden ein Arduino mit WS2812B-LED-Streifen, montiert 
in einem entsprechenden Spielfeld-Gehäuse mit halbtransparentem 
Plexiglas, bauen.

Ihr habt uns sehr geholfen, Danke!

Schöne Grüße,
Martin

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.