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

Mühsam nährt sich das Eichhörnchen

Unsere Zeichnung besteht aus einzelnen Elementen wie einem Baum, einem Eichhörnchen, einer Nuss und der Sonne. Diese selbst sind Sensoren, welche wir abhängig vom aktuellen Fortschritt der Geschichte auswerten müssen. Diesen Elementen sind auch LEDs zugeordnet, auch sie leuchten - oder eben nicht - abhängig vom Stand der Geschichte. Welche Sensoren und LEDs wann in der Geschichte relevant sind, beschreibt nun das Drehbuch.

Weite Teile des Programms bestehen deshalb aus der Definition des Drehbuchs mit Hilfe der ScriptLine-Elemente, es ist im Array script gespeichert. Die Einträge des Arrays werden hart-codiert (struct ScriptLine script[SCRIPTLINES];), hier beispielhaft Zeile 12 und 13 des Drehbuchs:

Anzeige

  1. script[12].state = STATE_TOUCH;
  2. script[12].touch = E_BUSH_1 | E_BUSH_2 | E_BUSH_3;
  3. script[12].pin[SQUIRREL].mode = PC_MODE_HIGH;
  4. script[12].pin[SUN].mode = PC_MODE_PWM;
  5. script[12].pin[SUN].value = 25;
  6. script[12].pin[NUT].mode = PC_MODE_HIGH;
  7.  
  8. script[13].state = STATE_PLAY;
  9. script[13].file = 10;
  10. script[13].pin[SQUIRREL].mode = PC_MODE_HIGH;
  11. script[13].pin[SUN].mode = PC_MODE_PWM;
  12. script[13].pin[SUN].value = 50;
  13. script[13].pin[NUT].mode = PC_MODE_HIGH;
  14. script[13].delay = 2000;

Die 12. Zeile weist an, auf eine Berührung eines der drei Büsche zu warten. Wurden sie berührt, wird die LED hinter dem Eichhörnchen angeschaltet, die LED hinter der Sonne leuchtet nur mit einem Bruchteil der Leuchtkraft und so weiter. Nach der Berührung wird direkt die 13. Zeile ausgeführt - in welcher die MP3-Datei Nummer 12 abgespielt wird und unter anderem die Sonne etwas heller erscheinen soll. Außerdem soll 2 Sekunden gewartet werden, bevor die nächste Drehbuchzeile ausgewertet wird.

In beiden Drehbuchzeilen wird der LED-Eintrag für die Nuss (NUT) gesetzt, obwohl er sich eigentlich nicht ändert. Das ist aber notwendig, da das zugrundeliegende Element standardmäßig mit PC_MODE_LOW initialisiert wurde, die LED würde automatisch beim Aufruf der 13. Zeile ausgeschaltet werden.

Der Speicher ist begrenzt

Unser Drehbuch besteht aus 17 ScriptLine-Elementen. Das erscheint wenig, der Speicherbedarf sollte aber nicht unterschätzt werden; der Mikrocontroller hat nur 2,5 Kbyte RAM. Tatsächlich sind wir in einer ersten Variante der ScriptLine-Implementierung bei weniger ScriptLine-Zeilen an diese Grenze gestoßen. Das liegt auch daran, dass die eingebundenen Bibliotheken selbst noch einmal rund 600 Byte Speicher im Betrieb anfordern.

In der Folge haben wir alle Datentypen im ScriptLine-Element noch einmal sorgfältig bedacht. Den größten Erfolg brachte allerdings eine Umstellung des touch-Elementes von einem Array mit den Sensorzuweisungen auf ein Bitfeld. Das spart zwar enorm Speicher, leider ist dadurch für Anfänger der Code für die Sensor-Auswertung aber weniger transparent.

Nichtsdestotrotz, auch mit der Umstellung dürfte nach spätestens 21 oder 22 Scriptzeilen Schluss sein. Ein echter Befreiungsschlag wäre die Speicherung des Drehbuches in einer Datei auf der Micro-SD-Karte. Das würde aber zu einem wesentlichen Code-Umbau führen und soll hier nicht weiter verfolgt werden.

 Ein Drehbuch in CodeformMusik abspielen 

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. MBtech Group GmbH & Co. KGaA, Ingolstadt
  2. Continental AG, Frankfurt, Regensburg
  3. GK Software AG, St. Ingbert, Schöneck, Köln
  4. über Harvey Nash GmbH, Raum Ludwigsburg


Anzeige
Blu-ray-Angebote
  1. (u. a. Reign, Person of Interest, Gossip Girl, The Clone Wars)
  2. (u. a. Underworld Awakening 9,99€, Der Hobbit 3 9,99€ und Predestination 6,97€)
  3. inklusive Wonder Woman Comic

Folgen Sie uns
       


  1. SNES Classic Mini

    Nintendo bringt 20 Klassiker und ein neues Spiel

  2. Wahlprogramm

    SPD will 90 Prozent der Gebäude mit Gigabit-Netzen versorgen

  3. Erziehung

    Erst schriftliche Einwilligung, dann Whatsapp für Kinder

  4. Grafikkarte

    Sapphire bringt Radeon RX 470 für Mining

  5. Betrug

    FTTH-Betreiber wehren sich gegen Glasfaser-Werbelügen

  6. Gamescom

    Mehr Fläche, mehr Merkel und mehr Andrang

  7. Anki Cozmo ausprobiert

    Niedlicher Programmieren lernen und spielen

  8. Hyperkonvergenz

    Red Hat präsentiert freie hyperkonvergente Infrastruktur

  9. Deutsche Telekom

    Narrowband-IoT-Servicepakete ab 200 Euro

  10. Malware

    Der unvollständige Ransomware-Schutz von Windows 10 S



Haben wir etwas übersehen?

E-Mail an news@golem.de


Anzeige
WD Black SSD im Test: Mehr Blau als Schwarz
WD Black SSD im Test
Mehr Blau als Schwarz
  1. NAND-Flash Toshiba legt sich beim Verkauf des Flashspeicher-Fab fest
  2. SSD WD Blue 3D ist sparsamer und kommt mit 2 TByte
  3. Western Digital Mini-SSD in externem Gehäuse schafft 512 MByte pro Sekunde

Amateur-Hörspiele: Drei Fragezeichen, TKKG - und jetzt komm' ich!
Amateur-Hörspiele
Drei Fragezeichen, TKKG - und jetzt komm' ich!
  1. Internet Lädt noch
  2. NetzDG EU-Kommission will Hate-Speech-Gesetz nicht stoppen
  3. Equal Rating Innovation Challenge Mozilla will indische Dörfer ins Netz holen

Qubits teleportieren: So funktioniert Quantenkommunikation per Satellit
Qubits teleportieren
So funktioniert Quantenkommunikation per Satellit
  1. Quantencomputer Ein Forscher in den unergründlichen Weiten des Hilbertraums
  2. Quantenprogrammierung "Die physikalische Welt kann kreativer sein als wir selbst"
  3. Quantenoptik Vom Batman-Fan zum Quantenphysiker

  1. Re: A pro pos "mindestens 50 Mbit"

    Ovaron | 20:56

  2. Re: Lohnt sich ein Besuch überhaupt?

    hoben | 20:56

  3. Re: Ist Hyperthreading bei mir nun aktiviert oder...

    Seelbreaker | 20:55

  4. Re: 22-facher Zoomfaktor

    ElTentakel | 20:54

  5. Re: Wird gekauft,

    HorkheimerAnders | 20:54


  1. 19:30

  2. 18:32

  3. 18:15

  4. 18:03

  5. 17:47

  6. 17:29

  7. 17:00

  8. 16:23


  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