Abo
  • Services:
Anzeige
Das verkabelte Touchboard
Das verkabelte Touchboard (Bild: Fabian Hamacher/Golem.de)

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.

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.

Anzeige

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:

  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.

 Plexiglas verkabelnMühsam nährt sich das Eichhörnchen 

eye home zur Startseite
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...



Anzeige

Stellenmarkt
  1. T-Systems International GmbH, verschiedene Einsatzorte
  2. Teambank AG, Nürnberg
  3. Landeshauptstadt München, München
  4. über JobLeads GmbH, Berlin


Anzeige
Hardware-Angebote
  1. und bis zu 60€ Steam-Guthaben erhalten
  2. ab 649,90€

Folgen Sie uns
       


  1. GVFS

    Windows-Team nutzt fast vollständig Git

  2. Netzneutralität

    Verbraucherschützer wollen Verbot von Stream On der Telekom

  3. Wahlprogramm

    SPD fordert Anzeigepflicht für "relevante Inhalte" im Netz

  4. Funkfrequenzen

    Bundesnetzagentur und Alibaba wollen Produkte sperren

  5. Elektromobilität

    Qualcomm lädt E-Autos während der Fahrt auf

  6. Microsoft

    Mixer soll schneller streamen als Youtube Gaming und Twitch

  7. Linux

    Kritische Sicherheitslücke in Samba gefunden

  8. Auftragsfertiger

    Samsung erweitert Roadmap bis 4 nm plus EUV

  9. Fake News

    Ägypten blockiert 21 Internetmedien

  10. Bungie

    Destiny 2 mischt Peer-to-Peer und dedizierte Server



Haben wir etwas übersehen?

E-Mail an news@golem.de


Anzeige
Quantencomputer: Nano-Kühlung für Qubits
Quantencomputer
Nano-Kühlung für Qubits
  1. IBM Q Mehr Qubits von IBM
  2. Quantencomputer Was sind diese Qubits?
  3. Verschlüsselung Kryptographie im Quantenzeitalter

XPS 13 (9365) im Test: Dells Convertible zeigt alte Stärken und neue Schwächen
XPS 13 (9365) im Test
Dells Convertible zeigt alte Stärken und neue Schwächen
  1. Schnittstelle Intel pflegt endlich Linux-Treiber für Thunderbolt
  2. Atom C2000 & Kaby Lake Updates beheben Defekt respektive fehlendes HDCP 2.2
  3. UP2718Q Dell verkauft HDR10-Monitor ab Mai 2017

Calliope Mini im Test: Neuland lernt programmieren
Calliope Mini im Test
Neuland lernt programmieren
  1. Arduino Cinque RISC-V-Prozessor und ESP32 auf einem Board vereint
  2. MKRFOX1200 Neues Arduino-Board erscheint mit kostenlosem Datentarif
  3. Creoqode 2048 Tragbare Spielekonsole zum Basteln erhältlich

  1. Re: Unix, das Betriebssystem von Entwicklern, für...

    Tuxgamer12 | 13:15

  2. Re: Die hohen Anschaffungskosten eines E-Autos...

    WonderGoal | 13:15

  3. Klingbeil will "Echokammern" verbieten -> Dann...

    Stoker | 13:14

  4. Re: Warum sind die Flügel nicht einklappbar?

    Niaxa | 13:14

  5. Und dann ...

    xondan | 13:12


  1. 13:35

  2. 13:17

  3. 13:05

  4. 12:30

  5. 12:01

  6. 12:00

  7. 11:58

  8. 11:50


  1. Themen
  2. A
  3. B
  4. C
  5. D
  6. E
  7. F
  8. G
  9. H
  10. I
  11. J
  12. K
  13. L
  14. M
  15. N
  16. O
  17. P
  18. Q
  19. R
  20. S
  21. T
  22. U
  23. V
  24. W
  25. X
  26. Y
  27. Z
  28. #
 
    •  / 
    Zum Artikel