AlphaBot: Servo ansteuern: Unterschied zwischen den Versionen
Zeile 41: | Zeile 41: | ||
* <code>fEntfernung</code>: Entfernung in cm | * <code>fEntfernung</code>: Entfernung in cm | ||
* <code>fWinkel</code>: Winkel des Servo-Motors in deg | * <code>fWinkel</code>: Winkel des Servo-Motors in deg | ||
'''Lernzielkontrollfragen:''' | |||
* An welchen Arduino-Pins ist der Servo angeschlossen? | |||
'''Arbeitsergebnisse''' in SVN: <code>dreheServoMotor.ino</code> <code>zeigeUltraschallMesswerte.m</code> | '''Arbeitsergebnisse''' in SVN: <code>dreheServoMotor.ino</code> <code>zeigeUltraschallMesswerte.m</code> | ||
Zeile 48: | Zeile 51: | ||
</div> | </div> | ||
---- | ---- | ||
=== Aufgabe 4.2: | === Aufgabe 4.2: Ultraschall als Umfeldscanner === | ||
# Steuern Sie den Servo von 0°..180° an und fahren Sie zurück auf 0°. | |||
# | # Messen Sie pro 1° die Ultraschallentfernung. | ||
# | # Nutzen Sie MATLAB<sup>®</sup> um die Messdaten direkt (live) darzustellen. | ||
# | # Rechnen Sie die Polarkoordinaten (<code>fWinkel</code>, <code>fEntfernung</code>) in kartesische Koordinaten (<code>x, y</code>) um. | ||
# | # Stellen Sie die Messpunkte zyklisch dar (vgl. Abb. 2). | ||
'''Lernzielkontrollfragen:''' | '''Lernzielkontrollfragen:''' | ||
* | * An welchen Arduino-Pins ist der Servo angeschlossen? | ||
''' | '''Arbeitsergebnisse''' in SVN: <code>UltraschallScanner.ino</code> <code>zeigeUltraschallScan.m</code> | ||
< | |||
</ | |||
---- | ---- | ||
=== Aufgabe 4.3: Ultraschall als Umfeldscanner === | |||
=== Aufgabe | # Der Roboter soll ortsfest seine Umgebung durch die Drehung des Ultraschall-Sensors absuchen. | ||
# | # Wenn er ein Hindernis im Umkreis von 30 cm gefunden hat soll er eine Melodie spielen. | ||
# | # Planen Sie als ersten Schritt das Arduino-Programm als PAP. | ||
# | # Nutzen Sie MATLAB<sup>®</sup> um die Messdaten direkt (live) darzustellen. | ||
# | |||
'''Lernzielkontrollfragen:''' | '''Lernzielkontrollfragen:''' | ||
* An welchen Pins | * An welchen Arduino-Pins ist der Servo angeschlossen? | ||
'''Arbeitsergebnisse''' in SVN: <code> | '''Arbeitsergebnisse''' in SVN: <code>sucheHindernis.pap</code> <code>sucheHindernis.ino</code> <code>zeigeUltraschallScan.m</code> | ||
''' | '''Hinweise:''' | ||
* Nutzen Sie die Demos E01, E05, E06, E07, E18b im SVN-Verzeichnis. | |||
* Wenn Sie den Summer verwenden möochten, entfernen Sie den Jumper D1, da der Summer auf dem digitalen Eingang D11 eingelesen wird. | |||
---- | ---- | ||
=== Aufgabe | === Aufgabe 4.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. |
Version vom 31. März 2023, 09:57 Uhr
Autor: Prof. Dr.-Ing. Schneider
Modul: Praxismodul I
Lehrveranstaltung: Mechatronik, Informatik Praktikum 2, 2. Semester
Aufgabenstatus: In Bearbeitung
Inhalt
- Nutzung von MATLAB® als seriellen Monitor.
- Inbetriebnahme des AlphaBot
- Einbindung der Bibliotheken für den AlphaBot
- Auslesen eine Potentiometers
- Ansteuern einer RGB-LED
- Statische und dynamische Messung mit dem Ultraschallsensor
- Anwendung rekursiver Filter auf Echtzeitdaten
Lernziele
Nach Durchführung dieser Lektion können Sie
- Debug-Daten speichern und via MATLAB® visualisieren.
- direkt MATLAB® als seriellen Monitor nutzen.
- den AlphaBot sicher in Betrieb nehmen, das Potentiometer auslesen und eine RGB-LED ansteuern.
- Entfernungen mit dem Ultraschall-Sensor messen.
- Messwerte in Echtzeit filtern.
Versuchsdurchführung
Aufgabe 4.1: Servo ansteuern
In dieser Aufgabe soll der Ultraschallkopf mittles Servomotor und Potentiometer geschwenkt werden.
- Machen Sie sich mit dem Demo
E24_Servo_Poti
vertraut, so dass Sie jede Zeile erläutern können. - Kopieren Sie das Beispiel in Ihren Ordner und erweitern Sie es.
- Lesen Sie die Stellung des Potentiometers aus.
- Steuern Sie den Servomotor mit dem Potentiometer an. Nutzen Sie hierzu den
map
-Befehl. - 0% ist ganz links und 100% ganz rechts.
- Lagern Sie die Ansteuerung in eine Funktion
dreheUltraschall(Wert)
aus. - Nutzen Sie MATLAB® um die Messdaten direkt (live) darzustellen.
Übertragen Sie folgende Parameter:
fZeit
: ZeitfEntfernung
: Entfernung in cmfWinkel
: Winkel des Servo-Motors in deg
Lernzielkontrollfragen:
- An welchen Arduino-Pins ist der Servo angeschlossen?
Arbeitsergebnisse in SVN: dreheServoMotor.ino
zeigeUltraschallMesswerte.m
Demo: SVN: E24_Servo_Poti
Aufgabe 4.2: Ultraschall als Umfeldscanner
- Steuern Sie den Servo von 0°..180° an und fahren Sie zurück auf 0°.
- Messen Sie pro 1° die Ultraschallentfernung.
- Nutzen Sie MATLAB® um die Messdaten direkt (live) darzustellen.
- Rechnen Sie die Polarkoordinaten (
fWinkel
,fEntfernung
) in kartesische Koordinaten (x, y
) um. - Stellen Sie die Messpunkte zyklisch dar (vgl. Abb. 2).
Lernzielkontrollfragen:
- An welchen Arduino-Pins ist der Servo angeschlossen?
Arbeitsergebnisse in SVN: UltraschallScanner.ino
zeigeUltraschallScan.m
Aufgabe 4.3: Ultraschall als Umfeldscanner
- Der Roboter soll ortsfest seine Umgebung durch die Drehung des Ultraschall-Sensors absuchen.
- Wenn er ein Hindernis im Umkreis von 30 cm gefunden hat soll er eine Melodie spielen.
- Planen Sie als ersten Schritt das Arduino-Programm als PAP.
- Nutzen Sie MATLAB® um die Messdaten direkt (live) darzustellen.
Lernzielkontrollfragen:
- An welchen Arduino-Pins ist der Servo angeschlossen?
Arbeitsergebnisse in SVN: sucheHindernis.pap
sucheHindernis.ino
zeigeUltraschallScan.m
Hinweise:
- Nutzen Sie die Demos E01, E05, E06, E07, E18b im SVN-Verzeichnis.
- Wenn Sie den Summer verwenden möochten, entfernen Sie den Jumper D1, da der Summer auf dem digitalen Eingang D11 eingelesen wird.
Aufgabe 4.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
Tutorials
- Erste Schritte mit dem AlphaBot
- Erste Schritte mit der Arduino IDE
- HSHL-Wiki: Ultraschallsensor HC-SR04
Demos
→ Termine 1 2 3 4
→ zurück zum Hauptartikel: Informatik Praktikum 2