SDE WS25: BluetoothRegelung.ino: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
| Zeile 2: | Zeile 2: | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
| '''Modul:''' || <code> | | '''Modul:''' || <code>BluetoothRegelung.ino</code> | ||
|- | |- | ||
| '''Revision:''' || | | '''Revision:''' || 10877 | ||
|- | |- | ||
| '''Autor:'''|| [[Benutzer: Lukas Berkemeier| Lukas Berkemeier]] | | '''Autor:'''|| [[Benutzer: Lukas Berkemeier| Lukas Berkemeier]] | ||
|- | |- | ||
| '''Datum:''' || | | '''Datum:''' || 06.11.2025 | ||
|- | |- | ||
| '''System:'''|| Arduino IDE | | '''System:'''|| Arduino IDE | ||
|- | |- | ||
| '''SVN-URL:'''|| <code>https://svn.hshl.de/svn/MTR_SDE_Praktikum/trunk/_Semesterordner/WS2025/Sprint_1/c-files/ | | '''SVN-URL:'''|| <code>https://svn.hshl.de/svn/MTR_SDE_Praktikum/trunk/_Semesterordner/WS2025/Sprint_1/c-files/BluetoothRegelung/BluetoothRegelung.ino</code> | ||
|} | |} | ||
= Einleitung/Funktion = | = Einleitung/Funktion = | ||
Im Modul <code>BluetoothRegelung.ino</code> wird die Regelabweichung genutzt um die Stellgröße zu berechnen und die Alphabotmotoren zu regeln. Im Modul wird außerdem bereits die Bluetoothübertragung aus Arbeitspaket 1.4 [[SDE_WS25:_AP_1.4_Übertragung_der_Ist-Ablage_via_BT|Übertragung der Ist-Ablage via BT MATLAB→Arduino]] genutzt, mit der die Regelabweichung empfangen wird. Die Regelabweichung ist dabei die Distanz zur Solllinie in mm. | |||
= Funktionaler Systementwurf = | = Funktionaler Systementwurf = | ||
== Anforderungen == | == Anforderungen == | ||
Die Anforderungen werden aus [[ | Die Anforderungen werden aus [[SDE_WS25: AP 1.5 Geregelte Fahrt anhand der Ist-Ablage | Geregelte Fahrt anhand der Ist-Ablage]] entnommen. | ||
= Technischer Systementwurf = | = Technischer Systementwurf = | ||
Version vom 10. November 2025, 15:29 Uhr

| Modul: | BluetoothRegelung.ino
|
| Revision: | 10877 |
| Autor: | Lukas Berkemeier |
| Datum: | 06.11.2025 |
| System: | Arduino IDE |
| SVN-URL: | https://svn.hshl.de/svn/MTR_SDE_Praktikum/trunk/_Semesterordner/WS2025/Sprint_1/c-files/BluetoothRegelung/BluetoothRegelung.ino
|
Einleitung/Funktion
Im Modul BluetoothRegelung.ino wird die Regelabweichung genutzt um die Stellgröße zu berechnen und die Alphabotmotoren zu regeln. Im Modul wird außerdem bereits die Bluetoothübertragung aus Arbeitspaket 1.4 Übertragung der Ist-Ablage via BT MATLAB→Arduino genutzt, mit der die Regelabweichung empfangen wird. Die Regelabweichung ist dabei die Distanz zur Solllinie in mm.
Funktionaler Systementwurf
Anforderungen
Die Anforderungen werden aus Geregelte Fahrt anhand der Ist-Ablage entnommen.
Technischer Systementwurf
Der Systementwurf entspricht dem Modulentwurf aus Abbildung 2.
-
Abb. 2: messeMittellinie.ino
Komponentenspezifikation
Die Distanz zur Mittellinie wird durch die Messwerte der Tracking-Sensoren ermittelt.
- Umrechnen der fünf Sensorwerte in den Positionswert mittels Normierung und gewichteter Mittelwertberechnung. Das Prinzip ist in AlphaBot Linienverfolgungsssensor beschrieben.
- Umrechnung des Wertebereichs in die Distanz
- Gegebenenfalls Vorzeichen nach Anforderung 2 anpassen
- Ausgabe der Distanz
Programmierung
messeMittellinie.ino
|
int messeMittellinie(unsigned int MesswertArray[])
{
int distanz;
/* Position der Linie lesen. Das Array für die Messwerte MesswertArray muss als Argument übergeben werden.
Rückgabewert position in [0..4000]. 2000 Zeigt die Mitte an. */
int Positionswert = trs.readLine(MesswertArray, true); //zweite Variable: white_line, standardmäßig false, false = schwarze linie, true = weiße linie
if(Positionswert <800 || Positionswert >3200)
{
return 50;
}
else
{
distanz = map(Positionswert, 800, 3200,24,-24);
}
Serial.print(Positionswert);
Serial.print(";");
return distanz;
}
|
Modultest
Da es sich bei dieser Entwicklung um die eines einzelnen Moduls handelt, schließt der Modultest mit dem Testbericht die Entwicklung ab (vgl. Tabelle 2). Zum Testen des Moduls wird das Modul messeMittellinie.ino genutzt, indem die Werte zur Messung der Mittellinie im seriellen Monitor ausgegeben und mit der realen Messung verglichen werden.
Systematisches Vorgehen beim Testen:
- Arduino des Alphabot mit USB-Kabel an einen PC anschließen
- Arduino IDE starten
messeMittellinie.inoöffnen- COM-Port des Alphabot auswählen
- Programm auf den Arduino des Alphabot hochladen
- Seriellen Monitor starten
- Sensoren kalibrieren
- Ausgegebene Werte mit realen Messwerten vergleichen
Fehlerbehebung

Nach der ersten Modulplanung sollte die Spannweite wie in Abbildung 5 von beiden äußeren Sensoren zentral über der Mitte der Mittellinie, mit 65 mm Spannweite genutzt werden. Mit der Funktion map() wurden den Positionswerten 350-3650 die Entfernungen 33 bis -33 mm zugewiesen. Bei dieser Spannweite kam es im Bereich der äußeren Sensoren immer zu Messungenauigkeiten.
Zur Fehlerbehebung wurde die Spannweite auf 48 mm (+-24 mm) verringert und den Positionswerten 800-3200 die Entfernungen 24 bis -24 mm zugewiesen.
Im Modultest wurden die Änderungen als passend bewiesen.
Eine weitere Fehlerursache ist die Kalibrierung bzw. die Beleuchtung der Sensoren. Je nach Beleuchtung können verschiedene Werte gemessen werden. Ein möglicher Schritt zur Fehlerbehebung wäre das Anbringen einer Beleuchtung für die Sensoren um die Beleuchtung möglichst konstant zu halten.
Zusammenfassung
Das Modul messeMittellinie.ino wurde systematisch entworfen, getestet und dokumentiert. Sämtliche Anforderungen aus dem Arbeitspaket SDE WS25: AP 1.6 Messung der Mittellinie wurden erfüllt. Die Funktion kann eingesetzt werden, um die Distanz der Mitte der Mittellinie zum zentralen Sensor des Alphabot zu berechnen. In Zukunft kann das Modul verwendet werden um die Positionen der realen Mittellinienstreifen der Fahrbahn zu bestimmen.


