Projekt 47c: LED-Tetris

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen

Autoren:Jorex Lado, NJeutchou Lerticia

Betreuer: Daniel Klein

Abb 1: LED-Tetris


→ zurück zur Übersicht: WS 18/19: Fachpraktikum Elektrotechnik (MTR)

Aufgabe

Setzen Sie ein Tetris-Spiel mit LED-Streifen und Arduino um (vgl. Abb 1). Ein Beispiel finden Sie im Artikel c‘t Make: 1/2015.

Erwartungen an die Projektlösung

  • Lesen Sie den Artikel in c‘t hacks 1/2015 (S. 12ff)
  • Planen Sie den Aufbau mit Nutzereingabe (z.B. Taster)
  • Beschaffen Sie die Bauteile
  • Realisierung des Aufbaus
  • Programmieren Sie das Spiel
  • Machen Sie ein spektakuläres Videos, welches die Funktion visualisiert.
  • Test und wiss. Dokumentation
  • Live Vorführung während der Abschlusspräsentation

Einleitung

In diesem Projekt geht es darum zu zeigen, wie man mit LED-Stripes ein individuelles Display herstellen kann und darauf eine Spielbare Version Klassikes "Tetris" zu laden. Ein Artikel aus der Zeitschrift „c't MAKE(1/2015)“ diente dabei als Vorlage.

Projekt

Projektplannung

In der Planungsphase erkundigt man sich nach früheren Projekten,

die ähnliche sind. Auf den Videoplatteform You-Tube sieht man

Abb 2: Plannung

wie andere Menschen das Tetris-Spiel mit LEDs realisiert haben. Dies ist die Grundlage für weitere Vorbereitungsarbeiten.

Vorbereitung

Bevor man sich für die die Vorbereitung der Materialbeschaffung beschäftigt, muss man gucken was für Möglichkeiten es gibt: Material, Geld und Werkzeuge, dann Skizziert man ein Aufbau oder ein oder zeichne man eine Technische Zeichnung. am ende macht man eine Materialiste und bestellt bei Händler alles was man braucht, um Versandkosten zu sparen.

Materialbeschaffung

  • 3 Meter RGB LED-Steifen WS2812B(60LEDs/Meter),
  • Arduino Nano/Uno,
  • Stromversorgung, 5V, 2A,
  • MDF-Platten( 300*200*8 mm): 2 Stück,
  • Kabel: 0,5 mm²(2 Meter),
  • Wiederstand 220 Ohm: 1 Stück,
  • Doppelseitige Klebeband (2 mm²),
  • IKEA-Rahmen Ribba (325*233*23 mm)
  • 4 Taster
  • Kupfer Draht: 600 mm
  • Auflistung der benötigten Materiel in Link auf SVN-Projektordner

Durchführung

In Folgende wird der Aufbau der Spielstation beschrieben.

Display


Abb 3: Geklebte LED-Streifen
Abb 4: Rückseite des Plattes

Man schneidet erst die LED-Streifen in passende Längen zu, als display größe haben wir 10 x 15 Pixeln, 10 Streifen mit je 15 LEDs zuzuschneiden. Das Zuschneiden von 15 Streifen mit je 10 LEDs hat zur Folge, dass der Lötaufwand steigt. In beiden Varianten kommt es zu keinem Verschnitt bei den Streifen, da eine LED-Rolle mit 1 m Länge aus 60 LEDs besteht.

Wenn man den Zuschnitt erledigt hat, klebt man die zugeschnittenen selbstklebenden LED-Streifen auf eine der MDF-Platten wie es auf die Abb.3 zu sehen ist, die später die Rückplatte der Spielstation wird, beim drankleben der Streifen ist der richtige Abstand der Streifen zu beachten. Die LEDs beim WS2812B haben einen Abstand von 16,7mm zueinander, darum sollten auch die Streifen parallel und im gleichen Abstand geklebt werden, damit die spätere Bildschirmwiedergabe nicht verzerrt wirkt.

