Mithotronic

Free DIY projects for open minded people

LEDmePlay



Einführung

In den folgenden Abschnitten beschreiben wir den Bau des LEDmePlay, wie er auf dieser Seite zu sehen ist. Natürlich kann man unser Design ändern und Eigenschaften hinzufügen, wie beispielsweise zusätzliche Knöpfe, ein ausgefalleneres Gehäuse oder eine anders dimensionierte LED Matrix. LEDmePlay besteht aus dem Arduino MEGA 2560, einer RGB LED Matrix und einem passenden Netzteil, sowie diversen Kabelverbindungen. Als Gehäuse lassen sich Bilderrahmen verwenden. Sämtliche zum Commodore 64 kompatible Joysticks sollten verwendbar sein. Die Kosten für die Bauteile betragen ca. 100 Euro.

Grundkomponenten

Arduino MEGA 2560
RGB-LED-Matrix 32 * 32 z.B. von Adafruit (www.adafruit.com, PRODUCT ID: 1484) oder eine kompatible Matrix mit der Pixel-Konfiguration SMD3528 1R1G1B (P6 mit den Abmessungen 192mm * 192mm)
2 C64/AMIGA-Joysticks (z.B. Competition Pro, Quickjoy, Quickshot)
Schaltnetzteil (~2A) einstellbar auf 5V (je nach Bauteiltoleranz ist es sinnvoll, das Gerät mit 6V zu betreiben)


Verbindungskabel und Knöpfe

Potentiometer 4.7KΩ (zur Lautstärkeregelung)
2 Drucktaster (Reset, Pause)
Schalter (An/Aus)
2 9-polige Sub-D Einbaustecker (für die Joysticks)
5,5mm Einbaubuchse (Stromverbindung zum Netzteil)
5,5mm Stecker (interne Verbindung zum Arduino)
Lautsprecher (z.B. LSM-50A-8 mit 8Ω)
(Optional) USB Buchse (hexagonal, nicht flach) (Verbindung zum Computer)
(Optional) USB Stecker (interne Verbindung zum Arduino)


Kleinteile

Kupferlitze
Flachbandkabel (16-polig)
Pfostenbuchse mit Zugentlastung für das Flachbandkabel
Stiftleiste (2,54mm Rastermaß, insgesamt 30 Pins)
Schrumpfschlauch
4 10mm Abstandshülsen (um den Arduino auf der Rückwand zu befestigen)
M3 Schrauben (10mm für Lautsprecher und Einbaubuchsen, 20mm und den Arduino)
M3 Muttern
M3 Federringe


Gehäuse

2 Bilderrahmen der Größe 252mm * 252mm * 45mm (gibt es beim schwedischen Möbelhändler)
Kleine Holzschrauben
4 selbstklebende Gummifüße


Übersicht aller Bauteile:

LEDmePlay


Vorbereitung des Arduino

Vor Beginn der Bastelarbeit sollte die Arduino-Software auf dem Computer installiert werden. Diese wird benötigt um Spiele aufzuspielen oder eigene Spiele zu entwickeln. Die Arduino-Software und eine passende Anleitung findet man auf http://www.arduino.org oder http://www.arduino.cc. Außerdem benötigt man Bibliotheken für die RGB Matrix. Diesen finden sich auf der Adafruit-Webseite: http://learn.adafruit.com/32x16-32x32-rgb-led-matrix/downloads. Die AdafruitGFXLibraryMaster und die RGBMatrixPanelMaster Bibliothek müssen in das Arduino-Unterverzeichnis libraries kopiert werden (z.B. C:\Program Files (x86)\Arduino\libraries). Es ist sinnvoll den Arduino danach mit einem der Beispielprogramme zu bespielen, wie z.B. die Demo plasma_32x32 aus dem RGBMatrixPanel Verzeichnis. Da diese Demo eigentlich für den Arduino UNO erstellt wurde, muss der Programmcode minimal angepasst werden. Dazu muss das Programm in die Arduino-Software geladen werden, und folgende Zeilen müssen ersetzt werden:

#define CLK 8 // MUST be on PORTB!
#define OE 9


durch

#define CLK 50
#define OE 51


Danach kann das Programm auf den Arduino hochgeladen werden, der damit bereit für später ist.

Verbindung des Arduino MEGA mit der RGB-LED-Matrix und dem Netzteil

Als nächstes kümmern wir uns um die Verbindung zwischen Arduino und der RGB-LED-Matrix. Je nach Variante kann die Matrix aus einem Segment bestehen oder aus zwei Segmenten zusammengesetzt sein. In letzterem Fall müssen beide Segmente mit Strom versorgt werden. Dies erfolgt über ein Kabel, mit dem die Segmente verbunden werden. Es sollte der Matrix beiliegen. Im Bild unten rechts ist zu sehen, wie die oberen Pins, welche den Pluspol darstellen, mit dem roten Kabel verbunden werden. Die unteren Pins werden über das schwarze Kabel verbunden.

