Definition der Koordinaten und Programmierung

Der Koordinatenursprung des LED-Panels liegt in der Ecke links oben. Die X-Achse zeigt nach rechts und die Y-Achse nach unten.

Stellenmarkt
  1. Informatiker/in (FH) (m/w/d)
    Ruhrverband, Essen
  2. IT-Systemadministrator (m/w/d)
    Gesundheitsverbund Landkreis Konstanz, Konstanz
Detailsuche

Die X-Koordinaten aller auf dem Panel zu zeichnenden Objekte werden durch die elf Vierecke der Minutenreihe bestimmt. Diese Vierecke passen mit einer Breite von jeweils nicht mehr als vier Pixel und einem Abstand von einem Pixel in die vorhandenen 64 Pixel des Panels hinein.

In Y-Richtung sind zwei Stunden- und zwei Minutenreihen mit jeweils einem Zwischenraum von zwei Pixeln unterzubringen. Damit es gut aussieht, muss die Höhe des Rhombus etwas größer gewählt werden als die der darunter befindlichen Reihen.

Anhand dieser Kriterien legen wir die exakten Koordinaten für jedes Viereck fest.

  • Das LED-MATRIX01 von Joy-IT ist ein LED-Panel mit 64 x 64 Bildpunkten. (Bild: Michael Bröde)
  • Das sind die Koordinaten für unsere Berlin-Uhr. (Bild: Michael Bröde)
  • Die UML-Stundenblöcke (Diagramm: Michael Bröde)
  • Die Uhr in UML (Diagramm: Michael Bröde)
Das sind die Koordinaten für unsere Berlin-Uhr. (Bild: Michael Bröde)
Golem Karrierewelt
  1. Einführung in Unity: virtueller Ein-Tages-Workshop
    13.10.2022, Virtuell
  2. Automatisierung (RPA) mit Python: virtueller Zwei-Tage-Workshop
    03./04.11.2022, Virtuell
Weitere IT-Trainings

Das Ziel besteht darin, eine Konsolen-App zu erstellen, die die farbigen Vierecke der Berlin-Uhr an den vorgesehenen Koordinaten auf das LED-Panel zeichnet. Unseren Raspberry-Computer haben wir entsprechend vorbereitet: Das Mono-Framework und die LED-Software-Bibliotheken sind installiert. Am Ende werden wir die Konsolen-App zum Autostart des Raspberrys hinzufügen, so dass er nach dem Einschalten auch die Berlin-Uhr hochfährt.

Für die Programmierung verwenden wir C#. C# ist eine Sprache, die objektorientierte Programmierung (OOP) nicht nur ermöglicht, sondern konzeptionell so implementiert, dass wir praktisch gar nicht darum herumkommen, sie anzuwenden.

Wer im Microsoft-Windows-Universum mit C# auf einem gut ausgestatteten PC arbeitet, braucht sich üblicherweise über die Speicherverwaltung keine Gedanken zu machen. Instanziierte Objekte, die während der Laufzeit eines Programms nicht mehr benötigt werden, räumt der Garbage Collector selbstständig weg und bereinigt den Speicher.

Da wir nicht in der Windows-Welt unterwegs sind und da wir eine Endlos-Schleife programmieren, die rund um die Uhr laufen wird, müssen wir aber ein paar Überlegungen zur Speicherverwaltung anstellen. Es gilt zu verhindern, dass irgendwann der Speicher voll ist.

Raspberry Pi: Das umfassende Handbuch. Über 1.000 Seiten in Farbe. Mit Einstieg in Linux, Python und Elektrotechnik. Aktuell zum Raspberry Pi 4

Unter den gegebenen Bedingungen sollten wir einkalkulieren, dass der Garbage Collector nicht immer dazu kommt, seine Aufgaben zu erfüllen. Wir gehen beim Programmieren also auf Nummer sicher und instanziieren unsere Objekte da, wo es möglich ist, im Vorhinein.

Ein Beispiel:

