AlphaBot: Servo ansteuern: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Zeile 27: Zeile 27:


== Versuchsdurchführung ==
== Versuchsdurchführung ==
=== Aufgabe 3.1: MATLAB<sup>®</sup> als serieller Monitor ===
=== Aufgabe 4.1: Servo ansteuern ===
In dieser Aufgabe soll der Ultraschallkopf mittles Servomotor und Potentiometer geschwenkt werden.
# Machen Sie sich mit dem Demo <code>E24_Servo_Poti</code> 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 <code>map</code>-Befehl.
# 0% ist ganz links und 100% ganz rechts.
# Lagern Sie die Ansteuerung in eine Funktion <code>dreheUltraschall(Wert)</code> aus.
# Nutzen Sie MATLAB<sup>®</sup> um die Messdaten direkt (live) darzustellen.
# Nutzen Sie MATLAB<sup>®</sup> um die Messdaten direkt (live) darzustellen.
# Starten Sie als Datenquelle <code>messeEntfernung.ino</code> aus Aufgabe 1.2.
# Greifen Sie hierzu auf die serielle Schnittstelle zu während der Arduino Daten sendet.
# Nutzen Sie das Demo <code>DemoDebug2MATLAB</code> im [https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Demos/Arduino/DemoDebug2MATLAB SVN].
# Kopieren Sie das Beispiel in Ihren Ordner und erweitern Sie es.
'''Nützlich MATLAB<sup>®</sup>-Befehle:''' <code>fopen, feof, fgetl, strfind, isempty, plot, xlabel, ylabel, legend</code>


'''Arbeitsergebnisse''' in SVN: <code>seriellerMonitor.m</code>
'''Arbeitsergebnisse''' in SVN: <code>dreheServoMotor.ino</code> <code>zeigeUltraschallMesswerte.m</code>


<div class="mw-collapsible mw-collapsed">
<div class="mw-collapsible mw-collapsed">
Musterlösung als Video:<br>
'''Demo''': [https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/AlphaBot/ArduinoLibOrdner/AlphaBot/examples/E24_Servo_Poti SVN: E24_Servo_Poti]
 
<iframe key="panopto" path="/Panopto/Pages/Embed.aspx?id=e1bdcb99-4590-4636-8226-afd400e8b3e2&autoplay=false&offerviewer=true&showtitle=true&showbrand=true&captions=false&interactivity=all" height="405" width="720" style="border: 1px solid #464646;" allowfullscreen allow="autoplay"></iframe>
</div>
</div>
----
----

Version vom 31. März 2023, 09:32 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.

Arbeitsergebnisse in SVN: dreheServoMotor.ino zeigeUltraschallMesswerte.m


Aufgabe 3.2: Inbetriebnahme des AlphaBot

  1. Arbeiten Sie sich anhand des Wiki-Artikels in den AlphaBot ein. Beachten Sie besonders die Ausrichtung der Akkus. ACHTUNG BRANDGEFAHR!
  2. Binden Sie die AlphaBot Bibliothek nach Anleitung in die Arduino IDE ein.
  3. Machen Sie sich mit dem Demo E23_RGB_LED vertraut, so dass Sie jede Zeile erläutern können.
  4. Kopieren Sie das Beispiel in Ihren Ordner und erweitern Sie es.
  5. Am Analogport A0 ist das Potentiometer des Erweiterungsborts angeschlossen. Nutzen Sie das Potentiometer, um die Blinkfrequenz der RGB-LED im Bereich 0 s..1 s zu verändern.
  6. Stellen Sie den Wert des Potentiometers an A0 in MATLAB® live dar.

Lernzielkontrollfragen:

  • Wie funktioniert eine RGB-LED?
  • 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: steuereRGBLED.ino, zeigePotiWert.m

Demos: E23, E34


Aufgabe 3.3: AlphaBot Ultraschall

  1. Machen Sie sich mit dem Demo E05_Ultraschall_Entfernungsmessung 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 Messwerte des Ultraschallsensors aus.
  4. Stellen Sie den Wert des Ultraschallsensors in MATLAB® live dar.

Lernzielkontrollfragen:

  • An welchen Pins sind Trigger und Echo angeschlossen? Wie lässt sich das anpassen?

Arbeitsergebnisse in SVN: messeUltraschall.ino, zeigeUltraschall.m

Demo: E05

Aufgabe 3.4: Glättung der Ultraschallmessung

  1. Nutzen Sie Ihre Ergebnisse aus Aufgabe 2.3 um die Messwerte in Echtzeit zu glätten.
  2. Vergleichen Sie die Ergebnisse des Tiefpasses mit denen des gleitenden Mittelwertfilters in einem Plot mit Achsenbeschriftung und Legende.

Arbeitsergebnisse in SVN: messeUltraschall.ino, filtereUltraschall.m

Lernzielkontrollfragen:

  1. Wurde das Signalrauschen geglättet?
  2. Ist das gefilterte Signal verzögert?
  3. Welchen Einfluss haben die Filterparameter?
  4. Wie verhalten sich die gefilterten Signal bei Ausreißern?

Aufgabe 3.5: 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