AlphaBot: Gesteuerte Fahrt: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
 
(4 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 25: Zeile 25:
# Erweitern Sie Ihr bisheriges Programm, um die Seiten eines Dreiecks abzufahren (vgl. Abb. 2).
# 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.
# 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. Erweitern Sie die bestehenden Funktionen <code>void fahreForwaerts()</code> und <code>void dreheRechts()</code>  um die Parameter Strecke und Drehung. Eine Drehung im Uhrzeigersinn ist negativ.
# Führen Sie eine Schleife 3x aus, die aus Geradeausfahrt und Drehung besteht.  
# Stellen Sie die gefahrene Strecke auf dem OLED Display dar.
# Stellen Sie die gefahrene Strecke auf dem OLED Display dar.


Zeile 38: Zeile 38:
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
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
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.
und ist weniger fehleranfällig, wenn Sie Ihre Funktionen getestet haben. Eine Drehung im Uhrzeigersinn ist negativ.
|}
|}


=== Aufgabe 7.2: Variablen nutzen ===
=== Aufgabe 7.2: Variablen nutzen ===
Zeile 47: Zeile 46:
z.&thinsp;B. um Gegenstände in einem definierten Bereich zu finden.
z.&thinsp;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&thinsp;</strong>
| <strong>Tipp 1&thinsp;</strong>
Zeile 92: Zeile 91:


----
----
→ 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>
→ 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]] [[Programmier-Challenge_I_SoSe24|6]] [[AlphaBot:_Gesteuerte_Fahrt|7]] [[AlphaBot: Geregelte Fahrt mit Linienverfolger|8]] [[AlphaBot: Programmier-Challenge II SoSe24|9]]<br>
→ zurück zum Hauptartikel: [[AlphaBot_SoSe23|Informatik Praktikum 2]]
→ zurück zum Hauptartikel: [[AlphaBot_SoSe23|Informatik Praktikum 2]]

Aktuelle Version vom 17. Juni 2024, 15:04 Uhr

Abb. 1: Der Roboter sucht schneckenförmig eine Fläche ab

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

Abb. 2: Gleichschenkliges Dreieck
  1. Erweitern Sie Ihr bisheriges Programm, um die Seiten eines Dreiecks abzufahren (vgl. Abb. 2).
  2. Die Seitenlänge a ist eine Variable und soll 30 cm betragen.
  3. Führen Sie eine Schleife 3x aus, die aus Geradeausfahrt und Drehung besteht.
  4. Stellen Sie die gefahrene Strecke auf dem OLED Display dar.

Arbeitsergebnis: fahreDreieck.ino

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

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).

Abb. 3: Der Rasen von Wimbledon
Abb. 4: Parallele Bahnen

Arbeitsergebnis: maeheRasen.ino

Aufgabe 7.4: Nachhaltige Doku

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
→ zurück zum Hauptartikel: Informatik Praktikum 2