AlphaBot: Motoren und Inkrementalgeber: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Zeile 57: | Zeile 57: | ||
* Wie lässt sich die die gefahrene Strecke berechnen? | * Wie lässt sich die die gefahrene Strecke berechnen? | ||
Arbeitsergebnis: <code>testeRadInkrementalgeber.ino</code>, <code>zeigeRadInkrementalgeber.m</code> | '''Arbeitsergebnis:''' <code>testeRadInkrementalgeber.ino</code>, <code>zeigeRadInkrementalgeber.m</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> | ||
Zeile 74: | Zeile 74: | ||
=== Aufgabe 5.3: 1 m Fahrt === | === Aufgabe 5.3: 1 m Fahrt === | ||
# Machen Sie sich mit dem Demo | # Machen Sie sich mit dem Demo <code>E15_RadInkrementalgeberFahrt</code> vertraut, so dass Sie jede Zeile erläutern können. | ||
Zeile | # Fahren Sie mit Ihrem Fahrzeug genau 1 m geradeaus vorwärts. | ||
# Fahren Sie mit Ihrem Fahrzeug genau | # Fahren Sie wieder zum Startpunkt zurück. Wenden Sie das Fahrzeug nicht! | ||
# Stellen Sie die gefahrene Strecke auf dem OLED Display dar. | # Stellen Sie die gefahrene Strecke auf dem OLED Display dar. | ||
# | # Der AlphaBot inkrementiert die Strecke bei Vorwärtsfahrt und dekrementiert bei Rückwärtsfahrt. | ||
'''Lernzielkontrollfragen:''' | |||
* Wie kann die Fahrtrichtung bei der Streckenbestimmung berücksichtigt werden? | |||
'''Arbeitsergebnis:''' <code>fahreVorZurueck.ino</code> | |||
{| role="presentation" class="wikitable mw-collapsible mw-collapsed" | |||
| <strong>Tipp 1 </strong> | |||
|- | |||
| Nutzen Sie die Demos E01, E15, E22 im SVN-Verzeichnis. | |||
|- | |||
| Legen Sie den Akku korrekt an, um die Motoren anzusteuern. | |||
|} | |||
---- | ---- | ||
=== Aufgabe 5.4: Fahre Quadrat === | === Aufgabe 5.4: Fahre Quadrat === | ||
# Erweitern Sie Ihr bisheriges Programm, um die Seiten eines Quadrates im Uhrzeigersinn abzufahren (vgl. Abb.3). | # Erweitern Sie Ihr bisheriges Programm, um die Seiten eines Quadrates im Uhrzeigersinn abzufahren (vgl. Abb.3). | ||
# Die Seitenlänge a ist eine Variable und soll 30 cm betragen. | |||
# Führen Sie eine Schleife 4x aus, die aus Geradeausfahrt und Drehung besteht. | |||
# Stellen Sie die gefahrene Strecke auf dem OLED Display dar. | |||
[[Datei:FahreQuadrat.jpg|ohne|mini|250px|Abb. 4: Fahren Sie im Uhrzeigersinn die Seiten eines Quadrates ab]] | [[Datei:FahreQuadrat.jpg|ohne|mini|250px|Abb. 4: Fahren Sie im Uhrzeigersinn die Seiten eines Quadrates ab]] | ||
'''Lernzielkontrollfragen:''' | |||
* | |||
'''Arbeitsergebnis:''' <code>fahreQuadrat.ino</code> | '''Arbeitsergebnis:''' <code>fahreQuadrat.ino</code> |
Version vom 13. April 2023, 12:00 Uhr
Autor: Prof. Dr.-Ing. Schneider
Modul: Praxismodul I
Lehrveranstaltung: Mechatronik, Informatik Praktikum 2, 2. Semester
Inhalt
Lernziele
Nach Durchführung dieser Lektion können Sie
Versuchsdurchführung
Aufgabe 5.1: Lichtschranke
- Machen Sie sich mit dem Demo
E13_Lichtschranke
vertraut, so dass Sie jede Zeile erläutern können. - Kopieren Sie das Beispiel in Ihren Ordner und erweitern Sie es.
- Lassen Sie als Test beide Motoren langsam vorwärts drehen.
- Flankenwechsel von
CNTL/CNTR
sollen einen Interrupt auslösen. - Stellen Sie beide Lichtschrankenzustände
CNTL/CNTR
über der Zeit in MATLAB® dar.
Lernzielkontrollfragen:
- Wie funktioniert eine Lichtschranke?
- Wo befinden sich die Lichtschranken?
- Wo ist rechts und wo links?
- An welchen Ports sind die linke und rechte Lichtschranke angeschlossen?
- Welche IO-Pins sind beim Arduino Uno interruptfähig?
- Wie entsheidet die Lichtschranke zwischen Vorwärts- oder Rückwärtsdrehung?
- Wieviele Flanken erhalten Sie für eine Radumdrehung?
Arbeitsergebnisse: testeLichtschranke.ino
, testeLichtschranke.ino
Tipp 1 |
Nutzen Sie die Demos E13_Lichtschranke und E01_MotorenTest |
Nur die IO-Pins D2 und D3 sind beim Arduino Uno interruptfähig. |
Legen Sie für eine langsame Raddrehung keine Akkus ein. |
Tipp 2 |
Ergebnisplot: Abb. 2: CNTL/CNTR über der Zeit |
Aufgabe 5.2: RadInkrementalgeber
- Machen Sie sich mit
E15_RadInkrementalgeberFahrt
vertraut, so dass Sie jede Zeile erläutern können. - Kopieren Sie das Beispiel in Ihren Ordner und erweitern Sie es.
- Was ist ein Interrupt und wozu dient er?
- Wozu dient die Funktion attachInterrupt()?
- Rechnen Sie die Radumdrehungen in gefahrene Strecke um.
- Stellen Sie die gefahrene Strecke über der Zeit in MATLAB® dar.
Lernzielkontrollfragen:
- Wie lässt sich die die gefahrene Strecke berechnen?
Arbeitsergebnis: testeRadInkrementalgeber.ino
, zeigeRadInkrementalgeber.m
Tipp 1 |
Nutzen Sie die Demos E14_RadInkrementalgeber und E15_RadInkrementalgeberFahrt |
Legen Sie den Akku korrekt an, um die Motoren anzusteuern. |
Tipp 2 |
Ergebnisplot: Abb. 2: CNTL/CNTR über der Zeit |
Aufgabe 5.3: 1 m Fahrt
- Machen Sie sich mit dem Demo
E15_RadInkrementalgeberFahrt
vertraut, so dass Sie jede Zeile erläutern können. - Fahren Sie mit Ihrem Fahrzeug genau 1 m geradeaus vorwärts.
- Fahren Sie wieder zum Startpunkt zurück. Wenden Sie das Fahrzeug nicht!
- Stellen Sie die gefahrene Strecke auf dem OLED Display dar.
- Der AlphaBot inkrementiert die Strecke bei Vorwärtsfahrt und dekrementiert bei Rückwärtsfahrt.
Lernzielkontrollfragen:
- Wie kann die Fahrtrichtung bei der Streckenbestimmung berücksichtigt werden?
Arbeitsergebnis: fahreVorZurueck.ino
Tipp 1 |
Nutzen Sie die Demos E01, E15, E22 im SVN-Verzeichnis. |
Legen Sie den Akku korrekt an, um die Motoren anzusteuern. |
Aufgabe 5.4: Fahre Quadrat
- Erweitern Sie Ihr bisheriges Programm, um die Seiten eines Quadrates im Uhrzeigersinn abzufahren (vgl. Abb.3).
- Die Seitenlänge a ist eine Variable und soll 30 cm betragen.
- Führen Sie eine Schleife 4x aus, die aus Geradeausfahrt und Drehung besteht.
- Stellen Sie die gefahrene Strecke auf dem OLED Display dar.
Lernzielkontrollfragen:
Arbeitsergebnis: fahreQuadrat.ino
Tipp 1 |
Nutzen Sie die Demos E01, E15, E22 im SVN-Verzeichnis. |
Legen Sie den Akku korrekt an, um die Motoren anzusteuern. |
Aufgabe 5.5: 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
Tutorials
Demos
→ Termine 1 2 3 4 5
→ zurück zum Hauptartikel: Informatik Praktikum 2