Vorwort Lichteffekte mit Arduino_NEU.indd :00:47

Ähnliche Dokumente
Arduino und Amateurfunk (1)

ARDUINO Übung. Inhalt:

Einleitung Die Pins alphabetisch Kapitel 1 Programmierung des ATmega8 und des ATmega

Was ist Arduino? Historie Der Kern Entwicklungsumgebung Hardware Software Und wozu das Ganze? Workshop Mikrorechner 2012 A.

ARDUINO. HANDBUCH Platinen, Shields, Elektronik. I SnÄXV7. FÄcrag^ WII^

Jan Monsch. Donnerstag, 2. Mai 13

BOOTLOADER für AVR-Entwicklungsmodule

Microcontroller Praktikum SS2010 Dipl. Ing. R. Reisch

CU-R-CONTROL. Beschreibung zur Schaltung ATMega16-32+ISP MC-Controller Steuerung auf Basis ATMEL Mega16/32. Autor: Christian Ulrich

C programmieren. Jürgen Wolf

Erste Gehversuche mit ARDUINO (Teil 3) (DL6OAA) Die 7-Segmentanzeige (1-stellig)

Android + Arduino Hardware steuern mit Android. Entwicklertag Karlsruhe, Sebastian Wastl

Einführung in Mikrokontroller Benutzung mit dem Arduino Board. Ramon Hofer ICVR

Dateien, die nicht in das Projekt eingebunden sind, werden ohne Syntax highlight dargestellt. MiCoWi und µvision Seite 1 Uwe Wittenfeld

Inhaltsverzeichnis. Vorwort

Arduino für FunkAmateure

Fertigung der Experimentierplatine für die 1. Praktische Aufgabe

Inhaltsverzeichnis. Vorwort NXTundNXC DerNXT NXC Not exactly C Compiler Zusammenfassung 17

Installation & Usage. Version 1.0. estickflashtool

Microcontroller Kurs Microcontroller Kurs/Johannes Fuchs 1

Termin: am Montag, , 9:00-11:30 Uhr sowie am Freitag, , 12:15-14:45 Uhr, jeweils im Raum 4-18

Wir hätten nie gedacht das drei Computer und Elektronik-Fans soweit kommen!! Mit diesem Video sagen wir vielen Dank!

Microcontroller im Amateurfunk

Mark VHS Augsburg Einführung in die Mikrocontroller-Programmierung.

Roboter programmieren mit NXC für LEGO MINDSTORMS NXT

80C535-Mikrocontroller-Board im Streichholzschachtelformat

Projekt Nr. 15: Einen elektronischen Würfel erstellen