Wenn die LED-Streifen gleichmäßig auf der Rückplatte geklebt sind, bohrt man am Anfang und am Ende jedes Streifens je 2 Löcher mit 5mm Durchmesser durch die Rückplatte, Die Löcher benötigt man für die Spannungsversorgung (5V) und die Datenleitung (DIN) auf einer Seite, sowie Masse (GND) und Datenleitung (DOUT) auf der anderen Seite.

Die Leitungen werden an die Streifen gelötet und durch die Löcher zur Rückseite der Platte geführt. Die 10 Spannungsversorgungsleitungen auf der einen, sowie die 10 Masseleitungen auf der anderen Seite verbindet man je miteinander, um eine einzelne Leitung für die Spannungsversorgung und eine für die Masse zu haben. Die Datenleitungen werden dagegen vom DOUT eines Streifens zum DIN des nächsten Streifens bis zum letzten Streifen durchgeschliffen. Der DOUT Anschluss des letzten Streifens bleibt frei.

Blendwerk


Abb 5:Gebohrte Blende

Die zweite MDF-Platte wie es auf die Abb.4 zu sehen ist, wird später als Blendwerk für die LEDs dienen und wird auf die andere Platte draufgelegt.

Doch vorher muss diese Platte bearbeitet werden. Dazu wird zunächst sorgfältig und präzise eine Matrix eingezeichnet, auf der man die Positionen aller Bohrlöcher für die LEDs sieht, danach werden mit einem dünnen Bohrer alle 150 Löcher vorgebohrt und mit einem Bohrer à 10 mm Durchmesser die Löcher vergrößert. Bei den Bohrarbeiten ist auf hohe Präzision zu achten, damit alle Bohrlöcher den gleichen Abstand zueinander haben.

Am ende werden alle 150 Bohrlöcher mit einem Senker auf einen Durchmesser von 15 mm auf der Oberkante der Platte entgratet. Kleine Unterschiede in den Bohrlochabständen des vorangegangenen Arbeitsschrittes können durch das Senken ausgeglichen werden, sodass man dennoch einen gleichmäßigen sichtbaren Pixelabstand hat.

Optional kann man jetzt auf einfachem herkömmlichen DinA4 Blatt oder einer Moosgummi eine Lochmaske ausdrucken, die auf das Blendwerk gelegt werden kann, der gedruckte schwarze Bereich um die Bohrlöcher maximiert den Kontrast, während der übrige weiße Teil möglichst viel Licht von den LEDs in Form von Kreisen à 15 mm durchlässt. Ohne Die Abdeckung des Blendwerkes mit Moosgummi oder Ähnlichem sind später die einzelnen SMD-LEDs sichtbar und können für den Spieler als unangenehm blendend wirken.

Arduino Uno Pinbelegung


Auf der Rückseite des Plattes wird der Arduino Uno gelötet, sowie die zusammengeführten Leitungen 5V und GND. Es ist darauf zu achten, dass auf der Rückseite der Platine unter dem Arduino Uno die Leiterbahnen unterbrochen werden müssen, damit die jeweils gegenüberliegenden Pins des Arduino nicht kurzgeschlossen sind. Die Unterbrechungen dreht man am Besten händisch mit einem 3 mm Metallbohrer.

Die Pinbelegung des Arduino ist bis auf einige Stellen frei wählbar. Die 5V-Leitung der LEDs wird mit dem 5V des Arduinos verbunden. Auf einer weiteren Streifenrasterplatine werden Drucktaster gelötet. Dabei ist auf eine ergonomische Platzierung der einzelnen Taster zu achten, um das spätere Spielerlebnis angenehmer zu gestalten. Benötigt werden mindestens 4 Taster für das Spiel Tetris. Die Links-, Rechts-, Runter- und Dreh-Taste.

Wir verbinden die Taster mit dem Kupfer Draht Und Digitalports D08, D09, D10, D11, sowie. Die Pins 11 bis 14 sind willkürlich gewählt worden. Zum Schutz der LEDs wird zwischen dem Arduino und dem DIN des ersten LED-Streifens ein 220 Ohm Widerstand in Reihe gelötet. Ohne den Widerstand würde bei versehentlicher Unterbrechung der Masseleitung ein großer Strom durch die Datenleitung zurückfließen und die erste LED in der Reihe zerstören. Optional und für mehr Spielgenuss kann man einen magnetischen Summer an einen der freien Digitalpins löten, der das Tetris-Spiel durch Tonwiedergabe begleitet.

