Projekt 47c: LED-Tetris: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Zeile 103: Zeile 103:


== Weblinks ==
== Weblinks ==
Links und Foren: http://www.heise.de/make/inhalt/2015/01/012/
Links und Foren: http://www.heise.de/make/inhalt/2015/01/012/
----<br/><br/>


== Literatur ==
== Literatur ==

Version vom 17. Januar 2019, 09:07 Uhr

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

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*223*23 mm)
  • 4 Taster
  • Kupfer Draht: 600 mm

Durchführung

In Folgende wird der Aufbau der Spielstation beschrieben.

Display


Geklebte LED-Streifen

Man schneidet erst die LED-Streifen in passende Längen zu. Als display größe haben wir 10 x 15 Pixeln, 10 Streifen à 15 LEDs zuzuschneiden. Das Zuschneiden von 15 Streifen à 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 à 1 Meter Länge aus 60 LEDs besteht. Wenn man den Zuschnitt erledigt hat, klebt man die zugeschnittenen selbstklebenden LED-Streifen auf eine der MDF-Platten, 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. Sind die LED-Streifen gleichmäßig auf der Rückplatte fixiert, bohrt man am Anfang und am Ende jedes Streifens je 2 Löcher à 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


Gebohrte Blende

Die zweite MDF-Platte 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. Dann 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 nicht ganz transparenten Folie 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 Papier 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. Optional kann ein weiterer Taster verwendet werden, um in beide Richtungen drehen zu können. Mithilfe von Drahtbrücken werden alle Taster-Ausgänge miteinander Verbunden . . An den 4 Eingängen der Taster, sowie an den zusammengeführten Ausgang hinter dem Widerstand werden an die Platine Leitungen drangelötet (insgesamt 5 Leitungen bei 4 Tastern). Da die Platine mit dem Arduino auf der Rückseite der Rückplatte montiert wird und die Platine mit den Tastern auf die Oberseite der Platte, werden weitere 5 Löcher à 2 mm Durchmesser gebohrt, um die 5 Leitungen auf die Rückseite zu führen. Dort werden sie an die Platine gelötet, um die Taster mit dem Arduino zu verbinden. 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.

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.

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

  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://www.youtube.com/watch?v=GFtronHGOy0.

Weblinks

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

Literatur

- Artikel in c‘t hacks 1/2015 (S. 12ff)



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