SDE WS25: messeMittellinie.ino: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Lukas.berkemeier@stud.hshl.de (Diskussion | Beiträge)
Lukas.berkemeier@stud.hshl.de (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
 
(22 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
'''Autor:''' [[Benutzer: Lukas Berkemeier]]
[[Datei: messeMittellinieINOTest1.png | mini |Abb. 1: Skizze der Mittellinienerfassung]]
 
{| class="wikitable"
|-
| '''Modul:''' || <code>messeMittellinie.ino</code>
|-
| '''Revision:''' || 10834
|-
| '''Autor:'''|| [[Benutzer: Lukas Berkemeier| Lukas Berkemeier]]
|-
| '''Datum:''' || 23.10.2025 
|-
| '''System:'''|| Arduino IDE
|-
| '''SVN-URL:'''|| <code>https://svn.hshl.de/svn/MTR_SDE_Praktikum/trunk/_Semesterordner/WS2025/Sprint_1/c-files/messeMittellinie/messeMittellinie.ino</code>
|}
= Einleitung/Funktion =
= Einleitung/Funktion =
[[Datei: messeMittellinieINOTest1.png | mini |Abb. 1: Skizze der Mittellinienerfassung]]
Die Funktion messeMittellinie() aus dem Modul [https://svn.hshl.de/svn/MTR_SDE_Praktikum/trunk/_Semesterordner/WS2025/Sprint_1/c-files/messeMittellinie/messeMittellinie.ino messeMittellinie.ino] soll die Distanz der Mitte der Mittellinie zum zentralen Sensor des Alphabot (Abbildung 1, x-Achse) in mm berechnen. Als Eingangswerte werden die Werte des Arrays aus den fünf Tracking-Sensoren genutzt. Die Werte aus dem Array werden dann in einen Positionswert von 0 bis 4000 umgerechnet und aus diesem Wertebereich wiederum die Distanz von der Mittellinie zum Alphabot berechnet.
Die Funktion messeMittellinie() aus dem Modul [https://svn.hshl.de/svn/MTR_SDE_Praktikum/trunk/_Semesterordner/WS2025/Sprint_1/c-files/messeMittellinie/messeMittellinie.ino messeMittellinie.ino] soll die Distanz der Mitte der Mittellinie zum zentralen Sensor des Alphabot (Abbildung 1, x-Achse) in mm berechnen. Als Eingangswerte werden die Werte des Arrays aus den fünf Tracking-Sensoren genutzt. Die Werte aus dem Array werden dann in einen Positionswert von 0 bis 4000 umgerechnet und aus diesem Wertebereich wiederum die Distanz von der Mittellinie zum Alphabot berechnet.


Zeile 22: Zeile 34:
# Umrechnung des Wertebereichs in die Distanz
# Umrechnung des Wertebereichs in die Distanz
# Gegebenenfalls Vorzeichen nach Anforderung 2 anpassen
# Gegebenenfalls Vorzeichen nach Anforderung 2 anpassen
# Ausgabe der Distanz


= Programmierung =
= Programmierung =
Zeile 51: Zeile 64:


= Modultest =
= Modultest =
<p align="justify">
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 [https://svn.hshl.de/svn/MTR_SDE_Praktikum/trunk/_Semesterordner/WS2025/Sprint_1/c-files/messeMittellinie/messeMittellinie.ino messeMittellinie.ino] genutzt, indem die Werte zur Messung der Mittellinie im seriellen Monitor ausgegeben und mit der realen Messung verglichen werden.
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 [https://svn.hshl.de/svn/MTR_SDE_Praktikum/trunk/_Semesterordner/WS2025/Sprint_1/c-files/messeMittellinie/messeMittellinie.ino messeMittellinie.ino] genutzt, indem die Werte zur Messung der Mittellinie im seriellen Monitor ausgegeben und mit der realen Messung verglichen werden.
 
<br><br>
Systematisches Vorgehen beim Testen:
* Arduino des Alphabot mit USB-Kabel an einen PC anschließen
* Arduino IDE starten
* <code>messeMittellinie.ino</code> ö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
</p>
<br>
{| class="wikitable"
{| class="wikitable"
! style="font-weight: bold;" | ID
! style="font-weight: bold;" | ID
Zeile 64: Zeile 89:
|-
|-
| 1
| 1
| Messung: Alphabot zentral auf der weißen Linie (0 mm)
| Messung: Alphabot zentral auf der weißen Linie (0 mm) <br>
 
 
[[Datei: messeMittellinieINOTest1.png|thumb|left|450px|Abb. 2: messeMittellinie.ino Testfall 1]]
[[Datei: messeMittellinieINOTest1.png|thumb|left|450px|Abb. 2: messeMittellinie.ino Testfall 1]]
| Messwertarray der TR-Sensoren
| Messwertarray der TR-Sensoren
Zeile 76: Zeile 99:
|-
|-
| 2
| 2
| Messung: Alphabot rechts von der weißen Linie (24 mm) am festgelegten Ende  
| Messung: Alphabot rechts von der weißen Linie (24 mm) am festgelegten Ende <br>
 
 
[[Datei: messeMittellinieINOTest2.png|thumb|left|450px|Abb. 3: messeMittellinie.ino Testfall 2]]
[[Datei: messeMittellinieINOTest2.png|thumb|left|450px|Abb. 3: messeMittellinie.ino Testfall 2]]
| Messwertarray der TR-Sensoren
| Messwertarray der TR-Sensoren
Zeile 88: Zeile 109:
|-
|-
| 3
| 3
| Messung: Alphabot links von der weißen Linie (-24 mm) am festgelegten Ende
| Messung: Alphabot links von der weißen Linie (-24 mm) am festgelegten Ende <br>
 
 
[[Datei: messeMittellinieINOTest3.png|thumb|left|450px|Abb. 4: messeMittellinie.ino Testfall 3]]
[[Datei: messeMittellinieINOTest3.png|thumb|left|450px|Abb. 4: messeMittellinie.ino Testfall 3]]
| Messwertarray der TR-Sensoren
| Messwertarray der TR-Sensoren
Zeile 110: Zeile 129:


= Fehlerbehebung =  
= 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 Werten 350-3650 die Entfernungen  33 bis -33 mm zugewiesen. Bei dieser Spannweite kam es im Bereich der äußeren Sensoren immer zu Messungenauigkeiten.
[[Datei: messeMittellinieErsterDurchlauf.png|thumb|right|450px|Abb. 5: messeMittellinie.ino mit gesamter Sensorspannweite]]
Zur Fehlerbehebung wurde die Spannweiter auf 48 mm (+-24 mm) verringert und den Werten 800-3200 die Entfernungen 24 bis -24 mm zugewiesen.
<p align="justify">
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.
Im Modultest wurden die Änderungen als passend bewiesen.
[[Datei: messeMittellinieErsterDurchlauf.png|thumb|left|450px|Abb. 5: messeMittellinie.ino mit gesamter Sensorspannweite]]
 
<br>
<br>
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.  
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.  
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
<br><br>
----
</p>
→ zurück zum Hauptartikel: [[SDE WS25: AP 1.6 Messung der Mittellinie]]
 
= Zusammenfassung =
<p align="justify">
Das Modul <code>messeMittellinie.ino</code> 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.
</p>
= [[SDE WS25: AP 1.6 Messung der Mittellinie | Zurück zum Hauptartikel]]=

Aktuelle Version vom 25. Oktober 2025, 14:51 Uhr

Abb. 1: Skizze der Mittellinienerfassung
Modul: messeMittellinie.ino
Revision: 10834
Autor: Lukas Berkemeier
Datum: 23.10.2025
System: Arduino IDE
SVN-URL: https://svn.hshl.de/svn/MTR_SDE_Praktikum/trunk/_Semesterordner/WS2025/Sprint_1/c-files/messeMittellinie/messeMittellinie.ino

Einleitung/Funktion

Die Funktion messeMittellinie() aus dem Modul messeMittellinie.ino soll die Distanz der Mitte der Mittellinie zum zentralen Sensor des Alphabot (Abbildung 1, x-Achse) in mm berechnen. Als Eingangswerte werden die Werte des Arrays aus den fünf Tracking-Sensoren genutzt. Die Werte aus dem Array werden dann in einen Positionswert von 0 bis 4000 umgerechnet und aus diesem Wertebereich wiederum die Distanz von der Mittellinie zum Alphabot berechnet.

Funktionaler Systementwurf

Anforderungen

Die Anforderungen werden aus SDE WS25: AP 1.6 Messung der Mittellinie entnommen.

Technischer Systementwurf

Der Systementwurf entspricht dem Modulentwurf aus Abbildung 2.

Komponentenspezifikation

Die Distanz zur Mittellinie wird durch die Messwerte der Tracking-Sensoren ermittelt.

  1. Umrechnen der fünf Sensorwerte in den Positionswert mittels Normierung und gewichteter Mittelwertberechnung. Das Prinzip ist in AlphaBot Linienverfolgungsssensor beschrieben.
  2. Umrechnung des Wertebereichs in die Distanz
  3. Gegebenenfalls Vorzeichen nach Anforderung 2 anpassen
  4. Ausgabe der Distanz

Programmierung

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


ID Testfallbeschreibung Eingang Erwartetes Ergebnis Testergebnis Testperson Datum
Tabelle 1: Testbericht für den Modultest
1 Messung: Alphabot zentral auf der weißen Linie (0 mm)
Abb. 2: messeMittellinie.ino Testfall 1
Messwertarray der TR-Sensoren

[58 85 952 61 60]

0 mm 1 mm Lukas Berkemeier 13.10.2025
2 Messung: Alphabot rechts von der weißen Linie (24 mm) am festgelegten Ende
Abb. 3: messeMittellinie.ino Testfall 2
Messwertarray der TR-Sensoren

[215 861 39 36 20]

24 mm 24 mm Lukas Berkemeier 13.10.2025
3 Messung: Alphabot links von der weißen Linie (-24 mm) am festgelegten Ende
Abb. 4: messeMittellinie.ino Testfall 3
Messwertarray der TR-Sensoren

[99 73 73 473 787]

-24 mm -23 mm Lukas Berkemeier 13.10.2025
4 Keine weiße Linie vorhanden oder Linie außerhalb der festgelegten Spannweite Positionswert <800 oder >3200 50 50 Lukas Berkemeier 13.10.2025

Fehlerbehebung

Abb. 5: messeMittellinie.ino mit gesamter Sensorspannweite

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.

Zurück zum Hauptartikel