Servos mit Python

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo zusammen,

    ich möchte mit Python mehrere Elektromotoren gleichzeitig steuern. Hintergrund: drei verschiedene Servos sollen x-, y- und z-Achsen abfahren. Dabei sollen diese drei Motoren nicht hintereinander fahren, sondern gleichzeitig, sodass z.B. auch runde Bewegungen möglich sind.

    Ist das mit Python möglich? Habe noch keine Idee, wie ich das anstellen soll, für Anregungen wäre ich dankbar :)

    VG

    Einmal editiert, zuletzt von elchico (25. März 2015 um 15:39)


  • Threading wäre eine Möglichkeit.

    Frage wäre aber um was für Servos es sich handelt und ob du bereits eine Motorsteuerung hast :huh:

    Danke erstmal :)

    Bin noch total am Anfang vom planen, also eher so eine "Info-Sammlung" ;)
    Weißt du zufällig, ob zum Thema Threading + Motorsteuerung jeweils ein leichtverständliches Tutorial gibt?

    VG

    • Offizieller Beitrag

    Zuerst fängt man damit an einen Motor zu Steuern. Für weitere Tipps brauch wir den Link zu dem Motor. Wenn du einen steuern kannst (und mit programmierung im allgemeinen und python im besonderen vertraut bist), kannst du dich langsam ans Threading wagen. Alles andere als leichte Kost ;)

    Der Unterschied zwischen Genie und Wahnsinn definiert sich im Erfolg.

    Einmal editiert, zuletzt von dbv (25. März 2015 um 14:57)

  • Naja. Klar gibts Tutorials - aber es kommt drauf an was Du machen möchtest.. Mit Kontrolle oder ohne, sollen die Servos abhängig von einem anderen sein, gibts Endschalter, soll das ganze nur über Python angesprochen werden oder später auch über ein WebGUI o.ä. usw usw usw... Ich glaube nicht das es Sinn macht gleich von 0 auf 100 alles auf ein Schlag umzusetzen, das wird zu viel.. Gehe lieber den Weg den dbv beschrieb.

  • Schön für dich. Aber leider (wie immer) fehlende Infos..

    Wenn extra Hardware (Motorsteuerung) genutzt wird brauch der Pi nur ein Signal an den Motordriver absetzen und der macht den Rest. Wenn man aber die Servos/Motoren direkt an den PI ohne zusätzliche Hardware anschließen will, geht sowas nicht, dann brauch man threading o.ä.

  • Danke für eure Antworten :)

    Habe einen Flug51 Aurum http://www.amazon.de/dp/B007CW1AKI/ref=pe_386171_51767411_TE_M3T1_dp_1?tag=psblog-21 [Anzeige]
    und einen Tower Pro SG90
    http://www.amazon.de/Tower-Pro-Micro-Servo-Parkflyer/dp/B00829QZ3M?tag=psblog-21 [Anzeige]

    Beim dritten bin ich mir noch nicht ganz sicher, welchen ich nehmen werde :)

    Also seid ihr der Meinung, es wäre für den Anfang leichter, das ganze mit Motorsteuerung umzusetzen?
    Werde mich auf jeden Fall mal in Threading einlesen. Hat wer ein leichtverständliches Tut? Habe in Google geschaut und da gibts einiges, allerdings hat vielleicht jmd ein sehr gutes Tut :)

    Einmal editiert, zuletzt von elchico (25. März 2015 um 15:26)

  • 22€ für son Servo ist aber nicht grad wenig... Für das Geld kriegt man auch schon fast einen mit Abtastung (dann meldet der Servo an welcher Position er sich befindet)
    Son 7€ Servo hab ich auch hier... Der reicht i.d.R. wobei der natürlich auch etwas lauter ist..

    Wie gesagt, du solltest schon eine Motorsteuerung haben - aber du brauchst nicht unbedingt eine für $25. Es kommt halt drauf an was die können muss, wie viel Ampere die können muss (was von den Servos abhängt) und ob die zB PWM können muss usw

    Ich denke am einfachsten wärs wenn du detailliert beschreiben würdest was du vor hast.


    PS: Und bitte auch die Überschrift im ersten Beitrag anpassen und "Elektromotoren" mit "Servos" ersetzen :fies:


  • 22€ für son Servo ist aber nicht grad wenig... Für das Geld kriegt man auch schon fast einen mit Abtastung (dann meldet der Servo an welcher Position er sich befindet)
    Son 7€ Servo hab ich auch hier... Der reicht i.d.R. wobei der natürlich auch etwas lauter ist..

    Wie gesagt, du solltest schon eine Motorsteuerung haben - aber du brauchst nicht unbedingt eine für $25. Es kommt halt drauf an was die können muss, wie viel Ampere die können muss (was von den Servos abhängt) und ob die zB PWM können muss usw

    Ich denke am einfachsten wärs wenn du detailliert beschreiben würdest was du vor hast.

    danke :)

    also es handelt sich eher um ein Experiment: ich möchte einen Würfel aus Alu bauen, darin drei Servos einsetzen, die zum einen einen Boden in x- und y-Richtung bewegen und eine Spitze in z-Richtung.
    Warum: Habe letztens ein Tut gelesen, in dem jmd. mittels einer Arduino-Komponente einen 3D-Drucker gebaut hat. So weit bin ich natürlich noch nicht, aber ich überlege mir gerade theoretisch, wie das mit meinen Mitteln und möglicherweise mit Python umzusetzen wäre.

    Wie gesagt: im Moment noch alles sehr theoretisch, und es ist gut möglich, dass ich irgendwo an meine/ oder sonstige Grenzen stoße und die Theorie eine Theorie bleibt, aber es interessiert mich, ob und wie ich das umsetzen würde :)

    EDIT: Überschrift ist aktualisiert:)

    Einmal editiert, zuletzt von elchico (25. März 2015 um 15:40)

  • In dem Tutorial was du da gelesen hast hat der nicht ohne Grund einen Arduino genommen.
    Mit dem Arduino ist es viel einfacher eine quasi Echtzeitsteuerung hin zu bekommen. Mit dem RPi und dann auch noch Python wird das schon etwas schwerer. Besonders wenn du so genaue Kontrolle brauchst wie bei einem 3D Drucker.
    Da wäre auch Servo oder Elektromotor dann falsche Begriff, denn in diesem Bereich benutzt man eher ganz speziell Schrittmotoren (nicht jeder E-Motor ist auch ein Schrittmotor).

    Was natürlich recht einfach und kostengünstig umzusetzen ist, wäre einen Arduino als Motorsteuerung zu benutzen. Damit hast du auch gleich ein wenig mehr Spielraum, und mit dem Arduino umzugehen ist noch für viele andere Dinge nätzlich. Kommunizieren kann der RPi sehr einfach dann über Serielle Kommunikation mit den Arduino.
    Bisschen mehr selbst gebastelt könnte man sich auch nur auf den Kern des Arduinos konzentrieren und einen Atmega328 für sich nehmen. Da benötigt man nur ein 16Hz Quarz und ein paar Kondensatoren und das Ding läuft für sich alleine schon. Mit einem Level-Converter kann man den direkt an den RPi anschließen, oder mit einem USB zu Seriel Adapter dann vom PC aus programmieren (Sketche drauf laden).

    Für diesen Aufbau gibt es auch schon einige gute Tutorials, und auch Open Source CNC Software, mit der man die Steuerung dann für den echten 3D Drucker am Ende super umsetzen kann.


  • In dem Tutorial was du da gelesen hast hat der nicht ohne Grund einen Arduino genommen.
    Mit dem Arduino ist es viel einfacher eine quasi Echtzeitsteuerung hin zu bekommen. Mit dem RPi und dann auch noch Python wird das schon etwas schwerer. Besonders wenn du so genaue Kontrolle brauchst wie bei einem 3D Drucker.
    Da wäre auch Servo oder Elektromotor dann falsche Begriff, denn in diesem Bereich benutzt man eher ganz speziell Schrittmotoren (nicht jeder E-Motor ist auch ein Schrittmotor).

    Was natürlich recht einfach und kostengünstig umzusetzen ist, wäre einen Arduino als Motorsteuerung zu benutzen. Damit hast du auch gleich ein wenig mehr Spielraum, und mit dem Arduino umzugehen ist noch für viele andere Dinge nätzlich. Kommunizieren kann der RPi sehr einfach dann über Serielle Kommunikation mit den Arduino.
    Bisschen mehr selbst gebastelt könnte man sich auch nur auf den Kern des Arduinos konzentrieren und einen Atmega328 für sich nehmen. Da benötigt man nur ein 16Hz Quarz und ein paar Kondensatoren und das Ding läuft für sich alleine schon. Mit einem Level-Converter kann man den direkt an den RPi anschließen, oder mit einem USB zu Seriel Adapter dann vom PC aus programmieren (Sketche drauf laden).

    Für diesen Aufbau gibt es auch schon einige gute Tutorials, und auch Open Source CNC Software, mit der man die Steuerung dann für den echten 3D Drucker am Ende super umsetzen kann.

    Hey cool danke :) dann werde ich mich mal weiter mit deinen ganzen Infos auseinander setzen :)

Jetzt mitmachen!

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