kurze einführung arduino und arduino-programmierungmaya.rz.hs-fulda.de/pm.wise1718/pm-a.pdf ·...

29
Projektmodul DM Kurze Einführung Arduino und Arduino-Programmierung Hochschule Fulda – FB AI Wintersemester 2017/18 http://pm.rz.hs-fulda.de Peter Klingebiel, HS Fulda, FB AI

Upload: others

Post on 13-Mar-2021

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Kurze Einführung Arduino und Arduino-Programmierungmaya.rz.hs-fulda.de/pm.wise1718/pm-a.pdf · 2017. 11. 2. · auch für künstlerischen Einsatz von IT-Komponenten • benamst nach

Projektmodul DMKurze Einführung

Arduino und Arduino-Programmierung

Hochschule Fulda – FB AIWintersemester 2017/18http://pm.rz.hs-fulda.de

Peter Klingebiel, HS Fulda, FB AI

Page 2: Kurze Einführung Arduino und Arduino-Programmierungmaya.rz.hs-fulda.de/pm.wise1718/pm-a.pdf · 2017. 11. 2. · auch für künstlerischen Einsatz von IT-Komponenten • benamst nach

Projektmodul DM - Peter Klingebiel - HS Fulda - FB AI

Arduino 1

• Wikipedia:https://de.wikipedia.org/wiki/Arduino_(Plattform)

