diff --git a/Bachelorarbeit/Bachelorarbeit/18_vl53l7cx_clean_with_STlibrary_Shift_register_20250127154813.ino b/Bachelorarbeit/Bachelorarbeit/18_vl53l7cx_clean_with_STlibrary_Shift_register_20250127154813/18_vl53l7cx_clean_with_STlibrary_Shift_register_20250127154813.ino similarity index 52% rename from Bachelorarbeit/Bachelorarbeit/18_vl53l7cx_clean_with_STlibrary_Shift_register_20250127154813.ino rename to Bachelorarbeit/Bachelorarbeit/18_vl53l7cx_clean_with_STlibrary_Shift_register_20250127154813/18_vl53l7cx_clean_with_STlibrary_Shift_register_20250127154813.ino index 01920671d69764d457117e2ab0ed558eedb1481e..20916d25a9a13b4b5c2bf6a967db0318646bd76a 100644 --- a/Bachelorarbeit/Bachelorarbeit/18_vl53l7cx_clean_with_STlibrary_Shift_register_20250127154813.ino +++ b/Bachelorarbeit/Bachelorarbeit/18_vl53l7cx_clean_with_STlibrary_Shift_register_20250127154813/18_vl53l7cx_clean_with_STlibrary_Shift_register_20250127154813.ino @@ -1,3 +1,4 @@ + /** ****************************************************************************** * @file VL53L7CX_Sat_HelloWorld.ino @@ -54,10 +55,10 @@ #include <Wire.h> #include <ArduinoJson.h> #include <vl53l7cx_class.h> -#include "74HC154.h" #include <string.h> #include <stdlib.h> #include <stdio.h> +#include <PCF8575.h> #include <stdint.h> #include <assert.h> #include <stdlib.h> @@ -70,37 +71,13 @@ #endif #define LedPin LED_BUILTIN -#define LPN_PIN0 14 -#define LPN_PIN1 15 -#define LPN_PIN2 9 -#define LPN_PIN3 12 -#define LPN_PIN4 99 -#define LPN_PIN5 99 -#define LPN_PIN6 99 -#define LPN_PIN7 99 -#define LPN_PIN8 99 -#define LPN_PIN9 99 -#define LPN_PIN10 99 -#define LPN_PIN11 99 -#define LPN_PIN12 99 -#define LPN_PIN13 99 -#define LPN_PIN14 99 -#define LPN_PIN15 99 -#define LPN_PIN16 99 -#define LPN_PIN17 99 - -#define LPN_PIN1 15 -#define I2C_RST_PIN 27 - -#define LPN_PIN2 9 - -uint16_t dataPin0 = 18; -uint16_t latchPin0 = 17; -uint16_t clockPin0 = 16; - -uint16_t dataPin1 = 13; -uint16_t latchPin1 = 14; -uint16_t clockPin1 = 15; + + +#define I2C_RST_PIN 99 +#define LPN_PIN0 0 +#define LPN_PIN1 1 +#define LPN_PIN2 2 +#define LPN_PIN3 3 uint16_t sensoraddress0 = 0x30; uint16_t sensoraddress1 = 0x31; @@ -125,15 +102,17 @@ uint16_t sensoraddress17 = 0x41; uint16_t wait_for_i2c = 50; uint16_t imageWidth = 8; uint16_t ranging_frequency = 15; -pin_size_t SDA_PIN1 = 2; -pin_size_t SCL_PIN1 = 3; +pin_size_t SDA_PIN1 = 26; +pin_size_t SCL_PIN1 = 27; JsonDocument doc; // Components. -VL53L7CX sensor0(&DEV_I2C0, LPN_PIN0, I2C_RST_PIN); -VL53L7CX sensor1(&DEV_I2C0, LPN_PIN1, I2C_RST_PIN); -VL53L7CX sensor2(&DEV_I2C0, LPN_PIN2, I2C_RST_PIN); -VL53L7CX sensor3(&DEV_I2C0, LPN_PIN3, I2C_RST_PIN); +PCF8575 PCF(0x20, &DEV_I2C1); +VL53L7CX sensor0(&DEV_I2C1, 99, I2C_RST_PIN); +VL53L7CX sensor1(&DEV_I2C1, 99, I2C_RST_PIN); +VL53L7CX sensor2(&DEV_I2C1, 99, I2C_RST_PIN); +/* +VL53L7CX sensor3(&DEV_I2C1, 99, I2C_RST_PIN); VL53L7CX sensor4(&DEV_I2C0, LPN_PIN4, I2C_RST_PIN); VL53L7CX sensor5(&DEV_I2C0, LPN_PIN5, I2C_RST_PIN); VL53L7CX sensor6(&DEV_I2C0, LPN_PIN6, I2C_RST_PIN); @@ -148,8 +127,7 @@ VL53L7CX sensor14(&DEV_I2C1, LPN_PIN14, I2C_RST_PIN); VL53L7CX sensor15(&DEV_I2C1, LPN_PIN15, I2C_RST_PIN); VL53L7CX sensor16(&DEV_I2C1, LPN_PIN16, I2C_RST_PIN); VL53L7CX sensor17(&DEV_I2C1, LPN_PIN17, I2C_RST_PIN); - -void blink_led_loop(void); +*/ void blink_led_loop(void) { @@ -166,31 +144,38 @@ void blink_led_loop(void) void setup() { // Led. + delay(4000); pinMode(LedPin, OUTPUT); - pinMode(LPN_PIN0, OUTPUT); - pinMode(LPN_PIN1, OUTPUT); - pinMode(LPN_PIN2, OUTPUT); - pinMode(LPN_PIN3, OUTPUT); + digitalWrite(LedPin, HIGH); Serial.begin(115200); Serial.println("Initialize... Please wait, it may take few seconds..."); // Initialize I2C bus. DEV_I2C0.begin(); - DEV_I2C0.setClock(1000000); + DEV_I2C0.setClock(400000); delay(50); DEV_I2C1.setSCL(SCL_PIN1); DEV_I2C1.setSDA(SDA_PIN1); DEV_I2C1.begin(); - DEV_I2C1.setClock(1000000); + DEV_I2C1.setClock(400000); + + if (!PCF.begin()) + { + Serial.println("could not initialize..."); + } + if (!PCF.isConnected()) + { + Serial.println("=> not connected"); + while(1); + } + delay(50); // Initialize and configure sensors Serial.println("Initializing sensors..."); - i2cScanner(); - initializeSensor(sensor0, sensoraddress0, LPN_PIN0, I2C_RST_PIN); i2cScanner(); @@ -199,52 +184,52 @@ void setup() initializeSensor(sensor2, sensoraddress2, LPN_PIN2, I2C_RST_PIN); i2cScanner(); // Perform I2C scan - +/* initializeSensor(sensor3, sensoraddress3, LPN_PIN3, I2C_RST_PIN); i2cScanner(); // Perform I2C scan - // initializeSensor(sensor4, sensoraddress4, LPN_PIN4, I2C_RST_PIN); - // i2cScanner(); + initializeSensor(sensor4, sensoraddress4, LPN_PIN4, I2C_RST_PIN); + i2cScanner(); - // initializeSensor(sensor5, sensoraddress5, LPN_PIN5, I2C_RST_PIN); - // i2cScanner(); // Perform I2C scan + initializeSensor(sensor5, sensoraddress5, LPN_PIN5, I2C_RST_PIN); + i2cScanner(); // Perform I2C scan // initializeSensor(sensor6, sensoraddress6, LPN_PIN6, I2C_RST_PIN); // i2cScanner(); // Perform I2C scan - // initializeSensor(sensor7, sensoraddress7, LPN_PIN7, I2C_RST_PIN); - // i2cScanner(); // Perform I2C scan + initializeSensor(sensor7, sensoraddress7, LPN_PIN7, I2C_RST_PIN); + i2cScanner(); // Perform I2C scan - // initializeSensor(sensor8, sensoraddress8, LPN_PIN8, I2C_RST_PIN); - // i2cScanner(); + initializeSensor(sensor8, sensoraddress8, LPN_PIN8, I2C_RST_PIN); + i2cScanner(); - // initializeSensor(sensor9, sensoraddress9, LPN_PIN9, I2C_RST_PIN); - // i2cScanner(); // Perform I2C scan + initializeSensor(sensor9, sensoraddress9, LPN_PIN9, I2C_RST_PIN); + i2cScanner(); // Perform I2C scan // initializeSensor(sensor10, sensoraddress10, LPN_PIN10, I2C_RST_PIN); // i2cScanner(); // Perform I2C scan - // initializeSensor(sensor11, sensoraddress11, LPN_PIN11, I2C_RST_PIN); - // i2cScanner(); // Perform I2C scan - - // initializeSensor(sensor12, sensoraddress12, LPN_PIN12, I2C_RST_PIN); - // i2cScanner(); + initializeSensor(sensor11, sensoraddress11, LPN_PIN11, I2C_RST_PIN); + i2cScanner(); // Perform I2C scan - // initializeSensor(sensor13, sensoraddress13, LPN_PIN13, I2C_RST_PIN); - // i2cScanner(); // Perform I2C scan + initializeSensor(sensor12, sensoraddress12, LPN_PIN12, I2C_RST_PIN); + i2cScanner(); - // initializeSensor(sensor14, sensoraddress14, LPN_PIN14, I2C_RST_PIN); - // i2cScanner(); // Perform I2C scan + initializeSensor(sensor13, sensoraddress13, LPN_PIN13, I2C_RST_PIN); + i2cScanner(); // Perform I2C scan - // initializeSensor(sensor15, sensoraddress15, LPN_PIN15, I2C_RST_PIN); - // i2cScanner(); // Perform I2C scan + initializeSensor(sensor14, sensoraddress14, LPN_PIN14, I2C_RST_PIN); + i2cScanner(); // Perform I2C scan - // initializeSensor(sensor16, sensoraddress16, LPN_PIN16, I2C_RST_PIN); - // i2cScanner(); + initializeSensor(sensor15, sensoraddress15, LPN_PIN15, I2C_RST_PIN); + i2cScanner(); // Perform I2C scan - // initializeSensor(sensor17, sensoraddress17, LPN_PIN17, I2C_RST_PIN); - // i2cScanner(); // Perform I2C scan + initializeSensor(sensor16, sensoraddress16, LPN_PIN16, I2C_RST_PIN); + i2cScanner(); + initializeSensor(sensor17, sensoraddress17, LPN_PIN17, I2C_RST_PIN); + i2cScanner(); // Perform I2C scan +*/ Serial.println("All sensors initialized successfully."); } @@ -258,9 +243,10 @@ void loop() { // Process each sensor data and save to respective JSON arrays processSensorData(sensor0, Results0, doc["sensor0"].to<JsonArray>(), "sensor0"); processSensorData(sensor1, Results1, doc["sensor1"].to<JsonArray>(), "sensor1"); +/* processSensorData(sensor2, Results2, doc["sensor2"].to<JsonArray>(), "sensor2"); processSensorData(sensor3, Results3, doc["sensor3"].to<JsonArray>(), "sensor3"); - +*/ // Serialize the JSON document and print to Serial serializeJson(doc, Serial); Serial.println(); @@ -271,8 +257,8 @@ bool i2cScanner() bool status = false; for (byte address = 1; address < 127; address++ ) { - Wire.beginTransmission(address); - if (Wire.endTransmission() == 0) + DEV_I2C1.beginTransmission(address); + if (DEV_I2C1.endTransmission() == 0) { Serial.print("Device found at address 0x"); if (address < 0x10) @@ -285,17 +271,18 @@ bool i2cScanner() status = false; } } + delay(wait_for_i2c); } - Serial.println(); - delay(wait_for_i2c); return status; } void initializeSensor(VL53L7CX &sensor, uint16_t sensorAddress, int lpnPin, int i2cRstPin) { - LPn0(lpnPin, true); delay(wait_for_i2c); - sensor.begin(); + PCF.write16(0x0); + delay(wait_for_i2c); + PCF.write(lpnPin, HIGH); + delay(wait_for_i2c); sensor.init_sensor(); delay(wait_for_i2c); @@ -314,8 +301,8 @@ void initializeSensor(VL53L7CX &sensor, uint16_t sensorAddress, int lpnPin, int sensor.vl53l7cx_start_ranging(); delay(wait_for_i2c); - // Reset LPN and I2C pins - LPn0(lpnPin, false); + // Reset LPN + PCF.write(lpnPin, LOW); } void processSensorData(VL53L7CX &sensor, VL53L7CX_ResultsData &results, const JsonArray& data, const char* sensorKey) { @@ -340,109 +327,6 @@ void processSensorData(VL53L7CX &sensor, VL53L7CX_ResultsData &results, const Js for (int x = 0; x <= imageWidth - 1; x++) { sensorData.add(results.distance_mm[VL53L7CX_NB_TARGET_PER_ZONE * (x + y)]); } - void I2C_RST(int dataPin, int latchPin, int clockPin){ - uint8_t Pin_byte1 = 0b11111111; // For pins 0-7 - uint8_t Pin_byte2 = 0b11111111; // For pins 8-15 - uint8_t Pin_byte3 = 0b11111111; // For pins 16-23 - // Update the correct byte based on Pin - - digitalWrite(latchPin, LOW); - - // Shift out the bits - shiftOut(dataPin, clockPin, MSBFIRST, Pin_byte3); // Send byte for pins 16-23 - shiftOut(dataPin, clockPin, MSBFIRST, Pin_byte2); // Send byte for pins 8-15 - shiftOut(dataPin, clockPin, MSBFIRST, Pin_void I2C_RST(int dataPin, int latchPin, int clockPin){ - uint8_t Pin_byte1 = 0b11111111; // For pins 0-7 - uint8_t Pin_byte2 = 0b11111111; // For pins 8-15 - uint8_t Pin_byte3 = 0b11111111; // For pins 16-23 - // Update the correct byte based on Pin - - digitalWrite(latchPin, LOW); - - // Shift out the bits - shiftOut(dataPin, clockPin, MSBFIRST, Pin_byte3); // Send byte for pins 16-23 - shiftOut(dataPin, clockPin, MSBFIRST, Pin_byte2); // Send byte for pins 8-15 - shiftOut(dataPin, clockPin, MSBFIRST, Pin_byte1); // Send byte for pins 0-7 - - digitalWrite(latchPin, HIGH); - delay(200); -} - -void LPn0(uint16_t Pin, bool on) { - uint8_t Pin_byte1 = 0b00000000; // For pins 0-7 - uint8_t Pin_byte2 = 0b00000000; // For pins 8-15 - // Update the correct byte based on Pin - if (Pin <= 7) { - Pin_byte1 |= (on << Pin); // Set the corresponding bit in Pin_byte1 - } else if (Pin <= 15) { - Pin_byte2 |= (on << (Pin - 8)); // Set the corresponding bit in Pin_byte2 - } - digitalWrite(latchPin0, LOW); - - // Shift out the bits - shiftOut(dataPin0, clockPin0, MSBFIRST, Pin_byte2); // Send byte for pins 8-15 - shiftOut(dataPin0, clockPin0, MSBFIRST, Pin_byte1); // Send byte for pins 0-7 - - digitalWrite(latchPin0, HIGH); -} - -void LPn1(uint16_t Pin, bool on) { - uint8_t Pin_byte1 = 0b00000000; // For pins 0-7 - uint8_t Pin_byte2 = 0b00000000; // For pins 8-15 - // Update the correct byte based on Pin - if (Pin <= 7) { - Pin_byte1 |= (on << Pin); // Set the corresponding bit in Pin_byte1 - } else if (Pin <= 15) { - Pin_byte2 |= (on << (Pin - 8)); // Set the corresponding bit in Pin_byte2 - } - digitalWrite(latchPin1, LOW); - - // Shift out the bits - shiftOut(dataPin1, clockPin1, MSBFIRST, Pin_byte2); // Send byte for pins 8-15 - shiftOut(dataPin1, clockPin1, MSBFIRST, Pin_byte1); // Send byte for pins 0-7 - - digitalWrite(latchPin1, HIGH); -}byte1); // Send byte for pins 0-7 - - digitalWrite(latchPin, HIGH); - delay(200); -} - -void LPn0(uint16_t Pin, bool on) { - uint8_t Pin_byte1 = 0b00000000; // For pins 0-7 - uint8_t Pin_byte2 = 0b00000000; // For pins 8-15 - // Update the correct byte based on Pin - if (Pin <= 7) { - Pin_byte1 |= (on << Pin); // Set the corresponding bit in Pin_byte1 - } else if (Pin <= 15) { - Pin_byte2 |= (on << (Pin - 8)); // Set the corresponding bit in Pin_byte2 - } - digitalWrite(latchPin0, LOW); - - // Shift out the bits - shiftOut(dataPin0, clockPin0, MSBFIRST, Pin_byte2); // Send byte for pins 8-15 - shiftOut(dataPin0, clockPin0, MSBFIRST, Pin_byte1); // Send byte for pins 0-7 - - digitalWrite(latchPin0, HIGH); -} - -void LPn1(uint16_t Pin, bool on) { - uint8_t Pin_byte1 = 0b00000000; // For pins 0-7 - uint8_t Pin_byte2 = 0b00000000; // For pins 8-15 - // Update the correct byte based on Pin - if (Pin <= 7) { - Pin_byte1 |= (on << Pin); // Set the corresponding bit in Pin_byte1 - } else if (Pin <= 15) { - Pin_byte2 |= (on << (Pin - 8)); // Set the corresponding bit in Pin_byte2 - } - digitalWrite(latchPin1, LOW); - - // Shift out the bits - shiftOut(dataPin1, clockPin1, MSBFIRST, Pin_byte2); // Send byte for pins 8-15 - shiftOut(dataPin1, clockPin1, MSBFIRST, Pin_byte1); // Send byte for pins 0-7 - - digitalWrite(latchPin1, HIGH); -} } } @@ -450,57 +334,3 @@ void LPn1(uint16_t Pin, bool on) { digitalWrite(LedPin, LOW); } -void I2C_RST(int dataPin, int latchPin, int clockPin){ - uint8_t Pin_byte1 = 0b11111111; // For pins 0-7 - uint8_t Pin_byte2 = 0b11111111; // For pins 8-15 - uint8_t Pin_byte3 = 0b11111111; // For pins 16-23 - // Update the correct byte based on Pin - - digitalWrite(latchPin, LOW); - - // Shift out the bits - shiftOut(dataPin, clockPin, MSBFIRST, Pin_byte3); // Send byte for pins 16-23 - shiftOut(dataPin, clockPin, MSBFIRST, Pin_byte2); // Send byte for pins 8-15 - shiftOut(dataPin, clockPin, MSBFIRST, Pin_byte1); // Send byte for pins 0-7 - - digitalWrite(latchPin, HIGH); - delay(200); -} - -void LPn0(uint16_t Pin, bool on) { - uint8_t Pin_byte1 = 0b00000000; // For pins 0-7 - uint8_t Pin_byte2 = 0b00000000; // For pins 8-15 - // Update the correct byte based on Pin - if (Pin <= 7) { - Pin_byte1 |= (on << Pin); // Set the corresponding bit in Pin_byte1 - } else if (Pin <= 15) { - Pin_byte2 |= (on << (Pin - 8)); // Set the corresponding bit in Pin_byte2 - } - digitalWrite(latchPin0, LOW); - - // Shift out the bits - shiftOut(dataPin0, clockPin0, MSBFIRST, Pin_byte2); // Send byte for pins 8-15 - shiftOut(dataPin0, clockPin0, MSBFIRST, Pin_byte1); // Send byte for pins 0-7 - - digitalWrite(latchPin0, HIGH); -} - -void LPn1(uint16_t Pin, bool on) { - uint8_t Pin_byte1 = 0b00000000; // For pins 0-7 - uint8_t Pin_byte2 = 0b00000000; // For pins 8-15 - // Update the correct byte based on Pin - if (Pin <= 7) { - Pin_byte1 |= (on << Pin); // Set the corresponding bit in Pin_byte1 - } else if (Pin <= 15) { - Pin_byte2 |= (on << (Pin - 8)); // Set the corresponding bit in Pin_byte2 - } - digitalWrite(latchPin1, LOW); - - // Shift out the bits - shiftOut(dataPin1, clockPin1, MSBFIRST, Pin_byte2); // Send byte for pins 8-15 - shiftOut(dataPin1, clockPin1, MSBFIRST, Pin_byte1); // Send byte for pins 0-7 - - digitalWrite(latchPin1, HIGH); -} - - diff --git a/Bachelorarbeit/Bachelorarbeit/4_vl53l7cx_clean_with_STlibrary.ino b/Bachelorarbeit/Bachelorarbeit/4_vl53l7cx_clean_with_STlibrary/4_vl53l7cx_clean_with_STlibrary.ino similarity index 100% rename from Bachelorarbeit/Bachelorarbeit/4_vl53l7cx_clean_with_STlibrary.ino rename to Bachelorarbeit/Bachelorarbeit/4_vl53l7cx_clean_with_STlibrary/4_vl53l7cx_clean_with_STlibrary.ino diff --git a/Bachelorarbeit/Bachelorarbeit/ba.pdf b/Bachelorarbeit/Bachelorarbeit/ba.pdf index a70f865fd72ba4b62c0829ddeeb2ec3a1877a40d..8d932b338d84bded148a0ecfbef677c7e1bf842d 100644 Binary files a/Bachelorarbeit/Bachelorarbeit/ba.pdf and b/Bachelorarbeit/Bachelorarbeit/ba.pdf differ diff --git a/Bachelorarbeit/Flowchart_Ba.drawio b/Bachelorarbeit/Flowchart_Ba.drawio new file mode 100644 index 0000000000000000000000000000000000000000..45fb19b511e30f530a41c62f8e4ca1f1bd1480cd --- /dev/null +++ b/Bachelorarbeit/Flowchart_Ba.drawio @@ -0,0 +1,108 @@ +<mxfile host="app.diagrams.net" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:137.0) Gecko/20100101 Firefox/137.0" version="26.2.14"> + <diagram name="Seite-1" id="6M1LCZoZGZ4QGx566Q5F"> + <mxGraphModel dx="1188" dy="626" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0"> + <root> + <mxCell id="0" /> + <mxCell id="1" parent="0" /> + <mxCell id="2" value="Distanzen zwischen Sensoren und Umgebung" style="whiteSpace=wrap;strokeWidth=2;" parent="1" vertex="1"> + <mxGeometry x="217" y="30" width="127" height="62" as="geometry" /> + </mxCell> + <mxCell id="33X4tJl66k_FHWsIR2in-44" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="33X4tJl66k_FHWsIR2in-48" target="7"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="280.5" y="253" as="sourcePoint" /> + <mxPoint x="280.5" y="373.5" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="33X4tJl66k_FHWsIR2in-45" value="<div>Wire &amp; Wire1<br>(I2C-Interface)</div>" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="33X4tJl66k_FHWsIR2in-44"> + <mxGeometry x="0.0056" y="3" relative="1" as="geometry"> + <mxPoint x="38" as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="7" value="Raspberry Pi Pico" style="whiteSpace=wrap;strokeWidth=2;" parent="1" vertex="1"> + <mxGeometry x="185.5" y="320" width="190" height="78" as="geometry" /> + </mxCell> + <mxCell id="17" value="" style="curved=1;startArrow=none;endArrow=block;exitX=0.5;exitY=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="2" target="33X4tJl66k_FHWsIR2in-48" edge="1"> + <mxGeometry relative="1" as="geometry"> + <Array as="points" /> + <mxPoint x="280.5" y="112" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="33X4tJl66k_FHWsIR2in-49" value="Time of Flight" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="17"> + <mxGeometry x="0.0588" y="2" relative="1" as="geometry"> + <mxPoint x="38" as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="24" value="" style="curved=0;startArrow=none;endArrow=block;exitX=0.5;exitY=1;rounded=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="7" target="33X4tJl66k_FHWsIR2in-51" edge="1"> + <mxGeometry relative="1" as="geometry"> + <Array as="points" /> + <mxPoint x="280" y="470" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="33X4tJl66k_FHWsIR2in-46" value="<div>JSON-String</div><div>via UART</div>" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="24"> + <mxGeometry x="-0.0217" y="1" relative="1" as="geometry"> + <mxPoint x="39" y="-3" as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="33X4tJl66k_FHWsIR2in-48" value="18 VL53L7CX<br>(ToF-Sensoren)" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="220.5" y="160" width="120" height="60" as="geometry" /> + </mxCell> + <mxCell id="33X4tJl66k_FHWsIR2in-53" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="33X4tJl66k_FHWsIR2in-51" target="33X4tJl66k_FHWsIR2in-52"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="33X4tJl66k_FHWsIR2in-54" value="pointcloud2" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="33X4tJl66k_FHWsIR2in-53"> + <mxGeometry x="-0.1747" y="2" relative="1" as="geometry"> + <mxPoint x="38" y="5" as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="33X4tJl66k_FHWsIR2in-51" value="serial_to_pointcloud2" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="200.5" y="500" width="160" height="80" as="geometry" /> + </mxCell> + <mxCell id="33X4tJl66k_FHWsIR2in-56" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="33X4tJl66k_FHWsIR2in-52" target="33X4tJl66k_FHWsIR2in-55"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="33X4tJl66k_FHWsIR2in-57" value="Int32" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="33X4tJl66k_FHWsIR2in-56"> + <mxGeometry x="-0.0372" y="-2" relative="1" as="geometry"> + <mxPoint x="22" y="-4" as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="33X4tJl66k_FHWsIR2in-59" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="33X4tJl66k_FHWsIR2in-52" target="33X4tJl66k_FHWsIR2in-58"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="33X4tJl66k_FHWsIR2in-60" value="pointcloud2" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="33X4tJl66k_FHWsIR2in-59"> + <mxGeometry x="-0.0093" y="-3" relative="1" as="geometry"> + <mxPoint x="3" y="7" as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="33X4tJl66k_FHWsIR2in-52" value="pcl_rob_node" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="200.5" y="640" width="160" height="80" as="geometry" /> + </mxCell> + <mxCell id="33X4tJl66k_FHWsIR2in-55" value="moveit2_stop_node" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="220.5" y="770" width="120" height="80" as="geometry" /> + </mxCell> + <mxCell id="33X4tJl66k_FHWsIR2in-58" value="RVIZ2" style="rhombus;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="450" y="630" width="100" height="100" as="geometry" /> + </mxCell> + <mxCell id="33X4tJl66k_FHWsIR2in-61" value="Physical/Hardware" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="470" y="100" width="120" height="60" as="geometry" /> + </mxCell> + <mxCell id="33X4tJl66k_FHWsIR2in-62" value="ROS2 Node" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="470" y="200" width="120" height="80" as="geometry" /> + </mxCell> + <mxCell id="33X4tJl66k_FHWsIR2in-63" value="Visualization Tool" style="rhombus;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="470" y="299.5" width="120" height="119" as="geometry" /> + </mxCell> + <mxCell id="33X4tJl66k_FHWsIR2in-65" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="33X4tJl66k_FHWsIR2in-64" target="33X4tJl66k_FHWsIR2in-51"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="33X4tJl66k_FHWsIR2in-66" value="Tf- Matrix" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="33X4tJl66k_FHWsIR2in-65"> + <mxGeometry x="0.1206" relative="1" as="geometry"> + <mxPoint x="-9" y="-20" as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="33X4tJl66k_FHWsIR2in-64" value="TF2" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="10" y="500" width="120" height="80" as="geometry" /> + </mxCell> + </root> + </mxGraphModel> + </diagram> +</mxfile> diff --git a/Bachelorarbeit/Flowchart_Ba.drawio.png b/Bachelorarbeit/Flowchart_Ba.drawio.png new file mode 100644 index 0000000000000000000000000000000000000000..66425765d952f24a6df7eb9a087f348d9a3607cd Binary files /dev/null and b/Bachelorarbeit/Flowchart_Ba.drawio.png differ diff --git a/Information_MCU_vl53l5cx/PCF8575.pdf b/Information_MCU_vl53l5cx/PCF8575.pdf new file mode 100644 index 0000000000000000000000000000000000000000..0c6b113c9a21f6f886f5a4ccdfe672f3f76d7c90 Binary files /dev/null and b/Information_MCU_vl53l5cx/PCF8575.pdf differ