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
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
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?
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
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.
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.
"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?
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.
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
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!!!
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.
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! ;-)
Sobald sich das Teil bewegt und selbst beschleunigt zeigen die Messwerte
deiner Beschleunigungsmesser überall hin, nur nicht nach unten.
Egal wieviele du hast.
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.
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.
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.