Ich möchte ein hölzernes Schachbrett herstellen, auf dem Sie mit normalen Stücken spielen können (dh nicht mit modifizierten Stücken, die RFID-Codes, Magnete usw. verwenden), das jedoch mit einer Software verbunden ist, die meine Bewegungen berücksichtigt und als solche fungiert der zweite Spieler.
Ich habe darüber nachgedacht, wie ich Teile auf der Tafel erkennen soll, und ich habe die Entscheidungen getroffen, die ich nicht unbedingt treffen muss, um zu erkennen, welche Teile wo sind: Die "Wahrheit" ist in der Software, wenn ich also ein Teil von A nach B verschiebe kann die Software herausfinden, welches Teil bewegt wurde.
Ich hatte also die Idee, zwei Löcher in jedes Feld des Schachbretts zu bohren, eines in der Mitte und eines in der oberen rechten Ecke:
- Der in der Mitte wird für einen Helligkeitssensor verwendet, um zu erkennen, ob ein Teil auf dem Feld steht oder nicht.
- Das in der Ecke wird als LED verwendet, um anzuzeigen, welches Teil der Benutzer für den Computer bewegen muss, damit die reale Situation wieder mit der Softwaresituation übereinstimmt.
Ich möchte einen Raspberry Pi als Hardwaregrundlage für die auszuführende Software verwenden, die in Node.js geschrieben wird (aber das sollte für diese Frage nicht wichtig sein).
Am Ende habe ich also 64 Helligkeitssensoren und 64 LEDs, die ich einzeln ansprechen muss. Mit anderen Worten: Ich benötige 64 Ausgänge und 64 Eingänge. Und dies ist natürlich etwas, das ein Raspberry Pi nicht von der Stange schafft - und ich denke, dass es einen besseren Weg geben muss, als 128 I / O-Ports zu haben.
Da ich der Meinung bin, dass das Erkennen des Platinenstatus die wichtigere Aufgabe ist, habe ich mich im Internet mit der Handhabung einer 8x8-Matrix von Schaltern befasst. Ich fand den Vorschlag, einen Mikrocontroller zu verwenden, der die Spalten der Karte nacheinander abtastet und in jeder Spalte erkennt, ob eine Zeile (= ein Feld) verwendet wird oder nicht.
Dies würde die Komplexität auf 8 Ausgänge und 8 Eingänge reduzieren (um den Status der Karte lesen zu können).
Dazu habe ich ein paar Fragen:
- Sind meine Gedanken richtig, dh ist dies der richtige Ansatz, oder gibt es eine bessere Alternative, auf die ich achten sollte?
- Worauf muss ich achten, da ich keine Erfahrung mit Mikrocontrollern habe? Benötige ich nur einen Mikrocontroller mit 16 Pins, der in einer Sprache programmiert werden kann, die ich schreiben kann, oder ...?
- Hat jemand ein solches Board gebaut und hat einige Ratschläge oder kennt ein Tutorial, das Sie durch den Prozess führt?