- UNI-T-Messgeraete    Werbung      
Ergebnis 1 bis 10 von 23

Thema: Motorgeschwindigkeit regulieren in Python programmieren

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Moderator Begeisterter Techniker Avatar von tucow
    Registriert seit
    15.01.2006
    Ort
    Düsseldorf
    Alter
    40
    Beiträge
    269
    Bin gespannt ob's funktioniert, Pinsel

    Das ist logisch, Kampi. Für jede PWM startet die Lib einen Thread, den musst Du erst stoppen bevor Du das Programm beenden kannst, ansonsten würde der Thread ja in einer Endlosschleife das ganze System blockieren.
    Gruß
    Andreas




    Mein: Humanoide // nanoCopter Projekt
    Das Raspberry Pi als: Wifi Access Point // Wifi Router

  2. #2
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    36
    Beiträge
    3.501
    Ja das ist klar
    Nur wie beende ich es?
    Schaut ruhig mal auf meiner Homepage vorbei :
    http://kampis-elektroecke.de

    Oder folge mir auf Google+:
    Daniel Kampert

    Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.

    Gruß
    Daniel

  3. #3
    Moderator Begeisterter Techniker Avatar von tucow
    Registriert seit
    15.01.2006
    Ort
    Düsseldorf
    Alter
    40
    Beiträge
    269
    Steht doch in der ReadMe

    pwm.stop()
    Gruß
    Andreas




    Mein: Humanoide // nanoCopter Projekt
    Das Raspberry Pi als: Wifi Access Point // Wifi Router

  4. #4
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    36
    Beiträge
    3.501
    Geht das nur darüber?
    Weil die Ausführung eines "normalen" Programms kannst du ja z.B. mit Strg + C beenden
    Schaut ruhig mal auf meiner Homepage vorbei :
    http://kampis-elektroecke.de

    Oder folge mir auf Google+:
    Daniel Kampert

    Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.

    Gruß
    Daniel

  5. #5
    Moderator Begeisterter Techniker Avatar von tucow
    Registriert seit
    15.01.2006
    Ort
    Düsseldorf
    Alter
    40
    Beiträge
    269
    Das ist kein Beenden, das ist ein Unterbrechen wenn man es ganz genau nimmt
    Ein "ordentliches" Beenden wäre z.B. os._exit(1) das über eine Benutzereingabe ausgeführt wird.

    Ich baue mir z.B. immer ein Menü:
    Code:
    while(True):
      user_input = raw_input('Bitte treffen Sie Ihre Wahl: ') 
    if user_input == "m":
     menu()
    ...
    elif user_input == "q":
      os._exit(1)
    Gruß
    Andreas




    Mein: Humanoide // nanoCopter Projekt
    Das Raspberry Pi als: Wifi Access Point // Wifi Router

  6. #6
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    36
    Beiträge
    3.501
    Haarspalterei :P
    Aber gut danke für die Info
    Schaut ruhig mal auf meiner Homepage vorbei :
    http://kampis-elektroecke.de

    Oder folge mir auf Google+:
    Daniel Kampert

    Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.

    Gruß
    Daniel

  7. #7
    Erfahrener Benutzer Roboter Genie Avatar von pinsel120866
    Registriert seit
    18.12.2007
    Ort
    Hohenems
    Alter
    59
    Beiträge
    847
    Hallo,

    Ich habe mir nun folgendes Programm erstellt:
    PWM Frequenz 19048 Hz, 50%
    Code:
    import RPi.GPIO as GPIO
    
    import time
    import signal
    
    from pizypwm import *
    
    def endProcess(signalnum = None, handler = None):
        first.stop()
        second.stop()
        third.stop()
        fourth.stop()
    
        GPIO.cleanup()
        exit(0)
    
    signal.signal(signal.SIGTERM, endProcess)
    signal.signal(signal.SIGINT, endProcess)
    
    first = PiZyPwm(19048, 19, GPIO.BOARD)
    second = PiZyPwm(19048, 21, GPIO.BOARD)
    third = PiZyPwm(19048, 23, GPIO.BOARD)
    fourth = PiZyPwm(19048, 24, GPIO.BOARD)
    
    first.start(50)
    second.start(50)
    third.start(50)
    fourth.start(50)
    
    def ControlAPairOfPins(FirstPin,FirstState,SecondPin,SecondState):
      if FirstState == "1":
        GPIO.output(int(FirstPin),True)
      else:
        GPIO.output(int(FirstPin),False)
    
      if SecondState == "1":
        GPIO.output(int(SecondPin),True)
      else:
        GPIO.output(int(SecondPin),False)
      return
    
    GPIO.setwarnings(False)
    
    GPIO.setmode(GPIO.BOARD)
    
    GPIO.setup(19,GPIO.OUT)
    GPIO.setup(21,GPIO.OUT)
    GPIO.setup(23,GPIO.OUT)
    GPIO.setup(24,GPIO.OUT)
    
    while True:
    
        ControlAPairOfPins("19","1","21","0")
        ControlAPairOfPins("23","1","24","0")
        print "Drehung nach rechts"
        time.sleep(1)
    
        ControlAPairOfPins("19","0","21","0")
        ControlAPairOfPins("23","0","24","0")
        print "Stop"
        time.sleep(1)
    
        ControlAPairOfPins("19","0","21","1")
        ControlAPairOfPins("23","0","24","1")
        print "Drehung nach Links"
        time.sleep(1)
    
        ControlAPairOfPins("19","0","21","0")
        ControlAPairOfPins("23","0","24","0")
        print "Stop"
        time.sleep(1)
    
        ControlAPairOfPins("19","1","21","0")
        ControlAPairOfPins("23","0","24","1")
        print "Geradeaus vorwaerts"
        time.sleep(1)  
    
        ControlAPairOfPins("19","0","21","0")
        ControlAPairOfPins("23","0","24","0")
        print "Stop"
        time.sleep(1)
    
        ControlAPairOfPins("19","0","21","1")
        ControlAPairOfPins("23","1","24","0")
        print "Geradeaus rueckwaerts"
        time.sleep(1)
    
        ControlAPairOfPins("19","0","21","0")
        ControlAPairOfPins("23","0","24","0")
        print "Stop"
        time.sleep(1)
    Das Programm läuft zwar ab, der Bot zittert aber wie wild.
    Ist das Programm so in Ordnung?
    Kannst du das bitte überprüfen?

Ähnliche Themen

  1. [ERLEDIGT] Frage zu Python
    Von pinsel120866 im Forum Raspberry Pi
    Antworten: 5
    Letzter Beitrag: 19.01.2013, 14:25
  2. Motorgeschwindigkeit auslesen
    Von Tausendacht im Forum Asuro
    Antworten: 7
    Letzter Beitrag: 17.08.2011, 14:33
  3. Motorgeschwindigkeit mit 2 Taster ändern
    Von Christopher1 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 8
    Letzter Beitrag: 26.08.2007, 22:33
  4. Antworten: 7
    Letzter Beitrag: 26.06.2007, 10:34
  5. Antworten: 9
    Letzter Beitrag: 17.11.2006, 12:35

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

    Werbung      12V Akku bauen