Leiterplatten Entwurf

Abb.6: Fritzing Projekt

Der elektrische Schaltplan haben wir mit Hilfe von einem Freeware-Software (Fritzing; http://fritzing.org/home/) montiert. Dort ist es möglich die einzelne elektrische Bauteile virtuell miteinander zu verschalten und zu parametrisieren. Anschließend ist es möglich daraus einen elektrischen Schaltplan zu erzeugen und sogar auch Leiterplatten-Design ist hiermit möglich. Die verschalteten elektrische Bauteile, der Schaltplan, die Leiterplatten-Layout und auch das Arduino Code zusammen lassen sich in einem Fritzing-Projekt als eine Datei speichern.

Software-Design

Die Softwrae wurde mit Arduino IDE entwickelt. Die LED-Streifen wurden mit Hilfe der Bibliotheken "FastLED" angesteuert. Die Quellcodes wurde im SVN-Projektordner hochgeladen. Das Tetris-Spiel wird über die 4 Taster wie folgt gesteuert: Während des spiels:

Steuerung Funktion
Links-Taste Stein nach links bewegen
Rechts-Taste Stein nach rechts bewegen
Drehen-Taste Stein um 90° nach rechts drehen
Runter-Taste Stein schnell nach unten bewegen

Zusammenfassung

Zusammengefasst lässt sich sagen, dass die Aufgabe nicht so einfach war, wie es schien. Tetris zu programmieren ist zwar keine unlösbare Aufgabe, aber auch nicht so einfach. Trotzdem sind wir zu einen tollen Ergebnis gekommen. Was noch fehlte waren richtige Kästchen, da die LEDs ein wenig irritieren und nicht perfekt für ein Spiel aussehen. Was man verbessern kann wäre ein Plastikwinkel als Profilleiste, zudem können wir auch die Geschwindigkeit erhöhen, indem sie ein Startmenü erstellen, das dient dazu, dass die Anfangsgeschwindigkeit geändert werden könnte. Wenn man Spaß an solchen Spielen hat, würden wir dieses Projekt empfehlen.

Neben Tetris lassen sich auch andere Spiele (zum Beispiel Snake) programmieren, die eine gleiche Anzahl an Bildschirmpixeln benötigen.

Lessons Learned

Abb 7: Plakat für die Messe
  1. Da wir für das Projekt zu zweit waren haben wir gelernt was Teamarbeit bedeutet.
  2. Haben wir gelernt wie man Material für das Projekt organisiert(kauft).
  3. Im Team haben wir gelernt gemeinsam Lösungswege zu finden.
  4. Da wir in der Vergangenheit nie gelötet haben, war es für uns eine Herausforderung und Lehre zugleich.
  5. Wir haben außerdem gelernt bessere und schnellere Recherchen zu führen.

Herausforderungen des Projektes

Bei der Durchführung des Projektes haben wir einige Schwierigkeiten gehabt.

  1. Die Löcher in die MDF-Platte zu Bohren, so dass die LED-Streifen mit den Abständen zu den einzelnen LED´s genau passen.
  2. Wir haben viel Zeit benötigt um die richtige Software (Bibliothek-FastLED) als Download zu finden.
  3. Die Größte Schwierigkeit bestand für uns darin die LED-Streifen auf die MDF-Platte zu löten, dabei gelang es uns nicht alle LED´s so zu löten das sie funktionieren.

Projektunterlagen

Link auf SVN-Projektordner

YouTube Video

https://youtu.be/jN-Ldf_auuI.

Weblinks

Links und Foren: http://www.heise.de/make/inhalt/2015/01/012/

Literatur

- Artikel in c‘t hacks 1/2015 (S. 12ff)
- http://fritzing.org/home/



→ zurück zur Übersicht: WS 18/19: Fachpraktikum Elektrotechnik (MTR)