programmieren für ingenieure - st.cs.uni-saarland.de · ihr rechner arduino •...
TRANSCRIPT
![Page 1: Programmieren für Ingenieure - st.cs.uni-saarland.de · Ihr Rechner Arduino • Physical-Computing-Plattform zum Erstellen interaktiver, physischer Systeme, die Hardware und Software](https://reader033.vdocuments.net/reader033/viewer/2022041415/5e1aec29f3dee36dcd25d4b2/html5/thumbnails/1.jpg)
Programmierenfür Ingenieure
Sommer 2015
Andreas Zeller, Universität des Saarlandes
Ein Rechner
• Gerät, das mittels programmierbarer Rechenvorschriften Daten verarbeitet.
Rechner sind überall
![Page 2: Programmieren für Ingenieure - st.cs.uni-saarland.de · Ihr Rechner Arduino • Physical-Computing-Plattform zum Erstellen interaktiver, physischer Systeme, die Hardware und Software](https://reader033.vdocuments.net/reader033/viewer/2022041415/5e1aec29f3dee36dcd25d4b2/html5/thumbnails/2.jpg)
Ihr Rechner
Arduino
• Physical-Computing-Plattform zum Erstellen interaktiver, physischer Systeme, die Hardware und Software verbinden
• Mikrocontroller (Prozessor) mit analogen und digitalen Ein- und Ausgängen
• Entwicklungsumgebung auf PC
Ein-/Ausgabe
![Page 3: Programmieren für Ingenieure - st.cs.uni-saarland.de · Ihr Rechner Arduino • Physical-Computing-Plattform zum Erstellen interaktiver, physischer Systeme, die Hardware und Software](https://reader033.vdocuments.net/reader033/viewer/2022041415/5e1aec29f3dee36dcd25d4b2/html5/thumbnails/3.jpg)
Ein-/Ausgabe
Steckplatine
Stecken und Schalten
![Page 4: Programmieren für Ingenieure - st.cs.uni-saarland.de · Ihr Rechner Arduino • Physical-Computing-Plattform zum Erstellen interaktiver, physischer Systeme, die Hardware und Software](https://reader033.vdocuments.net/reader033/viewer/2022041415/5e1aec29f3dee36dcd25d4b2/html5/thumbnails/4.jpg)
Programmierung
Ziele
• Grundlagen der Programmierung
• Umgang mit Ein-/Ausgabegeräten
• Programmierung eigener Steuerungen
Aufbau
• Vorlesung zur Programmierung
• Übung auf Arduino-Board
• Freies Projekt
• Klausur am Vorlesungsende
![Page 5: Programmieren für Ingenieure - st.cs.uni-saarland.de · Ihr Rechner Arduino • Physical-Computing-Plattform zum Erstellen interaktiver, physischer Systeme, die Hardware und Software](https://reader033.vdocuments.net/reader033/viewer/2022041415/5e1aec29f3dee36dcd25d4b2/html5/thumbnails/5.jpg)
Vorlesung– Programmierthemen –
• Start mit Arduino
• Grundlagen(Anweisungen, Steuerung, Hauptschleife)
• Funktionen mit Parametern
• Kontrollstrukturen
• Felder
Vorlesung
• Zeichen
• Ein-/Ausgabe
• Algorithmen
• Graphen
• Datenstrukturen
• Testen + Fehlersuche
Übungen– Projekte –
• Blinklicht
• Morse-Code
• Fußgängerampel
• Nim-Spiel
• Tic-Tac-Toe
![Page 6: Programmieren für Ingenieure - st.cs.uni-saarland.de · Ihr Rechner Arduino • Physical-Computing-Plattform zum Erstellen interaktiver, physischer Systeme, die Hardware und Software](https://reader033.vdocuments.net/reader033/viewer/2022041415/5e1aec29f3dee36dcd25d4b2/html5/thumbnails/6.jpg)
Übungen
• Weitere Sensoren
• Messungen verarbeiten
• Navigation
• Webserver
• Internet der Dinge
Arbeit
Team
![Page 7: Programmieren für Ingenieure - st.cs.uni-saarland.de · Ihr Rechner Arduino • Physical-Computing-Plattform zum Erstellen interaktiver, physischer Systeme, die Hardware und Software](https://reader033.vdocuments.net/reader033/viewer/2022041415/5e1aec29f3dee36dcd25d4b2/html5/thumbnails/7.jpg)
Erfolg im Team
Übungen
1. Individuelles Programmieren(einzureichen beim Tutor)
2. Ausführen und Testen auf Ihrem Board
3. Vorführung und individuelle Erklärungin Übung vor Tutor
Freies Projekt– Optional (für 8 CP statt 5 CP) –
• Sie überlegen sich in der Gruppe ein Arduino-Projekt (mit Hard- und Software)
• Sie implementieren das Projekt
• Bewertung nach ★ Originalität ★ Komplexität ★ Funktionalität
![Page 8: Programmieren für Ingenieure - st.cs.uni-saarland.de · Ihr Rechner Arduino • Physical-Computing-Plattform zum Erstellen interaktiver, physischer Systeme, die Hardware und Software](https://reader033.vdocuments.net/reader033/viewer/2022041415/5e1aec29f3dee36dcd25d4b2/html5/thumbnails/8.jpg)
Licht-UhrMurat Güner, Maximilian Junk, Pierre Kehl und Thomas Kreis
3 Datenstrukturen [15 Punkte]Einev
e
r
k
e
t
t
e
t
e
L
i
s
t
e ist eine dynamische Datenstruktur, die eine Speicherung von miteinander in
Beziehung stehenden Objekten erlaubt. Die Anzahl der Objekte ist im Vorhinein nicht bestimmt.
Die Liste wird durchZ
e
i
g
e
r auf das jeweils folgende Element realisiert.
Das folgende Bild zeigt eine Liste, bestehend aus drei Elementen. Jedes Element ist definiert als
s
t
r
u
c
t Elem {i
n
t value;// Der Wert
s
t
r
u
c
t Elem *next; // Zeiger auf das nächste Element
};
Der Zeiger des letzten Elements (hier 37) hat den Wert NULL.
Um auf eine Liste zuzugreifen, fängt man beim ersten Element (hier 12) an, und folgt dann den
Zeigern auf das jeweils nächste Element. Die folgende Funktion prüft, ob ein Element mit dem
Wertx in der Liste
e enthalten ist. Wenn ja, gibt sie einen Zeiger auf das Element zurück; wenn
nicht, gibt sie NULL zurück.// Erstes Element der Liste LIST mit Wert X zurückgeben
// (oder NULL, wenn nicht gefunden)s
t
r
u
c
t Elem *search(s
t
r
u
c
t Elem *list,i
n
t x) {
s
t
r
u
c
t Elem *e = list; // Erstes Element
w
h
i
l
e (e != NULL && e->value != x)e = e->next;
r
e
t
u
r
n e;}
Ihre Aufgabe ist es, eine Funktion zu schreiben, die ein gegebenes Elemente als letztes Element an
eine nicht-leere Listel
i
s
t anhängt.a) [3 Punkte] Nehmen wir an, Sie möchten ein Element mit Wert 44 an die Liste anhängen. Zeich-
nen Sie (ähnlich zu obigem Diagramm), wie die Liste nach dem Anhängen aussieht.
b) [8 Punkte] Um ein Element anzuhängen, müssen Sie zunächst das letzte Element finden.
Schreiben Sie eine Funktion last(), die (ähnlich wie search() oben) durch die Liste geht,
und das letzte Element liefert.// Letztes Element der Liste LIST zurückgeben
s
t
r
u
c
t Elem *last(s
t
r
u
c
t Elem *list) {// Ihr Code hier}
c) [4 Punkte] Gegeben sei nun ein existierendes ElementE . Nutzen Sie Ihre Funktion last(),
um an das letzte Listenelement das ElementE anzuhängen. Implementieren Sie die Funkti-
on append() entsprechend; achten Sie darauf, dass der Zeiger des (neuen) letzten Elements
anschließend NULL sein muss.// Element E an die Liste LIST anhängen
v
o
i
d append(s
t
r
u
c
t Elem *list,s
t
r
u
c
t Elem *e) {
// Ihr Code hier}
5
Klausur
• Prüft IhreProgrammier-fähigkeiten
• Am Ende der Vorlesung
Gesamtbewertung
Projekt 25 %
Übungen 25 %
50 %
• Bei 8 CP
Klausur (muss bestanden
werden)
![Page 9: Programmieren für Ingenieure - st.cs.uni-saarland.de · Ihr Rechner Arduino • Physical-Computing-Plattform zum Erstellen interaktiver, physischer Systeme, die Hardware und Software](https://reader033.vdocuments.net/reader033/viewer/2022041415/5e1aec29f3dee36dcd25d4b2/html5/thumbnails/9.jpg)
Gesamtbewertung
Übungen 33 %
67 %
• Bei 5 CP
Klausur (muss bestanden
werden)
Was Sie brauchen
Anfängerset “Funduino MEGA 1”
Was Sie brauchen
LCD-Modul I2C/TWI 1602 Serial
![Page 10: Programmieren für Ingenieure - st.cs.uni-saarland.de · Ihr Rechner Arduino • Physical-Computing-Plattform zum Erstellen interaktiver, physischer Systeme, die Hardware und Software](https://reader033.vdocuments.net/reader033/viewer/2022041415/5e1aec29f3dee36dcd25d4b2/html5/thumbnails/10.jpg)
Was Sie brauchen
W5100 Ethernet Schild für Arduino Mega
Was Sie brauchen
Entwicklungsumgebung (Windows, Mac OS X, Linux)
Was Sie brauchen
![Page 11: Programmieren für Ingenieure - st.cs.uni-saarland.de · Ihr Rechner Arduino • Physical-Computing-Plattform zum Erstellen interaktiver, physischer Systeme, die Hardware und Software](https://reader033.vdocuments.net/reader033/viewer/2022041415/5e1aec29f3dee36dcd25d4b2/html5/thumbnails/11.jpg)
Ihre Quelle
https://www.st.cs.uni-saarland.de/edu/ping/
Nächste Schritte• Anmeldung
• Einteilung in Gruppen
• Beschaffung von Boards und Bauteilen
https://www.st.cs.uni-saarland.de/edu/ping/
Ihr Rechner Aufbau
• Vorlesung zur Programmierung
• Übung auf Arduino-Board
• Freies Projekt
• Klausur am Vorlesungsende
https://www.st.cs.uni-saarland.de/edu/ping/
Gesamtbewertung
Projekt 25 %
Übungen 25 %
50 %
• Bei 8 CP
Klausur (muss bestanden
werden)
Nächste Schritte• Anmeldung
• Einteilung in Gruppen
• Beschaffung von Boards und Bauteilen
https://www.st.cs.uni-saarland.de/edu/ping/
![Page 12: Programmieren für Ingenieure - st.cs.uni-saarland.de · Ihr Rechner Arduino • Physical-Computing-Plattform zum Erstellen interaktiver, physischer Systeme, die Hardware und Software](https://reader033.vdocuments.net/reader033/viewer/2022041415/5e1aec29f3dee36dcd25d4b2/html5/thumbnails/12.jpg)
Handouts
Ein Rechner
• Gerät, das mittels programmierbarer Rechenvorschriften Daten verarbeitet.
Ihr Rechner
Anfängerset “Funduino MEGA 1”
![Page 13: Programmieren für Ingenieure - st.cs.uni-saarland.de · Ihr Rechner Arduino • Physical-Computing-Plattform zum Erstellen interaktiver, physischer Systeme, die Hardware und Software](https://reader033.vdocuments.net/reader033/viewer/2022041415/5e1aec29f3dee36dcd25d4b2/html5/thumbnails/13.jpg)
Ihre Anzeige
LCD-Modul I2C/TWI 1602 Serial
Ihr Anschluss
W5100 Ethernet Schild für Arduino Mega
Ihre Bücher
![Page 14: Programmieren für Ingenieure - st.cs.uni-saarland.de · Ihr Rechner Arduino • Physical-Computing-Plattform zum Erstellen interaktiver, physischer Systeme, die Hardware und Software](https://reader033.vdocuments.net/reader033/viewer/2022041415/5e1aec29f3dee36dcd25d4b2/html5/thumbnails/14.jpg)
Gesamtbewertung
Übungen 33 %
67 %
• Bei 5 CP
Klausur (muss bestanden
werden)
Gesamtbewertung
Projekt 25 %
Übungen 25 %
50 %
• Bei 8 CP
Klausur (muss bestanden
werden)
Nächste Schritte• Anmeldung
• Einteilung in Gruppen
• Beschaffung von Boards und Bauteilen
https://www.st.cs.uni-saarland.de/edu/ping/