Forum: Mikrocontroller und Digitale Elektronik Elektromotor mit Geschwindigkeits/Positionsbestimmung


von Florian (Gast)


Lesenswert?

Hallo liebe Controllerfreunde,

ich möchte ein kleines Segway Modell bauen. Mit Mikrocontrollern, 
Elektronik und Programmieren kenn ich mich gut aus, mein Problem bei 
sowas ist stets die Mechanik (ich habe leider keine Dreh- oder 
Fräsbank).


Nun zum eigentlichen Problem: Ich brauche dafür einen Motor (am liebsten 
mit einem Modellbau Akku betreibbar, also mit einer zulässigen Spannung 
von etwa 7,2...12V) bei dem ich allerdings irgendwie die Geschwindigkeit 
auslesen muss. Sei es über einen Absolutwertgeber oder Drehgeber oder 
sonstigem. "Externe" halbwegs hochwertige Drehgeber fangen bei ca 40 
Euro Plus an, dabei besteht noch das Problem, dass ich das mechanisch 
halbwegs vernünftig an meinen (noch unbekannten) Motor drankriegen muss.

Ich möchte folgendes Getriebe verwenden:
http://www.conrad.de/ce/de/product/240788/VARIO-GETRIEBE-BAUSATZ/SHOP_AREA_19781&promotionareaSearchDetail=005

Dies hat die Vorteile, dass ich das maximale Drehmoment variabel 
einstellen kann, und dass ich Räder habe, die genau auf diese Welle 
passen. Blöd ist natürlich, dass man da nicht so einfach einen Drehgeber 
dranbekommt.



Eine Ideallösung wäre ein 0815 Pollin Gleichstrommotor mit integriertem 
Drehgeber, der vielleicht 5 oder 10 Euro kostet. Leider habe ich so 
einen Motor bisher nicht gefunden.

Ich hab schon über einen Schrittmotor nachgedacht, bei dem ich einfach 
die Geschwindigkeit "mit Gewalt" bestimme, größtes Problem, welches ich 
sehe ist, dass der Controller beim Einschalten nicht die aktuelle 
Position des Schrittmotos kennt. Eine mögliche Lösung dies zu beheben, 
wäre ein Getriebe mit hohem Versetzungsverhältnis zu wählen, bei dem die 
erste halbe Drehung des Motors nicht groß ins Gewicht fällt und das Rad 
nur eine kleine Drehung macht. Das führt allerdings zu dem Problem, dass 
ich kein passendes, und am besten variables Getriebe finde, welches mit 
so einer 5mm Welle kompatibel ist.


Lange Rede kurzer Sinn:
Fällt euch spontan eine günstige (sowohl finanziell, als auch mechanisch 
ohne großartigem Werkzeug) Lösung des Problems ein?

Danke an alle!

Florian

von Reinhard Kern (Gast)


Lesenswert?

Florian schrieb:
> Fällt euch spontan eine günstige (sowohl finanziell, als auch mechanisch
> ohne großartigem Werkzeug) Lösung des Problems ein?

Im Gegenteil, ich serviere dir noch ein Problem dazu: auch ein Drehgeber 
weiss beim Einschalten seine Position nicht und muss mindestens eine 
halbe Umdrehung machen, um über einen Indexpunkt zu fahren (gibt einen 
Ausgangsimpuls am 3. Anschluss).

Und noch was: deine Lösung mit der hohen Übersetzung ist ein Denkfehler, 
denn das Getriebe weiss ja auch nicht, wo es steht, es sei denn, du 
machst irgendwo einen Schalter hin, mit dem der Nullpunkt gesetzt wird 
und den du als erstes anfährst - womit wir wieder ganz am Anfang wären.

Bei einem Sedgeway ist das nicht so recht praktikabel, da wirst du wohl 
Absolut-Drehgeber brauchen - und die sind WIRKLICH teuer. Oder du nimmst 
Potis (Servo), da ist halt Auflösung und Genauigkeit recht begrenzt.

Was die Montage angeht, nimm notfalls einen Zahnriemen.

Gruss Reinhard

von Florian (Gast)


Lesenswert?

Hallo Reinhard, danke für die Antwort.

Die Position des Rades und des Getriebes muss ich ja bei einem 
Gleichstrommotor garnicht wissen. Der Winkel des Segways wird mit 
Beschleunigungssensoren gemessen, daraufhin kann ich den Motor 
ansteuern, wie ich möchte, die Position ist dabei egal. Ich würde nur 
gerne die Geschwindigkeit messen.


Ich habe das Problem beim Schrittmotor gesehen. Um den Motor dort zum 
anlaufen zu bringen brauch ich ja erstmal die Anfangsposition.


Servomotoren kenn ich bisher nur in der höchsten Kreisklasse. Gibt es 
die überhaupt in so einer Miniaturgröße, wie ich sie brauche?

