• Keine Ergebnisse gefunden

Interface – Gamecontroller

Im Dokument Das 8-Bit-Waffeleisen (Seite 52-61)

Aufgabenstellung

6.3.1 Dokumentation und Arbeitsentwicklung

F¨ur die Spieleingabe sollen zwei Controller entworfen werden. Statt einen eigenen Mikrocontroller zu verwenden, wird das Problem mit analoger Elektronik gel¨ost.

Als genaue Aufgabe wurde festgelegt: die Eingangssignale von bis zu vier Controllern mit jeweils 6 Kn¨opfen (Rechts, Links, Oben, Unten, A und B) sollen ¨uber eine 5-Bit Leitung an die CPU Gruppe

¨ubermittelt werden. Damit sind die Anforderungen der urspr¨unglich geplanten Spiele Pong, Snake und Tetris sowie die Navigation in einem Men¨u abgedeckt.

Beschreibung Blockschaltbild: Der Ausgang der Controller geht an 5 4x1 Multiplexer, die von der CPU Gruppe mit einem 2-Bit Signal angesteuert werden. So k¨onnen die Zust¨ande der einzelnen Controller abwechselnd abgefragt werden. Alle Controller funktionieren auf die gleiche Weise.

Um zu verhindern, dass ein Knopfdruck mehrfach eingelesen wird, wird das Signal der einzelnen Taster zun¨achst mit einem Kondensator entprellt.

Jedem Zustand des Steuerkreuzes wird ¨uber eine Logikschaltung eine 3-Bit Zahl (siehe Tabelle 5) zugeordnet, die mit D-Flip-Flops zwischengespeichert wird. Die Flip-Flops sind so beschaltet, dass man den Eingang sperren und den aktuellen Ausgang halten kann, sie haben also praktisch einen

”Enable-Port” [37]. Nach kurzer Verz¨ogerung durch eine Delay-Schaltung nutzt man diese Funktion, damit eine weitere Eingabe nicht registriert wird w¨ahrend ein Knopf gedr¨uckt ist. Der Ausgang liefert das Signal des zuerst bet¨atigten Tasters. Das Signal des A- und B-Tasters wird je separat als 1- Bit Signal ¨ubermittelt. Die Delay-Schaltung wird mit einem Kondensator und einem OPV als Komparator realisiert.

William Selbherr

Stand der Dinge (Dezember 2019) – Bisherige Entwicklung der Komponenten der Gamecontroller Die Entprellung ist auf dem Steckbrett f¨ur Testkn¨opfe realisiert, muss aber noch an die neuen Arcadekn¨opfe die auch in den Gamecontrollern verbaut werden angepasst werden. Hier muss die Kapazit¨at der Entprellkondensatoren nochmal ermittelt werden. Die Logik-schaltung (Abb. 25) ist bestimmt und in Hades bin¨ar und mit idealen Komponenten simuliert.

Diese muss nun weiter mithilfe von LTSpice in 74er Logik umgesetzt werden und anschließend un-ter realen Bedingungen auf dem Steckbrett getestet werden. Der invertierte Delay (Abb. 27) ist in LTSpice simuliert und ohne Inverter auf dem Steckbrett aufgebaut und getestet. Der Inverter [38]

muss noch mithilfe von zur Verf¨ugung stehenden Transistoren dimensioniert, gebaut und getestet werden. Er soll zus¨atzlich zum Invertieren des Signals den Offset des OPVs entfernen. Die FlipFlops mit Enable-Port (Abb. 26) sind ideal in Hades bin¨ar simuliert und m¨ussen noch mithilfe von LT-Spice auf real existierende Bauteile ¨ubertragen und am Steckbrett getestet werden. Die Multiplexer Schaltung ist noch nicht entwickelt da diese auf einer externen Platine im Hauptgeh¨ause und in enger Zusammenarbeit mit der Mikrocontroller-Gruppe geplant werden muss.

Raphael Klarwein

6.3.2 Schaltplan

Abbildung 24: Blockschaltbild f¨ur den Gamecontroller (Abb. erzeugt mit yEd)

Bit 1 Bit 2 Bit 3

Links 0 0 1

Oben 1 1 0

Rechts 0 1 0

Unten 1 0 0

Tabelle 5: Zustandstabelle f¨ur das Steuerkreuz(selbst erstellt)

Abbildung 25: Logik f¨ur das Steuerkreuz (Abb. selbst erstellt mit Notability)

ClockGen

Abbildung 26: D-Flip-Flop mit Enable-Port (eigene Aufnahme aus Hades) [3]

