410 likes | 463 Views
Calliope mini. www.calliope.cc. Herr Wallroth. Calliope mini. Technik 32 bit ARM Cortex M0, 16 MHz, 16 kB RAM, 256 kB Flash-Speicher, Bluetooth Ausgabe u.a. 5x5 LED Matrix, 1 RGB-LED, Piezo-Lautsprecher Eingabe
E N D
Calliope mini www.calliope.cc
Calliope mini Technik 32 bit ARM Cortex M0, 16 MHz, 16 kB RAM, 256 kB Flash-Speicher, Bluetooth Ausgabe u.a. 5x5 LED Matrix, 1 RGB-LED, Piezo-Lautsprecher Eingabe u.a. 2 Taster, Mikrofon (0..100), Beschleunigungssensor, Gyroskop, Magnetometer (Kompass – 0..360), Temperatur, Lichtstärke (0..255) Entwicklungsumgebungen • Open Roberta Lab (Fraunhofer-Institut) lab.open-roberta.org • MakeCode (Microsoft)makecode.calliope.cc Was ist ein Computer? Welche Arten von Computern gibt es?
Programmiersprachen • Assembler • Basic • Pascal • C • C++ • C# • Java • JavaScript • Python • Ruby • PHP • … • Scratch • (visuelle Programmiersprache für Kinder und Jugendliche) Der Programmierer benutzt die Programmiersprache, um zwischen Mensch und Computer zu „übersetzen“. Der Computer versteht anhand der geschriebenen Anweisungen, was das Programm tun soll.
Was ist ein Programm? Abfolge von Anweisungen (Befehlen) an den Computer zu einem bestimmten Zweck Programm-Start Eingabe (z.B. Drücken von Knöpfen) Verarbeitung der Daten, evtl. weitere Eingaben Ausgabe (z.B. LED, Ton, Anzeige von Zahlen oder Text) Programm-Ende oder neuer Durchlauf
1. Eingabe / Ausgabe Optionen: Pins als Eingabe, eigene Symbole Hinweise: Simulator Vollbild, Blöcke löschen mit Entf, IDE skalieren mit Strg+[-]/[+]
2. Gyroskop-Sensor als Eingabe Optionen: Display nach oben/unten, geschüttelt, RGB-LED (evtl. Ton) als Ausgabe
3. Ausgabe von Zahlen und Text Optionen: zusätzlich RGB-LED / Ton
4. Animation Optionen: Pausen einbauen (1000 ms = 1 Sekunde), weitere Symbole, Start per Knopf
Grundlagen: Variablen = Veränderliche Größe, die verschiedene Werte annehmen kann Der Wert einer Variablen kann zugewiesen und abgefragt werden Variablen „merken sich“ einen Wert und können dann in allen Teilen des Programms eingesetzt werden Der Name einer Variablen wird vom Programmierer festgelegt (z.B. „a“, „b“, „x“, „y“, „Tore“ usw.) Variablen können Zahlen (1, 287…) oder Zeichenketten („hallo“) enthalten
Exkurs: Wertebereiche für Zahlen Aus der TypeScript-Dokumentation uint8 with range 0 to 255 int8 with range -128 to 127 uint16 with range 0 to 65536 int16 with range -32768 to 32767 int32 with range -2147483648 to 2147483647 uint32 with range 0 to 4294967295 Maximaler Wert für Zahlen beim Calliope: (+/-) 2147483647;
5. „Tor-Zähler“ mit Variable Optionen: Startwert einstellen, Neues Thema: Variablen und ihre Vorteile und Eigenschaften
Grundlagen: Schleifen… Wiederholung: einmal, mehrmals oder unendlich oft
Grundlagen: Verzweigungen Der Programmablauf wird durch logische Bedingungen gesteuert: „wahr“ oder „falsch“ z.B.: Ist die Lichtstärke, ein anderer Sensorwert oder eine Zahl größer (oder auch kleiner) als ein bestimmter Wert?
6. Zähler mit Variable – wenn/dann-Block Verbessertes Programm 5 – mit „Sperre“ für Zahlen kleiner als 0 Der wenn/dann-Block verhindert hier negative Zahlen beim Rückwärts-Zählen
7a. Zufallszahlen - Würfelspiel Die zufällige Zahl wird in einer Variablen (hier: „a“) gespeichert Bei Knopf B wird der Zahlenbereich um 1 erhöht, auf 1..6
7b. Würfelspiel mit „Augen“ statt Zahlen Bei einer 6 leuchtet die LED und es wird eine Melodie gespielt
8. Töne und Musik - Grundlagen Hinweis: ein „Klingelton“ spielt unendlich lange, wenn er nicht unterbrochen wird
9. Töne und Musik - Optionen Die Geschwindigkeit der Musik kann verändert werden (bpm = beats per minute = Schläge pro Minute) Weitere Optionen: z.B. andere Symbole bei anderen Ereignissen anzeigen
10. Selbstkomponierte Melodien Beginn des „Pink Panther“ Themas
11. Töne und Musik – Sensoren auswerten Der Lichtstärkesensor-Eingabewert (0..255) muss umgerechnet werden für bessere Hörbarkeit (der Lautsprecher kann etwa 1.000-10.000 Hz wiedergeben) Das Gyroskop kann Lage-Änderungen als Zahlenwert übermitteln Der Neigungswinkel wird hier mit 100 multipliziert, damit die Töne auch hörbar sind Option: Neigung in Grad auf Display anzeigen Diese Option funktioniert nicht gut beim Lichtstärkesensor, da das Display auch den Lichtstärkesensor enthält
12. Lichtsensor auswerten für „Automatisches Nachtlicht“ Variante 1 Variante 2 Licht an bei einer Lichtstärke unter 100 (der Sensor gibt einen Wert zwischen 0 und 255 zurück) Weiterer „sonst“-Zweig und verschiedene Farben je nach Lichtstärke
13a. Rechner: „1x1-Maschine“ Knopf A inkrementiert Variable a (a = a + 1), Knopf B Variable b Als Ergebnis a x b angezeigt (Variablennamen werden immer klein geschrieben)
13b. Rechner: „1x1-Maschine“ 2. Version Der Rechenvorgang ist nun in eine Funktion ausgelagert In der nächsten Version wird noch deutlicher, warum das eine gute Idee ist…
13c. Rechner: „1x1-Maschine“ 3. Version Diese Version zeigt die Operation und das Ergebnis als Lauftext an: „a x b = ergebnis“ Optionen: Tonausgabe/LED bei Tastendruck, Ergebnisausgabe erst bei Druck auf A+B
14a. Kompass – 1. Version 0° 270° 90° 180° Die Kompassrichtung in Grad (0..359) wird im Display angezeigt
14b. Kompass – bessere Version Die Ausrichtung nach NORDEN (Toleranz +/- 20 Grad) wird angezeigt Verwendung von logische Operatoren und eine wenn/dann/sonst-Regel
15a. Zahlenwerte senden über Bluetooth Die Gruppe (Sende- und Empfangskanal) ist ein Wert zwischen 0 und 255 Er muss beim Sender und Empfänger übereinstimmen
15b. Texte senden über Bluetooth Setze hier deinen Namen ein Die Gruppe (Sende- und Empfangskanal) ist ein Wert zwischen 0 und 255 Er muss beim Sender und Empfänger übereinstimmen
16a. Stoppuhr 1. Version – Anzeige der Zeit seit dem Einschalten, in Sekunden
16b. Stoppuhr 2. Version – Anzeige der Laufzeit in Sekunden auf Knopfdruck
16c. Stoppuhr 3. Version – Knopf A startet die Uhr, Knopf B zeigt die Laufzeit an
16d. Stoppuhr 4. Version – Knopf A startet, Knopf B stoppt die Uhr
17. Code-Schloss Nur bei korrekter Eingabe des Codes wird die Melodie abgespielt