von SNR (Gast)


Lesenswert?

Florian schrieb:
>Der Winkel des Segways wird mit Beschleunigungssensoren gemessen...

Zusätzlich sind noch Gyroskope nötig! Anonsten kannst Du eine genaue 
Erfassung des Winkels vergessen. Zusätzlich sind noch gute 
Mathematikkentnisse erforderlich. Ich geb Dir da mal die Stichworte 
Sensordatenfusion mittels Kalmanfilter oder DCM 
(Direction-Cosine-Matix).

Florian schrieb:
> Ich möchte folgendes Getriebe verwenden:
> http://www.conrad.de/ce/de/product/240788/VARIO-GE...

Ich gebe zu bedenken, dass für eine vernünftige Regelung ein Getriebe 
mit möglichst wenig Spiel verwendet werden sollte. Anosonsten wirst Du 
keine vernünfigen Ergebnisse bekommen.

Florian schrieb:
> Die Position des Rades und des Getriebes muss ich ja bei einem
> Gleichstrommotor garnicht wissen.
Für die Ansteuerung des Motors musst Du es nicht wissen, dass ist 
richtig. Möchtest Du aber mit Deinem Gefährt auf der Stelle stehen 
bleiben, wirst Du die relative Wegstrecke wissen müssen --> Du brauchst 
einen Inkrementalgeber am Motor/Getriebe.

Florian schrieb:
> Gibt es die überhaupt in so einer Miniaturgröße, wie ich sie brauche?
Das hier ist zwar ein DC-Motor, aber der dürfte gut für sowas geeignet 
sein. Inclusive Getriebe und Hallsensoren für eine Quasratur Auswertung:
http://www.roboter-teile.de/Oxid/Mechanik-Servos/DC-Motoren/Getriebemotor-EMG30.html

von SNR (Gast)


Lesenswert?

SNR schrieb:
> Quasratur

quadratur

von Johannes G. (gutenberg)


Lesenswert?

Florian schrieb:
> kleines Segway Modell

Je kleiner desto schwieriger, weil es schneller reagieren muss (Pendel) 
- nur damit das gesagt ist.

Die Regelung geht doch ohne die Geschwindigkeit zu kennen, oder nicht? 
Je mehr der Winkel vom Soll abweicht, desto Vollgas.

von SNR (Gast)


Lesenswert?

Johannes G. schrieb:
> Die Regelung geht doch ohne die Geschwindigkeit zu kennen, oder nicht?
> Je mehr der Winkel vom Soll abweicht, desto Vollgas.

Aufrechte Lage, ja.
Position, Nein.

von Florian (Gast)


Lesenswert?

"Zusätzlich sind noch Gyroskope nötig! Anonsten kannst Du eine genaue
Erfassung des Winkels vergessen."

Das würd ich nicht sagen. Ich habe an einer Platine 4 
Beschleunigungssensoren, mit ein bisschen Mathematik lässt sich 
unabhängig von Bechleunigung und Winkelbeschleunigung der Winkel 
errechnen. Hab die Winkelposition über Funk an meinen PC gegeben, und 
dort den Winkel in nem C# Programm anzeigen lassen, sieht sehr gut aus.


"Ich gebe zu bedenken, dass für eine vernünftige Regelung ein Getriebe
mit möglichst wenig Spiel verwendet werden sollte. Anosonsten wirst Du
keine vernünfigen Ergebnisse bekommen."

Ich hab das Getriebe hier, und ich muss sagen, dass es besser ist, als 
es aussieht.


"Möchtest Du aber mit Deinem Gefährt auf der Stelle stehen
bleiben, wirst Du die relative Wegstrecke wissen müssen --> Du brauchst
einen Inkrementalgeber am Motor/Getriebe."

Das weiß ich doch, deshalb bin ich doch hier. ^^


"Das hier ist zwar ein DC-Motor, aber der dürfte gut für sowas geeignet
sein. Inclusive Getriebe und Hallsensoren für eine Quasratur 
Auswertung:"

Sehr guter Tipp!! DC Motor ist perfekt. Danke dafür!


"Die Regelung geht doch ohne die Geschwindigkeit zu kennen, oder nicht?
Je mehr der Winkel vom Soll abweicht, desto Vollgas."

Bereits von SNR beantwortet. Ja, die Regelung geht auch ohne, was aber, 
wenn der Bot z.B. auf einer Schrägen steht, und die Position halten 
soll?

von SNR (Gast)


Lesenswert?

