Skip to content
Snippets Groups Projects
Commit f10327e9 authored by Orhan-Timo Altan's avatar Orhan-Timo Altan
Browse files

kleine Änderungen

parent 16ed0f3a
Branches
Tags
No related merge requests found
......@@ -9,7 +9,7 @@ Getestet mit:
## **Vorausetzung**
- Die Bibliothek Adafruit_VL53L0X muss installiert sein.<br />
- [Adafruit_VL53L0X](https://github.com/adafruit/Adafruit_VL53L0X) von Adafruit.<br />
<br />
## **Installation:**
......@@ -17,43 +17,45 @@ Getestet mit:
Um diese Bibliothek verwenden zu können, muss dieses Repository geklont und in das Library-Verzeichnis der Arduino-IDE kopiert werden.<br />
<br />
Um die Anzahl der Time of Flight Sensoren, die zugehörigen XShut Pin Belegungen, sowie die Adressen der Sensoren anzupassen, müssen in der `time_of_flight_controller.h` Datei folgende Parameter bearbeitet werden:
- `SENSOR_COUNT`: Anzahl der zu Verwendenden Time of Flight Sensoren.
- `TOF_XSHUTS`: Pinbelegungen der XShut Pins von den einzelnen Sensoren.
- `TOF_ADDRESSES`: Adressen der einzelnen Sensoren.
Möchte man mehr als 5 Time of Flight Sensoren verwenden, so müssen ebenfalls anpassungen an der Liste `sensors[]` gemacht, so wie weitere *Adafruit_VL53L0X* Objekte instanziiert werden.<br />
<br />
## **Anwendung**:<br />
<br />
Zur Verwendung siehe zunächst das Beispiel `measurement.ino`
## **Anwendung**:
Zur Verwendung siehe zunächst das Beispiel `measurement.ino`<br />
<br />
**Einbinden der Bibliothek:**
```arduino
#include "bits_time_of_flight_controller.h"
```
**Instanziieren:**
```arduino
bits_TimeOfFlightController tof_controller(max_distance);
```
-`max_distance`: Maximale Distanz in mm. Gemessene Abstände größer als diesen Wert werden als -1 zurück gegeben.
- `max_distance`: Maximale Distanz in mm. Gemessene Abstände größer als diesen Wert werden als -1 zurück gegeben.<br />
<br />
**Zum messen mit den Time of Flight Sensoren wird folgende Methode verwendet:**
```arduino
int value = tof_controller.get_distance_mm(index);
int value = tof_controller.get_distance_cm(index);
```
- `index`: Time of Flight Sensor Nummer 0-4
- `index`: Time of Flight Sensor Nummer 0-4<br />
<br />
## **Anmerkungen**:
Um die Anzahl der Time of Flight Sensoren, die zugehörigen XShut Pin Belegungen, sowie die Adressen der Sensoren anzupassen, müssen in der `time_of_flight_controller.h` Datei folgende Parameter bearbeitet werden:
- `SENSOR_COUNT`: Anzahl der zu Verwendenden Time of Flight Sensoren.
- `TOF_XSHUTS`: Pinbelegungen der XShut Pins von den einzelnen Sensoren.
- `TOF_ADDRESSES`: Adressen der einzelnen Sensoren.
Möchte man mehr als 5 Time of Flight Sensoren verwenden, so müssen ebenfalls anpassungen an der Liste `sensors[]` gemacht, so wie weitere *Adafruit_VL53L0X* Objekte instanziiert werden.<br />
<br />
## **Quellen:**
......
......@@ -4,17 +4,14 @@ bits_TimeOfFlightController::bits_TimeOfFlightController(const uint16_t max_dist
void bits_TimeOfFlightController::init() {
bool found_any_sensors = false;
for (int i = 0; i < SENSOR_COUNT; i++)
{
pinMode(sensors[i].shutdown_pin, OUTPUT);
digitalWrite(sensors[i].shutdown_pin, LOW);
}
bool found_any_sensors = false;
for (int i = 0; i < SENSOR_COUNT; i++)
{
digitalWrite(sensors[i].shutdown_pin, LOW);
}
delay(10);
for (int i = 0; i < SENSOR_COUNT; i++)
......@@ -41,7 +38,7 @@ void bits_TimeOfFlightController::init() {
}
}
int bits_TimeOfFlightController::get_distance_cm(int index) {
int bits_TimeOfFlightController::get_distance_mm(int index) {
VL53L0X_RangingMeasurementData_t measure;
sensors[index].psensor->rangingTest(&measure, false); // 'true' um debug Informationen auszugeben
......@@ -49,7 +46,7 @@ int bits_TimeOfFlightController::get_distance_cm(int index) {
int distance;
if ((measure.RangeStatus != 4) && (measure.RangeMilliMeter < max_distance))
{
distance = measure.RangeMilliMeter / 10;
distance = measure.RangeMilliMeter;
_print_tof_(index);
_print_tof_(" Sensor Entfernung (cm): ");
_println_tof_(distance);
......@@ -57,30 +54,14 @@ int bits_TimeOfFlightController::get_distance_cm(int index) {
else
{
_println_tof_(" Ausserhalb des Messbereichs ");
distance = max_distance/10+1;
distance = max_distance+1;
}
return distance;
}
int bits_TimeOfFlightController::get_distance_mm(int index) {
VL53L0X_RangingMeasurementData_t measure;
sensors[index].psensor->rangingTest(&measure, false); // 'true' um debug Informationen auszugeben
int distance;
if ((measure.RangeStatus != 4) && (measure.RangeMilliMeter < max_distance))
{
distance = measure.RangeMilliMeter;
_print_tof_(index);
_print_tof_(" Sensor Entfernung (cm): ");
_println_tof_(distance);
}
else
{
_println_tof_(" Ausserhalb des Messbereichs ");
distance = max_distance+1;
}
int bits_TimeOfFlightController::get_distance_cm(int index) {
int distance = get_distance_mm(index)/10;
return distance;
}
\ No newline at end of file
/* BITS-i ToF-Sensor shematic
*
* +----#2------------#3----+
* | |
* | <------ |
* | #0 BITS-i |
* | |
* | |
* +----#1------------#4----+
*
* #0 - #4: Time of Flight Sensoren
*/
// #define DEBUG_TOF
#include "bits_time_of_flight_controller.h"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment