Ein Drehbuch in Codeform

Unser Programm auf dem Touchboard muss drei Dinge gleichzeitig koordinieren: die situationsabhängige Ansteuerung der LEDs, das Abspielen von MP3-Dateien im richtigen Moment und die Überwachung der berührungsempfindlichen Sensoren.

Stellenmarkt
  1. Abteilungsleitung IT (m/w/d)
    PVS Limburg-Lahn GmbH, Limburg an der Lahn
  2. System Engineer Cloud Messaging (m/w/d)
    Allianz Deutschland AG, Stuttgart
Detailsuche

Die Umsetzung vereinfachen zwei Dinge: Zum einen läuft das Abspielen der MP3-Datei über die entsprechende Bibliothek von Bare Conductive weitgehend autonom, zum anderen befindet sich die Logik für die konkrete Ansteuerung jeder einzelnen LED auf dem Arduino und muss uns an dieser Stelle auch nicht weiter kümmern. Als Konsequenz müssen wir kein Multitasking selbst implementieren, sondern können uns weitgehend darauf beschränken, ein Drehbuch sequentiell abzuarbeiten. Das vollständige Arduino-Sketch für das Touchboard kann heruntergeladen werden.

Das Drehbuch besteht aus einer Folge von Zeilen (ScriptLine). Jede Zeile besitzt einen Zustand (state): Entweder wird veranlasst, eine MP3-Datei abzuspielen und parallel der Zustand der LEDs gesetzt (STATE_PLAY), oder es wird auf die Berührung eines Sensors gewartet und danach der Zustand der LEDs geändert (STATE_TOUCH).

Der zusammengesetzte Datentyp ScriptLine dient dazu, jede Drehbuchzeile zu speichern:

Golem Akademie
  1. IT-Fachseminare der Golem Akademie
    Live-Workshops zu Schlüsselqualifikationen
  2. 1:1-Videocoaching mit Golem Shifoo
    Berufliche Herausforderungen meistern
  3. Online-Sprachkurse mit Golem & Gymglish
    Kurze Lektionen, die funktionieren
Weitere IT-Trainings

  1. struct ScriptLine {
  2. byte state = STATE_PLAY;
  3. struct Pin pin[LEDS];
  4. byte touch = 0;
  5. byte file = 1;
  6. int delay = 0;
  7. };

Das Datenelement state repräsentiert die Art der Drehbuchzeile, das Array pin enthält Anweisungen, wie die LEDs angesteuert werden sollen. Ist es notwendig, auf einen Sensor zu reagieren, wird der betreffende Sensor mit Hilfe des Bitfeldes touch repräsentiert. Ein gesetztes Bit heißt: Der entsprechende Sensor muss berührt werden, bevor das Drehbuch weiter abgearbeitet wird. Soll hingegen eine MP3-Datei abgespielt werden, so enthält file die Nummer der MP3-Datei aus dem Einsprech-Skript und delay die Zeit in Millisekunden, die bis zur Ausführung der nächsten Drehbuchzeile gewartet werden soll - die Dauer entspricht meist der Spieldauer der MP3-Datei.

Mehr als Licht an und Licht aus

Im ScriptLine-Element wird die Ansteuerung der LEDs durch einen weiteren zusammengesetzten Datentyp repräsentiert. Das ist notwendig, da wir mehr als ein simples An und Aus bieten wollen. Tatsächlich können wir jede LED auf fünf verschiedene Arten ansteuern: an, aus, langsames Hellerwerden, langsames Dunklerwerden und eine konkrete, teilweise Helligkeit.

  1. struct Pin {
  2. char mode = PC_MODE_LOW;
  3. char value = 0;
  4. };

Der mode-Wert gibt an, wie die LED angesteuert werden soll, die Interpretation des value-Wertes hängt von mode ab. Soll die LED langsam dunkler oder heller werden, gibt er den Startwert vor, bei teilweiser Helligkeit den konkreten Helligkeitswert.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed
 Plexiglas verkabelnMühsam nährt sich das Eichhörnchen 
  1.  
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5
  7. 6
  8. 7
  9. 8
  10. 9
  11.  


Aktuell auf der Startseite von Golem.de
Software
Elon Musk verrät Teslas Tricks zur Bewältigung der Chipkrise

Teslas Autos haben viel Elektronik an Bord, doch die Chipkrise scheint dem Unternehmen nichts anzuhaben. Elon Musk erzählt, wie das geschafft wurde.

Software: Elon Musk verrät Teslas Tricks zur Bewältigung der Chipkrise
Artikel
  1. Quartalsbericht: Apple mit 36 Prozent Umsatzwachstum
    Quartalsbericht
    Apple mit 36 Prozent Umsatzwachstum

    Apple verkaufte viel mehr iPhones, iPads, Macs und Zubehör als im letzten Jahr. Der Umsatz stieg um 36 Prozent und auch der Gewinn lässt sich sehen.

  2. Energiespeicher: Tesla nennt Preis für Megapack-Akku mit 3 MWh
    Energiespeicher
    Tesla nennt Preis für Megapack-Akku mit 3 MWh

    Das Tesla Megapack ist ein industrielles Akkusystem mit einer Kapazität von 3 Megawattstunden. Nun wurde der Online-Konfiguratur online gestellt.

  3. Surface: Microsoft patentiert ungewöhnliches Scharnier für Notebooks
    Surface
    Microsoft patentiert ungewöhnliches Scharnier für Notebooks

    Baut Microsoft ein neues Surface-Gerät? Patentgrafiken zeigen zumindest ein bisher unbekanntes Gerät mit einem ungewöhnlichen Scharnier.

McFarmar 13. Jan 2015

Finde ich auch super. Ein Kollege hat ein Kind das im richtigen Alter ist - ich glaube...

Konstantin... 13. Jan 2015

den ich persönlich lustiger finde. Man benötigt zwar einen PC dafür, wenn ich aber...



  • Schnäppchen, Rabatte und Top-Angebote
    Die besten Deals des Tages
    Schnäppchen • Crucial Ballistix 16GB Kit 3200MHz 66,66€ • PCGH-Gaming-PCs stark reduziert (u. a. PC mit RTX 3060 & Ryzen 5 5600X 1.400€) • Samsung 27" Curved FHD 240Hz 239,90€ • OnePlus Nord CE 5G 128GB 299,49€ • Microsoft Flight Simulator Xbox Series X 69,99€ • 3 für 2 Spiele bei MM [Werbung]
    •  /