einführung mit arduino und scratch - hs-fulda.deml.rz.hs-fulda.de/physcom-folien.pdf · 2018. 9....
Post on 13-Mar-2021
0 Views
Preview:
TRANSCRIPT
Physical Computing
Einführung mit Arduino und Scratch
MINT Labortage 2018
Donnerstag, 13. September 2018 Hochschule Fulda, Fachbereich Angewandte Informatik
Rabanus-Maurus-Schule Fulda, Klasse 7
Peter Klingebiel, HS Fulda, Fachbereich AI
Physical Computing - Peter Klingebiel - 13. September 2018 2
Ablauf des Labortages 1
• Wer sind wir? – Peter Klingebiel, Dipl.-Ing. Maschinenbau – 21 Jahre Leiter DVZ der Hochschule Fulda,
heute: Dozent im Fachbereich AI
– Vanessa Günzel, Studierende der Informatik
Physical Computing - Peter Klingebiel - 13. September 2018 3
Ablauf des Labortages 2
• Wer seid Ihr? – Interesse an Physik und Informatik? – Kenntnisse in Physik und Informatik? – Kenntnisse in Programmieren? – ???
• Thema: Physical Computing
– Was ist das? – Was versteht Ihr darunter?
Physical Computing - Peter Klingebiel - 13. September 2018 4
Ablauf des Labortages 3
• Was wollen wir heute machen? – Was ist Physical Computing? – Wie funktionieren Computer? – Was sind Programme? – Grundlagen der Programmierung – einfache Beispiele von Scratch-Programmen
– Experimente und praktische Übungen mit
Arduino und Scratch
Physical Computing - Peter Klingebiel - 13. September 2018 5
Physical Computing 1
• Wikipedia sagt: „Physical Computing bedeutet im weitesten Sinne, interaktive, physische Systeme durch die Verwendung von Hardware und Software zu erstellen.“ https://de.wikipedia.org/wiki/Physical_Computing
Physical Computing - Peter Klingebiel - 13. September 2018 6
Physical Computing 2
• Uni Bamberg:
„Physical Computing sind Anwendungen der Informatik (computing) in direkter Interaktion mit der – physikalischen – Umwelt. Es werden Systeme betrachtet, die ihre eigene Umgebung durch Sensoren erfassen und so auf den jeweiligen Systemkontext angepasst agieren. Anwendungsgebiete von Physical Computing sind interaktive Systeme, mobile Systeme, autonome Roboter oder Smart Environments.“ https://www.uni-bamberg.de/en/ai/smart-environments/teaching/physical-computing/
Physical Computing - Peter Klingebiel - 13. September 2018 7
Physical Computing 3
• Systeme des Physical Computing bestehen aus: • Computern, meistens spezielle Mikrokontroller,
die viele Ein- und Ausgänge zum Anschluß von Sensoren und Aktoren bieten
• Sensoren, mit denen die Umwelt erfasst wird, z.B. Temperatur-, Luftfeuchte-, Helligkeits-, Abstands-Sensoren u.v.a.m.
• Aktoren, mit denen auf die Umgebung eingewirkt werden kann, z.B. Schalter, Motoren u.v.a.m.
• Programme, mit denen die Aufgabenstellung kodiert ist und die im μC ablaufen
Physical Computing - Peter Klingebiel - 13. September 2018 8
Wie funktionieren Computer? 1
Physical Computing - Peter Klingebiel - 13. September 2018 9
Wie funktionieren Computer? 2
Physical Computing - Peter Klingebiel - 13. September 2018 10
Wie funktionieren Computer? 3
Physical Computing - Peter Klingebiel - 13. September 2018 11
Wie funktionieren Computer? 4
Physical Computing - Peter Klingebiel - 13. September 2018 12
Wie funktionieren Computer? 5
Physical Computing - Peter Klingebiel - 13. September 2018 13
Wie funktionieren Computer? 6
• Computer ? – Mikroprozessoren (CPU), -Kontroller (μC) – Ein- und Ausgabe-Schnittstellen, -geräte – Speicher – und und und …
– Hardware („Blech“)
• Computer funktionieren nur mit – Programmen!
– Software
Physical Computing - Peter Klingebiel - 13. September 2018 14
Was sind Programme? 1
• Computer … – … funktionieren nur mit
Programmen / Software • Programme beschreiben …
– … was ein Computer tun soll (Aufgabe, Problem)
– … wie ein Computer seinen Job erledigen soll (Ablauf)
• Programme gibt es für – allgemeine Aufgaben (z.B. Windows) – spezielle Aufgaben (z.B. Physical Computing)
Physical Computing - Peter Klingebiel - 13. September 2018 15
Arduino 2 • Vielzahl an Boards, auch für Sonderbereiche • Vielzahl an Herstellern von Boards und
Komponenten • Vielzahl an sog. Shields, z.B. Ethernet, WiFi,
Sensoren, … • Vielzahl an Komponenten wie LEDs, Sensoren,
Aktoren, Motoren, … • Vielzahl an Einsatzfeldern, z.B. Robotics,
Internet of Things, Hausautomatisierung, Wearables, …
• viele Anleitungen in Literatur und Internet, z.B. – https://funduino.de – http://www.netzmafia.de/skripten/hardware/Arduino/index.html
Physical Computing - Peter Klingebiel - 13. September 2018 16
Arduino 2
• Wikipedia: https://de.wikipedia.org/wiki/Arduino_(Plattform)
• Arduino (zwischenzeitlich auch Genuino) • Open Source Hardware- und Software-Plattform • entwickelt von Massimo Banzi und David
Cuartielles auch für künstlerischen Einsatz von IT-Komponenten
• benamst nach Arduin von Ivrea, der 1002-1014 italienischer König war
• Programmierung in C und C++ in einer eigenen Processing-basierten IDE
• Homepage: https://www.arduino.cc
Physical Computing - Peter Klingebiel - 13. September 2018 17
Arduino UNO 1
USB-Anschluß
CPU: Atmel ATmega328
Mikrocontroller
Reset-Schalter
Externe Strom-
versorgung
GND Masse
Serielle Pins In und Out
Digitale Ein-/Ausgänge Pin 2 bis Pin 13
GND Analoge Eingänge Pin A0 bis Pin A5
5V 3.3V
17
Physical Computing - Peter Klingebiel - 13. September 2018 18
Arduino Nano 1
18
USB-Anschluß
GND
Reset- Taster
5V 3.3V
GND CPU Atmel ATmega328
11 digitale Eingänge D0 bis D13
8 analoge Eingänge A0 bis A7
Serielle Pins RX und TX
Physical Computing - Peter Klingebiel - 13. September 2018 19
Schaltung 1
• Nano und LED auf Breadboard
Physical Computing - Peter Klingebiel - 13. September 2018 20
Schaltung 2
• Schaltungsgrafik mit Fritzing-Software
Physical Computing - Peter Klingebiel - 13. September 2018 21
Breadboard 1
• Steckbrett - Schaltungen ohne Löten
Physical Computing - Peter Klingebiel - 13. September 2018
Breadboard 2 • Verbindungen der Lochreihen
22
Bus Stripes für VCC und GND
Bus Stripes für VCC und GND
Terminal Stripes für Komponenten
Physical Computing - Peter Klingebiel - 13. September 2018 23
Steckkabel 1
•
Physical Computing - Peter Klingebiel - 13. September 2018
LED 1
• Aufbau und Schaltbild einer LED
24
Physical Computing - Peter Klingebiel - 13. September 2018
Potentiometer 1
• Einfaches Potentiometer 10 kOhm
25
Physical Computing - Peter Klingebiel - 13. September 2018
PIR Bewegungssensor 1
• Passiver Infrarot Bewegungssensor
26
Physical Computing - Peter Klingebiel - 13. September 2018
Ultrasonic Entfernungssensor 1
• Ultraschall Entfernungssensor
27
Physical Computing - Peter Klingebiel - 13. September 2018
Servomotor 1
• Servomotor 0 bis 180 Grad Winkel
28
Physical Computing - Peter Klingebiel - 13. September 2018 29
Was sind Programme? 1
Beispiel: Lego Bauanleitung
Physical Computing - Peter Klingebiel - 13. September 2018 30
Was sind Programme? 2
• Definition:
„Programmieren ist eine Tätigkeit, bei der versucht wird, durch systematischen Einsatz einer gegebenen Programmiersprache ein gestelltes Problem zu lösen.“ aus: H. Balzert, Lehrbuch Grundlagen der Informatik, 1999
• Wikipedia: http://de.wikipedia.org/wiki/Programmierung
Physical Computing - Peter Klingebiel - 13. September 2018 31
Was sind Programme? 3 • Definition:
„Algorithmen, die von einem automa-tischen Prozessor abgearbeitet werden, bezeichnet man als Programme. Ein Programm stellt die Realisierung eines Algorithmus dar. Im Gegensatz zu einem Algorithmus ist ein Programm konkreter und eingeschränkter.“ aus: Balzert, Lehrbuch ...
• Wikipedia: http://de.wikipedia.org/wiki/Computerprogramm
Physical Computing - Peter Klingebiel - 13. September 2018 32
Was sind Programme? 4
• Definition:
„Algorithmus (Plural: Algorithmen), Problemlösungsbeschreibung, die festlegt, wie ein Problem gelöst werden soll.“ aus: Balzert, Lehrbuch ...
• Wikipedia: http://de.wikipedia.org/wiki/Algorithmus
Physical Computing - Peter Klingebiel - 13. September 2018 33
Was sind Programme? 5
• Entwicklung von Programmen: • Aufgabe / Problem so genau wie möglich
beschreiben – Beispiel: Idee / Ziel eines Computerspiels
genau beschreiben • Lösungsweg (Algorithmus) suchen und
so genau wie möglich beschreiben – Bsp: Ablauf des Spiels genau beschreiben
• Programm entwickeln (programmieren) – Bsp: Computerspiel / Ablauf des Spiels in eine
Programmiersprache umsetzen / codieren
Physical Computing - Peter Klingebiel - 13. September 2018 34
Was sind Programme? 6
• Einfaches Programm: Blinkende LED
Physical Computing - Peter Klingebiel - 13. September 2018 35
Was sind Programme? 7
• Programmiersprachen • Programme werden in Programmier-
sprachen geschrieben / beschrieben • Programmiersprachen verlangen fast
immer eine exakte Beschreibung der Aufgabe und der Lösung der Aufgabe
• Programmiersprachen sind fast immer sehr pingelig und erfordern die genaueste Einhaltung der Syntax (Rechtschreibung)
Physical Computing - Peter Klingebiel - 13. September 2018 36
Was sind Programme? 8
• Programm: Blinkende LED • Schaltung
– LED mit Kontroller verbinden – Kathode (-) an GND – Anode (+) an IO-Anschluß, den IO-Pin
• Programmablauf – IO-Pin initialisieren, hier: Pin auf Ausgang
einstellen – in einer Schleife (endlos oder n mal): – Pin (=LED) ein (Pin auf HIGH) und 1 s warten – Pin aus (Pin auf LOW) und 1 s warten
Physical Computing - Peter Klingebiel - 13. September 2018 37
Was sind Programme? 9
• Scratch-Programm zur blinkenden LED:
Physical Computing - Peter Klingebiel - 13. September 2018 38
Scratch 1
Physical Computing - Peter Klingebiel - 13. September 2018 39
Scratch 2
Prof. Mitchel Resnik, Erfinder von Scratch
Physical Computing - Peter Klingebiel - 13. September 2018 40
Scratch 3
• Besonderheiten von „Scratch“: • einfach und intuitiv zu bedienen • sehr niedrige „Einstiegshürden“ • Programme werden mit Bildchen und
Symbolen spielerisch zusammen-geklickt“ • wie „Spielen mit Legosteinen“ • Scratch: https://scratch.mit.edu/
Programmieren auf der Website im Browser! • mBlock: http://www.mblock.cc/
Download und Programmieren auf eigenem Computer! Hardware kann integriert werden!
Physical Computing - Peter Klingebiel - 13. September 2018 41
Scratch 4
Die Scratch-Oberfläche / Der Scratch-Editor (Internet) https://scratch.mit.edu/projects/editor/?tip_bar=home
Physical Computing - Peter Klingebiel - 13. September 2018 42
Scratch 5
Physical Computing - Peter Klingebiel - 13. September 2018 43
Scratch 6
Die mBlock-Oberfläche (lokal auf dem PC) http://www.makeblock.com
Physical Computing - Peter Klingebiel - 13. September 2018 44
Scratch 7
Spielfläche Bühne
Bühnenbilder
Figuren Sprites
Programmier-bereich Skripte
Klänge
Kostüme Programmier-
blöcke
Hauptmenü
Physical Computing - Peter Klingebiel - 13. September 2018 45
Grundlagen der Programmierung 1
• Programme werden aus unterschiedlichen Elementen zusammen“gebaut“
• Einfachstes Element ist die Anweisung • Beispiele (in C)
– printf(„Hallo, Welt!\n“); – clear_screen();
• Beispiele (in Scratch) – – –
Physical Computing - Peter Klingebiel - 13. September 2018 46
Grundlagen der Programmierung 2
• C-Programme starten mit main() • Scratch-Programme (Skripte) starten bei
bestimmten Ereignissen • Beispiele
– Grüne Fahne
– Taste
– Nachricht
Physical Computing - Peter Klingebiel - 13. September 2018 47
Grundlagen der Programmierung 3
• C-Programme werden übersetzt und zu einem ausführbaren Programm montiert
• Scratch-Skripte werden durch Zusammen-fügen der Symbole durch Bewegen mit der Maus zusammengebaut
Physical Computing - Peter Klingebiel - 13. September 2018 48
Grundlagen der Programmierung 4
Beispiel: Blinkende LED
Physical Computing - Peter Klingebiel - 13. September 2018 49
Grundlagen der Programmierung 5
• die meisten Programme sind nicht so einfach gebaut. Fast immer ist eine Steuerung des Programmablaufs erforderlich
• Bedingungen: wenn / falls / falls sonst … • Beispiele:
– falls das Licht an ist, dann schalte es aus – wenn das Zimmer aufgeräumt ist, kannst du spielen,
sonst räume weiter auf!
Physical Computing - Peter Klingebiel - 13. September 2018 50
Grundlagen der Programmierung 6
• Schleifen: wiederhole solange bis / wiederhole n mal / wiederhole endlos …
• Beispiele: – solange du die Hausarbeiten nicht fertig gemacht hast,
kannst du nicht spielen gehen – laufe zehn Runden um den Sportplatz
Physical Computing - Peter Klingebiel - 13. September 2018 51
Grundlagen der Programmierung 7
• Objekte: Scratch hat als Grundelement der Programmierung Objekte (Figuren oder Sprites genannt) – werden über Skripte programmiert / gesteuert – haben Eigenschaften, z.B. Kostüme – kommunizieren miteinander, schicken und
empfangen Nachrichten
Beispiele 1
Physical Computing - Peter Klingebiel - 13. September 2018 52
Frühstücksroboter von Simone Giertz (auf youtube) Lippenstiftroboter von Simone Giertz (auf youtube)
Und jetzt: selber programmieren …
Physical Computing - Peter Klingebiel - 13. September 2018 53
top related