Hier wird bei jedem Schleifendurchlauf ein String instanziiert (auch Variablen sind Objekte). Das kostet Speicher:

  1. for (int i = 0; i < length; i++)
  2. {
  3. string tmp = "Tue was mit i=" + i.ToString();
  4. // Verarbeite tmp
  5. }

Besser ist es, wenn das Objekt einmal vor der Schleife instanziiert und danach in der Schleife nur noch zugewiesen wird:

  1. string tmp;
  2. for (int i = 0; i < length; i++)
  3. {
  4. tmp = "Tue was mit i=" + i.ToString();
  5. // Verarbeite tmp
  6. }

Abgesehen von diesen Überlegungen orientieren wir uns bei der Programmierung an solchen Konzepten, die uns das luftig hohe OOP der Sprache C# bietet. Das Berlin-Uhr-Projekt ist dafür aufgrund der quasi redundanten Objekte (Vierecke) gut geeignet.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed
 Zeitanzeigen auf der Original- und der Raspberry-UhrC#-Klassen und cs-Skripte 
  1.  
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5
  7.  


Lemo 13. Jul 2022 / Themenstart

Wieso muss man dann immer wieder neue Konzepte erfinden, nur um etwas zu verkomplizieren...

amagol 08. Jul 2022 / Themenstart

Kurz nachgeschaut und ein DS3231 scheint allein schon teurer zu kommen als ein ESP-01 (z...

pinki 06. Jul 2022 / Themenstart

Statt mono könnte man auch das aktuelle dotnet (mit deutlich mehr Features) nehmen und...

AvailableLight 05. Jul 2022 / Themenstart

Ne, die Zeiger werden per festgeklebtem Sitzstreik am weiterlaufen gehindert und dürfen...

Kommentieren



Aktuell auf der Startseite von Golem.de
Hacking
Der Bad-USB-Stick Rubber Ducky wird noch gefährlicher

Mit einer neuen Version des Bad-USB-Sticks Rubber Ducky lassen sich Rechner noch leichter angreifen und neuerdings auch heimlich Daten ausleiten.

Hacking: Der Bad-USB-Stick Rubber Ducky wird noch gefährlicher
Artikel
  1. Maxus ET90: Europas erster elektrischer Pick-up ist da
    Maxus ET90
    Europas erster elektrischer Pick-up ist da

    Der Maxus eT90 ist ein elektrischer Pick-up, der Ende 2022 mit fünf Sitzplätzen und großem Akku auf den europäischen Markt kommen soll.

  2. MagSafe Anrufrekorder: Magmo nimmt iPhone-Telefonate auf
    MagSafe Anrufrekorder
    Magmo nimmt iPhone-Telefonate auf

    Der Magmo ist ein iPhone-Anrufrekorder, der per Magsafe am Smartphone befestigt wird. Finanziert wird er per Crowdfunding.

  3. E-Mountainbike Graveler 29 Zoll: Aldi verkauft Mountain-E-Bike von Prophete
    E-Mountainbike Graveler 29 Zoll
    Aldi verkauft Mountain-E-Bike von Prophete

    Aldi bietet ein sportliches E-Bike für knapp 1.000 Euro an. Das Graveler 29 Zoll ist für unwegsames Gelände und die Stadt gedacht und dabei recht leicht.

Du willst dich mit Golem.de beruflich verändern oder weiterbilden?
Zum Stellenmarkt
Zur Akademie
Zum Coaching
  • Schnäppchen, Rabatte und Top-Angebote
    Die besten Deals des Tages
    Daily Deals • MindStar (MSI RTX 3090 Gaming 1.269€, Seagate Festplatte ext. 18 TB 295€) • PS5-Deals (Uncharted Legacy of Thieves 15,38€, Horzizon FW 39,99€) • Alternate (Cooler Master MM731 Gaming-Maus 39,99€ statt 89€, Kingston Fury DDR5-6000 32GB 219,90€ statt 246€) • 10%-Gaming-Gutschein bei eBay [Werbung]
    •  /