Benötige Hilfe bei Auswahl eines Gyroskopsensors und Geschwindigkeitsmessers

Hallo,

erstmal vielen Dank für die Rückmeldungen und sorry wegen der verzögerten Rückmeldung.

@ Uwefed: Mein Vorhaben bzw. der Grund warum ich mich hier nach Gyroskopsensoren und Geschwindigkeitsmessern informiere ist ich möchte mir eine Art
eigenen Segway bauen. Ich habe mich diesbezüglich mit der Technik und dem Aufbau eines Segways beschäftigt und möchte nun
Gyroskopsensoren und Geschwindigkeitsmesser näher kennenlernen, da ohne diese der Segway Bau nicht möglich ist. Wir ein langer Weg aber ich wollte schon immer mal die Technik eines Segways selber basteln.

@ Megaionstorm: Danke für den Link. Ich habe mir das Produkt angesehen (auch die Datenblätter). Ich muss jedoch zugeben das ich mir nicht sicher bin ob ich alles verstanden habe, da mein Englisch nicht das allerbeste ist. Ich würde mir die Platine jetzt einfach bestellen und Probieren wie sie
funktioniert, Arduino Sketch und Co. sind ja sogar auch dabei!

Viele Grüße,
Tobi

Tobias93:
@ Megaionstorm: Danke für den Link. Ich habe mir das Produkt angesehen (auch die Datenblätter). Ich muss jedoch zugeben das ich mir nicht sicher bin ob ich alles verstanden habe, da mein Englisch nicht das allerbeste ist. Ich würde mir die Platine jetzt einfach bestellen und Probieren wie sie
funktioniert, Arduino Sketch und Co. sind ja sogar auch dabei!

Mit dem MPU6050 machst Du nichts falsch, der ist von der Genauigkeit allererste Sahne. Wird auch immer öfter für QuadCopter verwendet und erfreut sich dort steigender Beliebtheit.
Ich hab auch zwei davon (allerdings die Flyduino 9DOF Platine) und bin begeistert.

Für den (Nach)Bau eines Segways, kannst Du die Geschwindigkeit doch ganz einfach messen.
Einfach an den Rädern!
Eventuell an Beiden.

Dazu kannst Du z.B. einen Reed-Kontakt nehmen.
Je nach Drehzahl müsste das hinhauen.
Dann zählst Du einfach die Umdrehungen pro Zeiteinheit und kriegt über den Abrollumfang Deine Geschwindigkeit am Rad.

In Verbindung mit Beschleunigungssensoren kannst Du so schon sehr genau ermitteln, wie das 2Rad gerade steht bzw fährt.

Bin auf jeden Fall sehr gespannt auf das Projekt!

hey,

ja das mit der Geschwindigkeit hatte ich mir auch schon überlegt über z.B. Reedkontakte oder einfach Lochscheibe zu machen. Hab aber mein Hauptaugenmerk momentan erstmal noch auf den Gyroskopsensoren und deren Beschaffung. Wisst ihr ob es diese Sensoren Platine auch für weniger als die bei ebay und amazon angezeigten Preise von ca. 80 € gibt? Bei dem Link aus dem oberen Post gibt es das Produkt leider nicht mehr zu kaufen. Da hat es nur 11€ gekostet.

@MaFu: Wo hast du dir deine Platine gekauft?

Gruß,
Tobi

Ich find sogar welche für 7

Versand dauert dann halt etwa 2-3 Wochen.
Kaufe meinen Kram immer da. Sehe das nicht ein, für genau das gleiche Teil bei nem Zwischenhändler 20€ mehr oder so zu bezahlen.

Zollfreigrenze liegt bei um 20-22€

Einen tanzenden Controller nach Deinen Wünschen, gibt es schon als Komplettpaket, wurde auch hier im Forum ausgibig besprochen.
http://www.kickstarter.com/projects/tkjelectronics/balanduino-balancing-robot-kit

EDIT : Hier noch der Forenlink und Gyro Tutorial:
http://arduino.cc/forum/index.php/topic,58048.0.html

Tobias93:
hey,

ja das mit der Geschwindigkeit hatte ich mir auch schon überlegt über z.B. Reedkontakte oder einfach Lochscheibe zu machen. Hab aber mein Hauptaugenmerk momentan erstmal noch auf den Gyroskopsensoren und deren Beschaffung. Wisst ihr ob es diese Sensoren Platine auch für weniger als die bei ebay und amazon angezeigten Preise von ca. 80 € gibt? Bei dem Link aus dem oberen Post gibt es das Produkt leider nicht mehr zu kaufen. Da hat es nur 11€ gekostet.

@MaFu: Wo hast du dir deine Platine gekauft?

Gruß,
Tobi

