Erste Schritte. Programmieren für Ingenieure Sommer Andreas Zeller, Universität des Saarlandes

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

Teile und Herrsche. Themen heute. Eigene Funktionen Parameter Fallunterscheidungen Fehlersuche. Programmieren für Ingenieure Sommer 2015

Um überhaupt produktiv arbeiten zu können, sind eine Reihe grundlegender Vorbereitungen notwendig:

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

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

Felder und Schleifen. Themen heute. Felder Schleifen Heartbleed. Programmieren für Ingenieure Sommer Andreas Zeller, Universität des Saarlandes

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

ARDUINO Übung. Inhalt:

Highspeedaufnahmen mit dem Arduino Uno Board

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

Kapitel 3. Mein erstes C-Programm

Projekt Nr. 15: Einen elektronischen Würfel erstellen

microsrcp Photo by Nicholas Zambetti, Modelleisenbahnsteuerung auf Basis von standarddisierten Microcontrollerboards

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

Einführung in die Arduino Programmierung am Beispiel eines Roboters.

Embedded Hardware Getting Started

OLEDs und EL-Folie. Madleen Sklenar Sommersemester Masterstudiengang: Interaction Design Kurs: Neue Technologien Betreuung: Prof.

Programmieren in Haskell Einführung

Erste Schritte. In diesem Kapitel lernen Sie Folgendes:

Arduino ist eine Mikrocontrollerplattform,

Programmiersprachen und Programmierkonzepte

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny

11: Echtzeitbetriebssystem ucos-ii

Klausur in Programmieren

Die Geschichte von C

Programmieren für Ingenieure Sommer Ein Rechner. Rechner sind überall. Gerät, das mittels programmierbarer Rechenvorschriften Daten verarbeitet.

Messwerterfassung mit dem Arduino und dem "Data logging shield" Mai 2011

Einführung in die C-Programmierung

Programmierung mit C Zeiger

Programmieren in C. Eine Einführung in die Programmiersprache C. Prof. Dr. Nikolaus Wulff

Funktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Gute Lösung:

Metalab Kurs µc-programmierung in C. Clifford Wolf Stefan Farthofer DRAFT. im Oktober 2011

HelvePic32 Breadboard. Internet Data Logger

Grundlagen der Programmierung

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH

Objektorientierte Programmierung

Stefan Hoffmann. Leichter Start mit BASCOM und myavr

Unterprogramme. Funktionen. Bedeutung von Funktionen in C++ Definition einer Funktion. Definition einer Prozedur

Eine Einführung in C-Funktionen

Organisatorisches. Einführung in die Programmierung in C Hochschule Regensburg Universitätsstraße 31, Regensburg

Microcontroller Kurs Programmieren Microcontroller Kurs/Johannes Fuchs 1

Die Programmiersprache C

Physical-Computing mit der Arduino Plattform

Inhalt. 4.7 Funktionen

Der I²C-Bus. Vorstellung des Inter-Integrated Circuit -Bus. Aufbau und Funktionsweise. Beispiel PortExpander am Arduino

Ein Mikrocontroller ist ein Mikrochip, der alle benötigten Komponenten (sozusagen das Zubehör) bereits in sich trägt. Er sieht genauso aus wie 11

Java Einführung Programmcode

J.5 Die Java Virtual Machine

Die LogTrace-Bibliothek

Programmieren für Physiker: C++

Informationsverarbeitung im Bauwesen

