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.

Stellenmarkt
  1. IT Systemadministrator (m/w/d)
    DMK E-BUSINESS GmbH, Chemnitz
  2. Expertise Lead (m/w/d) IT-Service-Management - ITIL & Demand
    ING Deutschland, Frankfurt, Nürnberg
Detailsuche

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:

  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.

Golem Akademie
  1. IT-Fachseminare der Golem Akademie
    Live-Workshops zu Schlüsselqualifikationen
  2. 1:1-Videocoaching mit Golem Shifoo
    Berufliche Herausforderungen meistern
  3. Online-Sprachkurse mit Golem & Gymglish
    Kurze Lektionen, die funktionieren
Weitere IT-Trainings

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.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed
 Ein Drehbuch in CodeformMusik abspielen 
  1.  
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5
  7. 6
  8. 7
  9. 8
  10. 9
  11.  


Aktuell auf der Startseite von Golem.de
Mozilla
Firefox verliert 20 Prozent Nutzer in zweieinhalb Jahren

Die offiziellen Nutzer-Statistiken des Firefox-Browsers sehen für Mozilla nicht gut aus. Immerhin wird der Browser intensiver genutzt.

Mozilla: Firefox verliert 20 Prozent Nutzer in zweieinhalb Jahren
Artikel
  1. Google, Mozilla, Telegram: Youtube schaltet testweise für 7 Euro die Werbung ab
    Google, Mozilla, Telegram
    Youtube schaltet testweise für 7 Euro die Werbung ab

    Sonst noch was? Was am 2. August 2021 neben den großen Meldungen sonst noch passiert ist, in aller Kürze.

  2. Dice: Mietserver für Battlefield 2042 möglicherweise später
    Dice
    Mietserver für Battlefield 2042 möglicherweise später

    Zum Start von Battlefield 2042 wird es keine RSP-Mietserver geben. Dennoch sollen Spieler eigene private Partien eröffnen können.

  3. Halo Infinite angespielt: Spartan-Bots machen dem Master Chief alle Ehre
    Halo Infinite angespielt
    Spartan-Bots machen dem Master Chief alle Ehre

    Die Technical Preview von Halo Infinite schickt uns in Gefechte gegen die künstliche Intelligenz - oft mit ziemlich knappem Ausgang.
    Ein Hands-on von Marc Sauter

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...



Du willst dich mit Golem.de beruflich verändern oder weiterbilden?
Zum Stellenmarkt
Zur Akademie
Zum Coaching
  • Schnäppchen, Rabatte und Top-Angebote
    Die besten Deals des Tages
    Schnäppchen • Samsung Galaxy Vorbesteller-Aktion • Speicherwoche bei Media Markt • Samsung Odyssey G5 (34 Zoll, 165 Hz) 399€ • 15% auf Xiaomi-Technik • McAfee Total Protection ab 15,99€ • Saturn: 1 Produkt zahlen, 2 erhalten • Final Fantasy VII HD Remake PS4 25,64€ [Werbung]
    •  /