Circuit Playground
Express
Wer?
Florian ‘overflo’ Bittner��Softwareentwickler seit ca 1993�Microcontroller seit ca 2005
Papa von 3
�Gründunsmitglied des Hackspaces metalab in Wien
Ziele des Workshops
Was wir in heute NICHT schaffen werden..
Der circuit playground ist simpel, aber es gibt rundherum SOOOOOO viel zu entdecken..
Circuit Playground Express?
Was tut es?
Microcontroller werden eingesetzt um Dinge in der greifbaren Welt mit einem Computer zu steuern oder aber Sensoren als Eingabegeräte zu nutzen (I/O)
zB
BOARDS
Circuit Playground Express - Damit basteln wir heute
Das Hirn, ein ATMEL ATSAMD21 - ARM Microcontroller
2 Buttons - Kann man drücken
Slider - Kann man nach links oder rechts schieben
Buzzer - So eine Art Lautsprecher der Bleep Bloop Geräusche machen kann.
Temperatursensor - Ich glaub der ist hin :/
Accelerometer - Cooler Sensor die Orientierung wiedergibt
Infrarot Emitter - sendet Infrarot Licht / Signale
Infrarot Receiver - empfängt Infrarot Signale / Kann auch als Distanzsensor verwendet werden
Mikrofon
Touch input
10 RGB Leds
Batterie / Akku Anschluss
Päuschen
Boards (eine sehr kurze Übersicht)
Arduino UNO
Boards (eine sehr kurze Übersicht)
Der Erste..
Boards (eine sehr kurze Übersicht)
Leonardo
Boards (eine sehr kurze Übersicht)
Zero (ARM)
Boards (eine sehr kurze Übersicht)
MEGA
Boards (eine sehr kurze Übersicht)
Android ADK
Boards (eine sehr kurze Übersicht)
Intel?!
Boards (eine sehr kurze Übersicht)
More Intel?!
Boards (eine sehr kurze Übersicht)
ROBOTS!
Boards (eine sehr kurze Übersicht)
Game console
Boards (eine sehr kurze Übersicht)
IOT
OpenWRT
Boards (eine sehr kurze Übersicht)
Gemma + Lilypad�Wearables
Boards (eine sehr kurze Übersicht)
..und das war nur ein Teil der OFFIZIELLEN Arduino Boards..
Teensy
ARM Cortex M0 - 32 Bit�Viel Speicher�Super Community
Umfangreiche Schnittstellen
NodeMCU
ESP8266�ur billig (2,-)
IOT
ESP32 - IOT Killerdings
ESP32�VIEL Ram / ROM�Mehr GPIOs�Schnittstellen
IOT �MicroPython!
Klone
Da alles Open Source ist, gibt es
SEHR BILLIGE Nachbauten von fast allen
ARDUINO ® © ™ Boards
Siehe http://aliexpress.com
PP
FRAGEN?
PP
PAUSE
Teil 2
Programmieren
Webeditor
https://makecode.adafruit.com/
Webeditor
Unser erstes Projekt!
Die einzelnen Funktionen�heissen eventuell anders wenn ihr einen deutschen Browser verwendet.
Light
in den “forever” loop schieben
Loop -> Pause
pause (1 Sekunde) in den loop einfügen
nochmal mit schwarz statt rot �CTRL-C / CTRL-V
PLAY!
Download
Speichern auf <CPLAYBOOT>
Bleibt das jetzt so?
Ja.�Das Programm ist jetzt fix am Flashspeicher�und auch ein ab/anstecken führt nicht zum Verlust der Daten.
Aufgabe!
Die LEDS sollen 2 Sekunden eine Regenbogen-Animation anzeigen.
Dann 1 Sekunde aus.
Lösung.
Conditions
Wenn Knopf A gedrückt wird schalte die Leds für eine Sekunde auf rot.
INPUT
Aufgabe!
Nicht den Knopf A drücken sondern ein lautes Geräusch soll die Led einschalten.
Lösung.
Loops (die grünen Blöcke)
Loops sind Blöcke die rund um Anweisungen �stehen.�zB “forever” aber es gibt auch Andere.
Aussenschleifen
Aufgabe
Wenn wir einschalten wollen wir dass die Leds grün sind für 1 Sekunde.��Danach für immer rot blinken.
Verwendet “on start” und “forever”
Lösung
Schleifen innen
Aufgabe
Wenn wir einschalten wollen wir dass die Leds 4 mal grün blinken.��Danach für immer rot blinken.
Verwendet “on start” und “forever”, “repeat”
Lösung
Aufgabe
Solange Button A gedrückt ist blinke die Leds rot.
Verwendet “forever” und “while”
Lösung
Was passiert hier?
Lösung
Konkurrierende Eventlistener sind zu vermeiden.
Unvorhersehbares Verhalten.�Besser: Alles in EINEM forever loop machen und in Eventlistenern Variablen setzen.
IF / THEN
Findet ihr unter LOGIC
Variablen
Enthalten einen Wert und können an unterschiedlichen Stellen verändert werden.
Variablen
Arrays / Listen
Elemente die mehrere Werte enthalten können.
Aufgabe
Wir wollen dass die Led X millisekunden rot ist, dann 100 ms aus
für X nehmen wir 200,500,100,700,1000
Verwendet listen
Lösung
Console LOG
Kann Text oder Zahlen ausgeben, gut zum debuggen.
Aufgabe
Nehmt das letzte Programm und gebt euch den aktuellen Wert auf der console aus.
Lösung
Console
Console
Zusammenfassung gleicher logzeilen
Funktionen
Blöcke von Code den man an mehreren Stellen wiederverwendet
Funktionen
Aufgabe
Erstellt 2 Funktionen und ruft Sie auf.�Eine Funktion blinkt 1x grün (blinkGreen), die Andere 1x rot (blinkRed).
Lösung
Aufgabe
Erstellt eine Funktion “blink”
Diese akzeptiert 1 Parameter (Zahl)
if parameter = 0, blinke rot
if parameter = 1, blinke grün
if parameter = 2, blinke blau
Lösung
DRY�Don’t Repeat Yourself
YAY \o/
Wir sind mit den grundlegenden Konzepten fertig!�
Pause wem Pause gebührt.
Sounds
Es gibt einen Buzzer, der kann Töne machen und Melodien spielen.�
Sounds
“play sound until done” will man meistens�
Sounds
Sounds
Sounds
Warum geht das nicht?
Sounds
So gehts.
Touchinputs
Auf fast allen Pins!
Kalibrieren ist wichtig,�besonders wenn man�da noch Draht daran
montiert.�
Accelerometer
Es gibt eine Accelerometer, welches Lage/Beschleunigung misst.
Accelerometer - Aufgabe
Wenn wir das Board nach links neigen “power up” spielen.�Wenn wir es nach rechts neigen “power down” spielen.
Accelerometer
so
oder
so
Lichtsensor
Es gibt einen Lichtsensor, er misst Helligkeit.
“Netzwerk”
Das ist eine IR Led und ein Empfänger.�Damit kann man MINI Datenpakete austauschen.�
��
“Netzwerk”
Aufgabe 1: Baut ein Programm das “0” via IR schickt wenn man Knopf B drückt.
Aufgabe 2: Baut ein Programm dass den BA-DING sound spielt wenn es über IR etwas empfängt.
Das Programm besteht aus 2 Eventloops.
“Netzwerk”
Wir nehmen hier Button B weil man bei Button A die IR Led leicht mit dem Finger abdeckt beim drücken.�
��
“Netzwerk”
Baut ein Programm das eine Zahl schickt zwischen 0 und 3 wenn man Knopf B drückt.
Bei jedem drücken wird die nächst höhere Zahl geschickt.�Maximal 0-3, Niemals 4 oder höher.
Baut einen Empfänger der je nach dem was daher kommt eine andere Farbe anzeigt.�
0=rot, 1=grün, 2=blau, 3=gelb
Temperatur
Es gibt auch einen Temperatursensor.
Ich glaube er funktioniert nicht richtig :(
Aus.