- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 23

Thema: Motorgeschwindigkeit regulieren in Python programmieren

  1. #11
    Moderator Begeisterter Techniker Avatar von tucow
    Registriert seit
    16.01.2006
    Ort
    Düsseldorf
    Alter
    39
    Beiträge
    269
    Anzeige

    Praxistest und DIY Projekte
    Steht doch in der ReadMe

    pwm.stop()
    Gruß
    Andreas




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

  2. #12
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    34
    Beiträge
    3.501
    Blog-Einträge
    9
    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

  3. #13
    Moderator Begeisterter Techniker Avatar von tucow
    Registriert seit
    16.01.2006
    Ort
    Düsseldorf
    Alter
    39
    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

  4. #14
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    34
    Beiträge
    3.501
    Blog-Einträge
    9
    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

  5. #15
    Erfahrener Benutzer Roboter Genie Avatar von pinsel120866
    Registriert seit
    18.12.2007
    Ort
    Hohenems
    Alter
    58
    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?

  6. #16
    Moderator Begeisterter Techniker Avatar von tucow
    Registriert seit
    16.01.2006
    Ort
    Düsseldorf
    Alter
    39
    Beiträge
    269
    Naja, oben startest Du direkt die PWM auf allen Pins
    Code:
    first.start(50)second.start(50)
    third.start(50)
    fourth.start(50)
    Wenn ich das richtig interpretiere wollen Deine Motoren nun gleichzeitig nach vorne und nach hinten drehen => geht nicht => Zittern.
    Und unten in der while Schleife sagst Du den Motoren das sie voll aufdrehen sollen, oder? Das führt zu noch heftigerem Zittern weil es die PWM beeinträchtigt.
    Gruß
    Andreas




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

  7. #17
    Erfahrener Benutzer Roboter Genie Avatar von pinsel120866
    Registriert seit
    18.12.2007
    Ort
    Hohenems
    Alter
    58
    Beiträge
    847
    Vielen herzlichen Dank, tucow - nun habe ich es:
    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(20000, 19, GPIO.BOARD)
    second = PiZyPwm(20000, 21, GPIO.BOARD)
    third = PiZyPwm(20000, 23, GPIO.BOARD)
    fourth = PiZyPwm(20000, 24, GPIO.BOARD)
    
    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:
        
        first.start(50)
        second.start(0)
        third.start(50)
        fourth.start(0)
        print "Drehung nach rechts"
        time.sleep(1)
    
        first.start(0)
        second.start(0)
        third.start(0)
        fourth.start(0)
        print "Stop"
        time.sleep(1)
        
        first.start(0)
        second.start(50)
        third.start(0)
        fourth.start(50)
        print "Drehung nach Links"
        time.sleep(1)
    
        first.start(0)
        second.start(0)
        third.start(0)
        fourth.start(0)
        print "Stop"
        time.sleep(1)
    
        first.start(50)
        second.start(0)
        third.start(0)
        fourth.start(50)
        print "Geradeaus vorwaerts"
        time.sleep(1)
        
        first.start(0)
        second.start(0)
        third.start(0)
        fourth.start(0)
        print "Stop"
        time.sleep(1)
    
        first.start(0)
        second.start(50)
        third.start(50)
        fourth.start(0)
        print "Geradeaus rueckwaerts"
        time.sleep(1)
    
        first.start(0)
        second.start(0)
        third.start(0)
        fourth.start(0)
        print "Stop"
        time.sleep(1)
    Damit drehen die Motoren nur mit 50% Leistung, dank Software - PWM
    Geändert von pinsel120866 (09.02.2013 um 16:18 Uhr)

  8. #18
    Moderator Begeisterter Techniker Avatar von tucow
    Registriert seit
    16.01.2006
    Ort
    Düsseldorf
    Alter
    39
    Beiträge
    269
    Ah, sehr schön!
    Kannst Du davon mal ein Video machen? Mich würde interessieren wie gut die Software PWM in Python funktioniert
    Gruß
    Andreas




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

  9. #19
    Erfahrener Benutzer Roboter Genie Avatar von pinsel120866
    Registriert seit
    18.12.2007
    Ort
    Hohenems
    Alter
    58
    Beiträge
    847
    Video ist online: http://youtu.be/DBvoxG8FZBo

    Im 1. Durchgang 50% PWM, im 2. Durchgang 100% PWM

  10. #20
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    34
    Beiträge
    3.501
    Blog-Einträge
    9
    Sieht (wiedermal) klasse aus
    Ich warte noch immer auf meinen Motortreiber für meinen Bot.
    Hoffe der kommt bald, da ich jetzt Semesterferien habe und nächste Woche die Klausur geschrieben ist, wollte ich endlich mal bisl anfangen selber einen Bot zusammen zu bauen.
    Die USB Kabel für mein mobiles Ladegerät habe ich schon gefunden (totaler Krampf USB Kabel mit Mini-USB und einer normalen USB-Buchse zu finden -.-)
    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

Seite 2 von 3 ErsteErste 123 LetzteLetzte

Ähnliche Themen

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

Berechtigungen

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

Labornetzteil AliExpress