• Arduino (seit März 2015 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

2

Page 3: Kurze Einführung Arduino und Arduino-Programmierungmaya.rz.hs-fulda.de/pm.wise1718/pm-a.pdf · 2017. 11. 2. · auch für künstlerischen Einsatz von IT-Komponenten • benamst nach

Projektmodul DM - Peter Klingebiel - HS Fulda - FB AI

Arduino 2

• Vielzahl an Boards, darunter auch für Wearables• Vielzahl an Herstellern von Boards / Komponenten• Vielzahl an 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://www.arduino.cc/en/Guide/HomePage– http://funduino.de/vorwort– http://www.netzmafia.de/skripten/hardware/Arduino/index.html

3

Page 4: Kurze Einführung Arduino und Arduino-Programmierungmaya.rz.hs-fulda.de/pm.wise1718/pm-a.pdf · 2017. 11. 2. · auch für künstlerischen Einsatz von IT-Komponenten • benamst nach

Projektmodul DM - Peter Klingebiel - HS Fulda - FB AI 4

Arduino Uno R3 1

USB-Anschluß

CPU: AtmelATmega328

Mikrocontroller

Reset-Schalter

ExterneStrom-

versorgung

GNDMasse

Serielle PinsIn und Out

Digitale Ein-/AusgängePin 2 bis Pin 13

GND Analoge Ein-/AusgängePin A0 bis Pin A5

5V 3.3V

4

Page 5: Kurze Einführung Arduino und Arduino-Programmierungmaya.rz.hs-fulda.de/pm.wise1718/pm-a.pdf · 2017. 11. 2. · auch für künstlerischen Einsatz von IT-Komponenten • benamst nach

Projektmodul DM - Peter Klingebiel - HS Fulda - FB AI 5

Arduino Uno R3 2

5

Page 6: Kurze Einführung Arduino und Arduino-Programmierungmaya.rz.hs-fulda.de/pm.wise1718/pm-a.pdf · 2017. 11. 2. · auch für künstlerischen Einsatz von IT-Komponenten • benamst nach

Projektmodul DM - Peter Klingebiel - HS Fulda - FB AI 6

Mikrocontroller Atmel ATmega328

6

Page 7: Kurze Einführung Arduino und Arduino-Programmierungmaya.rz.hs-fulda.de/pm.wise1718/pm-a.pdf · 2017. 11. 2. · auch für künstlerischen Einsatz von IT-Komponenten • benamst nach

Projektmodul DM - Peter Klingebiel - HS Fulda - FB AI 7

Arduino Nano 1

7

USB-Anschluß

GND

Reset-Taster

5V3.3V

GNDCPU AtmelATmega328

11 digitale EingängeD0 bis D13

8 analoge EingängeA0 bis A7

Serielle PinsRX und TX

Page 8: Kurze Einführung Arduino und Arduino-Programmierungmaya.rz.hs-fulda.de/pm.wise1718/pm-a.pdf · 2017. 11. 2. · auch für künstlerischen Einsatz von IT-Komponenten • benamst nach

Projektmodul DM - Peter Klingebiel - HS Fulda - FB AI 8

Arduino Nano 2

8

Page 9: Kurze Einführung Arduino und Arduino-Programmierungmaya.rz.hs-fulda.de/pm.wise1718/pm-a.pdf · 2017. 11. 2. · auch für künstlerischen Einsatz von IT-Komponenten • benamst nach

Projektmodul DM - Peter Klingebiel - HS Fulda - FB AI 9

Mikrocontroller Atmel ATmega328P-AU

9

Page 10: Kurze Einführung Arduino und Arduino-Programmierungmaya.rz.hs-fulda.de/pm.wise1718/pm-a.pdf · 2017. 11. 2. · auch für künstlerischen Einsatz von IT-Komponenten • benamst nach

Projektmodul DM - Peter Klingebiel - HS Fulda - FB AI

Schaltung mit Nano 1

• Nano mit LED auf Breadboard

10

Page 11: Kurze Einführung Arduino und Arduino-Programmierungmaya.rz.hs-fulda.de/pm.wise1718/pm-a.pdf · 2017. 11. 2. · auch für künstlerischen Einsatz von IT-Komponenten • benamst nach

Projektmodul DM - Peter Klingebiel - HS Fulda - FB AI

Schaltung mit Nano 2

• Schaltungsgrafik mit Fritzing-Software

11

Page 12: Kurze Einführung Arduino und Arduino-Programmierungmaya.rz.hs-fulda.de/pm.wise1718/pm-a.pdf · 2017. 11. 2. · auch für künstlerischen Einsatz von IT-Komponenten • benamst nach

Projektmodul DM - Peter Klingebiel - HS Fulda - FB AI

Breadboard 1

• Steckbrett - Elektronikschaltungen ohne Löten

12

Page 13: Kurze Einführung Arduino und Arduino-Programmierungmaya.rz.hs-fulda.de/pm.wise1718/pm-a.pdf · 2017. 11. 2. · auch für künstlerischen Einsatz von IT-Komponenten • benamst nach

Projektmodul DM - Peter Klingebiel - HS Fulda - FB AI

Breadboard 2

• Verbindungen der Lochreihen

13

Bus Stripesfür VCC und GND

Bus Stripesfür VCC und GND

Terminal Stripesfür Komponenten

Page 14: Kurze Einführung Arduino und Arduino-Programmierungmaya.rz.hs-fulda.de/pm.wise1718/pm-a.pdf · 2017. 11. 2. · auch für künstlerischen Einsatz von IT-Komponenten • benamst nach

Projektmodul DM - Peter Klingebiel - HS Fulda - FB AI

Steckkabel

14

Page 15: Kurze Einführung Arduino und Arduino-Programmierungmaya.rz.hs-fulda.de/pm.wise1718/pm-a.pdf · 2017. 11. 2. · auch für künstlerischen Einsatz von IT-Komponenten • benamst nach

Projektmodul DM - Peter Klingebiel - HS Fulda - FB AI

LED 1

• Aufbau und Schaltbild einer LED

15

Page 16: Kurze Einführung Arduino und Arduino-Programmierungmaya.rz.hs-fulda.de/pm.wise1718/pm-a.pdf · 2017. 11. 2. · auch für künstlerischen Einsatz von IT-Komponenten • benamst nach

Projektmodul DM - Peter Klingebiel - HS Fulda - FB AI

LED 2

• LEDs sind je nach Farbe für verschiedene sog. Durchlassspannungen Uf ausgelegt:– weiß 4 V– blau 2,9 V– grün 2,1 V– gelb 2,2 V– rot 1,6 V

• die Stromstärke bei LEDs liegt i.d.R. bei If ≈ 20mA• Vorwiderstand Rv nötig, sonst brennt die LED durch

– Formel: Rv = (Ug – Uf) / If– z.B. Ug = 5V und rote LED: Rv = (5V – 1,6V) / 0,02A = 170Ω– nächst höheren Widerstand wählen, z.B. 220 Ω oder mehr

16

Page 17: Kurze Einführung Arduino und Arduino-Programmierungmaya.rz.hs-fulda.de/pm.wise1718/pm-a.pdf · 2017. 11. 2. · auch für künstlerischen Einsatz von IT-Komponenten • benamst nach

Projektmodul DM - Peter Klingebiel - HS Fulda - FB AI

Widerstand 1

• Widerstand: passives elektrisches Bauelement, i.d.R. zur Begrenzung der Stromstärke

• Kohleschichtwiderstand (oben) und Metallschicht-widerstand (unten)

• Farbstreifen kodieren die Größe des Widerstands

17

Page 18: Kurze Einführung Arduino und Arduino-Programmierungmaya.rz.hs-fulda.de/pm.wise1718/pm-a.pdf · 2017. 11. 2. · auch für künstlerischen Einsatz von IT-Komponenten • benamst nach

Projektmodul DM - Peter Klingebiel - HS Fulda - FB AI

Widerstand 2

• Kodierung vonWiderständen durchFarbkodes

18

Page 19: Kurze Einführung Arduino und Arduino-Programmierungmaya.rz.hs-fulda.de/pm.wise1718/pm-a.pdf · 2017. 11. 2. · auch für künstlerischen Einsatz von IT-Komponenten • benamst nach

Projektmodul DM - Peter Klingebiel - HS Fulda - FB AI

Arduino IDE 1

• Installation der Arduino IDE• Download von https://www.arduino.cc/ → Software• Windows: Installer oder ZIP-File herunterladen und

auf dem PC installieren, analog für MAC / Linux• beim Anschluß des Arduino-Boards erkennt das

System im Idealfall das Board und installiert den USB-Treiber automatisch, sonst ist eine manuelle Installation des USB-Treiber nötig (siehe Internet!)

• dann kann die die IDE gestartet werden: entweder über das Icon auf dem Desktop oder mit arduino.exeim Installationsverzeichnis

Page 20: Kurze Einführung Arduino und Arduino-Programmierungmaya.rz.hs-fulda.de/pm.wise1718/pm-a.pdf · 2017. 11. 2. · auch für künstlerischen Einsatz von IT-Komponenten • benamst nach

Projektmodul DM - Peter Klingebiel - HS Fulda - FB AI

Arduino IDE 2

Arduino IDE mit Sketch im Editor

Page 21: Kurze Einführung Arduino und Arduino-Programmierungmaya.rz.hs-fulda.de/pm.wise1718/pm-a.pdf · 2017. 11. 2. · auch für künstlerischen Einsatz von IT-Komponenten • benamst nach

Projektmodul DM - Peter Klingebiel - HS Fulda - FB AI

Arduino IDE 3

Auswahl des Boards

Page 22: Kurze Einführung Arduino und Arduino-Programmierungmaya.rz.hs-fulda.de/pm.wise1718/pm-a.pdf · 2017. 11. 2. · auch für künstlerischen Einsatz von IT-Komponenten • benamst nach

Projektmodul DM - Peter Klingebiel - HS Fulda - FB AI

Arduino IDE 4

Auswahl des USB-Ports

Page 23: Kurze Einführung Arduino und Arduino-Programmierungmaya.rz.hs-fulda.de/pm.wise1718/pm-a.pdf · 2017. 11. 2. · auch für künstlerischen Einsatz von IT-Komponenten • benamst nach

Projektmodul DM - Peter Klingebiel - HS Fulda - FB AI

Arduino IDE 4

Compilieren Seriellen Monitoröffnen

Compilieren und auf Board laden

Page 24: Kurze Einführung Arduino und Arduino-Programmierungmaya.rz.hs-fulda.de/pm.wise1718/pm-a.pdf · 2017. 11. 2. · auch für künstlerischen Einsatz von IT-Komponenten • benamst nach

Projektmodul DM - Peter Klingebiel - HS Fulda - FB AI

Programmierung 1

• Beispielprogramm 1, Sketch genannt:// pm-1-hallowelt.ino// klin, 28.10.2016// hallo welt auf seriellem monitor ausgebenvoid setup() // Initialisierung {Serial.begin(9600); // Baudrate -> 9600

}int i = 0; // Zaehlervoid loop() // Arbeitsschleife {++i; // Zaehler hochzaehlenSerial.print(++i); // und ausgebenSerial.println(" - hallo welt"); delay(1000); // 1 Sekunde warten

}

