...............
Teda ešte raz, nestačilo by tak ako to ja poznám z programovania, jednoducho za test tlačítka pre posun žiadaným smerom vložiť ešte test na gpio pin - zopnutie koncového spínača v danom smere?
Teda stlačím tlačítko dolu, najprv sa vykoná sa test či je aktívny koncový spínač v tomto smere. Ak áno návrat tam kde je cyklus na tlačítka pohybu. Ak nie pokračuje sa normálne ďalej. To isté pre tlačítko hore.
............
budeš muset asi jakoby couvnout trošičku dál vod tlačítka/microspínače když ho sepneš protože eletrickej čudlik muže dělat divný věci + když ho začneš mačkat protože seš blízko ale nesepneš tak namáháš/poškozuješ mechanickej senzor vlastně a pak se třeba nesepne až jako bude potřeba

btw koukni na homing 3d tiskáren tam seto řeší

No to teraz asi nie je hlavný problém. Keď k tomu dôjde, tak sa to snáď dá riešiť hardwérovo - ošetriť zákmity. Problém je ako do toho python scriptu tie koncové spínače čo najjednuchejšie pridať.
sou dvě jednoduchý možnosti

pokuď ti jakoby stačí tamten 1mm krok nato abys neurval čudlik tak normálně někam nazačátku definuj nožičku na kterou bude přidělanej čudlik
LIMIT_SWITCH_PIN = 23 # čudlik třeba na gpio 23 ( vobrázek s nožičkama tady třeba hele https://pinout.xyz/# )
dolu třeba dotoho bloku 'with picamera.PiCamera:' nazačátek strč
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
GPIO.setup(LIMIT_SWITCH_PIN, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
a do tý funkce 'do_POST' za to dělání 'motor_go' si jakoby přidej nějakej test jestli je čudlik máčkutej a podle toho něco dělej

sem tam strčila jeden krok ve vopačným směru

def do_POST(self):
global distance, ring_status, color, stepper, ring_status_label, step_per_mm, distance
content_length = int(self.headers['Content-Length'])
post_data = self.rfile.read(content_length)
if self.path == '/up':
print("Go Up to ", distance)
mymotortest.motor_go(False, "Full" , distance, 0.001 , False, .05)
if GPIO.input(LIMIT_SWITCH_PIN) == GPIO.HIGH:
print("macknutej cudlik!!!!!!!!\ncouvam!!!!!!!!!!!")
mymotortest.motor_go(True, "Full" , distance, 0.001 , False, .05)
self.send_response(301)
self.send_header('Location', '/index.html')
self.end_headers()
elif self.path == '/down':
print("Go Down to ", distance)
mymotortest.motor_go(True, "Full" , distance, 0.001 , False, .05)
if GPIO.input(LIMIT_SWITCH_PIN) == GPIO.HIGH:
print("macknutej cudlik!!!!!!!!\ncouvam!!!!!!!!!!!")
mymotortest.motor_go(False, "Full" , distance, 0.001 , False, .05)
self.send_response(301)
...........
........
........
druhá víc lepšejší možnost je podědit ztý motorový knihovničky třídu A4988Nema a todleto tam jakoby všecko připsat a hlídat to tam