& & & & 7, * 5-6 & +&/ ++ ( ( +2:/ " ; + &/ < ' *6 " >. &/ , "? 2 > 4 " +" 3 &/ 3 + +? +&/ +? 2 &/ ! "# $% & ' ()* # +,- -)***.

I8O8-USB. Serial Input and Output Board with. 8 Inputs 8 Outputs 8 ADC-Inputs USB (FTDI) Rev rtec.rohrhofer.org

ateval-board Aufbauanleitung & Handbuch

SINNsorik Wahrnehmen durch Sensoren NAME, KLASSE:

Mikrocontrollertechnik. F5 Erstes Programm. AVR Studio 4

DCC Funktionsdecoder OD2_F Dec V1.0. Bild zeigt den funktionsfähigen Prototypen

Einführung in das Programmieren in der Sekundarstufe 1. mit einem Arduino und der Physical-Computing-Plattform

,Das wären ja prächtige Kleider', dachte der Kaiser; wenn ich solche hätte,..ja, das Zeug muss sogleich für mich gewebt werden!'

1.1 In diesem Kapitel Ein wenig C-Geschichte Warum in C programmieren? Die Struktur dieses Buches 19

Einführung in die Welt der Microcontroller

Systeme I: Betriebssysteme Kapitel 2 Überblick Betriebssysteme. Wolfram Burgard

- Der heisse Draht - Physical Computing. Workshop Oktober 2015 Olav Schettler

1 Einführung Erste Schritte Programmierkurs Datentypen Weiterführende Programmierung

Berichte aus der Informatik. Dieter Pawelczak. Start in die C-Programmierung

C für Java-Programmierer

Kapitel 6,»Objektorientierte Programmierung«, widmet sich der objektorientierten Programmierung mit Python.

Das Pollin Atmel Evaluationboard Ver unter Verwendung von MyAVR_Prog Tool und der Arduino IDE ein Kurztutorial

1Schnelleinstieg 14. 2Wie aus einer einfachen Textdatei. 3 Wie man eigene Programme erstellt 30. Inhaltsverzeichnis. ein Programm wird 20

Alexander Niemann. Das Einsteigerseminar Objektorientierte Programmierung in Java. bhv

Fortbildungsmodule >> Elektrotechnik. Präzisierung zu Modulbereich Mikrocontroller [E61] Teilmodul E611 Grundlagen Mikrocontrollertechnik (µc)

C++-Entwicklung mit Linux

Danksagung. Was Sie benötigen. Startpakete Die vollständige Teileliste. Teil 1 Erste Schritte mit Arduino 1. 1 Willkommen bei Arduino 3

Rainer Haselier Klaus Fahnenstich. Programmieren mit. Ein Lehr- und Arbeitsbuch EDITION. Microsoft' Markt&Technik Verlag AG

Starten Sie die Arduino IDE und geben Sie den folgenden Programmcode ein:

Erste Schritte. Das Arduino-Board. Ihr Fundino-Board. Programmieren für Ingenieure Sommer Andreas Zeller, Universität des Saarlandes

Motivation und Überblick

C-Programmierung unter TOS ATARI ST

C++ mit dem Arduino (Uno und Mega2560)

Produktinformationen. Basis Set Atmel Atmega8 & ISP Programmer. Lieferumfang :

Selbstbau-USB-Programmiergerät für AVR

Labor Automatisierungstechnik

Objektorientierte Programmierung in Java

Produktinformation USB AVR Lab

U5-2 Register beim AVR-µC

Entwicklungsboard 16F1824

Tutorium Rechnerorganisation


Praktische Informatik I

Assembler in der Arduino-IDE: ein Einblick

Auf einen Blick. Vorwort Einführung Sprachgrundlagen von VBScript Objektorientierte Programmierung mit. dem Windows Script Host 115

690+ Bootloader Software - Upgrade -

Inhaltsverzeichnis. Vorwort 13

Serie 8: Microcontroller 17./

UIRT2 mit Girder HowTo

Turbo Pascal Profibuch

Andre Willms. Spielend C++ lernen. oder wie man Käfern Beine macht. Galileo Press

Radar Evaluation Board - REB165 Installation / Getting Started

Bau und Programmieranleitung für den IR - Booster. Vorbemerkungen

Das Grundlagenbuch zu FileMaker Pro 7- Datenbanken erfolgreich anlegen und verwalten

Michael Kolberg. einfach klipp & klar. Microsofft* Press

Arduino, IR Fernbedienung dekodieren

GdI2 - Systemnahe Programmierung in C Übungen Jürgen Kleinöder Universität Erlangen-Nürnberg Informatik 4, 2006 U4.fm

Walter Saumweber. Richtig einsteigen: Programmieren lernen mit Visual C

Grundlagen der Anwendung und Programmierung des ESP8266. Dennis Hoffmann Mittwoch, :30 Uhr Schulungsraum SW23/147

Open Hardware Workshop - Chemnitzer Linux-Tage

Grundlagen der Programmierung

Bei jedem Arduino-Projekt muss man ein Grundgerüst "bauen". Das sieht dann so aus:

Grundkurs Software- Entwicklung mit C++

Physical Computing. Ralf Nolte. Bielefeld, 13. Dezember 2011

2 Anlegen und Konfigurieren von Datenbanken 35


Inhaltsverzeichnis 1 Einführung Die Software JGIS Grundlagen raumbezogener Daten

Programmierung von ATMEL AVR Mikroprozessoren am Beispiel des ATtiny13. Teil IV: Programmieren an Beispielen

8.1 Grundsätzlicher Aufbau der Beispiele

Inhaltsverzeichnis. Was ist Informatik? 5. Programmierung 13. Einleitung. 1 Informatik Was ist Informatik? Teilgebiete der Informatik 8

DAS EINSTEIGERSEMINAR PHP 5.3 LERNEN ÜBEN ANWENDEN. Oliver Leiss Jasmin Schmidt. 3. Auflage

magnum C++ WALTER SAUMWEBER kompakt komplett kompetent

Wer möchte, kann sein Programm auch auf echter Hardware testen

Programmieren in C Teil 3: Mikrocontrollerprogrammierung

ICmega8 / ICmega8-USB

Programmierung mit Java

Makros sind Textersetzungen, welche vom Präprozessor aufgelöst werden. Dies Passiert bevor der Compiler die Datein verarbeitet.

Transkript:

Vorwort 5 Das Lernpaket»Lichteffekte mit Arduino«wurde genauso wie die Arduino Plattform für Künstler, Designer und Bastler entwickelt. Es richtet sich ganz besonders an alle, die möglichst schnell erste Ideen umsetzen wollen. Gleichzeitig ist es aber auch für jene konzipiert, die nicht lange auf dem Anfängerniveau verharren, sondern möglichst bald in die Tiefen der Arduino-Programmierung vordringen wollen. Damit das gelingt, fokussieren wir auf Themen, die mit Licht zu tun haben. Das umfasst die Erstellung eigener Programme genauso wie die Bearbeitung von Bildern per Grafikprogramm. Diesem Paket liegt eine spezielle Arduino-kompatible Platine bei. Alle benötigten Teile sind bereits fest auf der Platine integriert. Dadurch entfällt jeglicher Verdrahtungs- oder Bastelaufwand und Sie können schneller mit den ersten Schritten beginnen. Selbst Fortgeschrittene profitieren von diesem speziellen Aufbau, weil er sowohl bei der Entwicklung als auch bei der Fehlersuche nützlich ist. Mit einfachen Programmen werden zunächst die Entwicklungsumgebung und die Grundfunktionen des Arduino untersucht. Danach beginnen wir mit grundlegenden Lichteffekten. Diese führen wir fort bis zu»persistence of Vision«-Effekten die sich vor allem für Lightpainting (Lichtmalerei) gut eignen. Unterwegs erlernen wir den Umgang mit dem EEPROM und Interrupts. Der Lichtmalerei ist dann ein eigenes Kapitel gewidmet, das sich vor allem mit der Nachbearbeitung in Grafikprogrammen beschäftigt. Danach tauchen wir in die Tiefen der Entwicklungsumgebung ein, um zu erkunden, wie genau ein Programm in den Arduino kommt. Ein weiteres Kapitel ist dem Thema Performance-Optimierung gewidmet. Die gesammelten Erkenntnisse setzen wir ein, um die Lichteffekte deutlich zu verbessern. Abschließend folgen ausführliche Hinweise für eigene Projekte und zur geschickten Fehlersuche. Mein besonderer Dank geht an Frau Wilma Murr, Herrn Uwe Federer und Herrn Sebastian Pinno, die die Rohfassung des Textes durchgearbeitet und dabei sehr gute Verbesserungsvorschläge eingebracht haben. Udo Klein 65130-1 Lichteffekte mit Arduino_NEU.indd 5 02.08.2012 09:00:47

6 65130-1 Lichteffekte mit Arduino_NEU.indd 6 02.08.2012 09:01:09

Inhaltsverzeichnis 7 1 Arduino was ist das?... 11 1.1 Arduino-Hardware... 11 1.2 Arduino-Software... 12 1.3 Arduino-Community... 12 2 Entwicklungsumgebung... 13 2.1 Installation... 13 2.1.1 Windows... 14 2.1.2 Linux... 14 2.1.3 Apple... 14 2.1.4 Fehlersuche bei der Installation... 15 2.2 Grundfunktionen... 15 3 Einfache Programme... 25 3.1 Alle Pins high... 25 3.2 Alle Pins low... 29 3.3 Alle Pins hochohmig... 31 3.4 Alle Pins als Eingabe mit Pull-up... 33 3.5 Nichts tun... 35 4 Einfache Effekte... 37 4.1 Springender Ball... 37 4.2 Zufallsblinker... 39 4.3 Larson Scanner... 41 5 EEPROM und Resets... 45 5.1 Resets zählen... 46 5.2 EEPROM schonen... 48 5.3 Eine Bibliothek anlegen... 51 5.4 Effekte umschalten... 57 65130-1 Lichteffekte mit Arduino_NEU.indd 7 02.08.2012 09:01:11

8 Inhaltsverzeichnis 6 Persistence of Vision... 63 6.1 MsTimer2 und Interrupts... 65 6.2 Direkte Port-Manipulation... 67 6.3 Arrays und Progmem... 69 6.4 Makros... 72 6.5 Strom sparen im Schlaf... 74 7 Persistence-of-Vision-Programme generieren... 77 7.1 Python installieren... 77 7.2 Persistence-of-Vision-Generator... 78 7.3 Persistence-of-Vision-Effekte umschalten... 80 8 Malen mit Licht... 83 9 Hinter den Kulissen... 105 9.1 Die Entwicklungsumgebung... 105 9.1.1 Arbeitsverzeichnis erstellen... 108 9.1.2 C++-Programm erstellen... 108 9.1.3 C-Programm kompilieren... 109 9.1.4 Bibliotheken kompilieren... 110 9.1.5 Bibliotheken einpacken... 111 9.1.6 Programm binden... 112 9.1.7 hex-datei erzeugen... 112 9.1.8 Programm in den Prozessor laden... 113 9.2 Der C-Compiler... 113 9.3 Der Linker... 117 9.4 Avrdude und der Bootloader... 119 9.5 Board und Programmieradapter-Einstellungen... 122 10 Performance-Optimierung... 125 10.1 Performance messen... 126 10.2 Code Tuning... 127 10.2.1 Unnötige Funktionen entfernen... 127 10.2.2 Aktives Warten... 128 10.2.3 Ein- und Ausgabeoperationen... 128 10.2.4 Operationen, die implizit warten... 128 10.2.5 digitalread und digitalwrite... 128 10.2.6 Delay... 128 10.2.7 Bibliotheksfunktionen... 129 10.2.8 Fließkommaoperationen... 129 65130-1 Lichteffekte mit Arduino_NEU.indd 8 02.08.2012 09:01:11

Inhaltsverzeichnis 9 10.2.9 Einfachere Operationen und passende Variablentypen... 129 10.2.10 Näherungsverfahren... 129 10.2.11 Algebraische Identitäten... 130 10.2.12 Mehrfachauswertungen vermeiden... 130 10.2.13 Vorberechnete Werte... 131 10.2.14 Entscheidungen möglichst früh und schnell treffen... 131 10.2.15 Schleifen... 131 10.2.16 Mehrdimensionale Arrays durch eindimensionale ersetzen.. 135 10.2.17 Compiler-Einstellungen... 135 10.2.18 Assembler... 135 11 Flimmern entfernen... 137 11.1 Larson Scanner... 138 11.2 Binäre Pulsweitenmodulation... 146 11.3 Binäre Pulsweitenmodulation mit Interrupts... 161 11.3.1 Larson Scanner mit binärer Pulsweitenmodulation... 168 11.3.2 Zufallsblinker mit binärer Pulsweitenmodulation... 170 12 LED-Kamera... 171 13 Eigene Projekte... 175 13.1 Vorgehensweise... 175 13.2 Fehlersuche... 177 13.2.1 Sicherstellen, ob überhaupt ein Fehler vorliegt... 177 13.2.2 Fehler stabil reproduzieren... 178 13.2.3 Fehler isolieren... 178 13.2.4 Nachsehen statt spekulieren... 179 13.2.5 Fehler beheben... 180 13.2.6 Prüfen, ob die Korrektur den Fehler beseitigt... 180 13.2.6 Nachsehen, ob weitere ähnliche Fehler vorhanden sind... 180 13.3 Typische Fehler... 180 13.3.1 Upload funktioniert nicht... 181 13.3.2 Programm lässt sich nicht kompilieren... 181 13.3.3 Kurzschluss... 181 13.4 Arduino ohne fertig gekaufte Platine... 181 13.4.1 Low Fuse... 185 13.4.2 High Fuse... 186 13.4.3 Extended Fuse... 187 13.4.4 Wahl eines ISP... 188 65130-1 Lichteffekte mit Arduino_NEU.indd 9 02.08.2012 09:01:11

10 Inhaltsverzeichnis 14 Elektronik Einführung... 189 14.1 Strom und Spannung... 189 14.2 Widerstand... 191 14.3 Reihen- und Parallelschaltung... 192 14.4 Diode und Leuchtdiode... 194 14.5 Kondensator... 197 15 Arduino-Platine... 199 15.1 Schaltplan... 201 15.2 Pin-Belegung... 202 15.3 Technische Daten... 202 16 Befehlsübersicht... 203 16.1 Grundstruktur... 204 16.2 Kontrollstrukturen... 204 16.3 Funktionen... 206 16.4 Operatoren... 206 16.4.1 Rechenoperatoren... 206 16.4.2 Bitweise Rechenoperatoren... 207 16.4.3 Kurzschreibweisen für Operatoren... 207 16.4.4 Vergleichsoperatoren... 208 16.4.5 Logische Operatoren... 208 16.5 Werte... 209 16.6 Datentypen... 209 16.6.1 Qualifikatoren... 210 16.7 Häufig benötige Konstanten... 210 16.8 Arrays und Strings... 210 16.9 Pin-Zugriffe... 211 16.10 Direkte Port-Zugriffe... 211 16.11 Bit-Operationen... 212 16.12 Zeit... 213 16.13 Mathematik... 214 16.14 Zufallszahlen... 215 16.15 Serielle Schnittstelle... 215 16.16 EEPROM... 216 16.17 Progmem... 216 65130-1 Lichteffekte mit Arduino_NEU.indd 10 02.08.2012 09:01:11