Neben Schrittmotoren gibt es auch die kleinen und günstigen Servomotoren. Die Ansteuerung von Raspberry Pi Servo Motoren ist sehr einfach und dank der geringen Größe und Gewichts finden sie in vielen Bereichen Anwendung.
Im Gegensatz zu Schrittmotoren können Servomotoren mit nur einem einzigen GPIO gesteuert werden.
In diesem Tutorial zeige ich ein Beispiel, wie man mittels Python einen oder mehrere Servomotoren steuert.
Zubehör
- Servo Motor
- Jumper Kabel
- (Breadboard)
- ggf. einen Batteriehalter +Batterien/Akkus, als externe Stromversorgung
Es ist natürlich möglich den Servomotor mittels einer externen Stromquelle zu versorgen, jedoch macht dies erst beim Einsatz mehrerer Motoren Sinn. Dafür würden ein Akku /Batterien noch benötigt werden.
Aufbau
In den meisten Fällen sind die Farben des Servos wie folgt und werden so an den Pi angeschlossen:
Schwarz – kommt an GND (Pin 6) vom Pi
Rot – kommt an 3V3 (Pin 1) vom Pi
Gelb/Orange – an einen freien GPIO Pin (z.B. GPIO17, Pin 11)
Wer auf Nummer sicher gehen will, kann zwischen den Data Pin (gelb/orange) und den Pi einen ~1kΩ Widerstand setzen. Normalerweise ist das aber nicht nötig.
Falls der Servo Motor sich nicht korrekt dreht, kann dies u.U. auch an der Stromversorgung des Raspberry Pi’s liegen (einfach mal ins Datenblatt schauen, was der Motor verbraucht). In so einem Fall macht eine externe Stromversorgung Sinn (meistens sind es 4 bis 6V).
Software zum steuern der Raspberry Pi Servo Motoren
Anders als bei Schrittmotoren werden bei Servomotoren nicht etliche GPIO Pins besetzt um eine Bewegung zu befehlen. Dafür wird die Rotation über die Länge des Impulses gesteuert.
Der Winkel des Motors wird über die Länge des Impulses gesetzt, daher bietet sich PWM besonders an, womit wiederholende Signale in gleichmäßigen Abständen geschickt werden (Die Raspberry Pi Python Bibliothek muss installiert sein).
Wir starten entweder python (sudo python
) oder eröffnen ein neues Skript (sudo nano servomotor.py
) mit folgendem Inhalt:
import RPi.GPIO as GPIO import time servoPIN = 17 GPIO.setmode(GPIO.BCM) GPIO.setup(servoPIN, GPIO.OUT) p = GPIO.PWM(servoPIN, 50) # GPIO 17 als PWM mit 50Hz p.start(2.5) # Initialisierung try: while True: p.ChangeDutyCycle(5) time.sleep(0.5) p.ChangeDutyCycle(7.5) time.sleep(0.5) p.ChangeDutyCycle(10) time.sleep(0.5) p.ChangeDutyCycle(12.5) time.sleep(0.5) p.ChangeDutyCycle(10) time.sleep(0.5) p.ChangeDutyCycle(7.5) time.sleep(0.5) p.ChangeDutyCycle(5) time.sleep(0.5) p.ChangeDutyCycle(2.5) time.sleep(0.5) except KeyboardInterrupt: p.stop() GPIO.cleanup()
Sollte der Servo Motor etwas zittern, während er sich nicht bewegt, kannst du den Puls mit p.ChangeDutyCycle(0)
ruhig stellen.
Bei Servomotoren und dessen Treiberboards wird die Angabe der Periode und des Tastgrads meist im Datenblatt gemacht. Im Beispiel eines MG996R haben wir folgendes vorliegen: Die Periode ist 20ms lang. Außerdem wird ein Tasgrad von zwischen 5% und 10% der Periode erwartet. Somit die die Impulsdauer zwischen 1ms und 2ms. Üblicherweise können Servos zwischen 0 und 180° rotieren. Daher müssen wir die Impulslänge dazwischen anpassen. Eine Länge von 1,5ms (7,5%) ergibt somit einen Winkel von 90°. Und das ganze eben 50x pro Sekunde (50Hz).
Falls es den ein oder anderen stört, dass der Servo (SG90) sich nicht um 360° drehen lässt, so gibt es dazu einen „Hack„.
82 Kommentare
Hallo Felix
Mein Kollege Tobias und ich arbeiten mit dem Raspberry Pi an einer Servomotorsteuerung ( Schulprojekt). Nun stellt sich uns die Frage ob wir unsere 6 Servomotoren unabhängig von einander steuern können.
Lg Felix und Tobias
Hallo ihr beidem,
prinzipiell denke ich, dass es möglich ist. Die Python GPIO Library hat die
GPIO.PWM(pin, freq)
Funktion, womit man einen Pin und die Frequenz (in Hz) angeben kann. Es sollte also auch möglich sein, verschiedene Instanzen mit unterschiedlichen GPIOs zu erstellen.LG Felix
Moment, man kann mehrere Pins mit PWM problemslos bedienen?
Ja, einfacher geht dies allerdings mit einem Modul. Dazu kommt demnächst ein Tutorial.
Felix, gibt es einen Grund warum mein MG995 Metallgetriebe-Servos 15KG digitale High-Speed sehr langsam rotiert? Gab es auch für dich solche Probleme, ich bräuchte einen Servo für Genauigkeit und schnelligkeit :/ hab schon zwei bestellt und schon wieder zurückgeschickt, als nächstes knüpfe ich mir deinen vor
Genug Stromstärke liefert dein netzteil? Ich habe da ähnliche Erfahrungen, nämlich dass man bei den Servos lieber nicht am falschen Ende sparen sollte. Für normale Anwendungen noch in Ordnung aber z.B. für meinen Roboarm ließ die Genauigkeit schon teilweise zu wünschen übrig.
Ich hatte mir diesen https://www.amazon.de/gp/product/B01JZDTWBA/ref=oh_aui_detailpage_o01_s02?ie=UTF8&psc=1 Netzteil besorg
Ich meine das externe Netzteil nur für den Servo. Der Pi liefert nicht genug Strom für stärkere Motoren.
Gibt es ein Gerät mit dem man die Pins des Servos an eine externe Quelle anschließen kann? Verstehe, dachte laut dem Datenblatt wäre es genug
Die Pins des Raspberry Pi’s solltest du an keine höhere Spannung anschließen, wenn du nicht willst, dass sie durchbrennen.
Ich würde gerne eine permanenten Anschluss bevorzugen, Batterien/Akkus wären für mein Projekt nicht ideal :c
[Ganz nebenbei, .-. so ein Aufklapp Funktion in den Kommentaren(nach 3 Kommentaren) wäre gut =)]
Dann schließ den Servo an die externe Spannung an (VCC) und GND des Servos sowohl an den Pi als auch die externe Versorgung.
Dann schließ den Servo an die externe Spannung an (VCC) und GND des Servos sowohl an den Pi als auch die externe Versorgung.
Ich muss bei meinem Pi für ein Projekt 3 Servos, ein 8 Kanalrelaisboard, 3 Ultraschalsensoren und den 2×16 LCD Display anschließen. Ist das ohne weiters möglich?
Ja, du solltest aber mal schauen, wie viele GPIOs du dafür brauchst. Wenn du das LCD Display ohne I2C benutzt brauchst du recht viele GPIOs. Dazu nochmals einen GPIO für jedes Relais und für die Servos. Schau dir am besten mal folgende beiden Tutorials an:
Um das Display per I2C anzusteuern:
HD44780 LCD Display per I2C mit dem Raspberry Pi ansteuern
Falls die GPIOs nicht reichen: Raspberry Pi GPIOs mittels I2C Port Expander erweitern – Teil 1
Vielen dank.
Trozdem hätte ich noch eine Frage zur Stromverteilung. Da ich ja für 3 Servos 3x mal den 3v3 Power Pin benötige und nur einer vorhanden ist. Oder kann ich alle Servos an einen 3v3 Power Pin Anschließen. Oder brauche ich eine Externe Stromversorgung. Das gleiche auch mit den 3 Ultraschall Sensoren und dem 5v Power Pin.
Entschuldigung für die frage aber das ist das erste mal das ich so viel an den Raspberry anschließen muss. 🙂
Von der Spannung her kannst du beliebig viele Geräte an einen VCC Pin anschließen. Wichtig ist nur, dass nicht zu viel Stromstärke (mA) verbraucht wird.
Hey, ich probiere zurzeit einen Roboter zusteuern, mit W A S D. Doch ich muss immer wieder nach jeder Eingabe Enter drücken. So lässt sich natürlich kein Roboter gut steuern. Nun zu meiner Frage, kannst du mir sagen was ich machen muss, damit er gerade aus fährt wenn ich W drücke, und er stehen bleibt wenn ich loslasse?! LG Sammy
Eventuell hilft dir die
msvcrt
Bibliothek weiter: https://docs.python.org/2/library/msvcrt.html#msvcrt.getchDas ist ein Eingabe Problem, was das Tutorial ja nicht direkt betrifft, aber ich verstehe dass eine Steuerung so natürlich schwieriger wirdEventuell hilft auch das:
http://stackoverflow.com/a/16145591/2158456
Hallo Samuel Eickmann
Wie siehts denn mit deinem „Roboter-Projekt“ aus?
Hast Du es noch erfolgreich abschließen können oder arbeitest Du noch dran?
Ich will mich darin auch einarbeiten. Ich bin ein absoluter Technikfreak in Mechanik und Elektronik, allerdings neu im RPI-Segment.
Schau dir doch mal mein Roboter Projekt an 🙂
Raspberry Pi Roboter Bausatz – Zusammenbau (Teil 1)
Vielen dank.
Trozdem hätte ich noch eine frage zur Stromverteilung kann ich alle 3 Servos bzw Ultraschall Sensoren an einen Power Pin anschließen?
Oder brauche ich eine externe Stromversorgung. Da es ja nur einen 3v3 bzw 5v Power Pin gibt.
Und wenn ja, wie mache ich das mit der externen Stromversorgung?
Ja, wie gesagt: Der Strom „teilt sich auf“, die Spannung ist bei allen Geräten die selbe (3.3V oder 5V) nur die Stromstärke variiert.
Hallo Felix,
Mein Servo rattert nur bei dem Programm, aber er bewegt sich nicht:‘-(.
Ich bin ratlos. Kannst du mir Helfen?
Hallo – ich möchte mehrere Servos (ca. 30) einzeln ansteuern.
Natürlich mit einer externen Spannungsquelle. wie viele kann ich jedoch von Haus aus mit dem Pi ansteuern? Und gibt es eine Möglichkeit, dass ich den Rasperry erweitere um mehr Steuerpins zu bekommen?
Danke
LG
Ein Raspberry Pi B+ / 2 bzw. 3 hat 26 steuerbare GPIOs. Du kannst zb. einen Port Expander verwenden, allerdings weiß ich nicht ob diese für PWM geeignet sind. Eventuell gibt es aber Bibliotheken auf Github für den MCP23017 und PWM.
Hallo; wie kann ich vom Servomotor die genaue Position zurückbekommen?
Danke
LG
Du setzt die Position ja, daher kannst du die letzte eingestelle Position einfach abspeichern.
Hallo und danke für diese schöne Seite,
habe mir einen RPI3 (bin nach ersten Tests begeistert) und einen 3.5 “ RPI LCD zugelegt und den Pi nach erstem Grübeln auch zum Laufen gebracht (LCD noch nicht). Möchte meine bisherige manuelle Einstellung mit einem Tester/und einem kleinen Servomotor (Conrad) mit dem PI möglichst exakt auf bestimmte Winkel (entsprechend einer bestimmten Wellenlänge) ansteuern. Dafür ist doch die hier vorgstellte Lösung mit Anpassung sicher nutzbar. Bisher stelle ich mit dem Tester manuell die ungefähre Winkelstellung eines Liniengitters (1200linien/mm)anhand einer aufgezeichneten Skala ein. Es soll in einem selbstgebauten Spektrometer für Sternenbeobachtungen seinen Platz bekommen. Wie schliesse ich den Motor an, wenn schon das LCD-Display eingesteckt ist – brauche ich einen Adapter ?
Vielen Dank
Hallo Volker ,
nimm für den Motor einen anderen, freien Pin und ändere diesem im Python-Script:
servoPIN = 17
anstelle der 17 dann den neuen PIN.
Erst mal herzlichen Dank für die Rückantwort. Da ich nicht so bewandert bin mit Schaltungen noch die Frage, ob ich den Servomotor extern mit 3,3V versorgen kann und der neue freie Pin vom Raspberry dann ausreicht, um den Motor zu steuern, oder ob grd und 3,3V auch vom Raspberry kommen muss – wenn das der Fall wäre muss ich dann ggf. Verbindungen „für den Servomotor rausführen – anlöten “ ?. Das 3.5LCD habe ich zum Laufen gebracht, leider hat das Gehäuse nicht richtig zur Platine gepasst, sodass das Gehäuse angepasst werden musste.
An 3.3V kannst du so viele Geräte anschließen wie du möchtest, solange der gesamte Strom (in Ampere) nicht den verfügbaren übersteigt. Bei normalen Modulen/Sensoren ist also keine externe Stromversorgung nötig (bei z.B. stärkeren Schrittmotoren allerdings schon, da diese oftmals 1A benötigen).
Du brauchst also effektiv nur einen GPIO Pin, da VCC und GND auch an andere Module angeschlossen werden können.
Hallo,
erst mal bei beste Seite für einsteiger sehr gut erklärt weiter so.
zu meiner Frage ich möchte eigentlich ein 12V Lüftermotor über PWM und einen
externen Temperatursensor steuern.
sind die PWM Signale die selben ??
mfg mustafa K.
Hey Mustafa,
was meinst du mit die selben Signale? 12V kann das Raspberry Pi nicht liefern und bei einer externen Stromversorgung würde ich eine Diode zwischenschalten, um die GPIOs ggf. zu schützen. Ansonsten sollte es möglich sein auch einen 12V Motor mit PWM zu steuern.
LG, Felix
Hallo Felix,
Ich habe ein 12V 5A LED Trafo für die Spannungsversorgung der Lüfter.
Ich wollte nur wissen ob die Signalleitung der Lüfter, auch nur einen 3,3V Signal benötigen.(Wie ein Servo Motor)
Bin ein Totaler einsteiger,ich glaube ich habe mir ein zu großes Ziel Gesetz.
Ich möchte über zwei Temperatur Sensoren, zwei Gruppen von Lüfter Regeln.
Kannst du mir etwas Empfehlen womit ich anfangen kann??
Wie viel Spannung die Signalleitung des Motors braucht weiß ich leider nicht, aber das sollte im Datenblatt stehen.
Du könntest ggf. Transistoren bzw. Relais (sofern diese schnell genug für PWM schalten) verwenden, um auf die entsprechende Signalspannung zu kommen.
Hallo Ingo,
Ergebnis meiner Versuche bzgl. Schrittmotorsteuerung + RPI3. Externe Stromversorgung und z.B. ein Gpio Pin 21 für die Servomotorsteuerung funktioniert bei mir nicht, dagegen läuft das Programm, wenn 5V, Ground und Pin21 direkt vom Raspberry kommen, leider fehlt mir die Idee, wie ich nun das LCD nutzen kann, da ich das nun ja nicht einstecken kann, da die Verbindungsleitungen für die Servomotorsteuerung schon dort sind – habe das mit dem HDMI Anschluss und TV getestet. Würde schon gern das LCD auch im Raspberry nutzen.
Hi Felix ,
ich habe vollgendes Problem.
Ich möchte gerne mit dem Raspberry Pi einen kleinen Getriebemotor steuern .
Folgende Sachen habe ich schon besorgt : Pi , Stromquellen , Breadboard , T Cobbler , H Brücke , Taster und Jumpwires.
Meine Frage wäre ,dass ich den Motor anhand zB 2 oder 3 Taster verschiedene Drehzahlen beim betätigen fahren will.
Sprich Taster 1 betätigt = 30 U/min
Dann Taster 2 betätigt = 20U/min
Ich habe Schwierigkeiten beim Software programmieren und weis nicht wie ich anfangen soll.
Ich wäre sehr dankbar für Deine Hilfe .
Mit freundlichen Grüßen
Georg
Bist du sicher, dass es ein Servomotor und kein Schrittmotor ist? Du müsstest bei einem Servo sehr kleine Schritte machen und dann jeweils warten.
Ich baue für die schule ein auto und möchte meinen servo so steuern dass wenn ich die pfeiltaste rechts drücke der servo nach rechts und bei der pfeiltaste nach links der servo links lenkt kann mir jmd helfen dies in python 3 zu schreiben
Ich habe so etwas ähnliches bei meinem Pong Spiel gemacht. Schau dir dazu auch mal die getch() Funktion an.
LG, Felix
Hallo Felix,
erstmal vielen Dank für dein Tutorial. Ich habe das ganze mit Jessie auf den RPI2 nachgebaut und es funktioniert soweit. Allerdings dreht sich der Motor nur nach rechts. Wie kann ich auch nach rechts drehen? (mit minus werten klappt es nicht)
Vielen Dank im vorraus
LG Julian
Hallo Julian,
ein Servo lässt sich nicht vollkommen drehen. Du hast also immer nur einen ca. 180° Radius, in dem du den Winkel ändern kannst. Allerdings kannst du den Aufsatz anders postieren.
Felix, könnte ich mit dem hier https://www.amazon.de/KOOKYE-MG995-360-Hubschrauber-Flugzeug/dp/B071DW6F7K/ref=sr_1_1?ie=UTF8&qid=1502120138&sr=8-1&keywords=360+servo+metall mit 1ms komplett nach links und 2ms nach rechts? Also 180 Grad in jede Richtung rotieren lassen?
Hallo nochmal,
danke erstmal für die schnelle Hilfe.
Allerdings habe ich bei meiner Frage eine Fehler gemacht. Ich weiß das der Motor sich nur um 180° drehen kann. Das klappt auch. Aber ich weiß noch nicht wie ich theoretich dann wieder zurück drehe. Also wie drehe ich den Servo nach rechts und dann wieder nach links. Wie unterscheiden sich die Befehle?
LG und danke im vorraus
Julian
Die unterscheiden sich nicht. Du setzt die PWM Frequenz. Willst du ihn ganz links (0°), setzt du eine niedrige Frequenz (z.B. 2.5), um ihn nach rechts zu drehen setzt du eine hohe Frequenz (z.B. 90).
Hallo Felix,
Wenn ich den Servomotor in einer Geschwindigkeit von 0,5951 s in einem 45° Winkel hoch und runter bewegen möchte? Also nach 0,5951s soll der Servo 1mal nach oben und nach nochmal 0,5951 soll der Motor sich wieder nach unten bewegen.
Was muss ich ich dann ändern? Und kann ich es auch wenn ich jetzt ein .py Dokument habe und dort mit der Geschwindigkeit LEDs blinken lassen möchte, auch den Motor mit einfügen?
Ich möchte gerne 3 Lasermodule hoch und runter bewegen lassen.
Ich hoffe du kannst mir helfen.
Jetzt geht der Servo die 180° in Schritten ab. Wenn ich aber nur 90° benutzen möchte?
Hallo Leute,
könnte mir Jemand bei Der Peripherieanschlüsse des Raspberry PI helfen??
ich muss ein Bericht über dieses Thema mit folgenden Fragen:
welche Hardware kann am PI angeschlossen werden, dazu Portdefinitionen
Beispiele für PWM-Steuerung, einfache ADU-Anwendung, einfache I/O-Anwendung-Schaltungsbeispiele, und Softwarebeispiele.
Peripherie: USB, Ethernet, HDMI, Aux. Daneben noch über I2C und SPI Bus.
Hardware: Alles mögliche (Sensoren, etc). Such dir einfach was auf der Seite hier aus.
PWM Beispiel: obne im Tutorial
Einfaches GPIO Beispiel: Raspberry Pi Ampelschaltung mit GPIO Teil 1
Wir bauen gerade an einem Projekt. Wir möchten, dass sich durch den Servomotor eine Bluetooth-Box bewegt. Gestartet soll dies durch einen Bewegungssensor. Könntest du uns da helfen? Wir sind völlig fraglos.
Woran hakt es denn? Du nimmst z.B. 3 Bewegungssensoren und stellst diese jeweils im 90 Grad Winkel zueinander auf. Dann überprüfst alle auf Bewegung und lässt den Motor in die Richtung rotieren (Sensor 1 = 0°, 2 = 90°, 3 = 180°). Wenn zwei Sensoren ein Signal erkannt haben, kannst du auch 45° bzw 135° rotieren lassen.
Guten Abend,
ich versuche mit einem Motor die Stellung der Lamellen einer Zimmerjalousie zu steuern. Ich habe diverse Servo-Motoren bestellt, und alle getestet, jedoch habe ich die optimale Lösung noch nicht gefunden. Die Jalousie hat einen Eisenstange (Durchmesser 3mm), welche gedreht werden muss. Die Motoren, welche ich bisher Bestellt habe, haben aber alle einen zahnradähnlichen Kopf z.B.: https://www.amazon.de/Foxnovo-Standard-Servo-Zubeh%C3%B6r-Helicopter-schwarz/dp/B00MUBX6VM/ref=sr_1_7?s=toys&ie=UTF8&qid=1489090172&sr=1-7&keywords=servo+motor
Mir ist nicht ganz klar, wie ich das zusammen bekomme. Daher habe ich testweise mal diesen Motor bestellt http://www.ebay.de/itm/272541278458?_trksid=p2057872.m2749.l2649&ssPageName=STRK%3AMEBIDX%3AIT und das Gehäuse des Servomotors zerlegt und den Getriebe Motor an die Platine des Servomotors gelötet.
Es funktioniert auch soweit, dass sich der Motor rechts und links dreht, leider aber der Sleepbefehl nicht. Aber ich kann mir auch nicht vorstellen, dass das alles so richtig ist, was ich mache. Hat vielleicht jemand eine Idee, wie sich das ganze sinnvoller umsetzen lässt?
Vielen Dank.
Hallo Felix,
tolles tutorial, woran kann es liegen das der Motos nur Zittert und sich nicht bewegt?
Grüße,
Majutz
Häufig ist die Spannung zu niedrig oder die Frequenz falsch.
Guten Tag,
ich möchte einen Filmprojektor steuern, dazu habe ich ein 25 Hz Sinus Signal aus einer Videokamera. Gleichfalls erzeugt der Projektor bei jedem Bild über eine Lichtschranke einen Impuls. Die Spannungsversorgung des Antriebsmotors erfolgt über einen High Power Treiber von Pololu der mit einem PWM Signal angesteuert wird. Ziel des Ganzen ist auch den Projektor so zu steuern, dass dieser auch genau 25 Bilder pro Sekunde wiedergibt, damit ich mit der Videokamera Bildgenau von der Filmoberfläche den Film digitalisieren kann. Meine Frage ist ob das mit dem Raspberry Pi 3 Model B möglich ist, und wie? Wir haben es schon mit dem Arduino versucht, aber der scheint zu langsam zu sein um die Genauigkeit zu erreichen. Für eine Antwort wäre ich sehr dankbar.
Viele Grüße
Der Raspberry Pi ist im Gegensatz zum Arduino nicht richtig echtzeitfähig (da CPU Interrupts), weshalb ich nicht denke, dass die Genauigkeit höher als beim Arduino sein wird.
Hallo Felix,
danke für die Information, dann werde ich in diesem Fall, beim Arduino bleiben.
Viele Grüße sendet Dir Claus
Hallo,
vielen Dank für die Tutorials.
Ich habe folgendes nicht verstanden.
1. Wie kann ich festlegen, in welche Richtung sich der Motor drehen soll?
2. Was bedeutent die Zahl in den Klammern?
p.ChangeDutyCycle(5)
3. Warum hast du so viele CHange Duty Cycle genommen?
Danke
Die Richtung gibst du durch die Frequenz an (PWM). Der Motor kann ja keine volle Umdrehung, sondern nur ca. 180° sich drehen. Somit kannst du mittels der Frequenz den Winkel angeben. Bist du bei 90° und willst einen Winkel von 45°, so dreht er sich nach links. Bist du bei 0° so kannst du nicht mehr nach Links. Der Wert kann üblicherweise mit
2.5 + x/180.0
berechnet werden, wobei x der Winkel ist. Die vielen Dutycycles sollen dies verdeutlichen.Hallo, vielleicht ist die Frage jetzt etwas blöd, aber wie verbinde ich das „drehende Ende“ des Servomotors mit dem anzusteuernden Bauteil? In meinem Fall soll der Servomotor einen Müsli-Dispenser ansteuern. In einem Tutorial hat das jemand mit Heißkleber gelöst, das kommt mir aber arg gepfuscht vor. Letztlich hat der Motor einen drehenden Stift und der Müsli-Dispenser ebenso. Ist eine Wellenkupplung das Richtige?
Normalerweise sind Aufsätze in verschiedenen Formen zum Aufstecken dabei. Daran kannst du Dinge festschrauben. Habe ich z.B. bei meinem Roboterarm so gemacht (Tutorial kommt bald).
Ich have das gleiche mit anderen Servos versucht…
Blue Bird BMS 630 MG, die sind etwas stärker.
Allerdings werden die nicht entsprechend gesteuert.
Bei einem DutyCycle von 12 dreht er sich nur etwa um 10 grad, bei 26 (max) etwa um 60 grad. Aber manuell kann ich den Servo um ca. 200 grad drehen.
Sind die 12 und 2,5 die gleichen frequenzen für jeden motor oder mach ich was falsch?
(Motor nimmt 4,8 v, hängt am 5v output)
(Steuerfrequenz is 125 hz)
Außerdem nimmt der meine externe Stromversorgung (4x AA) nicht an… Irgend eine Idee warum?
Diese ganzen Angaben sind normalerweise im Datenblatt deines Servos vermerkt.
Was wäre das dann?
https://servodatabase.com/servo/blue-bird/bms-630mg sagt nicht sehr viel aus…
Über einer PWM frequenz von 26 reagiert er nicht mehr.
Das (physische) datenblatt sagt:
„Operating Pulse Traveling“
„900us : -60°“
„1520us : 0°“
„2100us : +60°“
aber das wäre dann kein PWM mehr, das unterstützt höchstens 100.0 unter dem RPi…
Welche Signalform müsste ich da geben?
Moin,
erst einmal sehr hilfreicher Beitrag, ich haben alles so gemacht wie es hier in diesem Tutorial steht und mein Quellcode sieht genau so aus.
Jedoch habe ich ein Problem 🙁
Meinen Servo betreibe ich mit 6V aus einem Batteriehalter für 4 AA Batterien. Immer wenn ich den Servo mit Strom versorge, dreht er sich kurz/Impulsartig (immer in die gleiche Richtung) und macht dann nichts mehr. Ich verwende den „Towar pro MG 946R“ Servo.
Vielleicht kann mir jemand helfen. 🙁
Um schnelle Hilfe wäre ich sehr dankbar, da es sich um ein Projekt für dir Schule handelt. 😉
Danke schon einmal im Voraus.
Mfg Simon
Hi, bei mir zittert der Motor nur, wie kann ich das Skript jetzt wieder beenden bzw löschen?
Danke für die Hilfe.
Mit freundlichen Grüßen
Ronnie
Wenn es läuft einfach mit STRG+C beenden. Dass der Motor zittert könbnte auf eine falsche Pulslänge hinweisen oder aber zu niedrige Spannung.
Vielen Dank
Hi,
vielen Dank für die verständliche Anleitung.
Ich versuche zur Zeit einen batteriebetriebenen Raumdufterfrischer mit dem Pi zu steuern.
Der Moto, der die Sprühdose drückt hat aber nur zwei Kabel (blau & rot).
Muss ich dann ein Relais nutzen oder kann ich die Kabel auch direkt an den GPIO-Port anschließen?
Vielen Dank im Voraus und Liebe Grüße
Camillo
Bist du sicher, dass es ein Servo ist? Falls ja, muss wohl die komplette Spannung über das eine Kabel (also PWM Signal in entsprechender Spannung).
Hi,
für kleine Motoren funktioniert das auch gut..
Frage mich nur wieso bei mir der 500W MY 1020 sobald ich den einschalte alles durcheinander bringt.
Habe den über ein Relais schalten lassen und die Pi macht nur die Steuerung sobald die von einem bestimmten IR-Signal eingeschlatet wird.
Hallo,
ich hätte mal eine Frage. Ich möchte mit einem kleinen Motor eine Klappe in einem Lüftungs-t-rohr in einem Flugzeug bewegen . Es wäre schon, wenn die Bewegung nicht nur über die Funktion „auf oder zu“ verfügt, sondern auch stufenlos funktioniert. Aus dem Cockpit würde ich den Motor gerne mittels eines Drehknopfes ansteuern. Das Flugzeug verfügt über 12Volt. Als weitere Anforderung gilt das ganze darf nicht viel wiegen und der Preis muss auch überschaubar sein.
Vielleicht hat einer von euch eine Idee. Bedenkt ich bin Laie.
Vielen Dank Arno
Wie schwer ist das Ding? Ein MG996R z.B. kann einiges heben. Stufen kannst du einstellen, indem du den Winkel individuell festlegst.
Aber einen MG996R sollte man NIE direkt mit dem Raspberry verbinden, weil er viel zu viel Strom braucht. Der Raspi kann über die GPIO-Pins maximal 50mA liefern, der Servo, den du vorgeschlagen hast, braucht aber 500mA – 900mA.
Dafür muss eine externe Stromversorgung verwendet werden.
Was ist, wenn Servo 360 verwendet?
moin, mein name ist philip… ersmal, geile seite hier… bin an einer sache bei und hab mich gefragt, ob mir hierbei jemand helfen kann?!
https://www.dropbox.com/s/nmqeeakqsltczuz/Projekt%20Peer%20to%20peer.png?dl=0
lg
Gibt es eine Möglichkeit einen Servo ( mit dem Raspi ) mit Soft-Start / Stopp anzusteuern ?
Derzeit mache ich das über Spannung aber das kostet mich 4 zusätzliche GPIO ( und ich habe nun nur noch einen über ).
Triggern ( die letzten paar Grad ) bringt nix, da fährt das 75 kg ding dann halt getaktet full speed.
Hallo, lässt sich der Servo motor auch mit einem Sprachbefehl steuern, zum Beispiel wenn ich das Wort „Raspberry“ sage, dass er sich dann dreht?
Hallo zusammen,
ich bin ziemlich neu bei der Arbeit mit dem Raspberry Pi und lese mich in vielen Sachen aktuell ein. Meine Frage: Wie stark sind diese Servomotoren? Können sie beispielsweise einen 10kg schweren Gegenstand problemlos in einem mäßigen Tempo (ca. 2-3 km/h) bewegen?
Danke im Voraus.
VG
Es gibt verschiedene Servo-Motoren. In den Details dazu stehen solche Infos. Da würde ich mal schauen.
hey ich bräuchte hilfe bei einem 360 grad servo,und zwar muss er sich 90 grad alle 24 stunden drehen. bekommt man das ihrgentwie hin?
Lg Niclas