Florian schrieb:
> "Zusätzlich sind noch Gyroskope nötig! Anonsten kannst Du eine genaue
> Erfassung des Winkels vergessen."
>
> Das würd ich nicht sagen. Ich habe an einer Platine 4
> Beschleunigungssensoren, mit ein bisschen Mathematik lässt sich
> unabhängig von Bechleunigung und Winkelbeschleunigung der Winkel
> errechnen. Hab die Winkelposition über Funk an meinen PC gegeben, und
> dort den Winkel in nem C# Programm anzeigen lassen, sieht sehr gut aus.

Im statischen Fall, oder bei langsamen Bewegungen gebe ich Dir recht. 
Aber wie unterscheidest Du zwischen Beschleunigungen die durch die 
Gravitation entsteht (gewollt) und Beschleunigungen die durch die 
Regelung/Vibrationen/Schlagloch o.ä. (nicht gewollt) entsteht? Mit einem 
dementsprechend guten Modell könnte man zwar über die Stellgröße evtl. 
noch was machen, aber mit einem zusätzlichen Gyroskop kannst Du sehr 
dynamisch die Winkeländerung bestimmen und über die 
Beschleunigungssensoren im statischen Fall stützen (absolut).
Wirf mal einen Blick in einen Segway, da wirst Du mindestens 3-6 
Beschleunigungssensoren und nochmal 3-6 Gyros drin finden 
(Redundanz/Sensorfussion)!
Die ganzen Quadkopter haben auch mindestens 3 von jeder Sorte drin 
(X/Y/Z bzw. Roll, Pitch, Yaw).
Hier mal ein kleines Video zu den unterschiedlichen Qualitäten mit/ohne 
Gyro/Kalmanfilter:
http://www.youtube.com/watch?v=IL6LKjiOfvE

Ich weiß nicht wie in den letzten Monaten der Fortschritt bzgl. 
Beschleunigungssensoren oder Gyroskope war, aber wo ich das vor nem Jahr 
gemacht habe waren die Dinger sehr anfällig bzgl. 
Temperaturschwankungen/Versorgungsspannungsswankungen/Langzeitstabilität 
/Fehlausrichtung.

von Reinhard Kern (Gast)


Lesenswert?

Florian schrieb:
> Servomotoren kenn ich bisher nur in der höchsten Kreisklasse. Gibt es
> die überhaupt in so einer Miniaturgröße, wie ich sie brauche?

Die meinte ich nicht, sondern Servos, wie sie in Modellflugzeugen suw. 
verwendet werden - Motor und Getriebe mit Potentiometer als 
Stellungsrückkopplung. Kleiner gehts nicht bei bezahlbarem Aufwand. Ist 
allerdings viele Jahre her, dass mein letztes Modell auf und davon 
geflogen ist.

Gruss Reinhard

von Florian (Gast)


Lesenswert?

SNR schrieb:
>
> Im statischen Fall, oder bei langsamen Bewegungen gebe ich Dir recht.
> Aber wie unterscheidest Du zwischen Beschleunigungen die durch die
> Gravitation entsteht (gewollt) und Beschleunigungen die durch die
> Regelung/Vibrationen/Schlagloch o.ä. (nicht gewollt) entsteht? Mit einem
> dementsprechend guten Modell könnte man zwar über die Stellgröße evtl.
> noch was machen, aber mit einem zusätzlichen Gyroskop kannst Du sehr
> dynamisch die Winkeländerung bestimmen und über die
> Beschleunigungssensoren im statischen Fall stützen (absolut).
> Wirf mal einen Blick in einen Segway, da wirst Du mindestens 3-6
> Beschleunigungssensoren und nochmal 3-6 Gyros drin finden
> (Redundanz/Sensorfussion)!
> Die ganzen Quadkopter haben auch mindestens 3 von jeder Sorte drin
> (X/Y/Z bzw. Roll, Pitch, Yaw).
> Hier mal ein kleines Video zu den unterschiedlichen Qualitäten mit/ohne
> Gyro/Kalmanfilter:
> http://www.youtube.com/watch?v=IL6LKjiOfvE
>
> Ich weiß nicht wie in den letzten Monaten der Fortschritt bzgl.
> Beschleunigungssensoren oder Gyroskope war, aber wo ich das vor nem Jahr
> gemacht habe waren die Dinger sehr anfällig bzgl.
> Temperaturschwankungen/Versorgungsspannungsswankungen/Langzeitstabilität 
/Fehlausrichtung.


Hallo,

ich habe 4 Beschleunigungssensoren, jeweils 2 "an einem Punkt" senkrecht 
zueinander. Diese Doppelsensoren habe ich in einem unterschiedlichem 
Abstand zur Achse gesetzt. Dadurch lässt sich eindeutig bestimmen, in 
welche Richtung der Bot beschleunigt. Diese Richtung ist die gleiche 
Richtung, in der Sicht der Bot ausrichten soll.

