AlphaBot: Gesteuerte Fahrt: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
|||
(23 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
[[Kategorie:Arduino]] | [[Kategorie:Arduino]] | ||
[[Kategorie:AlphaBot]] | [[Kategorie:AlphaBot]] | ||
[[Datei:FahreSchnecke.jpg|thumb|rigth| | [[Datei:FahreSchnecke.jpg|thumb|rigth|250px|Abb. 1: Der Roboter sucht schneckenförmig eine Fläche ab]] | ||
'''Autor:''' [[Benutzer:Ulrich_Schneider| Prof. Dr.-Ing. Schneider]]<br> | '''Autor:''' [[Benutzer:Ulrich_Schneider| Prof. Dr.-Ing. Schneider]]<br> | ||
'''Modul:''' Praxismodul I<br> | '''Modul:''' Praxismodul I<br> | ||
Zeile 7: | Zeile 7: | ||
== Inhalt == | == Inhalt == | ||
* | * Autonome Mobile Roboter müssen zur Erfüllung von Aufgaben im Raum navigieren. Der einfachste Weg ist über Odometrie. In dieser Lektion fahren wir feste Figuren im Raum ab. | ||
== Lernziele== | == Lernziele== | ||
Nach Durchführung dieser Lektion können Sie | Nach Durchführung dieser Lektion können Sie | ||
* | * Ihren Roboter eine vorgegebene Strecke geradeaus fahren lassen. | ||
* Ihren Roboter eine vorgegebenen Kurve fahren lassen. | |||
* Ihren Roboter auf der Stelle um einen vorgegebenen Winkel drehen lassen. | |||
* Messwerte auf dem OLED Display anzeigen lassen. | |||
== Vorbereitung == | |||
* Planen Sie jede Aufgabe als PAP. | |||
* Nehmen Sie das OLED Display anhand des Beispiels <code>E22_OLED_Display</code> in Betrieb. | |||
* Ohne umfangreiche Vorbereitung werden Sie nicht zum Praktikum zugelassen. | |||
== Versuchsdurchführung == | == Versuchsdurchführung == | ||
=== Aufgabe 7.1: Variablen nutzen === | === Aufgabe 7.1: Schleife - Fahre Dreieck === | ||
[[Datei:FahreDreieck.jpg|right|thumb|250px|Abb. 2: Gleichschenkliges Dreieck]] | |||
# Erweitern Sie Ihr bisheriges Programm, um die Seiten eines Dreiecks abzufahren (vgl. Abb. 2). | |||
# Die Seitenlänge a ist eine Variable und soll 30 cm betragen. | |||
# Führen Sie eine Schleife 3x aus, die aus Geradeausfahrt und Drehung besteht. | |||
# Stellen Sie die gefahrene Strecke auf dem OLED Display dar. | |||
Arbeitsergebnis: <code>fahreDreieck.ino</code> | |||
{| role="presentation" class="wikitable mw-collapsible mw-collapsed" | |||
| <strong>Tipp 1 </strong> | |||
|- | |||
| Nutzen Sie die Demos E01, E15, E22 im SVN-Verzeichnis. | |||
|- | |||
| Kapseln Sie Quelltext, der sich häufig wiederholt in Funktionen. Ein Beispiel hier für finden Sie unter den Beispielen E33_Unterfunktion.Wenn Sie beispielsweise das Quadrat programmieren, | |||
programmieren Sie zwei Funktionen void <code>fahreGeradeaus(float Strecke_f32)</code>, um die Strecke a geradeaus zu fahren und void <code>dreheRoboter(float Winkel_f32)<code>, um den | |||
AlphaBot um den Winkel <math>\Psi<math> zu drehen. Beide Funktionen können Sie anschließend in den nachfolgenden Aufgaben mit neuen Parametern wiederverwenden. Das spart enorm viel Zeit | |||
und ist weniger fehleranfällig, wenn Sie Ihre Funktionen getestet haben. Eine Drehung im Uhrzeigersinn ist negativ. | |||
|} | |||
=== Aufgabe 7.2: Variablen nutzen === | |||
Der Roboter soll eine quadratische Fläche komplett abfahren, dabei wird die Kantenlänge des | Der Roboter soll eine quadratische Fläche komplett abfahren, dabei wird die Kantenlänge des | ||
Quadrats immer geringer (vgl. Abb. 1). Die Aufgabe eignet sich auch um eine komplette Fläche abzusuchen | Quadrats immer geringer (vgl. Abb. 1). Die Aufgabe eignet sich auch um eine komplette Fläche abzusuchen | ||
z. B. um Gegenstände in einem definierten Bereich zu finden. | z. B. um Gegenstände in einem definierten Bereich zu finden. | ||
'''Arbeitsergebnis:''' fahreSchnecke.ino | '''Arbeitsergebnis:''' <code>fahreSchnecke.ino</code> | ||
{| role="presentation" class="wikitable mw-collapsible mw-collapsed" | {| role="presentation" class="wikitable mw-collapsible mw-collapsed" | ||
| <strong>Tipp 1 </strong> | | <strong>Tipp 1 </strong> | ||
|- | |- | ||
| Nutzen Sie die Demos E01, E15, E22 im SVN-Verzeichnis. | | Nutzen Sie die Demos E01, E15, E22 im SVN-Verzeichnis. | ||
|- | |||
| Nutzen Sie die Ihre Funktionen aus den vorherigen Aufgaben. | |||
|} | |} | ||
=== Aufgabe 7. | === Aufgabe 7.3: Der Rasen von Wimbledon === | ||
Schreiben Sie ein Programm, das in immer gleichen Abständen parallele Bahnen mäht (vgl. Abb. 2 und Abb. 3). | Schreiben Sie ein Programm, das in immer gleichen Abständen parallele Bahnen mäht (vgl. Abb. 2 und Abb. 3). | ||
[[Datei:Wimbledon.jpg | | [[Datei:Wimbledon.jpg |right|thumb|250px|Abb. 3: Der Rasen von Wimbledon]] | ||
[[Datei:Wimbledon2.jpg | | [[Datei:Wimbledon2.jpg |right|thumb|250px|Abb. 4: Parallele Bahnen]] | ||
'''Arbeitsergebnis:''' <code>maeheRasen.ino</code> | |||
== | {| role="presentation" class="wikitable mw-collapsible mw-collapsed" | ||
| <strong>Tipp 1 </strong> | |||
=== Aufgabe 7. | |- | ||
| Nutzen Sie die Demos E01, E15, E22 im SVN-Verzeichnis. | |||
|- | |||
| Nutzen Sie die Ihre Funktionen aus den vorherigen Aufgaben. | |||
|} | |||
=== Aufgabe 7.4: Nachhaltige Doku === | |||
* Sichern Sie alle Ergebnisse mit beschreibendem Text (<code>message</code>) in SVN. | * Sichern Sie alle Ergebnisse mit beschreibendem Text (<code>message</code>) in SVN. | ||
* Halten Sie die Regeln für den [[Software_Versionsverwaltung_mit_SVN|Umgang mit SVN]] ein. | * Halten Sie die Regeln für den [[Software_Versionsverwaltung_mit_SVN|Umgang mit SVN]] ein. | ||
Zeile 44: | Zeile 78: | ||
'''Arbeitsergebnis''' in SVN: <code>SVN Log</code> | '''Arbeitsergebnis''' in SVN: <code>SVN Log</code> | ||
<!-- | |||
== Tutorials == | == Tutorials == | ||
--> | |||
== Demos == | == Demos == | ||
* <code>E01_MotorenTest</code> | |||
* <code>E15_RadInkrementalgeberFahrt</code> | |||
* <code>E22_OLED_Display</code> | |||
* <code>E33_Unterfunktion</code> | |||
== Literatur == | == Literatur == | ||
---- | ---- | ||
→ Termine [[Einführungsveranstaltung_Informatikpraktikum_2_im_SoSe_2023|1]] [[AlphaBot:_Messdatenverarbeitung_mit_MATLAB|2]] [[AlphaBot:_MATLAB_als_serieller_Monitor|3]] [[AlphaBot: Servo ansteuern|4]] [[ | → Termine [[Einführungsveranstaltung_Informatikpraktikum_2_im_SoSe_2023|1]] [[AlphaBot:_Messdatenverarbeitung_mit_MATLAB|2]] [[AlphaBot:_MATLAB_als_serieller_Monitor|3]] [[AlphaBot: Servo ansteuern|4]] [[AlphaBot:_Motoren_und_Inkrementalgeber|5]] [[AlphaBot: Programmier-Challenge I SoSe23|6]] [[AlphaBot:_Gesteuerte_Fahrt|7]] [[AlphaBot: Geregelte Fahrt mit Linienverfolger|8]] [[AlphaBot: Parklücke suchen|9]] [[AlphaBot: Autonomes Einparken|10]] [[AlphaBot: Programmier-Challenge II SoSe23|11]]<br> | ||
→ zurück zum Hauptartikel: [[AlphaBot_SoSe23|Informatik Praktikum 2]] | → zurück zum Hauptartikel: [[AlphaBot_SoSe23|Informatik Praktikum 2]] |
Aktuelle Version vom 1. Mai 2023, 17:23 Uhr
Autor: Prof. Dr.-Ing. Schneider
Modul: Praxismodul I
Lehrveranstaltung: Mechatronik, Informatik Praktikum 2, 2. Semester
Inhalt
- Autonome Mobile Roboter müssen zur Erfüllung von Aufgaben im Raum navigieren. Der einfachste Weg ist über Odometrie. In dieser Lektion fahren wir feste Figuren im Raum ab.
Lernziele
Nach Durchführung dieser Lektion können Sie
- Ihren Roboter eine vorgegebene Strecke geradeaus fahren lassen.
- Ihren Roboter eine vorgegebenen Kurve fahren lassen.
- Ihren Roboter auf der Stelle um einen vorgegebenen Winkel drehen lassen.
- Messwerte auf dem OLED Display anzeigen lassen.
Vorbereitung
- Planen Sie jede Aufgabe als PAP.
- Nehmen Sie das OLED Display anhand des Beispiels
E22_OLED_Display
in Betrieb. - Ohne umfangreiche Vorbereitung werden Sie nicht zum Praktikum zugelassen.
Versuchsdurchführung
Aufgabe 7.1: Schleife - Fahre Dreieck
- Erweitern Sie Ihr bisheriges Programm, um die Seiten eines Dreiecks abzufahren (vgl. Abb. 2).
- Die Seitenlänge a ist eine Variable und soll 30 cm betragen.
- Führen Sie eine Schleife 3x aus, die aus Geradeausfahrt und Drehung besteht.
- Stellen Sie die gefahrene Strecke auf dem OLED Display dar.
Arbeitsergebnis: fahreDreieck.ino
Tipp 1 |
Nutzen Sie die Demos E01, E15, E22 im SVN-Verzeichnis. |
Kapseln Sie Quelltext, der sich häufig wiederholt in Funktionen. Ein Beispiel hier für finden Sie unter den Beispielen E33_Unterfunktion.Wenn Sie beispielsweise das Quadrat programmieren,
programmieren Sie zwei Funktionen void
|
Aufgabe 7.2: Variablen nutzen
Der Roboter soll eine quadratische Fläche komplett abfahren, dabei wird die Kantenlänge des Quadrats immer geringer (vgl. Abb. 1). Die Aufgabe eignet sich auch um eine komplette Fläche abzusuchen z. B. um Gegenstände in einem definierten Bereich zu finden.
Arbeitsergebnis: fahreSchnecke.ino
Tipp 1 |
Nutzen Sie die Demos E01, E15, E22 im SVN-Verzeichnis. |
Nutzen Sie die Ihre Funktionen aus den vorherigen Aufgaben. |
Aufgabe 7.3: Der Rasen von Wimbledon
Schreiben Sie ein Programm, das in immer gleichen Abständen parallele Bahnen mäht (vgl. Abb. 2 und Abb. 3).
Arbeitsergebnis: maeheRasen.ino
Tipp 1 |
Nutzen Sie die Demos E01, E15, E22 im SVN-Verzeichnis. |
Nutzen Sie die Ihre Funktionen aus den vorherigen Aufgaben. |
Aufgabe 7.4: Nachhaltige Doku
- Sichern Sie alle Ergebnisse mit beschreibendem Text (
message
) in SVN. - Halten Sie die Regeln für den Umgang mit SVN ein.
- Halten Sie die Programmierrichtlinie für C und die Programmierrichtlinien für MATLAB® ein.
- Versehen Sie jedes Programm mit einem Header (Header Beispiel für MATLAB, Header Beispiel für C).
- Kommentiere Sie den Quelltext umfangreich.
Arbeitsergebnis in SVN: SVN Log
Demos
E01_MotorenTest
E15_RadInkrementalgeberFahrt
E22_OLED_Display
E33_Unterfunktion
Literatur
→ Termine 1 2 3 4 5 6 7 8 9 10 11
→ zurück zum Hauptartikel: Informatik Praktikum 2