Die WiFI Library( bei dem meisten recent?

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

Haftkünstler auf dem Prüfstand. Online Ergänzung HOLGER FLORIAN BOHN OLGA SPECK THOMAS SPECK

Selber Programmieren

2. Programmierung in C

Überblick: Programmierung der USB-Boards. Erstmalige Inbetriebnahme. Programmiervorgang:

L4. Erster Schritt zum Programmieren

Kapitel 1. Grundlagen

SSA P_51_002_NEU. doc

Anleitung. Hitec 2.4 GHz System Firmware Update

Informatik. Studiengang Chemische Technologie. Michael Roth WS 2012/2013. Hochschule Darmstadt -Fachbereich Informatik-

Kompaktkurs C-Programmierung

Programmiersprachen. Organisation und Einführung. Berthold Hoffmann. Studiengang Informatik Universität Bremen

Kurzanleitung um Transponder mit einem scemtec TT Reader und der Software UniDemo zu lesen

Deklarationen in C. Prof. Dr. Margarita Esponda

Automatisiertes Testen von Webanwendungen mit Selenium und Watij Sebastian Westkamp. Seminar Ausgewählte Themen des Softwareengineering

Microcontroller Kurs Microcontroller Kurs/Johannes Fuchs 1

Erik Schernich. Arduino für Kids. 1. Auflage

Objektorientierte Programmierung

5.4 Klassen und Objekte

Programmierung eines GIMP-Plugin

AOP Day 07. eine Veranstaltung der SIG AspectJ. organisiert vom AOP-Komitee. und der guten Fee. powered by. Oliver Böhm Darko Palic Ludger Solbach

Steuern und Messen mit Raspberry Pi

P(k, λ) = λ k /k!*exp(-λ) angegeben werden kann.

Java Programmierung auf der Konsole / unter Eclipse

5. Unterprogrammtechnik/Module

C-Probeklausur (Informatik 1; Umfang: C, Teil 1; SS07)

12. Rekursion Grundlagen der Programmierung 1 (Java)

Programmiersprachen Einführung in C. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm

Parallel-IO. Ports am ATmega128

Softwareupdate-Anleitung // AC Porty L Netzteileinschub

Arduino Shield (Zusatzplatine) zur Wasserstandsanzeige.

Netduino Mikroprozessor für.net Entwickler

Problemorientierte Programmiersprachen Nachteile von Programmen in Maschinensprache sehr aufwendig bei komplexeren Aufgabenstellungen fehleranfällig

PIWIN 1 Übung Blatt 5

Serielle Kommunikation mit dem Arduino. Teil 1: Das Serial Peripheral Interface (SPI)

Grundlagen von Python

J. Gräber Seite -1- Seite -2-

Modellgestütztes Software Engineering. Versuch 5. Wintersemester 2015

I.1 Die Parrot Assemblersprache

Programmieren in C. Macros, Funktionen und modulare Programmstruktur. Prof. Dr. Nikolaus Wulff

Making the Internet of Things

Workshop: ASURO-Programmieren in C

Vorlesung C-Kurs 9:15-10:45 Mathe 11:15-12:45 1. Woche Hörsaal 1 2. Woche Hörsaal 7

Arduino Programmier-Handbuch

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

1. Einführung Einführung in die Programmierung (fbw) Sommersemester 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, fbi

Datenbanksysteme I Datenbankprogrammierung Felix Naumann

Einführung in die Programmierung Laborübung bei Korcan Y. Kirkici. 6.Übung bis

Transkript:

Erste Schritte Programmieren für Ingenieure Sommer 2014 Andreas Zeller, Universität des Saarlandes

Das Galileo-Board

Anschluss 1. Netzteil 2. USB-Kabel

Programmierumgebung Download über Vorlesungs-Webseite

Demo

Ein Programm Bestimmt, was der Rechner tun soll Geschrieben in einer Programmiersprache Enthält und organisiert Anweisungen

Programmiersprachen Außerdem: Ruby, SQL, Perl, F#, Assembler, Lisp, MATLAB, Pascal, FORTRAN, COBOL

C Unsere Programmiersprache Entwickelt 1969 1973 in den Bell Labs für UNIX (als Nachfolger von B) Eine der verbreitetsten und einflussreichsten Sprachen Ken Thompson und Dennis Ritchie, Erfinder der Programmiersprache C Dialekte: C++, Objective-C

Ein C-Programm besteht aus Anweisungen: digitalwrite(led, HIGH); die wiederum in Funktionen zusammengefasst werden: void setup() { pinmode(led, OUTPUT); } Kommentare erläutern den Zweck: delay(1000); // Eine Sekunde warten

Anweisungen Wir betrachten zunächst Funktionsaufrufe. Die Arduino-Plattform stellt Tausende von Funktionen zur Verfügung Jede Funktion bietet einen Dienst an. pinmode() digitalwrite() delay() Pin als Ein/Ausgang konfigurieren Daten digital ausgeben Warten

Alle Funktionen In Arduino Menü: Hilfe Referenz

Funktionsaufrufe Die meisten Funktionen haben Parameter, die ihre Funktionsweise bestimmen digitalwrite(pin_number, value) Beim Aufruf muss für jeden Parameter ein Wert (Argument) angegeben werden digitalwrite(13, HIGH); Funktionsname Wert für value Wert für pin_number

Vorgegebene Funktionen Jedes Arduino-Programm (Sketch) beginnt mit zwei Funktionen: setup() loop() Einmalig beim Start ausführen Immer wiederholen In diesen Funktionen wird festgelegt, was im Programm passieren soll.

Funktionen definieren Eine Funktion wie setup() und loop() wird als Folge von Anweisungen definiert, eingeschlossen in { } void setup() { Anweisung 1; Anweisung 2;! } Jede Anweisung endet in einem ;

Kommentare Kommentare dienen dazu, das Programm für Menschen verständlich(er) zu machen Entweder // bis Zeilenende oder /* */ /* Pin 13 has an LED connected on most Arduino boards. */! // setup() runs once when you press reset Der Rechner ignoriert alle Kommentare

Beispiel: 3x Blinken void setup() { // configure PIN 13 (built-in LED) as output pinmode(13, OUTPUT);! // turn the LED on (HIGH is the voltage level) digitalwrite(13, HIGH);! // wait for a second delay(1000);! // turn the LED off by making the voltage LOW digitalwrite(13, LOW);! // wait for a second delay(1000);! // turn the LED on }

Demo

Vom Programm zum Prozessor Prüfen und Übersetzen C-Programm Maschinen- Programm Galileo-Board Hochladen über USB

Demo

Wiederholung Nach setup() wird die loop()-funktion immer und immer wieder aufgerufen

Beispiel: Ewig Blinken void setup() { // configure PIN 13 (built-in LED) as output pinmode(13, OUTPUT); } void loop() { // turn the LED on (HIGH is the voltage level) digitalwrite(13, HIGH);! // wait for a second delay(1000);! // turn the LED off by making the voltage LOW digitalwrite(13, LOW);! // wait for a second delay(1000); }

Demo

Eine Leuchtdiode Anode (+) langes Bein runde Seite Kathode ( ) kurzes Bein abgeflachte Seite

LED anschließen Um eine LED an 5V anzuschließen, braucht man einen Vorwiderstand (meist ~120Ω) In unseren LEDs ist dieser Vorwiderstand bereits integriert Kathode (, kurzes Bein) an GND, Anode (+, langes Bein) an Port

Demo

Die Wilde 13 Wird die LED an einen anderen Port angeschlossen, muss man im gesamten Programm die Portnummer ändern In einem großen Programm wird das schnell zum Problem Lösung: Variablen

Variablen Variablen dienen dazu, Werte zu speichern. Mit der Anweisung int led = 13; wird led als eine Variable eingeführt, die mit dem Wert 13 belegt ist. Nach der Anweisung steht led stellvertretend für den Variablenwert

Typen Der Typ einer Variable bestimmt, welche Werte die Variable speichern kann int ganzzahlige Werte (integer) Weitere Typen: float, char, void

Symbolisches Blinken // Pin 13 has an LED connected on most // Arduino boards. Give it a name: int led = 13;! void setup() { pinmode(led, OUTPUT); } void loop() { digitalwrite(led, HIGH); delay(1000); digitalwrite(led, LOW); delay(1000); }

Schneller Blinken // Pin 13 has an LED connected on most // Arduino boards. Give it a name: int led = 13;! // Blinking delay (in ms) int blink_delay = 250;! void setup() { pinmode(led, OUTPUT); } void loop() { digitalwrite(led, HIGH); delay(blink_delay); digitalwrite(led, LOW); delay(blink_delay); }

Demo

Wechselblinken int led_red = 12; int led_green = 13;! void setup() { pinmode(led_red, OUTPUT); pinmode(led_green, OUTPUT); } void loop() { digitalwrite(led_red, HIGH); digitalwrite(led_green, LOW); }

Demo

Bezeichner Alle Namen für Variablen und Funktionen (Bezeichner) bestehen aus a z, A-Z, 0 9 und _ (Unterstrich) Bezeichner dürfen nicht mit 0 9 beginnen In einem Sketch darf jeder Bezeichner nur 1x vergeben werden

Bezeichner delay, Delay und DELAY sind unterschiedliche Bezeichner Konvention: Delay eine Klasse DELAY ein Makro _delay intern }machen wir nicht!

So was dähmliches Bei Fehlern: Fehlermeldung Zeile Spalte Blink.ino:7:5: error: redefinition of 'int on_delay' aktuelle Zeile Fehlermeldung

Demo

Vorschau Morse-Code Funktionen mit Parametern Kontrollstrukturen

Vom Programm zum Prozessor Prüfen und Übersetzen C-Programm Maschinen- Programm Hochladen über USB Galileo-Board Funktionsaufrufe Die meisten Funktionen haben Parameter, die ihre Funktionsweise bestimmen! Beim Aufruf muss für jeden Parameter ein Wert (Argument) angegeben werden Funktionsname digitalwrite(pin_number, value) digitalwrite(13, HIGH); Wert für pin_number Wert für value Variablen Variablen dienen dazu, Werte zu speichern. Mit der Anweisung int led = 13; wird led als eine Variable eingeführt, die mit dem Wert 13 belegt ist. Nach der Anweisung steht led stellvertretend für den Variablenwert Symbolisches Blinken // Pin 13 has an LED connected on most // Arduino boards. Give it a name: int led = 13;! void setup() { pinmode(led, HIGH); } void loop() { digitalwrite(led, HIGH); delay(1000); digitalwrite(led, LOW); delay(1000); }