Ich hab die hier: http://flyduino.net/Flyduino-9DOF-IMU-MPU6050-HMC5883l
Ich wollte halt welche mit Magnetometer on Board, sind leider aktuell vergriffen.
Als reine MPU6050 dürfte das hier eines der günstigsten sein und ist auch verfügbar: http://flyduino.net/MPU6050-Break-Out-onboard-33V-reg
Den Shop kann ich übrigens nur wärmstens empfehlen, super freundlich und 1A Support.

Noch billiger gib es den hier, da kannst Du dir direkt einen 2. als Ersatzteil mitbestellen !

http://www.ebay.de/itm/New-MPU-6050-3-Axis-Gyroscope-Acce-lerometer-Module-3V-5V-For-Arduino-ER99-/111043665296?pt=UK_ToysGames_RadioControlled_JN&hash=item19dab7dd90#ht_4805wt_1078

Hey super danke für die vielen Links. Ich schau gleich durch und bestelle, danke.

Gruß,
Tobi

Hi

Gibts schon neue Infos?
Wie weit bist Du mittlerweile?

Die Idee hat mich doch etwas gepackt.

Hey,

neue Infos gibt es nicht direkt. Ich hänge immer noch an dem Problem das ich einem Gyroskopsensor suche der mir seinen aktuellen Winkelwert als Analogwert unabhängig von der Zeit ausgibt... finde einfach keinen. Bei allen de ich bis jetzt gefunden habe spielte der Zeitfaktor eine Rolle.

Gruß Tobi

Warum willst Du unbedingt eine analoge Ausgabe?

hey,

ich fixiere mich nicht auf eine analoge Ausgabe des Sensors. Gern kann der Sensor auch den Winkelwert als digitalWert über z.B. I2C an den Arduino ausgeben. Das was mir wichtig ist ist das der Wert der vom Sensor kommt (analog oder digital egal) muss dem aktuellen Winkel entsprechen in dem sich das Board zur Erde befindet. Und ein solches Sensorboard habe ich bisher nicht gefunden, zumindest nichts was ich bezahlen kann.
Das ist zum Beispiel so ein Kandidat der für meine Zwecke gehen würde. Kommuniziert sogar über SPI:

http://www.reichelt.de/ICs-ADC-ADXRS-/ADIS-16210/3/index.html?;ACTION=3;LA=446;ARTICLE=113569;GROUPID=5458;artnr=ADIS+16210

Der ist halt nur zu teuer. Den Sensor den ich aktuell verwende der gibt mir nur die Winkeländerung in einer Bestimmten Zeit aus. Also
Messung 1: Winkel X in Zeit X
Messung 2: Winkel X +z.B. 5° in Zeit X+ z.B 1ms
Also gibt mir das Board in diesem Fall z.B. 5° aus. Wenn das Board nicht bewegt wird kommt folglich 0°. Aber das ist nicht das was ich brauche. Ich brauche einen Winkelwert ohne den Zeitfaktor.

Gruß,
Tobi

Ein Gyroskop kann dir nur Winkeländerungen ausgeben - genau wie ein Beschleunigungsmesser nur Geschwindigkeitsänderungen (und keine absuluten Geschindigkeiten!) erkennen kann.
Du kannst aber relativ einfach mit einem 3-Achs-Beschleunigungsmesser die Erdbeschleunigung in jeder Achse messen. Ist das Board eben, dann ist die Beschleunigung az = 1 g in Z-Achse, die anderen Achsen ay = 0 und ax = 0. Wenn du das Board auf der Y-Achse um ß neigst, wird ax = sin ß * 1g, entsprechend az = cos ß * 1g; ay = 0. Bei einer Neigung auf der X-Achse um ß entsprechend auch ay = sin ß * 1g und wieder az = cos ß * 1g; ax = 0.

Skizze: Neigung auf X-Achse (Geht durch die Zeichenebene durch!)

Accel.png

Tobias93:
hey,

ich fixiere mich nicht auf eine analoge Ausgabe des Sensors. Gern kann der Sensor auch den Winkelwert als digitalWert über z.B. I2C an den Arduino ausgeben. Das was mir wichtig ist ist das der Wert der vom Sensor kommt (analog oder digital egal) muss dem aktuellen Winkel entsprechen in dem sich das Board zur Erde befindet. Und ein solches Sensorboard habe ich bisher nicht gefunden, zumindest nichts was ich bezahlen kann.
Das ist zum Beispiel so ein Kandidat der für meine Zwecke gehen würde. Kommuniziert sogar über SPI:

http://www.reichelt.de/ICs-ADC-ADXRS-/ADIS-16210/3/index.html?;ACTION=3;LA=446;ARTICLE=113569;GROUPID=5458;artnr=ADIS+16210

