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. Bosch SoftTec GmbH, Hildesheim
  2. Dirk Rossmann GmbH, Burgwedel
  3. operational services GmbH & Co. KG, deutschlandweit
  4. Thalia Bücher GmbH, Hagen (Raum Dortmund)


Anzeige
Spiele-Angebote
  1. (-10%) 17,99€
  2. 5,99€
  3. 42,99€

Folgen Sie uns
       


  1. Netzausrüster

    Nokia macht weiter hohen Verlust

  2. Alien Covenant In Utero

    Neomorph im VR-Brustkasten

  3. Smarter Lautsprecher

    Google Home assistiert beim Kochen

  4. id Software

    "Global Illumination ist derzeit die größte Herausforderung"

  5. Echo Look

    Amazon stellt erste Kamera mit Alexa vor

  6. e.GO Life

    Elektroauto aus Deutschland für 15.900 Euro

  7. Apple

    App schaltet Touch Bar des Macbook Pro ab

  8. Deutscher Computerspielpreis

    Portal Knights ist das "Beste Deutsche Spiel" 2017

  9. Sledgehammer Games

    Call of Duty WW2 und die Befreiung von Europa

  10. Elektroauto

    VW testet E-Trucks



Haben wir etwas übersehen?

E-Mail an news@golem.de


Anzeige
Spielebranche: "Ungefähr jetzt ist der Prinzessin-Leia-Moment"
Spielebranche
"Ungefähr jetzt ist der Prinzessin-Leia-Moment"
  1. Let's Player Auf Youtube verkauft auch die Trashnight Spiele
  2. In eigener Sache Doom auf dem Tech Summit
  3. Nvidia "Geometry Pass spart in VR massiv Rechenleistung"

DLR-Projekt Eden ISS: Das Paradies ist ein Container
DLR-Projekt Eden ISS
Das Paradies ist ein Container
  1. Weltraumschrott "Der neue Aspekt sind die Megakonstellationen"
  2. Transport Der Güterzug der Zukunft ist ein schneller Roboter
  3. "Die Astronautin" Ich habe heute leider keinen Flug ins All für dich

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. Grafikkarte Manche Radeon RX 400 lassen sich zu Radeon RX 500 flashen
  2. Radeon Pro Duo AMD bringt Profi-Grafikkarte mit zwei Polaris-Chips
  3. Grafikkarten AMD bringt vier neue alte Radeons für Komplett-PCs

  1. Das "Remake" von 2010 ist keines

    burzum | 11:07

  2. Re: Nur 3x gekotzt

    ArcherV | 11:06

  3. Re: Wartungsmodems

    Gunah | 11:06

  4. Re: Stadtautos verbieten

    ckerazor | 11:05

  5. Re: Jetzt ist es soweit

    Trollversteher | 11:05


  1. 11:10

  2. 10:54

  3. 09:52

  4. 09:00

  5. 08:50

  6. 07:37

  7. 07:12

  8. 23:39


  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