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, Berlin, Leinfelden-Echterdingen, München, Wolfsburg, Bonn
  2. Spheros GmbH, Gilching bei München
  3. T-Systems International GmbH, verschiedene Standorte
  4. Siltronic AG, Burghausen


Anzeige
Top-Angebote
  1. 9,99€ (zzgl. 4,99€ Versand oder versandkostenfrei bei Abholung im Markt)
  2. 154,90€ + 3,99€ Versand
  3. 59,99€

Folgen Sie uns
       


  1. UEFI-Update

    Agesa 1004a lässt Ryzen-Boards schneller booten

  2. Sledgehammer Games

    Call of Duty WWII spielt wieder im Zweiten Weltkrieg

  3. Mobilfunk

    Patentverwerter klagt gegen Apple und Mobilfunkanbieter

  4. Privatsphäre

    Bildungsrechner spionieren Schüler aus

  5. Raumfahrt

    Chinesischer Raumfrachter Tanzhou 1 dockt an Raumstation an

  6. Die Woche im Video

    Kein Saft, kein Wumms, keine Argumente

  7. Windows 7 und 8

    Github-Nutzer schafft Freischaltung von neuen CPUs

  8. Whitelist umgehen

    Node-Server im Nvidia-Treiber ermöglicht Malware-Ausführung

  9. Easy S und Easy M

    Vodafone stellt günstige Einsteigertarife ohne LTE vor

  10. UP2718Q

    Dell verkauft HDR10-Monitor ab Mai 2017



Haben wir etwas übersehen?

E-Mail an news@golem.de


Anzeige
Linux auf dem Switch: Freiheit kann ganz schön kompliziert sein!
Linux auf dem Switch
Freiheit kann ganz schön kompliziert sein!
  1. Digital Ocean Cloud-Hoster löscht versehentlich Primärdatenbank
  2. Google Cloud Platform für weitere Microsoft-Produkte angepasst
  3. Marktforschung Cloud-Geschäft wächst rasant, Amazon dominiert den Markt

Radeon RX 580 und RX 570 im Test: AMDs Grafikkarten sind schneller und sparsamer
Radeon RX 580 und RX 570 im Test
AMDs Grafikkarten sind schneller und sparsamer
  1. Grafikkarten AMD bringt vier neue alte Radeons für Komplett-PCs
  2. Grafikkarten AMD stellt Radeon RX 560 und Radeon RX 550 vor
  3. Grafikkarte AMDs Radeon RX 580 nutzt einen 8-Pol-Stromanschluss

Galaxy S8 vs. LG G6: Duell der Pflichterfüller
Galaxy S8 vs. LG G6
Duell der Pflichterfüller
  1. Smartphones Es wird eine spezielle Microsoft Edition des Galaxy S8 geben
  2. Galaxy S8 und S8+ im Kurztest Samsung setzt auf langgezogenes Display und Bixby
  3. Smartphones Samsungs Galaxy S8 könnte teuer werden

  1. frage zu Passmark CPU benchmarks

    mrgenie | 01:18

  2. Re: Bootzeit?

    Silberfan | 01:08

  3. Re: GA-AB350-Gaming3 teils verschlimmbessert

    Silberfan | 01:05

  4. Re: MSI X370 GAMING PRO CARBON mit ewiger Boot-Zeit

    Silberfan | 00:55

  5. Re: ASROCK AB350 Pro4

    Silberfan | 00:48


  1. 12:40

  2. 11:55

  3. 15:19

  4. 13:40

  5. 11:00

  6. 09:03

  7. 18:01

  8. 17:08


  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