Abbildung 27: Delay-Schaltung (eigene Aufnahme aus LTSpice)

Abbildung 28: Schematic f¨ur den Gamecontroller (eigene Aufnahme aus Eagle)

Zuerst wurden die Taster ausgemessen und mithilfe von 1nF Kondensatoren entprellt, um St¨orverhalten durch Prellen zu verhindern. Anschließend wird dem Signal eines gedr¨uckten Knopfes des Steuer-kreuzes mithilfe der Logikschaltung zu eine 3-Bit-Zahl zugeordnet. Die Signale f¨ur die Aktionstasten werden direkt an den Controller-Ausgang weitergeleitet. Gleichzeitig wird das Knopfsignal zusam-mengef¨uhrt, wobei durch Dioden eine R¨uckkopplung verhindert wird, und an die Delayschaltung gebracht. Die Delayschaltung besteht aus einem Operationsverst¨arker als Komparator und einem vorgeschalteten RC-Glied. Am positiven Eingang des OPVs liegt eine Referenzspannung an, die

mit einem Spannungsteiler gesetzt ist. Der Ausgang des RC-Glieds liegt am negativen Eingang des OPVs an. Steigt dieser ¨uber die Referenzspannung, ¨andert sich der Ausgang des OPVs auf

”Low“.

Das ged¨ampfte Ausgangssignal des Operationsverst¨arkers wird mithilfe von zwei MOS-Transistoren invertiert und wieder auf 5V hochgezogen. Das verz¨ogerte Signal sowie das 3-Bit-Datensignal wird an 3 D-Flip-Flops mit selbst konstruiertem Enable-Port durch einen vorgeschalteten Multiplexer gegeben. Dabei hat man den Ausgang des Flip-Flops an einen Eingang des 2x1 Multiplexers r¨uckkoppelt und somit ¨uber dessen Selection-Eingang des ein Enable-Port entsteht. Dieser wird mit dem verz¨ogerten invertierten Signal verbunden, um die Eingabe anderer Signale zu sperren und gleichzeitige Eingaben zu verhindern. Die Ausg¨ange der FlipFlops sowie der Aktionskn¨opfe und ein Pr¨ufsignal, ob ein Controller angesteckt ist werden ¨uber M10-Stecker und Kabel an die Platine im Geh¨ause gegeben. Hier werden mithilfe von sechs 4x1 Multiplexer alle Signale der vier Control-ler mithilfe eines 2-Bit-Selectionsignals der MicrocontrolControl-lergruppe an einen weiteren M10-Stecker

¨ubermittelt, der jeweils den Status des angefragten Controllers an die Platine der Microcontroller-gruppe ¨ubertr¨agt.

Raphael Klarwein

Abbildung 29: Schnittstelle zwischen Gamecontroller input und Mikrocontrollergruppe (Auf-nahme aus Eagle)

6.3.3 Layout

Das Layout wurde mithilfe von Eagle erstellt und ist den Voraussetzungen zur Fertigung des Pro-jektLabors angepasst. Die Platine des Gamecontrollers ist ausserdem so dimensioniert, dass vier St¨uck auf eine Europlatine passen.

Raphael Klarwein

Abbildung 30: Layout der Platine des Gamecontrollers (Aufnahme aus Eagle)

Abbildung 31: Layout der Platine der Schnittstelle (Aufnahme aus Eagle)

6.3.4 Platine

Auf der Platine sind oben aufgereiht die Steckverbindungen f¨ur die Taster zu erkennen. Die ICs sind ¨uber Sockel auf der Platine montiert, damit sie ohne zu L¨oten ausgetauscht werden k¨onnen.

Alle anderen Komponenten sind Throughhole-Bauteile.

Raphael Klarwein

Abbildung 32: Best¨uckte Platine eines Gamecontrollers (Top)

Abbildung 33: Best¨uckte Platine eines Gamecontrollers (Bottom)

6.3.5 Zusammenfassung

Die Gruppe Gamecontroller hat die Aufgabe, dass Eingabe von Spieler zu Spielautomat zu ent-wickeln. Dabei spielt vor allem die Entprellung der Taster und die Umwandlung des Signals zur Weitergabe an den STM32 der CPU-Gruppe eine Rolle. Die Game-Controller werden aus Gr¨unden der Latenz direkt an die Platine der CPU-Gruppe angeschlossen. Es wurden zuerst Testschaltun-gen recherchiert und aufgebaut. Anschließend wurde das Platinen-Layout entworfen, die Platine gefertigt, best¨uckt und getestet.

Im Dokument Das 8-Bit-Waffeleisen (Seite 52-61)