Ich habe ein ähnliches Programm, wie in dem Video geschrieben, nur mit 
einer 2-dimensionalen Darstellung, und auch wenn ich an meinem Bot ein 
bisschen schüttel, zeigt mir das Programm einen vernünftigen Winkel an. 
Ich werd das ganze aber um noch ein weiteres Sensorpaar erweitern, damit 
der Winkel noch genauer bestimmt werden kann (Ungenauigkeiten der 
Sensoren müssen mit mehreren Sensoren minimiert werden).


Im Datenblatt (BMA020) ist ein sehr breiter zulässiger Temperaturbereich 
vorhanden, und auch die Eingangsspannung ist sehr flexibel wählbar. Ich 
hab den Anspruch, das ganze ohne Gyros zu realisieren, ich bin 
optimistisch, dass es klappen wird. ;-)



Reinhard Kern schrieb:

> Die meinte ich nicht, sondern Servos, wie sie in Modellflugzeugen suw.
> verwendet werden - Motor und Getriebe mit Potentiometer als
> Stellungsrückkopplung. Kleiner gehts nicht bei bezahlbarem Aufwand. Ist
> allerdings viele Jahre her, dass mein letztes Modell auf und davon
> geflogen ist.
>
> Gruss Reinhard

Ich hab mal bei Conrad vorbeigeschaut und sehe bei den Servos wider das 
mechanische Problem. Der von SNR rausgesuchte Motor dürfte perfekt 
geeignet sein, nur der Preis könnte gut und gerne nur ein viertel so 
hoch sein.... ich geb mir noch bis morgen Bedenkzeit, ob ich zwei davon 
bestellen werde (sind immerhin fast 100 Euro).


Grüße und Danke!!!

von Florian (Gast)


Lesenswert?

... bestellt.


Nochmal, danke an Euch!!!

von Karl H. (kbuchegg)


Lesenswert?

Florian schrieb:

> Ich habe ein ähnliches Programm, wie in dem Video geschrieben, nur mit
> einer 2-dimensionalen Darstellung, und auch wenn ich an meinem Bot ein
> bisschen schüttel, zeigt mir das Programm einen vernünftigen Winkel an.
> Ich werd das ganze aber um noch ein weiteres Sensorpaar erweitern, damit
> der Winkel noch genauer bestimmt werden kann (Ungenauigkeiten der
> Sensoren müssen mit mehreren Sensoren minimiert werden).

Höre ich da richtig raus, dass du bisher das Teil nur in der Hand 
gehalten und gedreht hast?

Wenn ja, dann warte ab, bis du das erste mal fährst :-) Dann ists vorbei 
mit deinen schönen Werten.

von Florian (Gast)


Lesenswert?

Bei den bisherigen 4 Sensoren magst du recht haben (aus ihnen folgt 
matematisch ein eindeutiger Winkel, ohner jeglicher "Optimierung"). Wenn 
ich jedoch 6 Sensoren verwende, kann ich mir kaum vorstellen, dass mit 
einem Optimierugnsverfahren (Stichwort: Summe aller Fehlerquadrate 
minimieren) ein grob falscher Winkel bei rauskommen wird... ich bin sehr 
gespannt! ;-)

von Karl H. (kbuchegg)


Lesenswert?

Sobald sich das Teil bewegt und selbst beschleunigt zeigen die Messwerte 
deiner Beschleunigungsmesser überall hin, nur nicht nach unten.
Egal wieviele du hast.

von Florian (Gast)


Lesenswert?

Und genau das ist ja sogar gewollt!

Bei einer Beschleunigung von zum Beispiel 1 m/s^2 in horizontaler 
Richtung muss er nunmal auch um ein paar Grad in diese Richtung kippen, 
um nicht umzufallen.

von Karl H. (kbuchegg)


Lesenswert?

Florian schrieb:
> Und genau das ist ja sogar gewollt!
>
> Bei einer Beschleunigung von zum Beispiel 1 m/s^2 in horizontaler
> Richtung muss er nunmal auch um ein paar Grad in diese Richtung kippen,
> um nicht umzufallen.

Und wenn er kippt, messen deine Beschleunigungsmesser die dadurch 
verursachten Beschelunigungen, bzw. die Beschelunigungen, die durch 
deine Motorbewegungen verursacht wurden.

Aber ich bins leid. Mach einfach.

von Florian (Gast)


Lesenswert?

Ich weiß doch, dass du es gut meinst, und danke dir für die Antworten.


>Und wenn er kippt, messen deine Beschleunigungsmesser die dadurch
>verursachten Beschelunigungen, bzw. die Beschelunigungen, die durch
>deine Motorbewegungen verursacht wurden.

Die Drehbeschleunigung kann mathematisch rausgerechnet werden (durch 
unterschiedliche Radien der Sensoren). Die horizontale und vertikale 
Beschleunigung ist auf den Standpunkt der Räder bezogen.

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.