Einarbeitung in die Versionsverwaltung SVN: Unterschied zwischen den Versionen
(→FAQ) |
Keine Bearbeitungszusammenfassung |
||
(30 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
[[Kategorie:Arduino]] | [[Kategorie:Arduino]] | ||
[[Datei:Apache Subversion logo.svg.png|thumb|rigth| | [[Datei:Apache Subversion logo.svg.png|thumb|rigth|300px|Abb. 1: Einarbeitung in die Versionsverwaltung SVN]] | ||
{| | {| class="wikitable" | ||
|- | |- | ||
| '''Autor:''' || [[Benutzer:Ulrich_Schneider| Prof. Dr.-Ing. Schneider]] | | '''Autor:''' || [[Benutzer:Ulrich_Schneider| Prof. Dr.-Ing. Schneider]] | ||
Zeile 13: | Zeile 13: | ||
==Fragestellungen, Begriffe und Voraussetzungen== | ==Fragestellungen, Begriffe und Voraussetzungen== | ||
===Fragestellungen=== | ===Fragestellungen=== | ||
Als Software Versionsverwaltung verwenden wir an der Hochschule Hamm-Lippstadt '''Subversion''' (kurz SVN). Hierfür gibt es kostenlose Clients für Win und Mac. Versionsverwaltung und nachhaltiges Arbeiten ist ein wichtiger Bestandteil Ihres Studiums, daher führen wir Sie bereits im 1. Semester heran. | |||
Eine Versionsverwaltung dient einerseits dazu Daten auf einem Server zu sichern und so dass weltweite kollaborierte Arbeiten zu ermöglichen. Andererseits bietet sie die Möglichkeit ältere Projektstände verschiedener Dateien wieder herzustellen. Wesentliche Fragestellung sind die Funktion der Versionsverwaltung mit Fokus auf den Datentransfer und dem praktischen Umgang. Als Software Versionsverwaltung verwenden wir an der Hochschule Hamm-Lippstadt Subversion (kurz SVN). Hierfür gibt es kostenlose Clients für Win und Mac. Versionsverwaltung und nachhaltiges Arbeiten ist ein wichtiger Bestandteil Ihres Studiums, daher führen wir Sie bereits im 1. Semester heran. | Eine Versionsverwaltung dient einerseits dazu Daten auf einem Server zu sichern und so dass weltweite kollaborierte Arbeiten zu ermöglichen. Andererseits bietet sie die Möglichkeit ältere Projektstände verschiedener Dateien wieder herzustellen. Wesentliche Fragestellung sind die Funktion der Versionsverwaltung mit Fokus auf den Datentransfer und dem praktischen Umgang. Als Software Versionsverwaltung verwenden wir an der Hochschule Hamm-Lippstadt Subversion (kurz SVN). Hierfür gibt es kostenlose Clients für Win und Mac. Versionsverwaltung und nachhaltiges Arbeiten ist ein wichtiger Bestandteil Ihres Studiums, daher führen wir Sie bereits im 1. Semester heran. | ||
In dieser Veranstaltung entstehen ersten Programme für den Arduino. | |||
=== Eingeführte Begriffe und Konzepte === | === Eingeführte Begriffe und Konzepte === | ||
Zeile 32: | Zeile 36: | ||
*<code>Merge</code> | *<code>Merge</code> | ||
*<code>Diff</code> | *<code>Diff</code> | ||
Neue Arduino-Begriffe sind: <code>Sketch</code>, <code>Serial.begin()</code>, <code>Serial.print()</code>, <code>Serial.println()</code>, <code>pinMode()</code>, <code>digitalWrite()</code>, <code>delay()</code> | |||
=== Voraussetzungen === | === Voraussetzungen === | ||
Zeile 38: | Zeile 44: | ||
== Lernziele == | == Lernziele == | ||
Nach Durchführung dieser Lektion | Nach Durchführung dieser Lektion | ||
* können Sie die Verbindung zum | * können Sie die Verbindung zum SVN herstellen. | ||
* können Sie auf Daten zugreifen und diese wieder auf dem Server versioniert sichern. | * können Sie auf Daten zugreifen und diese wieder auf dem Server versioniert sichern. | ||
* können Sie kollaboriert im Team auf dem SVN-Server arbeiten. | * können Sie kollaboriert im Team auf dem SVN-Server arbeiten. | ||
Zeile 45: | Zeile 51: | ||
* können Sie mittels Arduino IDE Programme anlegen, globale Variablen anlegen, den Arduino programmieren, einen Text im seriellen Monitor ausgeben und eine LED ansteuern. | * können Sie mittels Arduino IDE Programme anlegen, globale Variablen anlegen, den Arduino programmieren, einen Text im seriellen Monitor ausgeben und eine LED ansteuern. | ||
== | == Vorbereitung == | ||
Bereiten Sie sich anhand der nachfolgenden Aufgaben auf den Praktikumstermin vor. | |||
# Studieren Sie folgenden Wiki-Artikel: [[Software Versionsverwaltung mit SVN]]. | |||
# Legen Sie auf Ihrem Rechner ein (lokales) SVN-Projektarchiv an, z. B. <code>D:\SVN\Gruppenordner</code>. | # Legen Sie auf Ihrem Rechner ein (lokales) SVN-Projektarchiv an, z. B. <code>D:\SVN\Gruppenordner</code>. | ||
# Checken Sie mit <code>SVN/Checkout</code> eine Arbeitskopie des Arbeitsordners aus. URL: <code>https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Gruppen/Gruppen_WS2223</code> | # Checken Sie mit <code>SVN/Checkout</code> eine Arbeitskopie des Arbeitsordners aus. URL: <code>https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Gruppen/Gruppen_WS2223</code> | ||
Zeile 69: | Zeile 77: | ||
* <code>SVN_Dokumentation.pdf</code> | * <code>SVN_Dokumentation.pdf</code> | ||
== | === Lernzielkontrolle === | ||
* Loggen Sie sich via [https://svn.hshl.de/usvn/login/ USVN] ein und ändern Sie Ihr Passwort | * Loggen Sie sich via [https://svn.hshl.de/usvn/login/ USVN] ein und ändern Sie Ihr Passwort | ||
* | * Vorname.Nachname@stud.hshl.de::Kennwort1 (z. B. Max_Mustermann Kennwort1) | ||
* Prüfen Sie, ob Sie Zugang zum passenden Repositorium haben. | * Prüfen Sie, ob Sie Zugang zum passenden Repositorium haben. | ||
* Installieren Sie Tortoise SVN für Windows (Mac) in englischer Sprache. | * Installieren Sie Tortoise SVN für Windows (Mac) in englischer Sprache. | ||
Zeile 85: | Zeile 87: | ||
* Antworten auf alle Fragen finden Sie hier. | * Antworten auf alle Fragen finden Sie hier. | ||
=== Links === | === Links === | ||
{| class="wikitable" | |||
|+ Tabelle 1: Nützliche Links für den Semesterstart | |||
|- | |||
| HSHL Wiki ||<code>https://wiki.hshl.de/</code> | |||
|- | |||
| uSVN Benutzeroberfläche ||<code>https://svn.hshl.de/</code> | |||
|- | |||
| SVN Checkout URL || <code>https://svn.hshl.de/svn/Informatikpraktikum_1/trunk</code> | |||
|- | |||
| SVN-Anleitung || [[Software Versionsverwaltung mit SVN]] | |||
|} | |||
* | |||
* | |||
* | |||
* | |||
=== Video-Tutorials === | === Video-Tutorials === | ||
Zeile 117: | Zeile 119: | ||
* <code>Test.txt</code> mit Historie (s.o.) | * <code>Test.txt</code> mit Historie (s.o.) | ||
* <code>SVN_Dokumentation.pdf</code> | * <code>SVN_Dokumentation.pdf</code> | ||
---- | |||
=== Aufgabe 1.2 === | === Aufgabe 1.2 === | ||
Befassen Sie sich mit der Arduino-Uno Hardware und beantworten Sie die Fragen: | Befassen Sie sich mit der [[Arduino|Arduino-Uno Hardware]] und beantworten Sie die Fragen: | ||
# Welches sind die technischen Daten eines Arduino UNO R3? | # Welches sind die technischen Daten eines Arduino UNO R3? | ||
## Mikrocontroller | ## Mikrocontroller | ||
Zeile 137: | Zeile 140: | ||
'''Arbeitsergebnis''': <code>ArduinoUnoSpec.pdf</code> | '''Arbeitsergebnis''': <code>ArduinoUnoSpec.pdf</code> | ||
{| role="presentation" class="wikitable mw-collapsible mw-collapsed" | |||
| <strong>Tipp 1 </strong> | |||
|- | |||
| Die Lösungen finden Sie in der [https://store.arduino.cc/products/arduino-uno-rev3 Arduino Dokumentation.] | |||
|- | |||
|} | |||
{| role="presentation" class="wikitable mw-collapsible mw-collapsed" | |||
| <strong>Tipp 2 </strong> | |||
|- | |||
| Die Funktion der Steckplatine wird auf [https://de.wikipedia.org/wiki/Steckplatine Wikipedia] gut beschrieben. | |||
|- | |||
|} | |||
---- | |||
=== Aufgabe 1.3 === | === Aufgabe 1.3 === | ||
Zeile 148: | Zeile 158: | ||
# Nehmen Sie Verbindung zum Arduino auf. Der <code>Geräte-Manager</code> zeigt Ihnen an welchem COM-Port der Arduino angeschlossen ist. | # Nehmen Sie Verbindung zum Arduino auf. Der <code>Geräte-Manager</code> zeigt Ihnen an welchem COM-Port der Arduino angeschlossen ist. | ||
# Legen Sie in Ihrem Arbeitsordner ein neues Sketch an. | # Legen Sie in Ihrem Arbeitsordner ein neues Sketch an. | ||
# Schreiben Sie einen Header. | # Schreiben Sie einen [[Header_Beispiel_für_C|Header]]. | ||
# Ihr Programm soll einmalig "Hallo Welt" im seriellen Monitor ausgeben. | # Ihr Programm soll einmalig "Hallo Welt" im seriellen Monitor ausgeben. | ||
# Kompilieren Sie Ihr Programm und übertragen Sie es auf den Arduino. | # Kompilieren Sie Ihr Programm und übertragen Sie es auf den Arduino. | ||
Zeile 154: | Zeile 164: | ||
'''Arbeitsergebnis''' in SVN: <code>HalloWelt.ino</code> | '''Arbeitsergebnis''' in SVN: <code>HalloWelt.ino</code> | ||
'''Nützliche Befehle''': <code>Serial.begin(), Serial.print(), Serial.println()</code> | '''Nützliche Befehle''': [https://www.arduino.cc/reference/de/language/functions/communication/serial/begin/ <code>Serial.begin()</code>], [https://www.arduino.cc/reference/de/language/functions/communication/serial/print/ <code>Serial.print()</code>], [https://www.arduino.cc/reference/de/language/functions/communication/serial/println/ <code>Serial.println()</code>] | ||
{| role="presentation" class="wikitable mw-collapsible mw-collapsed" | |||
| <strong>Musterlösung </strong> | |||
|- | |||
| <source line lang="c" style="font-size:small">// Hier können globale Variablen angelegt werden. | |||
const unsigned long BAUDRATE_u32 = 9600; // Geschwindigkeit des Seriellen Monitors in Baude festlegen | |||
void setup() { | |||
// Dieser Programmteil wird einmalig vor dem void loop() ausgeführt | |||
Serial.begin(BAUDRATE_u32); // Kommunikationsgeschwindigkeit des Seriellen Monitors festlegen | |||
Serial.println("Hallo Welt"); // Gewünschten String einmalig mit Zeilenumbruch ausgeben | |||
} | |||
void loop() { | |||
// Diese Zyklusschleife wird wiederholt nach dem void setup() ausgeführt | |||
} </source> | |||
|- | |||
|} | |||
---- | |||
=== Aufgabe 1.4 === | === Aufgabe 1.4 === | ||
Erweitern Sie Ihr erstes Programm im Bereich <code>loop</code>. Auf dem Arduino ist an Pin 13 eine Test-LED verbaut. Lassen Sie die LED im Sekundentakt blinken. | Erweitern Sie Ihr erstes Programm im Bereich <code>loop</code>. Auf dem Arduino ist an Pin 13 eine Test-LED verbaut. Lassen Sie die LED im Sekundentakt blinken. | ||
# Legen Sie als globale Variable die Konstante <code> | # Legen Sie als globale Variable die Konstante <code>LED_PIN_u8</code> mit dem Wert 13 vom Typen <code>byte</code> an. | ||
# Initialisieren Sie im Bereich <code>setup</code> den digitalen Port <code>LED_PIN</code> als Ausgang. | # Initialisieren Sie im Bereich <code>setup</code> den digitalen Port <code>LED_PIN</code> als Ausgang. | ||
# Schalten Sie die LED zyklisch für 1 s an und aus. | # Schalten Sie die LED zyklisch für 1 s an und aus. | ||
# Werten Sie Ihr Programm mit Header und Kommentaren auf. | # Werten Sie Ihr Programm mit [[Header_Beispiel_für_C|Header]] und Kommentaren auf. | ||
'''Arbeitsergebnis''' in SVN: <code>blinkendeLED.ino</code> | '''Arbeitsergebnis''' in SVN: <code>blinkendeLED.ino</code> | ||
'''Nützliche Befehle''': <code>pinMode(), digitalWrite(), delay()</code> | '''Nützliche Befehle''': [https://www.arduino.cc/reference/de/language/functions/digital-io/pinmode/ <code>pinMode()</code>], [https://www.arduino.cc/reference/de/language/functions/digital-io/digitalwrite/ <code>digitalWrite()</code>], [https://www.arduino.cc/reference/de/language/functions/time/delay/ <code>delay()</code>] | ||
{| role="presentation" class="wikitable mw-collapsible mw-collapsed" | |||
| <strong>Musterlösung </strong> | |||
|- | |||
| [https://funduino.de/nr-1-blinkende-led Anleitung Blinkende LED] | |||
|- | |||
|<source line lang="c" style="font-size:small">// Hier können globale Variablen angelegt werden. | |||
const byte LED_PIN_u8 = 13; // Die verbaute LED ist an PIN D13 angeschlossen. | |||
const unsigned long SEKUNDE_u32 = 1000; // 1s = 1000ms | |||
const unsigned long BAUDRATE_u32 = 9600; // Geschwindigkeit des Seriellen Monitors in Baude festlegen | |||
void setup() { | |||
// Dieser Programmteil wird einmalig vor dem void loop() ausgeführt | |||
pinMode(LED_PIN_u8, OUTPUT); // PIN D13 ist ein Ausgabepin | |||
Serial.begin(BAUDRATE_u32); // Kommunikationsgeschwindigkeit des Seriellen Monitors festlegen | |||
Serial.println("Hallo Welt"); // Gewünschten String einmalig mit Zeilenumbruch ausgeben | |||
} | |||
void loop() { | |||
</ | // Diese Zyklusschleife wird wiederholt nach dem void setup() ausgeführt | ||
digitalWrite(LED_PIN_u8,HIGH); // LED anschalten | |||
delay(SEKUNDE_u32); // 1s warten | |||
digitalWrite(LED_PIN_u8,LOW); // LED ausschalten | |||
delay(SEKUNDE_u32); // 1s warten | |||
}</source> | |||
|} | |||
---- | |||
=== Aufgabe 1.5 === | === Aufgabe 1.5 === | ||
Zeile 176: | Zeile 227: | ||
* Wurden die Regeln für den Umgang mit SVN eingehalten? | * Wurden die Regeln für den Umgang mit SVN eingehalten? | ||
* Wurde nachhaltig dokumentiert? | * Wurde nachhaltig dokumentiert? | ||
* Haben die Programme einen Header? | * Haben die Programme einen [[Header_Beispiel_für_C|Header]]? | ||
* Wurden der Quelltext umfangreich kommentiert? | * Wurden der Quelltext umfangreich kommentiert? | ||
'''Arbeitsergebnis''' in SVN: <code>SVN Log</code> | '''Arbeitsergebnis''' in SVN: <code>SVN Log</code> | ||
== Tutorial == | |||
== Tutorial und Dokumentationen == | |||
* [[Software Versionsverwaltung mit SVN]] | * [[Software Versionsverwaltung mit SVN]] | ||
* [https://www.arduino.cc/reference/de/ Arduino Befehlsübersicht] | * [https://www.arduino.cc/reference/de/ Arduino Befehlsübersicht] | ||
* [https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Literatur/SVN/Versionskontrolle.pdf Komplexitätsbeherrschung durch Versionskontrolle Komplexitätsbeherrschung durch Versionskontrolle] | |||
* [https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Literatur/SVN/Source%20Control%20mit%20SVN%20vs.%20GIT.pdf Source Control mit SVN vs. GIT Source Control mit SVN vs. GIT] | |||
* [https://osdn.net/projects/tortoisesvn/storage/1.14.3/Documentation/TortoiseSVN-1.14.3-de.pdf/ Handbuch Tortoise SVN (Deutsch)] | |||
* [https://osdn.net/projects/tortoisesvn/storage/1.14.3/Documentation/TortoiseMerge-1.14.3-de.pdf/ Handbuch Tortoise Merge (Deutsch)] | |||
* [[Medium:Programmierrichtlinie.pdf|Programmierrichtlinie für C]] | |||
== FAQ == | == FAQ == | ||
Zeile 190: | Zeile 247: | ||
---- | ---- | ||
→ Termine [[Einführungsveranstaltung Informatikpraktikum 1|0]] [[Einarbeitung_in_die_Versionsverwaltung_SVN|1]] [[Einstieg_in_die_Welt_des_Arduino|2]] [[Arduino: Taster auswerten und LEDs ansteuern|3]] [[Arduino:_Sensoren_einlesen|4]] [[Arduino:_Infrarotsensor_einlesen|5]] [[Arduino:_Infrarotsensor_entstören|6]] [[ | → Termine [[Einführungsveranstaltung Informatikpraktikum 1|0]] [[Einarbeitung_in_die_Versionsverwaltung_SVN|1]] [[Einstieg_in_die_Welt_des_Arduino|2]] [[Arduino: Taster auswerten und LEDs ansteuern|3]] [[Arduino:_Sensoren_einlesen|4]] [[Arduino:_Infrarotsensor_einlesen|5]] [[Arduino:_Infrarotsensor_entstören|6]] [[Arduino:_Programmier-Challenge_I_WS_WS_24/25|7]] [[Arduino:_IR-Theremin|8]] [[Arduino:_Aktoren|9]] [[Arduino:_LCD_Display_mit_I2C_Schnittstelle|10]] [[Arduino:_Ultraschall_Entfernungsmessung|11]] [[Arduino:_Ultraschallsensor_entstören|12]] [[Arduino:_Temperaturmessung_mit_NTC_und_PTC|13]] [[Arduino:_Programmier-Challenge_II_WS_WS_24/25|14]]<br> | ||
→ zurück zum Hauptartikel: [[ | → zurück zum Hauptartikel: [[Arduino_Praxiseinstieg_WS_24/25|Arduino Praxiseinstieg]] |
Aktuelle Version vom 12. September 2024, 16:55 Uhr
Autor: | Prof. Dr.-Ing. Schneider |
Modul: | Praxismodul I |
Lektion 1: | Mechatronik, Informatikpraktikum, 1. Semester |
Fragestellungen, Begriffe und Voraussetzungen
Fragestellungen
Als Software Versionsverwaltung verwenden wir an der Hochschule Hamm-Lippstadt Subversion (kurz SVN). Hierfür gibt es kostenlose Clients für Win und Mac. Versionsverwaltung und nachhaltiges Arbeiten ist ein wichtiger Bestandteil Ihres Studiums, daher führen wir Sie bereits im 1. Semester heran.
Eine Versionsverwaltung dient einerseits dazu Daten auf einem Server zu sichern und so dass weltweite kollaborierte Arbeiten zu ermöglichen. Andererseits bietet sie die Möglichkeit ältere Projektstände verschiedener Dateien wieder herzustellen. Wesentliche Fragestellung sind die Funktion der Versionsverwaltung mit Fokus auf den Datentransfer und dem praktischen Umgang. Als Software Versionsverwaltung verwenden wir an der Hochschule Hamm-Lippstadt Subversion (kurz SVN). Hierfür gibt es kostenlose Clients für Win und Mac. Versionsverwaltung und nachhaltiges Arbeiten ist ein wichtiger Bestandteil Ihres Studiums, daher führen wir Sie bereits im 1. Semester heran.
In dieser Veranstaltung entstehen ersten Programme für den Arduino.
Eingeführte Begriffe und Konzepte
Die Bedienoberfläche uSVN und der Client Turtoise SVN wird vorgestellt. Der Umgang mit den wesentlichen Funktionen wird geübt. Neue Begriffe sind:
Checkout
Commit
Update
Tag
Branch
Trunk
Show Log
Repro-browser
Revert
Clean up
Get lock
Merge
Diff
Neue Arduino-Begriffe sind: Sketch
, Serial.begin()
, Serial.print()
, Serial.println()
, pinMode()
, digitalWrite()
, delay()
Voraussetzungen
Grundlagen der PC-Bedienung sind erforderlich.
Lernziele
Nach Durchführung dieser Lektion
- können Sie die Verbindung zum SVN herstellen.
- können Sie auf Daten zugreifen und diese wieder auf dem Server versioniert sichern.
- können Sie kollaboriert im Team auf dem SVN-Server arbeiten.
- können Sie Dateikonflikte elegant lösen.
- fühlen Sie sich sicher im Umgang mit der Versionsverwaltung SVN.
- können Sie mittels Arduino IDE Programme anlegen, globale Variablen anlegen, den Arduino programmieren, einen Text im seriellen Monitor ausgeben und eine LED ansteuern.
Vorbereitung
Bereiten Sie sich anhand der nachfolgenden Aufgaben auf den Praktikumstermin vor.
- Studieren Sie folgenden Wiki-Artikel: Software Versionsverwaltung mit SVN.
- Legen Sie auf Ihrem Rechner ein (lokales) SVN-Projektarchiv an, z. B.
D:\SVN\Gruppenordner
. - Checken Sie mit
SVN/Checkout
eine Arbeitskopie des Arbeitsordners aus. URL:https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Gruppen/Gruppen_WS2223
- Schreiben Sie eine Textdatei
Test.txt
mit beliebigem Inhalt. - Sichern Sie Ihre Daten auf dem SVN Server mit
SVN/Commit
; Schreiben Sie einen passenden Log-Text. - Checken Sie eine 2. Arbeitskopie aus.
- Ändern Sie etwas in beiden Arbeitskopien gleichzeitig, aber in unterschiedlichen Zeilen
- Sichern Sie beider Arbeitskopien auf dem SVN Server mit
SVN/Commit
; Schreiben Sie einen passenden Log-Text. - Analysieren Sie die Differenz mit
SVN/Diff
. - Ändern Sie etwas in beiden Arbeitskopien gleichzeitig, aber in GLEICHEN Zeilen
- Sichern Sie beider Arbeitskopien auf dem SVN Server mit
SVN/Commit
; Schreiben Sie einen passenden Log-Text. - Lösen Sie den Konflikt mit:
SVN/Merge
- Legen Sie einen
SVN/Tag
an. - Stellen Sie einen alten Stand wieder her.
- Erläutern Sie im Dokument
SVN_Dokumentation.pdf
die SVN-BegriffeCheckout, Update, Commit,
Merge, Diff, Log,
Trunk, Tag, Branch, Switch,
Show log, Repo Browser und Revision Graph
Arbeitsergebnisse in SVN:
Test.txt
mit Historie (s.o.)SVN_Dokumentation.pdf
Lernzielkontrolle
- Loggen Sie sich via USVN ein und ändern Sie Ihr Passwort
- Vorname.Nachname@stud.hshl.de::Kennwort1 (z. B. Max_Mustermann Kennwort1)
- Prüfen Sie, ob Sie Zugang zum passenden Repositorium haben.
- Installieren Sie Tortoise SVN für Windows (Mac) in englischer Sprache.
- Legen Sie sich auf der Datenpartition unter D:\SVN ein Repositorium "Informatikpraktikum1" an.
- Machen Sie sich mit der Funktion von SVN bekannt.
- Sichern Sie alle Ihren Quelltext in Ihrem Gruppenordner.
- Antworten auf alle Fragen finden Sie hier.
Links
HSHL Wiki | https://wiki.hshl.de/
|
uSVN Benutzeroberfläche | https://svn.hshl.de/
|
SVN Checkout URL | https://svn.hshl.de/svn/Informatikpraktikum_1/trunk
|
SVN-Anleitung | Software Versionsverwaltung mit SVN |
Video-Tutorials
Mit den folgenden Video Tutorial lernen Sie spielend leicht und kostenlos den Einstieg in die Versionskontrolle:
- Christopher Janietz - Versionskontrolle mit Git und SVN bei LinkedIn
- Julian Robichaux - SVN for Java Developers bei LinkedIn
Den kostenlosen Zugang zum LinkedIN Portal erhalten Sie über den Bibliothekskatalog im Bereich "Lizenzierte Datenbanken".
Versuchsdurchführung
Aufgabe 1.1
Präsentieren Sie Prof. Schneider das Ergebnis der Lernzielkontrolle. Arbeitsergebnisse in SVN:
Test.txt
mit Historie (s.o.)SVN_Dokumentation.pdf
Aufgabe 1.2
Befassen Sie sich mit der Arduino-Uno Hardware und beantworten Sie die Fragen:
- Welches sind die technischen Daten eines Arduino UNO R3?
- Mikrocontroller
- Spannungsversorgung
- Betriebsspannung
- Digitale I/O
- Analoge I/O
- Strom pro digitalem Pin
- Flash Memory
- SRAM
- EEPROM
- Taktfrequenz
- Programmierschnittstelle
- ISCP-Schnittstelle
- Recherchieren und erläutern Sie diese Fachbegriffe.
- Untersuchen Sie die Steckplatine (Engl. breadboard). Wie ist es aufgebaut?
Arbeitsergebnis: ArduinoUnoSpec.pdf
Tipp 1 |
Die Lösungen finden Sie in der Arduino Dokumentation. |
Tipp 2 |
Die Funktion der Steckplatine wird auf Wikipedia gut beschrieben. |
Aufgabe 1.3
Programmieren Sie Ihr erstes Programm im Bereich setup
mit der Arduino IDE.
- Nehmen Sie Verbindung zum Arduino auf. Der
Geräte-Manager
zeigt Ihnen an welchem COM-Port der Arduino angeschlossen ist. - Legen Sie in Ihrem Arbeitsordner ein neues Sketch an.
- Schreiben Sie einen Header.
- Ihr Programm soll einmalig "Hallo Welt" im seriellen Monitor ausgeben.
- Kompilieren Sie Ihr Programm und übertragen Sie es auf den Arduino.
- Werten Sie Ihr Programm mit Kommentaren auf.
Arbeitsergebnis in SVN: HalloWelt.ino
Nützliche Befehle: Serial.begin()
, Serial.print()
, Serial.println()
Musterlösung |
// Hier können globale Variablen angelegt werden.
const unsigned long BAUDRATE_u32 = 9600; // Geschwindigkeit des Seriellen Monitors in Baude festlegen
void setup() {
// Dieser Programmteil wird einmalig vor dem void loop() ausgeführt
Serial.begin(BAUDRATE_u32); // Kommunikationsgeschwindigkeit des Seriellen Monitors festlegen
Serial.println("Hallo Welt"); // Gewünschten String einmalig mit Zeilenumbruch ausgeben
}
void loop() {
// Diese Zyklusschleife wird wiederholt nach dem void setup() ausgeführt
}
|
Aufgabe 1.4
Erweitern Sie Ihr erstes Programm im Bereich loop
. Auf dem Arduino ist an Pin 13 eine Test-LED verbaut. Lassen Sie die LED im Sekundentakt blinken.
- Legen Sie als globale Variable die Konstante
LED_PIN_u8
mit dem Wert 13 vom Typenbyte
an. - Initialisieren Sie im Bereich
setup
den digitalen PortLED_PIN
als Ausgang. - Schalten Sie die LED zyklisch für 1 s an und aus.
- Werten Sie Ihr Programm mit Header und Kommentaren auf.
Arbeitsergebnis in SVN: blinkendeLED.ino
Nützliche Befehle: pinMode()
, digitalWrite()
, delay()
Musterlösung |
Anleitung Blinkende LED |
// Hier können globale Variablen angelegt werden.
const byte LED_PIN_u8 = 13; // Die verbaute LED ist an PIN D13 angeschlossen.
const unsigned long SEKUNDE_u32 = 1000; // 1s = 1000ms
const unsigned long BAUDRATE_u32 = 9600; // Geschwindigkeit des Seriellen Monitors in Baude festlegen
void setup() {
// Dieser Programmteil wird einmalig vor dem void loop() ausgeführt
pinMode(LED_PIN_u8, OUTPUT); // PIN D13 ist ein Ausgabepin
Serial.begin(BAUDRATE_u32); // Kommunikationsgeschwindigkeit des Seriellen Monitors festlegen
Serial.println("Hallo Welt"); // Gewünschten String einmalig mit Zeilenumbruch ausgeben
}
void loop() {
// Diese Zyklusschleife wird wiederholt nach dem void setup() ausgeführt
digitalWrite(LED_PIN_u8,HIGH); // LED anschalten
delay(SEKUNDE_u32); // 1s warten
digitalWrite(LED_PIN_u8,LOW); // LED ausschalten
delay(SEKUNDE_u32); // 1s warten
}
|
Aufgabe 1.5
Sichern Sie alle Ergebnisse mit beschreibendem Text (message
) in SVN.
- Wurden die Regeln für den Umgang mit SVN eingehalten?
- Wurde nachhaltig dokumentiert?
- Haben die Programme einen Header?
- Wurden der Quelltext umfangreich kommentiert?
Arbeitsergebnis in SVN: SVN Log
Tutorial und Dokumentationen
- Software Versionsverwaltung mit SVN
- Arduino Befehlsübersicht
- Komplexitätsbeherrschung durch Versionskontrolle Komplexitätsbeherrschung durch Versionskontrolle
- Source Control mit SVN vs. GIT Source Control mit SVN vs. GIT
- Handbuch Tortoise SVN (Deutsch)
- Handbuch Tortoise Merge (Deutsch)
- Programmierrichtlinie für C
FAQ
- Muss ich die Lösungen selbst programmieren? Ja, nur Eigenleistung wird bewertet.
- Darf ich die Musterlösung 1:1 kopieren und als meine Leistung ausgeben? Nein, das ist ein Plagiat und wird als Täuschungsversuch gewertet.
→ Termine 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
→ zurück zum Hauptartikel: Arduino Praxiseinstieg