feat: add ids for xshut, gpio and servos

This commit is contained in:
Alessevan 2025-05-05 13:48:50 +02:00
parent 814eff498a
commit 2598f523d0

View File

@ -179,7 +179,8 @@ void init_tube(struct tube *tube, char id, char servo_pin, char gpio, char xshut
tube->height = 250.0; tube->height = 250.0;
tube->target = 250.0; tube->target = 250.0;
if (!tofs_talk_through[id].begin()) { digitalWrite(xshut, HIGH);
if (!tofs_talk_through[id].begin(0x30 + id)) {
Serial.println(F("Failed to boot VL53L0X")); Serial.println(F("Failed to boot VL53L0X"));
while(1); while(1);
} }
@ -187,13 +188,13 @@ void init_tube(struct tube *tube, char id, char servo_pin, char gpio, char xshut
tube->servo.hard.write(minServo); tube->servo.hard.write(minServo);
delay(5000); delay(5000);
Serial.println("Setuping downards"); Serial.println("Setuping downards");
float h = mesureHeight(tube->tof.hard); float h = mesureHeight(tofs_talk_through[id]);
int angle = minServo; int angle = minServo;
while (h > maxHeight) { while (h > maxHeight) {
++angle; ++angle;
tube->servo.hard.write(angle); tube->servo.hard.write(angle);
delay(100); delay(100);
h = mesureHeight(tube->tof.hard); h = mesureHeight(tofs_talk_through[id]);
} }
angle -= 2; angle -= 2;
tube->servo.hard.write(angle); tube->servo.hard.write(angle);
@ -201,8 +202,26 @@ void init_tube(struct tube *tube, char id, char servo_pin, char gpio, char xshut
Serial.println("Done."); Serial.println("Done.");
} }
const int ACTIVES = 1;
void setup_all_tubes() { void setup_all_tubes() {
init_tube(all_tubes, 1, 32, 5, 17); const int all_xshuts[6] = {17, 0, 0, 0, 0, 0};
const int all_gpios[6] = {23, 22, 21, 0, 0, 0};
const int all_servos[6] = {32, 33, 23, 16, 4, 2};
for (int i = 0; i < ACTIVES; ++i) {
digitalWrite(all_xshuts[i], LOW);
}
delay(10);
for (int i = 0; i < ACTIVES; ++i) {
digitalWrite(all_xshuts[i], HIGH);
}
delay(10);
for (int i = 0; i < ACTIVES; ++i) {
digitalWrite(all_xshuts[i], LOW);
}
for (int i = 0; i < ACTIVES; ++i) {
init_tube(all_tubes, i, all_servos[i], all_gpios[i], all_xshuts[i]);
}
} }
void setup() { void setup() {
@ -228,9 +247,9 @@ int servoPosition(float ratio){
void loop() { void loop() {
for (int i = 0; i < 1; i++) { for (int i = 0; i < ACTIVES; i++) {
struct tube tube = all_tubes[i]; struct tube tube = all_tubes[i];
tube.height = mesureHeight(tube.tof.hard); tube.height = mesureHeight(tofs_talk_through[tube.id]);
Serial.print("Measure = "); Serial.print("Measure = ");
Serial.println(tube.height); Serial.println(tube.height);
int angle = 0; int angle = 0;