SDE WS25: AP 1.8 Übertragung der Messung der Mittellinie via BT Arduino→MATLAB
Autor: Lukas Berkemeier
Einleitung
Die Mittellinienposition wird in Arbeitspaket 1.7 berechnet. Im Rahmen des Arbeitspaket 1.8: Übertragung der Messung der Mittellinie via Bluetooth Arduino→MATLAB, soll die gemessene Position vom Alphabot über die serielle Schnittstelle und dem HC-05 Bluetooth-Modul an einen Computer und MATLAB übertragen werden. Das Senden der Daten wurde in sendeBluetooth.ino und empfangeBluetooth.m realisiert und mit exemplarischen Werten getestet.
Anforderungen
| ID | Anforderung | Priorität | Person | Datum |
|---|---|---|---|---|
| 1 | Die Bluetoothverbindung zum HC-05 Modul muss hergestellt werden. | 1 | Lukas Berkemeier | 21.10.2025 |
| 2 | Die Daten der Messung der Mittellinie müssen übertragen werden. | 1 | Lukas Berkemeier | 21.10.2025 |
| 3 | Die Daten der Messung der Mittellinie müssen empfangen werden. | 1 | Lukas Berkemeier | 21.10.2025 |
| 4 | Die Daten müssen in der gleichen Einheit empfangen, wie sie versendet werden. Gegebenenfalls muss der Datentyp angepasst werden. | 1 | Lukas Berkemeier | 21.10.2025 |
| Req. | Beschreibung | Priorität |
|---|---|---|
| 1 | Die Sendeübertragung mit der Arduino IDE erfolgen. | 1 |
| 2 | Der Empfang muss mit MATLAB erfolgen. | 1 |
| 3 | Header und Hilfe müssen den Funktionskopf bilden. | 1 |
| 3 | Kommentare müssen den Quelltext lesbar machen. | 1 |
| 4 | Die Arduino IDE muss auf dem Computer installiert sein. (Version 2.3.6) | 1 |
| 5 | MATLAB >2020b muss auf dem Computer installiert sein. | 1 |
Umsetzung
Die Übertragung der Messung der Mittellinie wurde in zwei Modulen realisiert. In der Arduino IDE wurde das Modul code> sendeBluetooth.ino und in Matlab das Modul empfangeBluetooth.m erstellt.
Daten Senden
| Modul: | sendeBluetooth.ino
|
| Revision: | 10842 |
| Autor: | Lukas Berkemeier |
| Datum: | 21.10.2025 |
| System: | Arduino IDE 2.3.6 |
| SVN-URL: | https://svn.hshl.de/svn/MTR_SDE_Praktikum/trunk/_Semesterordner/WS2025/Sprint_1/c-files/sendeBluetooth/sendeBluetooth.ino sendeBluetooth.ino
|
-
Abb. 1: sendeBluetooth.ino
sendeBluetooth.ino
|
// Verschieden Variablen zum Senden initialisieren
int test1 = -22; // Simulation Distanz
int test2 = 0; // Simulation linieVorhanden
void setup()
{
Serial.begin(9600);
}
void loop()
{
// Senden der Daten als ein Datenpaket
Serial.print(test1);
Serial.print(";");
Serial.println(test2);
delay(200);
}
|
Daten empfangen
| Modul: | empfangeBluetooth.m
|
| Revision: | 10846 |
| Autor: | Lukas Berkemeier |
| Datum: | 21.10.2025 |
| System: | Matlab R2024b |
| SVN-URL: | https://svn.hshl.de/svn/MTR_SDE_Praktikum/trunk/_Semesterordner/WS2025/Sprint_1/m-files/empfangeBluetooth.m empfangeBluetooth.m
|
-
Abb. 2: empfangeBluetooth.m
empfangeBluetooth.m
|
clear all
disp('Verbindung wird aufgebaut')
%% Zum HC-05 am Alphabot verbinden
if ~exist('Sensor03')
HC05 = bluetooth("Sensor03",1); % Verbindung aufbauen
disp('Verbindung wurde aufgebaut...')
end
while true
n = HC05.NumBytesAvailable;
if n>0
[yKoord, linieVorhanden] = empfangeDaten(HC05,n);
% Datenausgabe
disp(yKoord);
disp(linieVorhanden);
end
end
function [yKoord, linieVorhanden] = empfangeDaten(HC05,n)
%Daten lesen und trennen
Daten = read(HC05,n);
Daten = char(Daten);
Daten = split(Daten,";");
% Datentypen anpassen
% von cell zu char zu num
yKoord = cell2mat(Daten(1));
linieVorhanden = cell2mat(Daten(2));
yKoord = str2num(yKoord);
linieVorhanden = str2num(linieVorhanden);
end
|
Systemtest
Das System besteht aus den beiden Modulen sendeBluetooth.ino und empfangeBluetooth.m . Beide Module bilden die gesamte Bluetoothkommunikation zum Übertragen von Daten vom Arduino des Alphabot zum Computer mit Matlab.
| ID | Testfallbeschreibung | Eingang | Erwartetes Ergebnis | Testergebnis | Testperson | Datum |
|---|---|---|---|---|---|---|
| 1 | Die Verbindung zum HC-05 Modul am Alphabot muss Aufgebaut werden | Gerätename des HC-05 Moduls (Einstellungen -> Bluetooth und andere Geräte) | Display: Verbindung wurde Aufgebaut | "Verbindung wurde Aufgebaut" | Lukas Berkemeier | 28.10.2025 |
| 2 | Die exemplarischen Werte der Position der Mittellinie und ob eine weiße Linie vorhanden ist müssen übertragen werden. | sendeBluetooth.ino -22;0
|
-22;0 | -22;0 | Lukas Berkemeier | 28.10.2025 |
| 3 | Die exemplarischen Werte der Position der Mittellinie und ob eine weiße Linie vorhanden ist müssen übertragen werden. | sendeBluetooth.ino 22;1
|
22;1 | 22;1 | Lukas Berkemeier | 28.10.2025 |
| 4 | Das empfangene Datenpaket muss verarbeitet werden und die Daten muss als einzelne Nutzbar sein | 22;1 | Aufteilung der Daten | positionMittellinie = 22 linieVorhanden = 1 |
Lukas Berkemeier | 28.10.2025 |
| 5 | Das empfangene Datenpaket muss verarbeitet werden und die Daten muss als einzelne Nutzbar sein | -22;0 | Aufteilung der Daten | positionMittellinie = -22 linieVorhanden = 0 |
Lukas Berkemeier | 28.10.2025 |
Zusammenfassung
Das Arbeitspaket SDE WS25: AP 1.8 Übertragung der Messung der Mittellinie via BT Arduino→MATLAB wurde systematisch entworfen, getestet und dokumentiert. Sämtliche Anforderungen aus dem Arbeitspaket wurden erfüllt. Das Arbeitspaket, bestehend aus den Modulen sendeBluetooth.ino und empfangeBluetooth.m kann genutzt werden um die Position der Mittellinie und die Variable "linieVorhanden" über Bluetooth an einen Computer und Matlab zu senden. Die Daten werden in Matlab verarbeitet und können für weitere Berechnungen genutzt werden.
→ Zurück zum Hauptartikel SDE Systementwicklung WS25/26: Geregelte autonome Fahrt