Angewandte Informatik: Bluetooth Kommunikation: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
 
(17 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 21: 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 27: 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 ==
* [[Bluetooth_Module_HC-05|Wiki: Bluetooth Module HC-05]]
* [[Bluetooth_Module_HC-05|Wiki: Bluetooth Module HC-05]]
* [[Bluetooth_Module_HC-05_-_AT-Modus#Sensoren_und_Passwörter|Wiki: Kennworte für die Bluetooth-Module]]
* [[Bluetooth_Module_HC-05_-_AT-Modus#Sensoren_und_Passwörter|Wiki: Kennworte für die Bluetooth-Module]]
* [[LiDAR_Abstandssensor_ToF_VL6180X| Wiki: LiDAR Abstandssensor ToF VL6180X]]


= Demos =
= Demos =
Zeile 62: Zeile 65:
|}
|}
'''URL:''' https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Arduino/ArduinoLibOrdner/AlphaBot/examples/E38_sendeByteViaBT/E38_sendeByteViaBT.ino
'''URL:''' https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Arduino/ArduinoLibOrdner/AlphaBot/examples/E38_sendeByteViaBT/E38_sendeByteViaBT.ino
== DemoTOFVL6180X.ino ==
Dieses Demo sendet seriell einen Zykluszähler via Bluetooth.
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
| <strong>DemoTOFVL6180X.ino&thinsp;</strong>
|-
| <source line lang="matlab" style="font-size:medium">//*****************************************************************************
// 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"); }
}
</source>
|}
'''URL:''' https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Arduino/ArduinoLibOrdner/ArduinoUnoR3/examples/DemoTOFVL6180X


== empfangeByteViaBT.m ==
== empfangeByteViaBT.m ==
Zeile 149: Zeile 110:
|}
|}
'''URL:''' https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Arduino/ArduinoLibOrdner/AlphaBot/examples/E38_sendeByteViaBT/empfangeByteViaBT.m
'''URL:''' https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Arduino/ArduinoLibOrdner/AlphaBot/examples/E38_sendeByteViaBT/empfangeByteViaBT.m
== 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.
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
| <strong>DemoTOFVL6180X.ino&thinsp;</strong>
|-
| <source line lang="matlab" style="font-size:medium">//*****************************************************************************
// 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"); }
}
</source>
|}
'''URL:''' https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Arduino/ArduinoLibOrdner/ArduinoUnoR3/examples/DemoTOFVL6180X


= Aufgabe =
= Aufgabe =
== Aufgabe 8.1: Bluetooth Datenlogger ==
[[Datei:ZeigeLiDAREntfernung.jpg|thumb|rigth|500px|Abb. 3: Ergebnisdarstellung]]
* Verbinden Sie den AlphaBot mit MATLAB<sup>®</sup>.
* Lesen Sie mit dem LiDAR [[LiDAR_Abstandssensor_ToF_VL6180X|VL6180X]] die Entfernung zu einem Objekt in mm ein (vgl. Abb. 2).  
* Übertragen Sie mit der Datei <code>BluetoothDatenlogger.ino</code> die vom linken und rechten Rad gefahrene Strecke an MATLAB<sup>®</sup> via Bluetooth.
* Übertragen Sie die gemessene Entfernung an MATLAB<sup>®</sup> via Bluetooth (vgl. Abb. 1).
* Empfangen Sie die Daten mit dem Skript <code>zeigeMesswerte.m</code>.
* Empfangen Sie die Daten mit dem Skript <code>zeigeLiDAREntfernung.m</code>.
* Berechnen Sie aus den Strecken die Geschwindigkeiten und Beschleunigungen.
* Zeigen Sie die gemessene Entfernung in einem Echtzeit-Plot an (vgl. Abb. 3).
* Zeigen Sie das Ergebnis als 3x2 Subplot mit MATLAB<sup>®</sup> an.
 
* Sichern Sie Ihr Ergebnis in der Datei <code>Messung_8_1.mat</code>.
'''Arbeitsergebnisse in SVN''': <code>messeLiDAREntfernung.ino</code>, <code>zeigeLiDAREntfernung.m</code>
 


'''Arbeitsergebnisse:''' <code>BluetoothDatenlogger.ino</code>, <code>zeigeMesswerte.m</code>, <code>Messung_8_1.mat</code>


'''Arbeitsergebnisse in SVN''': <code>messeHoehe.m</code>, <code>Hoehe.mat</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

Abb. 1: Bluetooth Modul HC-05
Abb. 2: VL6180X-Time of Flight-Laser-Abstandssensor
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

  1. Studieren Sie den Artikel Bluetooth Module HC-05.
  2. Installieren Sie die VL6180X Bibliothek von Pololu (1.4.0).
  3. Versetzen Sie den Arduino mittels Demo in den Sendemodus (E38_sendeByteViaBT.ino).
  4. Koppeln Sie das Notebook mit dem Arduino via Bluetooth (Kennworte für die Bluetooth-Module).
  5. Senden Sie den Inhalt eines 8-Bit Zählers.
  6. Empfangen Sie den Zähler mit MATLAB® (empfangeByteViaBT.m.
  7. Visualisieren Sie den Zähler in einem Plot.
  8. Sichern Sie die Daten in der Datei Messdaten.mat.

Tutorial

Demos

E38_sendeByteViaBT.ino

Dieses Demo sendet seriell einen Zykluszähler via Bluetooth.

URL: https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Arduino/ArduinoLibOrdner/AlphaBot/examples/E38_sendeByteViaBT/E38_sendeByteViaBT.ino

empfangeByteViaBT.m

Dieses Demo empfängt Daten via Bluetooth und .

URL: https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Arduino/ArduinoLibOrdner/AlphaBot/examples/E38_sendeByteViaBT/empfangeByteViaBT.m

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.

URL: https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Arduino/ArduinoLibOrdner/ArduinoUnoR3/examples/DemoTOFVL6180X

Aufgabe

Abb. 3: Ergebnisdarstellung
  • 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