Einarbeitung in die Versionsverwaltung SVN: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
(106 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
[[Kategorie:Arduino]]
[[Kategorie:Arduino]]
<!--[[Datei:MATLAB-Symbol-700x394.jpg|thumb|rigth|450px|Abb. 1: MATrix LABoratory (MATLAB)]]-->
[[Datei:Apache Subversion logo.svg.png|thumb|rigth|300px|Abb. 1: Einarbeitung in die Versionsverwaltung SVN]]
'''Autor:''' [[Benutzer:Ulrich_Schneider| Prof. Dr.-Ing. Schneider]]<br>
{| class="wikitable"
'''Lehrveranstaltung:''' Mechatronik, Informatikpraktikum, 1. Semester
|-
| '''Autor:''' || [[Benutzer:Ulrich_Schneider| Prof. Dr.-Ing. Schneider]]
|-
| '''Modul:''' || Praxismodul I
|-
| '''Lektion 1:''' || Mechatronik, Informatikpraktikum, 1. Semester
|}
<br>


== Einführung ==
==Fragestellungen, Begriffe und Voraussetzungen==
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.
===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.


Lesen Sie unseren [[Software_Versionsverwaltung_mit_SVN|Artikel zu SVN im HSHL Wiki]].
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.


== Voraussetzungen ==
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:
*<code>Checkout</code>
*<code>Commit</code>
*<code>Update</code>
*<code>Tag</code>
*<code>Branch</code>
*<code>Trunk</code>
*<code>Show Log</code>
*<code>Repro-browser</code>
*<code>Revert</code>
*<code>Clean up</code>
*<code>Get lock</code>
*<code>Merge</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 ===
Grundlagen der PC-Bedienung sind erforderlich.
Grundlagen der PC-Bedienung sind erforderlich.


== Lernziele ==
== Lernziele ==
Nach Durchführung dieser Lektion
Nach Durchführung dieser Lektion
* können Sie die Verbindung zum Vorlesungs-SVN herstellen.
* 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.
* können Sie Dateikonflikte elegant lösen.
* können Sie Dateikonflikte elegant lösen.
* fühlen Sie sich sicher im Umgang mit der Versionsverwaltung SVN.
* 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.


== Inhalt ==
== Vorbereitung ==
 
Bereiten Sie sich anhand der nachfolgenden Aufgaben auf den Praktikumstermin vor.
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.
# Studieren Sie folgenden Wiki-Artikel: [[Software Versionsverwaltung mit SVN]].
# Legen Sie auf Ihrem Rechner ein (lokales) SVN-Projektarchiv an, z.&thinsp;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>
# Schreiben Sie eine Textdatei <code>Test.txt</code> mit beliebigem Inhalt.
# Sichern Sie Ihre Daten auf dem SVN Server mit <code>SVN/Commit</code>; 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 <code>SVN/Commit</code>; Schreiben Sie einen passenden Log-Text.
# Analysieren Sie die Differenz mit <code>SVN/Diff</code>.
# Ändern Sie etwas in beiden Arbeitskopien gleichzeitig, aber in GLEICHEN Zeilen
# Sichern Sie beider Arbeitskopien auf dem SVN Server mit <code>SVN/Commit</code>; Schreiben Sie einen passenden Log-Text.
# Lösen Sie den Konflikt mit:  <code>SVN/Merge</code>
# Legen Sie einen <code>SVN/Tag</code> an.
# Stellen Sie einen alten Stand wieder her.
# Erläutern Sie im Dokument <code>SVN_Dokumentation.pdf</code> die SVN-Begriffe
## <code>Checkout, Update, Commit,</code>
## <code>Merge, Diff, Log,</code>
## <code>Trunk, Tag, Branch, Switch,</code>
## <code>Show log, Repo Browser und Revision Graph</code>


'''Arbeitsergebnisse''' in SVN:
* <code>Test.txt</code> mit Historie (s.o.)
* <code>SVN_Dokumentation.pdf</code>


== Versuchsvorbereitung ==
=== Lernzielkontrolle ===
Lesen Sie unseren Artikel zu SVN im [[Software_Versionsverwaltung_mit_SVN|HSHL Wiki]].
 
=== SVN Quickstart===
* 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::Kennwort1 (z.&thinspace;B. Max_Mustermann Kennwort1)
* Vorname.Nachname@stud.hshl.de::Kennwort1 (z.&thinsp;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)
* Installieren Sie Tortoise SVN für Windows (Mac) in englischer Sprache.
* Legen Sie sich auf der Datenpartition unter \SVN ein Repositorium "Informatikpraktikum1" an.
* Legen Sie sich auf der Datenpartition unter </code>D:\SVN</code> ein Repositorium "Informatikpraktikum1" an.
* Machen Sie sich mit der Funktion von SVN bekannt.
* Machen Sie sich mit der Funktion von SVN bekannt.
* Sichern Sie alle Ihren Quelltext in Ihrem Gruppenordner.
* Sichern Sie alle Ihren Quelltext in Ihrem Gruppenordner.
* Antworten auf alle Fragen finden Sie hier.
* Antworten auf alle Fragen finden Sie hier.


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 SVN (Deutsch)
Handbuch Tortoise Merge Handbuch Tortoise Merge
=== Login ===


Nutzer*in: Vorname_Nachname


Kennwort: Kennwort1
=== 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 ===
Mit den folgenden Video Tutorial lernen Sie spielend leicht und kostenlos den Einstieg in die Versionskontrolle:
* Christopher Janietz - Versionskontrolle mit Git und SVN bei [https://www.linkedin.com/learning/versionskontrolle-mit-git-und-svn/willkommen-zu-versionskontrolle-mit-git-und-svn?u=76882098 LinkedIn]
* Julian Robichaux - SVN for Java Developers bei [https://www.linkedin.com/learning/svn-for-java-developers/tortoisesvn-on-windows?u=76882098 LinkedIn]
 
Den '''kostenlosen Zugang''' zum LinkedIN Portal erhalten Sie über den [https://hshl.bsz-bw.de/cgi-bin/koha/opac-main.pl Bibliothekskatalog] im Bereich "Lizenzierte Datenbanken".


Hinweis: Bitte ändern Sie das Kennwort sofort nach dem 1. Login.
== Versuchsdurchführung ==
Wichtige Links
=== Aufgabe 1.1 ===
Präsentieren Sie Prof. Schneider das Ergebnis der Lernzielkontrolle.
'''Arbeitsergebnisse''' in SVN:
* <code>Test.txt</code> mit Historie (s.o.)
* <code>SVN_Dokumentation.pdf</code>
----


HSHL Wiki: https://wiki.hshl.de/
=== Aufgabe 1.2 ===
Befassen Sie sich mit der [[Arduino|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''': <code>ArduinoUnoSpec.pdf</code>


uSVN Benutzeroberfläche: https://svn.hshl.de/
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
| <strong>Tipp 1&thinsp;</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&thinsp;</strong>
|-
| Die Funktion der Steckplatine wird auf [https://de.wikipedia.org/wiki/Steckplatine Wikipedia] gut beschrieben.
|-
|}
----


SVN Checkout URL: https://svn.hshl.de/svn/Informatikpraktikum_1/trunk
=== Aufgabe 1.3 ===
HSHL-Wiki: Software Versionsverwaltung mit SVN HSHL-Wiki: Software Versionsverwaltung mit SVN
Programmieren Sie Ihr erstes Programm im Bereich <code>setup</code> mit der Arduino IDE.
Video Tutorials
# 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.
# Schreiben Sie einen [[Header_Beispiel_für_C|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: <code>HalloWelt.ino</code>


auf www.linkedin.com.
'''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>]


Mit den folgenden Video Tutorial lernen Sie spielend leicht und kostenlos den Einstieg in die Versionskontrolle:
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
| <strong>Musterlösung&thinsp;</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


    Christopher Janietz- Versionskontrolle mit Git und SVN bei LinkedIn
void setup() {
    Julian Robichaux - SVN for Java Developers bei LinkedIn
  // 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
}


Den kostenlosen Zugang zum LinkedIN Portal erhalten Sie über den Bibliothekskatalog unter dem Reiter "Literatur und Fachdatenbanken".
void loop() {
  // Diese Zyklusschleife wird wiederholt nach dem void setup() ausgeführt
} </source>
|-
|}
----


Fragestellungen, Begriffe und Voraussetzungen
=== Aufgabe 1.4 ===
Fragestellungen
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.
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.
# 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.
# Schalten Sie die LED zyklisch für 1&thinsp;s an und aus.
# Werten Sie Ihr Programm mit [[Header_Beispiel_für_C|Header]] und Kommentaren auf.


Eingeführte Begriffe und Konzepte
'''Arbeitsergebnis''' in SVN: <code>blinkendeLED.ino</code>
Die Bedienoberfläche uSVN und der Client Turtoise SVN wird vorgestellt.
Der Umgang mit den wesentlichen Funktionen wird geübt.
Neue Begriffe sind: Checkout, Comit, Update, Tag, Branch, Trunk, Show Log, Repro-browser, Revert, Clean up, Get lock, Merge und Diff.


Vorausgesetzte Kenntnisse aus vorangegangenen Kapiteln
'''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>]
Grundlagen der PC-Bedienung sind erforderlich.


{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
| <strong>Musterlösung&thinsp;</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


Lernziele
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 ===
Sichern Sie alle Ergebnisse mit beschreibendem Text (<code>message</code>) in SVN.
* Wurden die Regeln für den Umgang mit SVN eingehalten?
* Wurde nachhaltig dokumentiert?
* Haben die Programme einen [[Header_Beispiel_für_C|Header]]?
* Wurden der Quelltext umfangreich kommentiert?


== Lernzielkontrolle ==
'''Arbeitsergebnis''' in SVN: <code>SVN Log</code>


    Legen Sie auf Ihrem Rechner ein (lokales) SVN-Projektarchiv an.
== Tutorial und Dokumentationen ==
    Checken Sie eine Arbeitskopie aus.
* [[Software Versionsverwaltung mit SVN]]
    Schreiben Sie eine Textdatei mit beliebigem Inhalt.
* [https://www.arduino.cc/reference/de/ Arduino Befehlsübersicht]
    SVN/Übertragen; Schreiben Sie einen passenden Log-Text.
* [https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Literatur/SVN/Versionskontrolle.pdf Komplexitätsbeherrschung durch Versionskontrolle Komplexitätsbeherrschung durch Versionskontrolle]
    Checken Sie eine 2. Arbeitskopie aus.
* [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]
    Ändern Sie etwas in beiden Arbeitskopien gleichzeitig, aber in unterschiedlichen Zeilen
* [https://osdn.net/projects/tortoisesvn/storage/1.14.3/Documentation/TortoiseSVN-1.14.3-de.pdf/ Handbuch Tortoise SVN (Deutsch)]
    SVN/Übertragen beider Arbeitskopien
* [https://osdn.net/projects/tortoisesvn/storage/1.14.3/Documentation/TortoiseMerge-1.14.3-de.pdf/ Handbuch Tortoise Merge (Deutsch)]
    Differenz analysieren
* [[Medium:Programmierrichtlinie.pdf|Programmierrichtlinie für C]]
    Ändern Sie etwas in beiden Arbeitskopien gleichzeitig, aber in GLEICHEN Zeilen
    SVN/Übertragen beider Arbeitskopien
    Lösen Sie den Konflikt mit: Zusammenführen (Engl. Merge)
    Legen Sie einen Tag an.
    Stellen Sie einen alten Stand wieder her.
    Erläutern Sie die SVN-Begriffe


            ˆ Checkout, Update, Commit,
== FAQ ==
            ˆ Merge, Diff, Log,
* Muss ich die Lösungen selbst programmieren? '''Ja, nur Eigenleistung wird bewertet.'''
            ˆ Trunk, Tag, Branch, Switch,
* Darf ich die Musterlösung 1:1 kopieren und als meine Leistung ausgeben? '''Nein, das ist ein [[Software_Plagiat|Plagiat]] und wird als Täuschungsversuch gewertet.'''
            ˆ Show log, Repo Browser und Revision Graph


== Versuchsdurchführung ==


----
----
→ zurück zum Hauptartikel: [[Arduino_Praxiseinstieg|Arduino Praxiseinstieg]]
→ 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: [[Arduino_Praxiseinstieg_WS_24/25|Arduino Praxiseinstieg]]

Aktuelle Version vom 12. September 2024, 16:55 Uhr

Abb. 1: Einarbeitung in die Versionsverwaltung SVN
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.

  1. Studieren Sie folgenden Wiki-Artikel: Software Versionsverwaltung mit SVN.
  2. Legen Sie auf Ihrem Rechner ein (lokales) SVN-Projektarchiv an, z. B. D:\SVN\Gruppenordner.
  3. Checken Sie mit SVN/Checkout eine Arbeitskopie des Arbeitsordners aus. URL: https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Gruppen/Gruppen_WS2223
  4. Schreiben Sie eine Textdatei Test.txt mit beliebigem Inhalt.
  5. Sichern Sie Ihre Daten auf dem SVN Server mit SVN/Commit; Schreiben Sie einen passenden Log-Text.
  6. Checken Sie eine 2. Arbeitskopie aus.
  7. Ändern Sie etwas in beiden Arbeitskopien gleichzeitig, aber in unterschiedlichen Zeilen
  8. Sichern Sie beider Arbeitskopien auf dem SVN Server mit SVN/Commit; Schreiben Sie einen passenden Log-Text.
  9. Analysieren Sie die Differenz mit SVN/Diff.
  10. Ändern Sie etwas in beiden Arbeitskopien gleichzeitig, aber in GLEICHEN Zeilen
  11. Sichern Sie beider Arbeitskopien auf dem SVN Server mit SVN/Commit; Schreiben Sie einen passenden Log-Text.
  12. Lösen Sie den Konflikt mit: SVN/Merge
  13. Legen Sie einen SVN/Tag an.
  14. Stellen Sie einen alten Stand wieder her.
  15. Erläutern Sie im Dokument SVN_Dokumentation.pdf die SVN-Begriffe
    1. Checkout, Update, Commit,
    2. Merge, Diff, Log,
    3. Trunk, Tag, Branch, Switch,
    4. 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

Tabelle 1: Nützliche Links für den Semesterstart
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:

  1. Welches sind die technischen Daten eines Arduino UNO R3?
    1. Mikrocontroller
    2. Spannungsversorgung
    3. Betriebsspannung
    4. Digitale I/O
    5. Analoge I/O
    6. Strom pro digitalem Pin
    7. Flash Memory
    8. SRAM
    9. EEPROM
    10. Taktfrequenz
    11. Programmierschnittstelle
    12. ISCP-Schnittstelle
  2. Recherchieren und erläutern Sie diese Fachbegriffe.
  3. Untersuchen Sie die Steckplatine (Engl. breadboard). Wie ist es aufgebaut?

Arbeitsergebnis: ArduinoUnoSpec.pdf


Aufgabe 1.3

Programmieren Sie Ihr erstes Programm im Bereich setup mit der Arduino IDE.

  1. Nehmen Sie Verbindung zum Arduino auf. Der Geräte-Manager zeigt Ihnen an welchem COM-Port der Arduino angeschlossen ist.
  2. Legen Sie in Ihrem Arbeitsordner ein neues Sketch an.
  3. Schreiben Sie einen Header.
  4. Ihr Programm soll einmalig "Hallo Welt" im seriellen Monitor ausgeben.
  5. Kompilieren Sie Ihr Programm und übertragen Sie es auf den Arduino.
  6. Werten Sie Ihr Programm mit Kommentaren auf.

Arbeitsergebnis in SVN: HalloWelt.ino

Nützliche Befehle: Serial.begin(), Serial.print(), Serial.println()


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.

  1. Legen Sie als globale Variable die Konstante LED_PIN_u8 mit dem Wert 13 vom Typen byte an.
  2. Initialisieren Sie im Bereich setup den digitalen Port LED_PIN als Ausgang.
  3. Schalten Sie die LED zyklisch für 1 s an und aus.
  4. Werten Sie Ihr Programm mit Header und Kommentaren auf.

Arbeitsergebnis in SVN: blinkendeLED.ino

Nützliche Befehle: pinMode(), digitalWrite(), delay()


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

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