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

kleine Änderungen

parent 16ed0f3a
No related branches found
No related tags found
No related merge requests found
...@@ -9,7 +9,7 @@ Getestet mit: ...@@ -9,7 +9,7 @@ Getestet mit:
## **Vorausetzung** ## **Vorausetzung**
- Die Bibliothek Adafruit_VL53L0X muss installiert sein.<br /> - [Adafruit_VL53L0X](https://github.com/adafruit/Adafruit_VL53L0X) von Adafruit.<br />
<br /> <br />
## **Installation:** ## **Installation:**
...@@ -17,43 +17,45 @@ Getestet mit: ...@@ -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 /> Um diese Bibliothek verwenden zu können, muss dieses Repository geklont und in das Library-Verzeichnis der Arduino-IDE kopiert werden.<br />
<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: ## **Anwendung**:
- `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`
Zur Verwendung siehe zunächst das Beispiel `measurement.ino`<br />
<br /> <br />
**Einbinden der Bibliothek:** **Einbinden der Bibliothek:**
```arduino ```arduino
#include "bits_time_of_flight_controller.h" #include "bits_time_of_flight_controller.h"
``` ```
**Instanziieren:** **Instanziieren:**
```arduino ```arduino
bits_TimeOfFlightController tof_controller(max_distance); 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:** **Zum messen mit den Time of Flight Sensoren wird folgende Methode verwendet:**
```arduino ```arduino
int value = tof_controller.get_distance_mm(index); int value = tof_controller.get_distance_mm(index);
int value = tof_controller.get_distance_cm(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 /> <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:** ## **Quellen:**
......
...@@ -4,17 +4,14 @@ bits_TimeOfFlightController::bits_TimeOfFlightController(const uint16_t max_dist ...@@ -4,17 +4,14 @@ bits_TimeOfFlightController::bits_TimeOfFlightController(const uint16_t max_dist
void bits_TimeOfFlightController::init() { void bits_TimeOfFlightController::init() {
bool found_any_sensors = false;
for (int i = 0; i < SENSOR_COUNT; i++) for (int i = 0; i < SENSOR_COUNT; i++)
{ {
pinMode(sensors[i].shutdown_pin, OUTPUT); pinMode(sensors[i].shutdown_pin, OUTPUT);
digitalWrite(sensors[i].shutdown_pin, LOW); 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); delay(10);
for (int i = 0; i < SENSOR_COUNT; i++) for (int i = 0; i < SENSOR_COUNT; i++)
...@@ -41,7 +38,7 @@ void bits_TimeOfFlightController::init() { ...@@ -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; VL53L0X_RangingMeasurementData_t measure;
sensors[index].psensor->rangingTest(&measure, false); // 'true' um debug Informationen auszugeben sensors[index].psensor->rangingTest(&measure, false); // 'true' um debug Informationen auszugeben
...@@ -49,7 +46,7 @@ int bits_TimeOfFlightController::get_distance_cm(int index) { ...@@ -49,7 +46,7 @@ int bits_TimeOfFlightController::get_distance_cm(int index) {
int distance; int distance;
if ((measure.RangeStatus != 4) && (measure.RangeMilliMeter < max_distance)) if ((measure.RangeStatus != 4) && (measure.RangeMilliMeter < max_distance))
{ {
distance = measure.RangeMilliMeter / 10; distance = measure.RangeMilliMeter;
_print_tof_(index); _print_tof_(index);
_print_tof_(" Sensor Entfernung (cm): "); _print_tof_(" Sensor Entfernung (cm): ");
_println_tof_(distance); _println_tof_(distance);
...@@ -57,30 +54,14 @@ int bits_TimeOfFlightController::get_distance_cm(int index) { ...@@ -57,30 +54,14 @@ int bits_TimeOfFlightController::get_distance_cm(int index) {
else else
{ {
_println_tof_(" Ausserhalb des Messbereichs "); _println_tof_(" Ausserhalb des Messbereichs ");
distance = max_distance/10+1; distance = max_distance+1;
} }
return distance; return distance;
} }
int bits_TimeOfFlightController::get_distance_mm(int index) { int bits_TimeOfFlightController::get_distance_cm(int index) {
VL53L0X_RangingMeasurementData_t measure; int distance = get_distance_mm(index)/10;
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;
}
return distance; 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 // #define DEBUG_TOF
#include "bits_time_of_flight_controller.h" #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