Forum: Mikrocontroller und Digitale Elektronik Servos mit Raspberry PI


von juliospaghetti (Gast)


Lesenswert?

Hi Leute,

wieviele Servormotoren kann ich mit einem PI sinnvoll steuern? Der PI 
hat ja nur einen PWM Ausgang, also nur einen Servo?

von Peter II (Gast)


Lesenswert?

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.

von juliospaghetti (Gast)


Lesenswert?

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)?

von Harry L. (mysth)


Lesenswert?


von Peter II (Gast)


Lesenswert?

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?

von juliospaghetti (Gast)


Lesenswert?

> 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.

von juliospaghetti (Gast)


Lesenswert?

Und eben die schnelle Mögluchkeit des direkten Speicherzugriffs (DMA?)

von juliospaghetti (Gast)


Lesenswert?

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.

von DraconiX (Gast)


Lesenswert?

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

von Sheeva P. (sheevaplug)


Lesenswert?

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/

von Sheeva P. (sheevaplug)


Lesenswert?

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
Noch kein Account? Hier anmelden.