AlphaBot: Servo mit MATLAB ansteuern: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| Zeile 44: | Zeile 44: | ||
'''Arbeitsergebnisse''' in SVN: <code>UltraschallScanner.m</code> | '''Arbeitsergebnisse''' in SVN: <code>UltraschallScanner.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 56: | Zeile 50: | ||
|Umrechnung der Koordinaten polar→kartesisch:<br> <math> x = r\cdot cos(\alpha)</math> <br><math> y = r\cdot sin(\alpha)</math> | |Umrechnung der Koordinaten polar→kartesisch:<br> <math> x = r\cdot cos(\alpha)</math> <br><math> y = r\cdot sin(\alpha)</math> | ||
|} | |} | ||
{| role="presentation" class="wikitable mw-collapsible mw-collapsed" | {| role="presentation" class="wikitable mw-collapsible mw-collapsed" | ||
| <strong> | | <strong>Musterlösung </strong> | ||
|- | |- | ||
| ''' | | <source line lang="matlab" style="font-size:medium">clear all; close all; clc; % Initialisierung | ||
disp('Verbindung wird hergestellt...') | |||
hArduino = arduino('COM5','Uno') % Arduino Objekt erzeugen | |||
figure % Grafik vorbereiten | |||
h = plot(0,0) | |||
tic % Timer starten | |||
for i=1:100 | |||
Spannung(i)= readVoltage(hArduino,'A0'); % Spannung messen | |||
Zeit(i) = toc; % Zeit messen | |||
set(h,'XData',Zeit,'YData',Spannung); % Werte live anzeigen | |||
pause(0.1) % in s | |||
end | |||
clear hArduino | |||
</source> | |||
|} | |} | ||
=== Aufgabe 3.2: Nachhaltige Doku === | === Aufgabe 3.2: Nachhaltige Doku === | ||
Version vom 18. April 2025, 08:18 Uhr

| Autor: | Prof. Dr.-Ing. Schneider |
| Modul: | Praxismodul II, MTR-B-2-2.11 |
| Lehrveranstaltung: | Mechatronik, Informatik Praktikum 2, 2. Semester |
Inhalt
- Nutzung von MATLAB® zur Kommunikation mit dem AlphaBot.
- Ansteuerung des Servomotors
- 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 3.1: Ultraschall als Umfeldscanner
- Voreinstellungen am AlphaBot: Entfernen Sie am AlphaBot am F-Port die Brücke D11 & D12.
- Machen Sie sich mit dem Demo Rotate a servo motor vertraut, so dass Sie jede Zeile erläutern können.
- Kopieren Sie das Beispiel in Ihren Ordner und erweitern Sie es.
- Steuern Sie den Servo schrittweise von 0°..180° an und fahren Sie schrittweise zurück auf 0°.
- Messen Sie pro 5 ° die Ultraschallentfernung.
- Filtern Sie die Ultraschallentfernung mit dem vielversprechendsten Filter aus Aufgabe 2.4.
- 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. 1).
Lernzielkontrollfragen:
- An welchen Arduino-Pins ist der Servo (
S1) angeschlossen?
Arbeitsergebnisse in SVN: UltraschallScanner.m
| Tipp 1 |
| Umrechnung der Koordinaten polar→kartesisch: |
| Musterlösung |
clear all; close all; clc; % Initialisierung
disp('Verbindung wird hergestellt...')
hArduino = arduino('COM5','Uno') % Arduino Objekt erzeugen
figure % Grafik vorbereiten
h = plot(0,0)
tic % Timer starten
for i=1:100
Spannung(i)= readVoltage(hArduino,'A0'); % Spannung messen
Zeit(i) = toc; % Zeit messen
set(h,'XData',Zeit,'YData',Spannung); % Werte live anzeigen
pause(0.1) % in s
end
clear hArduino
|
Aufgabe 3.2: 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
- HSHL-Wiki: Servomotor SG90
- HSHL-Wiki: Übersicht der AlphaBot Steckbrücken
- HSHL-Wiki: AlphaBot Multisensorerweiterung
- HSHL-Wiki: Übersicht des AlphaBot Uno Plus
Demos
- SVN:
E05_Ultraschall_Entfernungsmessung - SVN:
E18b_spieleTon - SVN:
E20_Joystick - SVN:
E23_RGB_LED - SVN:
E24_Servo_Poti - SVN:
E25_Servo_Sweep - SVN:
E31_Debug2MATLAB - SVN:
E34_lesePoti
→ Termine 1 2 3 5 6 7 8 9 10 11
→ zurück zum Hauptartikel: Informatik Praktikum 2