Der ist halt nur zu teuer. Den Sensor den ich aktuell verwende der gibt mir nur die Winkeländerung in einer Bestimmten Zeit aus. Also
Messung 1: Winkel X in Zeit X
Messung 2: Winkel X +z.B. 5° in Zeit X+ z.B 1ms
Also gibt mir das Board in diesem Fall z.B. 5° aus. Wenn das Board nicht bewegt wird kommt folglich 0°. Aber das ist nicht das was ich brauche. Ich brauche einen Winkelwert ohne den Zeitfaktor.

Gruß,
Tobi

Ist doch überhaupt kein Problem. Wenn Du ein 6050 Board nimmst, hast Du mit der FreeIMU Bibliothek (varesano.net -) Funktionen, die Dir die absolute Position ausgeben.
Bei einem Board mit zusätzlichem Magnetometer wie dem Flyduino 9DOF (http://flyduino.net/Flyduino-9DOF-IMU-MPU6050-HMC5883l) sogar in allen drei Achsen. Ich bin von der Kombination absolut begeistert. Und die digitale Ausgabe ist durch den 16Bit AD-Wandler des 6050 sogar wesentlich präziser als bei einer analogen Ausgabe.

Hey Manfred,

danke für die Rückmeldung. Ich habe versicht mit der Linrary zu arbeiten. Welche Funktionen sind das? Mein Problem ist das ich auf dem Gebiet noch nicht so fit bin deswegen habe ich mir Beispielcodes runtergeladen und die Versicht zu "analysieren" um sie dann auch zu verstehen und für meine Zwecke abämdern zu können. Jetzt habe ich schon einen andern Beispielcode ausprobiert aber die Werte die ich aus dem Serial Monitor ablesen kann geben mir Rätsel auf. Eine Frage vorab: ich habe die Pins des Boards direkt auf die Pins am Arduino gesteckt und den Code aufgespielt. Ist das ok oder muss erst noch was an dem Board geändert werden... Offsets... ?
Hast du Erfahrung mit dem Board und vielleicht einen Sketch der Funktioniert damit ich eine Funktionierende Vorlage habe?

Gruß,
Tobi

Tobias93:
Ich habe versicht mit der Linrary zu arbeiten. Welche Funktionen sind das?

Das Beispiel "FreeIMU_yaw_pitch_roll", welches bei der Lib dabei ist, sollte von der Ausgabe genau Deinen Wünschen entsprechen.

Eine Frage vorab: ich habe die Pins des Boards direkt auf die Pins am Arduino gesteckt und den Code aufgespielt. Ist das ok oder muss erst noch was an dem Board geändert werden... Offsets... ?

Ehrlich gesagt versteh ich die Frage jetzt nicht so ganz. Was meinst Du damit?

Hey Manfred,

im Nachhinein liest sich der Satz wirklich etwas bescheuert. Ich hole jetzt einfach mal weit aus und hoffe das ich alle Punkte aufzähle. Ich habe das MPU 6050 Sensor Board von Invensense. Ist die Library die du genannt hast auch für dieses Board geeignet?
Das ist es:

http://www.google.de/imgres?q=mpu6050+arduino&sa=X&tbm=isch&tbnid=s6DNz4zsaXGa8M:&imgrefurl=http://www.technolabsz.com/2012/07/mpu-6050-interfacing-with-arduino.html&docid=V-ifMeX0Ly8DAM&imgurl=http://1.bp.blogspot.com/-7wbF7MetGxs/T_meUU0x8XI/AAAAAAAAAXM/v2HeJHo8U9k/s1600/6050.JPG&w=547&h=577&ei=fZGrUaruJoXitQaY0IH4Bg&zoom=1&biw=1024&bih=672

Wenn ja, dann würde ich nun den Sketch aus der Library den du unten geschrieben hast in den Arduino spielen. Jetzt schließe ich die Ports des Boards an die zugehörigen des Arduinos an (SCL an SCL usw) dann öffne ich den Serial Monitor und bekomme Winkelwerte ausgegeben. Winkelwerte für alle 3 Achsen oder?

Wenn ich das Board flach auf den Tisch lege müsste dann einer der angezeigten Winkelwerte (z.B. X-Achse) 0 sein.

Das ist das was ich brauche. Verstehst du mein Problem jetzt besser?

Gruß,
Tobi

Alles klar.

Nachdem es sich ja um die gleiche MPU handelt, sollte es eigentlich keine Probleme mit der Lib geben.
Und ja, das Beispiel würde genau so funktionieren.

Hey,

ok danke für die Rückmeldung. Ich werde die Library und das Beispiel testen.

Gruß,
Tobi