Angewandte Informatik: Bluetooth Kommunikation: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Keine Bearbeitungszusammenfassung |
|||
| (10 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
[[Datei:Bluetooth Modul HC-05.jpg|thumb|rigth|300px|Abb. 1: Bluetooth Modul HC-05]] | |||
[[Datei:VL6180X-Time-of-Flight-Laser-Abstandssensor-Gestensensor.png|thumb|rigth|300px|Abb. 2: VL6180X-Time of Flight-Laser-Abstandssensor]] | |||
{|class="wikitable" | {|class="wikitable" | ||
|- | |- | ||
| Zeile 9: | Zeile 11: | ||
| '''Lektion:''' || 10 | | '''Lektion:''' || 10 | ||
|} | |} | ||
= Inhalt = | = Inhalt = | ||
| Zeile 22: | Zeile 23: | ||
== Vorbereitung == | == Vorbereitung == | ||
# Studieren Sie den Artikel [[Bluetooth_Module_HC-05|Bluetooth Module HC-05]]. | # Studieren Sie den Artikel [[Bluetooth_Module_HC-05|Bluetooth Module HC-05]]. | ||
# Installieren Sie die VL6180X Bibliothek von Pololu (1.4.0). | |||
# Versetzen Sie den Arduino mittels Demo in den Sendemodus (<code>E38_sendeByteViaBT.ino</code>). | # Versetzen Sie den Arduino mittels Demo in den Sendemodus (<code>E38_sendeByteViaBT.ino</code>). | ||
# Koppeln Sie das Notebook mit dem Arduino via Bluetooth ([[Bluetooth_Module_HC-05_-_AT-Modus#Sensoren_und_Passwörter|Kennworte für die Bluetooth-Module]]). | # Koppeln Sie das Notebook mit dem Arduino via Bluetooth ([[Bluetooth_Module_HC-05_-_AT-Modus#Sensoren_und_Passwörter|Kennworte für die Bluetooth-Module]]). | ||
| Zeile 28: | Zeile 30: | ||
# Visualisieren Sie den Zähler in einem Plot. | # Visualisieren Sie den Zähler in einem Plot. | ||
# Sichern Sie die Daten in der Datei <code>Messdaten.mat</code>. | # Sichern Sie die Daten in der Datei <code>Messdaten.mat</code>. | ||
== Tutorial == | == Tutorial == | ||
| Zeile 111: | Zeile 112: | ||
== DemoTOFVL6180X.ino == | == DemoTOFVL6180X.ino == | ||
Dieses Demo | Dieses Demo misst mit dem LiDAR ToF VL6180X Entfernungen in mm. | ||
'''Voraussetzung:''' Installation der Arduino VL6180X-Bibliothek von Pololu in der Version 1.4.0. | |||
{| role="presentation" class="wikitable mw-collapsible mw-collapsed" | {| role="presentation" class="wikitable mw-collapsible mw-collapsed" | ||
| <strong>DemoTOFVL6180X.ino </strong> | | <strong>DemoTOFVL6180X.ino </strong> | ||
| Zeile 153: | Zeile 156: | ||
= Aufgabe = | = Aufgabe = | ||
[Datei:ZeigeLiDAREntfernung.jpg] | [[Datei:ZeigeLiDAREntfernung.jpg|thumb|rigth|500px|Abb. 3: Ergebnisdarstellung]] | ||
* Lesen Sie mit dem LiDAR [[LiDAR_Abstandssensor_ToF_VL6180X|VL6180X]] die Entfernung zu einem Objekt in mm ein. | * Lesen Sie mit dem LiDAR [[LiDAR_Abstandssensor_ToF_VL6180X|VL6180X]] die Entfernung zu einem Objekt in mm ein (vgl. Abb. 2). | ||
* Übertragen Sie | * Übertragen Sie die gemessene Entfernung an MATLAB<sup>®</sup> via Bluetooth (vgl. Abb. 1). | ||
* Empfangen Sie die Daten mit dem Skript <code>zeigeLiDAREntfernung.m</code>. | * Empfangen Sie die Daten mit dem Skript <code>zeigeLiDAREntfernung.m</code>. | ||
* Zeigen Sie die gemessene Entfernung in einem Echtzeit-Plot an. | * Zeigen Sie die gemessene Entfernung in einem Echtzeit-Plot an (vgl. Abb. 3). | ||
'''Arbeitsergebnisse in SVN''': <code>messeLiDAREntfernung.ino</code>, <code>zeigeLiDAREntfernung.m</code> | '''Arbeitsergebnisse in SVN''': <code>messeLiDAREntfernung.ino</code>, <code>zeigeLiDAREntfernung.m</code> | ||
---- | ---- | ||
→ zurück zum Hauptartikel: [[BSE Angewandte Informatik - SoSe26]] | → zurück zum Hauptartikel: [[BSE Angewandte Informatik - SoSe26]] | ||
Aktuelle Version vom 16. Juni 2026, 06:48 Uhr


| Autor: | Prof. Dr.-Ing. Schneider |
| Modul | Business and Systems Engineering, Angewandte Mathematik und Informatik, Übung, Sommersemester |
| Modulbezeichnung: | BSE-M-2-1.09 |
| Lektion: | 10 |
Inhalt
Manchmal ist es unhandlich den Arduino am seriellen Kabel zu betreiben. Hierbei würde es helfen die Messstelle von der Auswertestelle zu trennen und die Messdaten über Funk zu übertrgagen.
Lernziele
Nach Durchführung dieser Lektion können Sie
- Messdaten vom Arduino via Bluetooth an den PC senden.
- Daten via Bluetooth empfangen und mit MATLAB® analysieren und anzeigen.
- Messwerte in einer
MAT-Datei speichern.
Vorbereitung
- Studieren Sie den Artikel Bluetooth Module HC-05.
- Installieren Sie die VL6180X Bibliothek von Pololu (1.4.0).
- Versetzen Sie den Arduino mittels Demo in den Sendemodus (
E38_sendeByteViaBT.ino). - Koppeln Sie das Notebook mit dem Arduino via Bluetooth (Kennworte für die Bluetooth-Module).
- Senden Sie den Inhalt eines 8-Bit Zählers.
- Empfangen Sie den Zähler mit MATLAB® (
empfangeByteViaBT.m. - Visualisieren Sie den Zähler in einem Plot.
- Sichern Sie die Daten in der Datei
Messdaten.mat.
Tutorial
- Wiki: Bluetooth Module HC-05
- Wiki: Kennworte für die Bluetooth-Module
- Wiki: LiDAR Abstandssensor ToF VL6180X
Demos
E38_sendeByteViaBT.ino
Dieses Demo sendet seriell einen Zykluszähler via Bluetooth.
| E38_sendeByteViaBT.ino |
// Notw. Hardware HC-05 Bluetooth Modul
// VORBEREITUNG:
// HC-05 BT-Modul anschließen (AlphaBot UART Buchse)
// VCC - Arduino 5V
// GND - Arduino GND
// TXD - Arduino RX<-D0
// RXD - Arduino TX->D1
void setup() {
Serial.begin(9600); // Verbindung aufbauen, 9600 Baud
}
void loop() {
static byte Datum_u8 = 0; // Datum deklarieren
Serial.println(Datum_u8); // Datum senden
Datum_u8++; // Zähler inkrememntieren
delay(100);
}
|
empfangeByteViaBT.m
Dieses Demo empfängt Daten via Bluetooth und .
| empfangeByteViaBT.m |
% VORBEREITUNG:
% HC-05 BT-Modul anschließen (AlphaBot UART Buchse)
% VCC - Arduino 5V
% GND - Arduino GND
% TXD - Arduino RX<-D0
% RXD - Arduino TX->D1
% E38_sendeByteViaBT.ino auf Arduino laden
% https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Arduino/ArduinoLibOrdner/ArduinoUnoR3/examples/DemoBluetoothModulHC05/DemoSoftwareSerial/DemoSoftwareSerial.ino
%bluetoothlist % Übersicht der Adapter
clear all; close all
HC05 = bluetooth('Sensor06',1) % Tragen Sie hier Ihre Sensorbezeichnung ein
configureTerminator(HC05,"CR/LF"); % Ein Zeilenumbruch zeigt das Ende des Datenpaketes an
nDaten = 100; % Anzahl der Datensätze
i= 0; % Datenzähler
tic; % Zeitmessung starten
figure % Ergebnisdarstellung vorbereiten
h = animatedline('LineWidth',1);
%% Bluetooth empfangen
while i<nDaten
%% Daten lesen
n = HC05.NumBytesAvailable;
if n>0 % Sind Daten verfügbar?
data = readline(HC05) % Zeile lesen
if ~isempty(data) % Daten empfangen?
i = i+1
floatValue(i) = str2double(data); % Datum sichern
Zeit(i) = toc; % Zeit messen
addpoints(h, Zeit(i), floatValue(i)); % Datum visualisieren
drawnow;
end
end
end
|
DemoTOFVL6180X.ino
Dieses Demo misst mit dem LiDAR ToF VL6180X Entfernungen in mm.
Voraussetzung: Installation der Arduino VL6180X-Bibliothek von Pololu in der Version 1.4.0.
| DemoTOFVL6180X.ino |
//*****************************************************************************
// Notwendige Hardware: VL6180X
// - VIN: 5V oder 3,3V
// - GND: GND
// - SDA: SDA/D16
// - SCL: SCL/D17
//*****************************************************************************
// Dokumentation: LiDAR_Abstandssensor_ToF_VL6180X
#include <Wire.h> // I2C
#include <VL6180X.h> // VL6180X von Pololu
VL6180X sensor; // Instanz
void setup()
{
Serial.begin(9600); // Serielle Kommunikation, 9600 Baud
Wire.begin(); // I2C
sensor.init(); // LiDAR einrichten
sensor.configureDefault();
sensor.setTimeout(500);
}
void loop()
{ const char SCALING=2;
sensor.setScaling(SCALING); // Skalierung ändern
// 1: Reichweite 4mm - 200mm, Auflösung 1mm
// 2: Reichweite 4mm - 380mm, Auflösung 2mm
// 3: Reichweite 4mm - 570mm, Auflösung 3mm
Serial.println(sensor.readRangeSingleMillimeters()); // Entfernung in mm
if (sensor.timeoutOccurred()) { Serial.print(" TIMEOUT"); }
}
|
Aufgabe

- Lesen Sie mit dem LiDAR VL6180X die Entfernung zu einem Objekt in mm ein (vgl. Abb. 2).
- Übertragen Sie die gemessene Entfernung an MATLAB® via Bluetooth (vgl. Abb. 1).
- Empfangen Sie die Daten mit dem Skript
zeigeLiDAREntfernung.m. - Zeigen Sie die gemessene Entfernung in einem Echtzeit-Plot an (vgl. Abb. 3).
Arbeitsergebnisse in SVN: messeLiDAREntfernung.ino, zeigeLiDAREntfernung.m
→ zurück zum Hauptartikel: BSE Angewandte Informatik - SoSe26