Page 25: Kurze Einführung Arduino und Arduino-Programmierungmaya.rz.hs-fulda.de/pm.wise1718/pm-a.pdf · 2017. 11. 2. · auch für künstlerischen Einsatz von IT-Komponenten • benamst nach

Projektmodul DM - Peter Klingebiel - HS Fulda - FB AI

Programmierung 2

• Beispielprogramm 2, Blink-Sketch:// pm-3-blink-extern.ino// klin, 28.10.2016// externe LED im Sekundentakt blinkenconst int led = 10; // LED an Pin D10void setup() // Initialisierung {pinMode(led, OUTPUT); // Pin 10 als Ausgang

}void loop() // Arbeitsschleife {digitalWrite(led, HIGH); // LED ein delay(1000); // 1 Sekunde wartendigitalWrite(led, LOW); // LED ausdelay(1000); // 1 Sekunde warten

}

Page 26: Kurze Einführung Arduino und Arduino-Programmierungmaya.rz.hs-fulda.de/pm.wise1718/pm-a.pdf · 2017. 11. 2. · auch für künstlerischen Einsatz von IT-Komponenten • benamst nach

Projektmodul DM - Peter Klingebiel - HS Fulda - FB AI

Programmierung 3

• C-main muss nicht programmiert werden: int main() // im Startupcode enthalten!{setup(); // Initialisierungwhile(1) // Endlosschleifeloop();

}