Arduino und RGB-LED-Matrix


Rückansicht der Matrix



Als nächstes ist das Verbindungskabel zu löten. Dazu wird zunächst das 16-polige Flachbandkabel durch die Zugentlastung der Pfostenbuchse gezogen und danach zwischen die Crimpkontakte geschoben. Danach wird die Buchse mit einer speziellen Crimpzange oder kräftig von Hand zusammengedrückt (siehe Bild unten links). Dieses Ende wird mit der Matrix verbunden. Das andere Ende des Kabels für die Verbindung zum Arduino erfordert noch etwas Arbeit. Zunächst müssen die Litze des Flachbandkabels abisoliert werden. Danach werden an die Drahtenden die Pins der Stiftleiste angelötet.

Flachbandkabel mit Verbinder


Flachbandkabel mit Stiftleistenstücken



Arduino und Matrix werden entsprechend dem unten dargestellten Schema verbunden. Dazu sollte die Stiftleiste in Stücke folgender Größe geschnitten werden: 4x Länge 2, 1x Länge 4, 1x einzelner Pin. Es empfiehlt sich, Schrumpfschlauch über die Litze zu stülpen, bevor man die Pins an die Litze anlötet. Nach dem Anlöten kann dann der Schlauch über die Lötstellen gezogen werden und z.B. mit einem Haartrockner erwärmt werden. Das fertige Kabelende ist auf dem Bild oben rechts zu sehen.

Verbindungsschema zwischen der LED-Matrix und dem Arduino MEGA

Pol 1: R1 Digital 24 (1. Pin des 1. Stiftleistenstücks der Länge 2)
Pol 2: G1 Digital 25 (2. Pin des 1. Stiftleistenstücks der Länge 2)
Pol 3: B1 Digital 26 (1. Pin des 2. Stiftleistenstücks der Länge 2)
Pol 4: GND wird nicht benötigt
Pol 5: R2 Digital 27 (2. Pin des 2. Stiftleistenstücks der Länge 2)
Pol 6: G2 Digital 28 (1. Pin des 3. Stiftleistenstücks der Länge 2)
Pol 7: B2 Digital 29 (2. Pin des 3. Stiftleistenstücks der Länge 2)
Pol 8: GND wird nicht benötigt
Pol 9: A Analog 0 (1. Pin des Stiftleistenstücks der Länge 4)
Pol 10: B Analog 1 (2. Pin des Stiftleistenstücks der Länge 4)
Pol 11: C Analog 2 (3. Pin des Stiftleistenstücks der Länge 4)
Pol 12: D Analog 3 (4. Pin des Stiftleistenstücks der Länge 4)
Pol 13: CLK Digital 50 (1. Pin des 4. Stiftleistenstücks der Länge 2)
Pol 14: LAT (STB) Digital 10 (einzelner Pin)
Pol 15: OE Digital 51 (2. Pin des 4. Stiftleistenstücks der Länge 2)
Pol 16: GND wird nicht benötigt


Als nächstes wird das Y-Kabel gelötet, über das die Stromversorgung erfolgt (siehe linkes Bild). Man benötigt eine zum verwendeten Netzteilstecker passende Einbaubuchse. Die Polarität sollte vor dem Löten überprüft werden. Das dicke rote Kabel an der LED-Matrix verbindet die Pluspole. Der Arduino wird mit einem weiteren Stecker verbunden, der in die Stromanschlussbuchse passt. Der innere Pin muss dabei mit dem Pluspol belegt werden. Optional kann ein An/Aus-Schalter eingelötet werden (direkt hinter den Pluspol an der Einbaubuchse). Nun ist der Aufbau bereit für einen ersten Test. Dazu sollte sichergestellt werden, dass das Netzteil auf 5V eingestellt ist und die Polarität korrekt ist (Pluspol am inneren Pin des Stromsteckers).

Power adapter


Preparation for the first test



Nachdem Matrix und Arduino auch mit dem Flachbandkabel verbunden wurden, kann der Strom eingeschaltet werden. Nach einigen Sekunden sollte der Arduino mit der Programmausführung beginnen. Zu diesem Zeitpunkt sollte auf der LED-Matrix etwas zu sehen sein (sofern vorher ein Demoprogramm aufgespielt wurde). Glückwunsch, dies war der schwierigste Teil! In manchen Fällen kann es vorkommen, dass auf der Matrix nur einige Linien sichtbar werden. Wir haben dieses Problem einige Male beobachtet. Sofern die Verkabelung nicht fehlerhaft ist, lässt sich das Problem durch Aus- und Anschalten beheben. Klappt dies jedoch nicht, liegt es möglicherweise an der verwendeten Spannung. Das System arbeitet mit 5V nahe der unteren Grenze der erforderlichen Spannung. Aufgrund von Bauteiltoleranzen ist es möglich, dass diese Grenze unterschritten wird. In diesem Fall haben wir das Problem dadurch gelöst, dass wir das Netzteil auf 6V eingestellt haben (wir haben dabei für die Bauteile keine Problem festgestellt).

