Forum: Mikrocontroller und Digitale Elektronik Motorencoder an Raspberry Pi


von Stefan H. (stefan_h16)


Lesenswert?

Guten Abend

Ich würde gerne mit dem Raspberry Pi und später dann mit dem Beaglebone 
Black Motoren (mehr GPIO mit PWM) für Roboter ansteuern. Die 
angestrebten Motoren sind Gleichstrommotoren mit Getriebe und optischen 
Drehgeber. Bei maximaler Geschwindigkeit erwarte ich so 1900 
Greycodeflanken/s.

Zur Auswertung hatte ich mir vorgestellt neben dem Programm einen Thread 
laufen zu lassen, der die GPIOs ausliest, sie gemäß dem 
http://www.mikrocontroller.net/articles/Drehgeber

verarbeitet, sich dann dann für 500 us schlafen legt und dann von vorne 
...

Frage ist jetzt macht das Sinn ? Oder ist es besser einen uC zwischen 
zuschalten ?

von da1l6 (Gast)


Lesenswert?

Hallo

Für Echtzeitanforderungen lieber einen extra µC verwenden.
Ein Multitaskingsystem wie Linux kann keine Latenzen garantieren. Da 
kann durchaus mal eine Flanke verpasst werden.

da1l6

von Horst H. (horst_h44)


Lesenswert?

Hallo

die Erfassung lässt sich in Software und in Hardware realisieren. Falls 
die Auslastung des Mikros zu hoch wird, oder schnelle Änderungen kommen, 
können Inkrementalimpulse verloren geben. Das wäre fatal und es gibt 
dann nur die Lösung einen Absolutencoder zu nehmen, oder einen 
getrennten Zähler der auch schnelle Änderungen erfasst. Hier gibt es 
eine Applikation dazu: http://ichaus.biz/wp2_encoderanschluss . Der 
Selbstbau eines absoluten Motorencoders wir hier sehr schön beschrieben: 
http://www.gb97816.homepage.t-online.de/mh8_2.htm .

von foo (Gast)


Lesenswert?

Der Beaglebone hat zwei programmierbare uC onboard, damit sollte das 
eigentlich gehen

von Stefan H. (stefan_h16)


Lesenswert?

Danke für die vielen Hinweise, ich denke ich werden auf Nummer sicher 
gehen, und das zählen auf einen eignen uC auslagern - kostet ja fast 
nix.
Da ich schon immer mal was mit CPLDs machen wollte: Könnte man das auf 
einem kleinen CPLD implementieren? Also die Encoder auswerten und dann 
per SPI Geschwindigkeit und Position auslesen ? Wie groß müsste er CPLD 
den werden, insbesondere wenn man noch die PWMs auf dem CPLD generiert ?

foo schrieb:
> Der Beaglebone hat zwei programmierbare uC onboard, damit sollte das
> eigentlich gehen

Das ist mir bis jetzt entgangen, wo steht das den ?

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.