• Funktion void setup()– Initialisierungen des Programms und der Komponenten

• Funktion void loop()– Hauptschleife des Anwendungsprogramms, läuft endlos– Funktionsaufrufe von eigenen und Bibliotheksfunktionen– Code des Algorithmus des Programms

26

Page 27: Kurze Einführung Arduino und Arduino-Programmierungmaya.rz.hs-fulda.de/pm.wise1718/pm-a.pdf · 2017. 11. 2. · auch für künstlerischen Einsatz von IT-Komponenten • benamst nach

Projektmodul DM - Peter Klingebiel - HS Fulda - FB AI

Programmierung 4

• erste wichtige Funktionen:

– void Serial.begin(int baud)• seriellen Monitor auf Baudrate baud einstellen

– void Serial.print(type data)• data vom Typ type auf seriellen Monitor schreiben,

zulässig sind char, int, float, char *, String u.a.m.– void Serial.println(type data)

• data auf seriellen Monitor schreiben, dann neue Zeile– void delay(unsigned long ms)

• ms Millisekunden warten und nix tun• https://www.arduino.cc/en/Reference/HomePage

27

Page 28: Kurze Einführung Arduino und Arduino-Programmierungmaya.rz.hs-fulda.de/pm.wise1718/pm-a.pdf · 2017. 11. 2. · auch für künstlerischen Einsatz von IT-Komponenten • benamst nach

Projektmodul DM - Peter Klingebiel - HS Fulda - FB AI

Programmierung 5

• erste wichtige IO-Funktionen:

– void pinMode(int p, int m)• Pin p auf Modus INPUT oder OUTPUT einstellen

– void digitalWrite(int p, int w)• Wert v auf Digitalausgang Pin p schreiben

– int digitalRead(int p)• Wert von Digitaleingang Pin p lesen

– void analogWrite(int p, int w)• Wert v auf Analogausgang Pin p schreiben

– int analogRead(int p)• Wert von Analogeingang Pin p lesen

28

Page 29: Kurze Einführung Arduino und Arduino-Programmierungmaya.rz.hs-fulda.de/pm.wise1718/pm-a.pdf · 2017. 11. 2. · auch für künstlerischen Einsatz von IT-Komponenten • benamst nach

Projektmodul DM - Peter Klingebiel - HS Fulda - FB AI 29

Und los geht’s …

29