SDE WS25: AP 1.4 Übertragung der Ist-Ablage via BT

Autor: Jan Steffens
Einleitung
Als Ist-Ablage wird die berechnete Distanz des Alphabots zur Mittellinie bezeichnet. Diese wird in MATLAB anhand der Prismaposition im Weltkoordinatensystem und der Fahrbahnmittellinie berechnet. Die berechnete Ist-Ablage wird dann als Regeldifferenz per Bluetooth über das HC-05 Bluetoothmodul an den Alphabot gesendet. Für den Test wird ein int8 Wert (-128 bis 127) von MATLAB über Bluetooth an den Alphabot gesendet, welcher diese Werte ausgibt. Dafür wird MATLAB seitig testBluetoothReichweite.m und Arduino seitig TestBTUebertragung.ino verwendet.
Funktionaler Systementwurf
In MATLAB muss die BT-Verbindung vom PC zum Arduino hergestellt werden. Matlab muss einen Wert (int8) via BT an den Alphabot senden. Der Arduino muss den Wert via BT empfangen. Der Wert muss in eine Variable gespeichert werden.
| Req. | Beschreibung | Priorität |
|---|---|---|
| 1 | Bluetooth Verbindung MATLAB zu HC-05 muss hergestellt werden | 1 |
| 2 | int8 Wert (-128 bis 127) muss von MATLAB via Bluetooth an HC-05 gesendet werden | 1 |
| 3 | Der Arduino muss den Wert via Bluetooth empfangen | 1 |
| 4 | Der int8 Wert muss in eine Variable gespeichert und ausgegeben werden | 1 |
| Req. | Beschreibung | Priorität |
|---|---|---|
| 1 | Die Umsetzung muss mit MATLAB® erfolgen. | 1 |
| 2 | Header und Hilfe müssen den Funktionskopf bilden. | 1 |
| 3 | Kommentare müssen den Quelltext lesbar machen. | 1 |
| 4 | Die Programmierrichtlinien für MATLAB müssen eingehalten werden. | 1 |
Technischer Systementwurf
Der technische Systementwurf wird in Abb. 2 & 3 als PAP dargestellt.
-
Abb. 2: testBluetoothReichweite.m
-
Abb. 3: TestBTUebertragung.ino
Komponentenspezifikation
Es werden Zählerwerte von -128 bis 127 erzeugt, diese werden dann von MATLAB über Bluetooth an das HC-05 Bluetoothmodul des Arduinos/ Alphabots gesendet. Dieser speichert diesen Wert in einer Variable und gibt sie aus.
Vorbereitung

- Bluetooth Dongle in PC einstecken
- Alphabot mit Akkus ausstatten
- Script TestBTUebertragung.cauf Alphabot laden (dafür kurz HC-05 entfernen)
- HC-05 Modul in Alphabot einstecken (siehe Abb. 2)
- Matlab R2024b auf LAB30-04 starten
- Script testBluetoothReichweite.m starten
- Bei Bedarf Zeile 31f. Sensorname ändern
- Über Windows Bluetootheinstellungen Verbindung zum HC-05 aufbauen und mit Passwort bestätigen
Umsetzung
testBluetoothReichweite.m
|
clear all; close all; clc
% Set up serial port communication
bInitBluetooth = false;
%% AlphaBot verbinden
%devlist = bluetoothlist;
if ~exist('Sensor03')
HC05 = bluetooth("Sensor03",1) % Verbindung aufbauen
disp('BT zu HC-05 wurde aufgebaut...')
else
disp('Keine Daten vom HC05 empfangen.')
end
%% Zählerschleife
counter = 0;
counter = int8(counter);
while true
counter = counter +1;
write(HC05,counter,"int8"); % Übermittlung der Daten
if counter >= 127
counter = -128
end
counter
pause(0.2)
end
|
TestBTUebertragung.ino
|
void setup()
{
Serial.begin(9600); //serieller Monitor wird gestartet, Baudrate auf 9600 festgelegt
}
void loop()
{
if(Serial.available()) //wenn Daten empfangen werden...
{
int Wert = Serial.read();//..sollen diese ausgelesen werden
Serial.println(Wert);
}
|
Modultest
| ID | Testfallbeschreibung | Eingang | Erwartetes Ergebnis | Testergebnis | Testperson | Datum |
|---|---|---|---|---|---|---|
| 1 | Bluetooth Verbindung MATLAB zu HC-05 muss hergestellt werden | >> BT Verbindung hergestellt | O.K. | Jan Steffens | 21.10.25 | |
| 2 | int8 Wert (-128 bis 127) muss von MATLAB via Bluetooth an HC-05 gesendet werden | Senden des Zählerstandes (-128 bis 127) | O.K. | Jan Steffens | 21.10.25 | |
| 3 | Der Arduino muss den Wert via Bluetooth empfangen | Empfangen des Zählerstandes (-128 bis 127) | O.K. | Jan Steffens | 21.10.25 | |
| 4 | Der int8 Wert muss in eine Variable gespeichert und ausgegeben werden | Zählerstand wird ausgegeben | O.K. | Jan Steffens | 21.10.25 |
Ausgaben
|
|
|
→ zurück zum Hauptartikel: Geregelte Autonome Fahrt
