AlphaBot: Servo ansteuern: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
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: Inbetriebnahme des AlphaBot ===
=== Aufgabe 4.2: Ultraschall als Umfeldscanner ===
 
# Steuern Sie den Servo von 0°..180° an und fahren Sie zurück auf 0°.
# Arbeiten Sie sich anhand des [[AlphaBot|Wiki-Artikels]] in den AlphaBot ein. Beachten Sie besonders die Ausrichtung der Akkus. '''ACHTUNG BRANDGEFAHR!'''
# Messen Sie pro 1° die Ultraschallentfernung.  
# Binden Sie die AlphaBot Bibliothek nach [[Erste_Schritte_mit_der_Arduino_IDE|Anleitung]] in die Arduino IDE ein.
# Nutzen Sie MATLAB<sup>®</sup> um die Messdaten direkt (live) darzustellen.  
# Machen Sie sich mit dem Demo <code>E23_RGB_LED</code> vertraut, so dass Sie jede Zeile erläutern können.
# Rechnen Sie die Polarkoordinaten (<code>fWinkel</code>, <code>fEntfernung</code>) in kartesische Koordinaten (<code>x, y</code>) um.
# Kopieren Sie das Beispiel in Ihren Ordner und erweitern Sie es.
# Stellen Sie die Messpunkte zyklisch dar (vgl. Abb. 2).
# Am Analogport <code>A0</code> ist das Potentiometer des Erweiterungsborts angeschlossen. Nutzen Sie das Potentiometer, um die Blinkfrequenz der RGB-LED im Bereich 0&thinsp;s..1&thinsp;s zu verändern.
# Stellen Sie den Wert des Potentiometers an <code>A0</code> in MATLAB<sup>®</sup> live dar.


'''Lernzielkontrollfragen:'''
'''Lernzielkontrollfragen:'''
* Wie funktioniert eine RGB-LED?
* An welchen Arduino-Pins ist der Servo angeschlossen?
* Welches sind die Parameter des HSV-Farbraums?
* Wie stellt man bei einer RGB-LED die Farbe ein?
* Wie bekommt man eine RGB-LED zum Blinken?
* Wie funktioniert ein Potentiometer?
* Wie liest man die Stellung eines Potentiometers aus?
 
'''Arbeitsergebnisse:''' <code>steuereRGBLED.ino, zeigePotiWert.m</code>


'''Demos:''' E23, E34
'''Arbeitsergebnisse''' in SVN: <code>UltraschallScanner.ino</code> <code>zeigeUltraschallScan.m</code>
 
<div class="mw-collapsible mw-collapsed">
Hilfreiche Links:
* [https://de.wikipedia.org/wiki/Leuchtdiode#RGB-LED Wikipedia: RGB-LED]
* [https://de.wikipedia.org/wiki/HSV-Farbraum Wikipedia: HSV-Farbraum]
* [https://de.wikipedia.org/wiki/Potentiometer Wikipedia: Potentiometer]
</div>
----
----
 
=== Aufgabe 4.3: Ultraschall als Umfeldscanner ===
=== Aufgabe 3.3: AlphaBot Ultraschall ===
# Der Roboter soll ortsfest seine Umgebung durch die Drehung des Ultraschall-Sensors absuchen.
# Machen Sie sich mit dem Demo <code>E05_Ultraschall_Entfernungsmessung</code> vertraut, so dass Sie jede Zeile erläutern können.
# Wenn er ein Hindernis im Umkreis von 30 cm gefunden hat soll er eine Melodie spielen.
# Kopieren Sie das Beispiel in Ihren Ordner und erweitern Sie es.
# Planen Sie als ersten Schritt das Arduino-Programm als PAP.
# Lesen Sie die Messwerte des Ultraschallsensors aus.
# Nutzen Sie MATLAB<sup>®</sup> um die Messdaten direkt (live) darzustellen.  
# Stellen Sie den Wert des Ultraschallsensors in MATLAB<sup>®</sup> live dar.


'''Lernzielkontrollfragen:'''
'''Lernzielkontrollfragen:'''
* An welchen Pins sind <code>Trigger</code> und <code>Echo</code> angeschlossen? Wie lässt sich das anpassen?
* An welchen Arduino-Pins ist der Servo angeschlossen?


'''Arbeitsergebnisse''' in SVN: <code>messeUltraschall.ino, zeigeUltraschall.m</code>
'''Arbeitsergebnisse''' in SVN: <code>sucheHindernis.pap</code> <code>sucheHindernis.ino</code> <code>zeigeUltraschallScan.m</code>  


'''Demo:''' E05
'''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 3.4: Glättung der Ultraschallmessung ===
# Nutzen Sie Ihre Ergebnisse aus Aufgabe 2.3 um die Messwerte in Echtzeit zu glätten.
# Vergleichen Sie die Ergebnisse des Tiefpasses mit denen des gleitenden Mittelwertfilters in einem Plot mit Achsenbeschriftung und Legende.
'''Arbeitsergebnisse''' in SVN: <code>messeUltraschall.ino, filtereUltraschall.m</code>
'''Lernzielkontrollfragen:'''
# Wurde das Signalrauschen geglättet?
# Ist das gefilterte Signal verzögert?
# Welchen Einfluss haben die Filterparameter?
# Wie verhalten sich die gefilterten Signal bei Ausreißern?
----
----
=== Aufgabe 3.5: Nachhaltige Doku ===
=== 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, 08:57 Uhr

Abb. 1: MATLAB® als serieller Monitor

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.

  1. Machen Sie sich mit dem Demo E24_Servo_Poti vertraut, so dass Sie jede Zeile erläutern können.
  2. Kopieren Sie das Beispiel in Ihren Ordner und erweitern Sie es.
  3. Lesen Sie die Stellung des Potentiometers aus.
  4. Steuern Sie den Servomotor mit dem Potentiometer an. Nutzen Sie hierzu den map-Befehl.
  5. 0% ist ganz links und 100% ganz rechts.
  6. Lagern Sie die Ansteuerung in eine Funktion dreheUltraschall(Wert) aus.
  7. Nutzen Sie MATLAB® um die Messdaten direkt (live) darzustellen.

Übertragen Sie folgende Parameter:

  • fZeit: Zeit
  • fEntfernung: Entfernung in cm
  • fWinkel: Winkel des Servo-Motors in deg

Lernzielkontrollfragen:

  • An welchen Arduino-Pins ist der Servo angeschlossen?

Arbeitsergebnisse in SVN: dreheServoMotor.ino zeigeUltraschallMesswerte.m


Aufgabe 4.2: Ultraschall als Umfeldscanner

  1. Steuern Sie den Servo von 0°..180° an und fahren Sie zurück auf 0°.
  2. Messen Sie pro 1° die Ultraschallentfernung.
  3. Nutzen Sie MATLAB® um die Messdaten direkt (live) darzustellen.
  4. Rechnen Sie die Polarkoordinaten (fWinkel, fEntfernung) in kartesische Koordinaten (x, y) um.
  5. 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

  1. Der Roboter soll ortsfest seine Umgebung durch die Drehung des Ultraschall-Sensors absuchen.
  2. Wenn er ein Hindernis im Umkreis von 30 cm gefunden hat soll er eine Melodie spielen.
  3. Planen Sie als ersten Schritt das Arduino-Programm als PAP.
  4. 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.

Arbeitsergebnis in SVN: SVN Log

Tutorials

Demos



→ Termine 1 2 3 4
→ zurück zum Hauptartikel: Informatik Praktikum 2