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. Fresenius Kabi Deutschland GmbH, Oberursel
  2. Pfennigparade WKM GmbH, München
  3. Rohde & Schwarz Cybersecurity GmbH, München, Hamburg, Köln, Leipzig, Darmstadt, Berlin
  4. Ratbacher GmbH, Raum Darmstadt


Anzeige
Blu-ray-Angebote
  1. (u. a. Hobbit Trilogie Blu-ray 43,89€ und Batman Dark Knight Trilogy Blu-ray 17,99€)

Folgen Sie uns
       


  1. Platooning

    Daimler fährt in den USA mit Lkw im autonomen Konvoi

  2. Suchmaschine

    Apple stellt Siri auf Google um

  3. Gruppenchat

    Skype for Business wird durch Microsoft Teams ersetzt

  4. Teardown

    iFixit findet größeren Akku in Apple Watch Series 3

  5. Coffee Lake

    Intel verkauft sechs Kerne für unter 200 Euro

  6. MacOS 10.13

    Apple gibt High Sierra frei

  7. WatchOS 4.0 im Test

    Apples praktische Taschenlampe mit autarkem Musikplayer

  8. Werksreset

    Unitymedia stellt Senderbelegung heute in Hessen um

  9. Aero 15 X

    Mehr Frames mit der GTX 1070 im neuen Gigabyte-Laptop

  10. Review Bombing

    Valve verbessert Transparenz bei Nutzerbewertungen auf Steam



Haben wir etwas übersehen?

E-Mail an news@golem.de


Anzeige
Bundestagswahl 2017: Viagra, Datenbankpasswörter und uralte Sicherheitslücken
Bundestagswahl 2017
Viagra, Datenbankpasswörter und uralte Sicherheitslücken
  1. Bundestagswahl 2017 IT-Probleme verzögerten Stimmübermittlung
  2. Bundestagswahl 2017 Union und SPD verlieren, Jamaika-Koalition rückt näher
  3. Zitis Wer Sicherheitslücken findet, darf sie behalten

Olympus Tough TG5 vs. Nikon Coolpix W300: Die Schlechtwetter-Kameras
Olympus Tough TG5 vs. Nikon Coolpix W300
Die Schlechtwetter-Kameras
  1. iZugar 220-Grad Fisheye-Objektiv für Micro Four Thirds vorgestellt
  2. Mobilestudio Pro 16 im Test Wacom nennt 2,2-Kilogramm-Grafiktablet "mobil"
  3. HP Z8 Workstation Mit 3 TByte RAM und 56 CPU-Kernen komplexe Bilder rendern

VR: Was HTC, Microsoft und Oculus mit Autos zu tun haben
VR
Was HTC, Microsoft und Oculus mit Autos zu tun haben
  1. Zukunft des Autos "Unsere Elektrofahrzeuge sollen typische Porsche sein"
  2. Concept EQA Mercedes elektrifiziert die Kompaktklasse
  3. GLC F-Cell Mercedes stellt SUV mit Brennstoffzelle und Akku vor

  1. Re: Wie oft wollen sie den noch ersetzen

    Hakuro | 09:10

  2. Re: Wie jetzt 18 Tage?

    Nof | 09:10

  3. Re: Fehler?

    ad (Golem.de) | 09:09

  4. Re: Habe ich mir schon lange gedacht.

    Bautz | 09:08

  5. Re: Wenn es mit der Suchfunktion so gut wie bei...

    Bautz | 09:06


  1. 09:11

  2. 08:57

  3. 07:51

  4. 07:23

  5. 07:08

  6. 19:40

  7. 19:00

  8. 17:32


  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