Hi Leute, wieviele Servormotoren kann ich mit einem PI sinnvoll steuern? Der PI hat ja nur einen PWM Ausgang, also nur einen Servo?
juliospaghetti schrieb: > wieviele Servormotoren kann ich mit einem PI sinnvoll steuern? Der PI > hat ja nur einen PWM Ausgang, also nur einen Servo? ein Servos ist aber so langsam, das kann man auch per Software machen. Mit ein paar Schieberegister kann man fast beliebig viele anschließen. Mit extra Controller kann man wirklich beliebig viele anschließen.
Peter II schrieb: > ein Servos ist aber so langsam, das kann man auch per Software machen. Ich könnte also an jedem GPIO Pin der digitale Signale ausgeben kann per Software einen Servo laufen lassen? Ich müsste aber vermutlich die Register direkt ansprechen (Geschwindigkeit)?
Damit kannst du ohne grossen Schnick-Schnack 16 Servos ansteuern: http://www.ebay.de/itm/PCA9685-Servomotor-Driver-16-Kanal-Treiber-Modul-PWM-I2C-Arduino-Raspberry-/162533562184
juliospaghetti schrieb: > Ich könnte also an jedem GPIO Pin der digitale Signale ausgeben kann per > Software einen Servo laufen lassen? ja > Ich müsste aber vermutlich die Register direkt ansprechen > (Geschwindigkeit)? was meinst du damit? Klar muss man die Register ansprechen oder willst du bei jedem setzen ein Programm starten?
> was meinst du damit? Klar muss man die Register ansprechen oder willst > du bei jedem setzen ein Programm starten? Habe irgendwo mal gelesen dass man ein und ausgehende Signale (Zustände) in Dateien schreibt und diese dann liest. Also auf diese Art arbeitet.
Wenn ich ein 1,5ms langes PWM Signal benötige sind dann 1000Hz nicht etwas zu knapp? Es wurde ja ein interessantes Arduinoboard genannt welches bis zu 16 Servos mit bis zu 1000hz ansteuern kann.
Du solltest dich dringend vorher in die Materie einlesen, sonst geht dein Project schnell vor die Wand, Versuche lieber erstmal ein Servo anzusprechen und zu verstehen was du da machst. Die PWM Periode dauert 20ms (50Hz) und die Pulse-Width z.b. 1,5ms (bei den meisten ist das 90° Grad bzw. Neutralstellung). Btw... Sind 1,5ms 666,67Hz
juliospaghetti schrieb: > Ich könnte also an jedem GPIO Pin der digitale Signale ausgeben kann per > Software einen Servo laufen lassen? > Ich müsste aber vermutlich die Register direkt ansprechen > (Geschwindigkeit)? Nein, nicht unbedingt. Servos sind nicht besonders zeitkritisch, oft reichen sogar simple Shellbefehle. Möglicherweise ist es sinnvoll, das Programm / Skript mit höchster Priorität laufen zu lassen (siehe nice(1)), wenn sonst noch etwas auf dem System geschehen soll. Benchmarks und Beispielcode zur GPIO-Performance mit verschiedenen Programmiersprachen und Bibliotheken findest Du hier: [1]. [1] http://codeandlife.com/2012/07/03/benchmarking-raspberry-pi-gpio-speed/
juliospaghetti schrieb: >> was meinst du damit? Klar muss man die Register ansprechen oder willst >> du bei jedem setzen ein Programm starten? > > Habe irgendwo mal gelesen dass man ein und ausgehende Signale (Zustände) > in Dateien schreibt und diese dann liest. Also auf diese Art arbeitet. Ja, und nein. Die betreffenden Dateien befinden sich unter /sys/class/gpio/; /sys ist ein virtuelles, RAM-basiertes Dateisystem, das die Geräteoptionen des Kernels exportiert. Du liest und schreibst dabei also nicht in Dateien auf einen langsamen Festspeicher, keine Sorge.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.