LEDmePlay



Löten der übrigen Komponenten

LEDmePlay unterstützt herkömmliche C64- und Amiga-Joysticks mit einem Feuerknopf. Zum Anschluss dieser Joysticks dienen die 9-poligen Sub-D-Stecker. Diese müssen an Stiftleistenstücke mit sechs Pins gelötet werden, welche zum Arduino führen (siehe Übersichtstafel unten für die beiden Joysticks). Darüberhinaus müssen noch über Kabel mit einzelnen Pins die Drucktaster für Reset und Pause angeschlossen werden. Der Audio-Pin wird direkt an den Lautsprecher angeschlossen. Schleift man das Potentiometer dazwischen ein, kann man die Lautstärke regeln. Es ist zu beachten, dass alle Bauteile mit dem Groundanschluss (GND) des Arduinos verbunden werden müssen: der zweite Pin des Lautsprechers, die zweiten Pins der Drucktaster und jeweils Pin 8 der Sub-D-Stecker. Es folgt eine Übersicht der Anschlussbelegungen für die Joysticks, die Drucktaster und den Lautsprecher:

Anschlussbelegungen von Joysticks, Drucktastern und Lautsprecher

Audio-Pin Digital 2 (verbunden mit dem Potentiometer)
Joystick 1 hoch: Sub-D Stecker Pin 1 Digital 30
Joystick 1 runter: Sub-D Stecker Pin 2 Digital 32
Joystick 1 links: Sub-D Stecker Pin 3 Digital 34
Joystick 1 rechts: Sub-D Stecker Pin 4 Digital 36
Joystick 1 Feuer: Sub-D Stecker Pin 6 Digital 38
Joystick 1: Sub-D Stecker Pin 8 GND
Joystick 1 Feuer 2 (optional): Sub-D Stecker Pin 9 Digital 40
Joystick 2 hoch: Sub-D Stecker Pin 1 Digital 31
Joystick 2 runter: Sub-D Stecker Pin 2 Digital 33
Joystick 2 links: Sub-D Stecker Pin 3 Digital 35
Joystick 2 rechts: Sub-D Stecker Pin 4 Digital 37
Joystick 2 Feuer: Sub-D Stecker Pin 6 Digital 39
Joystick 2: Sub-D Stecker Pin 8 GND
Joystick 2 Feuer 2 (optional): Sub-D Stecker Pin 9 Digital 41
Reset Drucktaster Digital 42
Pause Drucktaster Digital 43


Die Bilder unten zeigen die Anordnung der Lötfahnen des Sub-D Steckers. Pin 5 wird nie verwendet. Pin 9 (optional für Feuerknopf 2) wird ebenfalls nicht verwendet. Nach dem Verlöten kann gespielt werden! Unsere Spiele finden sich hier: Spiele.

Sub-D mit angelöteten Kabeln


Sub-D Nummerierung der Lötfahnen


Gehäuse

Sofern der Bau bisher korrekt verlaufen ist, kann jetzt ein Gehäuse konstruiert werden. Die Möglichkeiten sind fast grenzenlos. Wir verwenden zwei Bilderrahmen, die wir bei einem schwedischen Möbelhändler gekauft haben. Der erste davon beherbergt lediglich die LED-Matrix, die an der Rückseite des Rahmens befestigt ist. Wie auf dem Bild links unten zu sehen ist, muss dieser Rahmen mit einer Säge bearbeitet werden, um eine rechteckige Aussparung für die Kabel zu schaffen. Die Glasscheibe des zweiten Bilderrahmens wird nicht benötigt und kann entfernt werden. Die beiden Bilderrahmen werden an ihren Innenseiten mittels kleiner Metall- oder Holzplättchen verschraubt. Diese werden durch Holzschrauben an ihrem Platz gehalten (siehe Mitte des Bildes rechts unten). An die Rückwand des zweiten Bilderrahmens wird der Arduino angeschraubt und mit den Distanzhülsen auf Abstand gehalten. Lautsprecher und die Anschlussbuchsen in der Rückwand werden ebenfalls an der Rückwand des Rahmens angebracht.Die Rückwand selbst wird durch die geschlossenen Klammern des Rahmens fixiert. Der einfachste Weg, eine USB-Verbindung vom Arduino zum Computer herzustellen, ist es, eine passende Öffnung in die Rückwand des Rahmens zu schneiden und das Kabel hindurchzuführen. Dort kann notfalls auch ein Verlängerungskabel angebracht werden.

Bereit für einen ersten Test


Verschraubte Rahmen


LEDmePlay


Rückansicht