ROFI Biped

  • Vielen Dank für eure Hilfe.

    Ich habe mich dazu entschlossen, erstmal dem Rat von Dennis zu folgen und arbeite nun das Python-Tutorial durch. Kann also sein, dass ich die nächsten Paar Tage nichts neues zu berichten habe, da ich zuerst des Tutorial komplett durcharbeiten möchte, und danach erst mein Programm um(oder besser neu)schreiben möchte.

    Werde erste Versuche dann posten.

    Danke und LG

    Andi

    Möchten Sie Ihre Festplatte formatieren?

    (J) etzt nicht

    (N) atürlich

  • __blackjack__

    Vielen lieben dank für den Code.

    Habe ihn mir komplett angeschaut, aber verstehe nicht alles. Ist auch vorerst mal nicht so tragisch. Ich arbeite wie gesagt erstmal das Python-Tuturial durch und danach wird mir dein Code sehr hilfreich sein.

    @alle: bitte wertet verspätete Antworten von mir nicht als desinteresse. Ich ben Betriebsleiter einer grösseren Freiteitanlage im Odenwald, und daher beruflich - auch an Wochenenden- sehr stark eingespannt. Habe derzeit nur abends mal ne halbe Stunde Zeit,

    LG

    Andi

    Möchten Sie Ihre Festplatte formatieren?

    (J) etzt nicht

    (N) atürlich

  • Hallo zusammen,

    wie besprochen, habe ich nun erstmal angefangen, mich in die Grundlagen von Python einzuarbeiten. Hier der erste Versuch: Auf Konsolenebene wird (Ohne Fehlerbehandlung) der PWM-Wert für ein Servo eingegeben. Dann wird das Servo entsprechend angesteuert. Programm funktioniert. Ich möchte hier nur gerne meine Fortschritte Posten, damit ihr mich rechtzeitig korrigieren könnt.

    Hier der Code:

    Möchten Sie Ihre Festplatte formatieren?

    (J) etzt nicht

    (N) atürlich

  • Hallo,

    das kann man alles zusammenfassen:

    Grüße

    Dennis

    🎧 With the music execution and the talk of revolution, it bleeds in me and it goes 🎧

  • Die erste Zeile ist der sogenannte Shebang.

    Damit wird angegeben, mit welchem Interpreter das Skript ausgeführt werden soll, *wenn* du es mit 'chmod +x' ausführbar gemacht hast.

    Wenn du beim Programmaufruf 'python3' mit angibst, dann benötigst du den Shebang nicht bzw. er wird ignoriert.

    Ich habe es mir angewöhnt die Skripte immer so vollständig wie möglich zu schreiben.

    Wie würdest du dein Programm erweitern, damit man auch tatsächlich nur in deinem gewünschten Wertebereich Zahlen eingeben kann?

    Grüße

    Dennis

    🎧 With the music execution and the talk of revolution, it bleeds in me and it goes 🎧

  • Hi Dennis,

    hab mir mal paar Gedanken gemacht. Auf eine Funktion hab ich momentan absichtlich verzichtet - die möchte ich gerne erstmal lernen und verstehen.

    Bin mit meinem Code noch nicht ganz zufrieden, weil nach der If-Anweisung bei falscher Eingabe das Programm endet. Möglicherweise sollte ich die irgendwie in die While Schleife integrieren? LG Andi

    Möchten Sie Ihre Festplatte formatieren?

    (J) etzt nicht

    (N) atürlich

  • Vielleicht grob so:

    Python
    while True:
        servo_stellung = input('Bitte einen Wert zwischen 150 und 600 eingeben: ')
        if servo_stellung.isnumeric():
            break
        else:
            print('Kein Integer Wert eingegeben! Bitte nochmal versuchen ...')

    Oder auch gleich die Werte mit testen:

    Python
    while True:
        servo_stellung = input('Bitte einen Wert zwischen 150 und 600 eingeben: ')
        if servo_stellung.isnumeric() and 150 <= int(servo_stellung) <=600:
            break
        else:
            print('Kein Integer Wert eingegeben! Bitte nochmal versuchen ...')

    Oder komplett mit Ansteuerung des Servos:


    Und letztendlich als halbwegs vernünftiges Skript :)

    - Der Weg zur Erkenntnis: Wie frage ich nach Hilfe? | Zur Erinnerung: Forenregeln | Quatsch und Tratsch: Plauderecke -

    3 Mal editiert, zuletzt von hyle (20. September 2021 um 21:46) aus folgendem Grund: Ein Beitrag von hyle mit diesem Beitrag zusammengefügt.

  • Hi hyle,

    vielen Dank. Bin noch nicht soweit, dass ich das mit den Funktionen komplett verstehe.

    Dein Code hier hilft mir schonmal:


    #!/usr/bin/env python3

    import Adafruit_PCA9685

    pwm = Adafruit_PCA9685.PCA9685()

    while True:

    servo_stellung = input('Bitte einen Wert zwischen 150 und 600 eingeben: ')

    if servo_stellung.isnumeric() and 150 <= int(servo_stellung) <=600:

    pwm.set_pwm(0,0,int(servo_stellung))

    break

    else:

    print('Kein Integer Wert eingegeben! Bitte nochmal versuchen ...')

    print("Ende")


    Brauche noch 3 bis 4 Abende - dann kann ich auch Funktionen mit Parametern usw. verstehen.

    Poste dann meine Versuche.

    LG

    Andi

    Möchten Sie Ihre Festplatte formatieren?

    (J) etzt nicht

    (N) atürlich

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!