The POOP delivery system
is designed to dispose of the purge automatically. There will be another modular system which can be used together with this in print farms in a fully automated manner.
A few parts needs to be glued together, such as the shield or the motor mount.
The design is still in the development phase, optical adjustments can still follow.
I appreciate any support in this project, I would be happy to develop a hardware kid for it together with BambuLab so that everyone can build regardless of skill level! <3
Option A:
Option B:
required parts:
Equipment:
CODE:
// Pin-Nummern für den Endschalter, Motor und LEDs
const int endstopPin = 2; // Endschalter an Pin 2
const int motorPin = 9; // Motor an Pin 9
const int led1Pin = 4; // LED 1 an Pin 6
const int led2Pin = 7; // LED 2 an Pin 7
bool endstopPressed = false; // Variable zur Verfolgung des Endschalterstatus
unsigned long lastActivationTime = 0; // Zeitpunkt der letzten Aktivierung des Endschalters
const unsigned long debounceDelay = 200; // Entprellzeit in Millisekunden
void setup() {
pinMode(endstopPin, INPUT_PULLUP); // Endschalter als Eingang mit Pull-Up-Widerstand
pinMode(motorPin, OUTPUT); // Motor als Ausgang
pinMode(led1Pin, OUTPUT); // LED 1 als Ausgang
pinMode(led2Pin, OUTPUT); // LED 2 als Ausgang
// LED 1 einschalten
digitalWrite(led1Pin, HIGH);
}
void loop() {
// Wenn der Endschalter betätigt wird und dies das erste Mal ist
if (digitalRead(endstopPin) == LOW && !endstopPressed && millis() - lastActivationTime > debounceDelay) {
endstopPressed = true; // Endschalter wurde betätigt
lastActivationTime = millis(); // Zeitpunkt der letzten Aktivierung speichern
delay(500); // 20 Sekunden warten
// Motor für 10 Sekunden einschalten
digitalWrite(motorPin, HIGH); // Motor einschalten
digitalWrite(led1Pin, LOW); // LED 1 ausschalten
digitalWrite(led2Pin, HIGH); // LED 2 einschalten
delay(20000); // 10 Sekunden warten
// Motor ausschalten
digitalWrite(motorPin, LOW); // Motor ausschalten
// LED 2 ausschalten
digitalWrite(led2Pin, LOW);
// LED 1 wieder einschalten
digitalWrite(led1Pin, HIGH);
// Warten, bis der Endschalter losgelassen wird
while (digitalRead(endstopPin) == LOW) {
// Warten auf Loslassen des Endschalters
}
// Zurücksetzen des Endschalterstatus nach 20 Sekunden
delay(500);
endstopPressed = false;
}
}
You shall not share, sub-license, sell, rent, host, transfer, or distribute in any way the digital or 3D printed versions of this object, nor any other derivative work of this object in its digital or physical format (including - but not limited to - remixes of this object, and hosting on other digital platforms). The objects may not be used without permission in any way whatsoever in which you charge money, or collect fees.