Ruderweg Messung mit Arduino

Hi zusammen,

ich hoffe das ist jetzt kein Frevel:
Ich habe Eckehards sketch auf GY521 Sensoren angepasst.
(meine Erfahrungen zu den Sensoren siehe EWD-thread).


das Wesentliche

- alle Lib-Einbindungen nach "main_includes.h" ausgelagert
- kein sensorspezifisches Coding in main-app
- Bibliothek "imu.h" mit Methoden zum Auslesen von IMU-Breakout boards; Änderungen von Sensor-HW muessen nur dort vorgenommen werden
- Initialisierung Sensor: .init()
- Auslesen Raw Werte: .getRawAccValues()
- Auslesen Winkel: .getAngleValues()
- Auslesen Winkel (nach TP Filterung): .getfilteredAngleValues()
- Auslesen Winkel (nach DEMA Filterung): .getDEMAfilteredAngleValues()
- imu.h mit Unterstützung GY521 (höhere Auflösung / 16bit)
- Kalibrierwerte in Struktur definiert
- Mittelwertbildung der Lesewerte über Parameter "lcdRefreshRate"
- kleinere Formatierungs Anpassungen wg float Darstellung


Gruesse
Udo

Anhang anzeigen ecknova.zip.txt
 

Eckehard

User
Hallo Zusammen,

ich bin begeistert....

@Udo:
Danke für die Bereitstellung hier im Forum. Das ist bestimmt für den einen oder anderen sehr interessant. Ich hab den Code erstmal nur überflogen, muss mir den aber mal genauer anschauen, damit ich lerne wie man es richtig macht ;-) .
Gefällt mir sehr....

@ Hans-Peter:
Obercool, Du hast PN...

Grüße an alle...

Eckehard
 

kalle123

User
Hi Udo.

Hab den post im EWD thread gesehen. Auch die Sache mit dem Kondensator auf dem Sensor board.

Hab ja mal etwas mit dem MMA8451 'gespielt'. Aber inwieweit der GY521 da noch was bringt? Muss mal schauen, ob ich irgendwo hier noch 2 davon finde, dann mach ich mal ne fliegenden Aufbau.

Gruß KH
 

RayX

User
Hallo Udo,

Hast du in dem geänderten Sketch auch ein Oled als Display vorgesehen so das man es auch als kleines Kästchen ohne Kabel als Einzelsensor verwenden kann ?
oder nur die große LCD Variante wo beide Sensoren über kabel mit eine Zentral box verbunden sind ?
 
Komplettsystem

Komplettsystem

Ich verfolge euren Thread schon länger und bin gerade dabei im Zuge eines Master-Projekts ein Komplettsystem für die Vermessung von Modellen zu entwickeln.
Dabei nutze ich ebenfalls die MMA8451 für die Ruderwegmessung. Außerdem können die Sensoren in einen Halter für die EWD-Messung geschraubt werden. Dadurch können die Sensoren sowohl für die Ruderwinkel als auch die EWD-Messung genutzt werden.
Zusätzlich können 3 Waagen an das System angeschlossen werden um den Schwerpunkt zu berechnen. Dafür muss dann nur das Modell mit dem Fahrwerk auf die Waagen gestellt werden und die Entfernungen gemessen werden zwischen den Waagen und der Nasenleiste.
Alle Sensoren werden an eine Kommunikationsbox angeschlossen die über Bluetooth die Daten an eine Android-App sendet.
Als kleinen Wunsch möchte ich die Winkel noch in einem Liniendiagramm darstellen, damit man die Abweichungen über den kompletten Servoweg grafisch sehen kann.
Bis das Projekt allerdings fertig gestellt ist, wird es wohl noch 2-3Monate dauern.
 

Robinhood

Vereinsmitglied
Krass :eek: Die eierlegende Wollmilchsau. Leiser Wunsch: Wenn Du schon dabei bist, auch an fahrwerkslose Modelle denken und iOS.
 
@Eckehard
... bin auch kein Programmierer und habe mich noch nicht so lange mit Ardu Coding beschäftigt, bis vor kurzem immer nur fertige sketche geflasht.
Ich wollte nur etwas "modulares", quasi als POC für ein anderes Projekt, s.u.

@master1866
... an fast der gleichen Sache bin ich auch dran, da mich die vielen Einzellösungen etwas "störten" und man mit einer etwas intelligenteren "Headunit" weniger Gesamt-Arbeitsaufwand hat und sich das im Grunde kostenneutral ggü. den Einzelprojekten umsetzen lässt.
Läuft bei mir unter der Bezeichnung "3in1" (-;
Ich werde allerdings klassisch auf einem Mega mit aufgesetzem 2.8TFT touch setzen.

Intern werde ich 5 IMUs verwalten, um einen HW Umbau zwischen EWD & Ruderausschlag Messung zu umgehen.
Da man ja weiss in welchem menue man sich gerade befindet kann man immer die entsprechenden Cal-Werte "ziehen".
Bei den Preisen (zumindestens für die GY521) ist die Anschaffung kein Thema, weshalb bevorzugt du den Umbau ?

Hast du denn eine Quelle für "günstige" 8451?
Vor einiger Zeit bekam ich nur die 8452er.

Dauert bei mir aber bestimmt auch noch 5..8 Wochen.
Die ganzen 3D Sachen macht zum Glück ein Kumpel.


Grüsse
Udo
 
@robinhood:
Fahrwerklose Modelle sind eigentlich fast genauso zu nutzen, da das System auch mit nur 2 Waagen funktioniert.
iOS wird es erstmal leider nicht geben, da für die Bluetooth-Kommunikation ein spezieller Bluetooth-Stack von Apple gekauft werden muss. Außerdem braucht man einen Entwickler-Account (89Euro pro Jahr) und ein Apple-Rechner für die Programmierung.

Ich bin selber iOS Nutzer aber diese ganzen Kosten lohnen sich nicht wirklich, deshalb Android. Außerdem ist der Marktanteil von iOS gegenüber Android leider eher gering (80% Android vs. 14% Apple, Stand Sept. 2019).


Der Umbau von EWD zu Ruderwinkel sind nur 4 Schrauben. Ist keine Arbeit und reduziert den Hardware-Aufwand. Hauptanwendung ist ja auch eher der Ruderwinkel. Wie häufig misst man wirklich die EWD. Jedes Modell 1-2x und ansonsten braucht man doch eher die Ruderwinkelmessung.
Die 8451 habe ich alle bei Reichelt gekauft. Ich glaube knapp 9 Euro pro Stück.

Ich hatte auch erst vor, das System mit einem kleinen Display zu machen, hab mich dann aber für eine App entschieden. Display finde ich schwierig was die Eingabe der Daten angeht. Ist manchmal ein bißchen klein alles. Außerdem passt eine App zum Studiengang (Master "mobile Anwendungen").
Auf die Dauer sollen noch ein paar andere Funktionen implementiert werden wie beispielsweise Parameter-Interface für HOTT-Sensoren (programmiere eigene Strom-Sensoren für Hott), Servo-Tester und vielleicht noch Strom/Spannungs-/Leistungsmessung. Das ist aber alles noch in weiter Zukunft, aber hardwaretechnisch schonmal vorbereitet. ;)
 
Das 2 in ein oder 3 in ein und Android App mit Blue Tooth habe ich schon länger, bin aufgehört hiermit weil man abhängig ist von unterschieden in Android versionen und ein fremd App instalieren muss.
Das wiegen habe ich jetzt laufen unter eine angepaste software, basierend auf die von Nightflyer66 mit ESP8266. Weiterhin habe ich die möglichkeit um zu wählen aus 2 x 5 Kg, 3 x 5 Kg und 2 x 20 Kg + 1 von 5 Kg.
Auch die berechnung habe ich angepast bzw. hinzugefücht für Flugzeug mit heckfahrwerk ( 2 bein fahrwerk ) und 3 bein fahrwerk. (jet)
Die Integration von Rudder winkel messen, dauert nog einige tagen bzw. wochen.
Foto's von Android App

http://www.rc-network.de/forum/showthread.php/43402-Bildertest/page54 post#803.

Grüssen
Koen.
 

Robinhood

Vereinsmitglied
@Master1866 (dem Unbekannten ;))
Wenn Du etwas geschicktes Crowdfunding betreibst, bekommst Du die Kosten für einen Apple-Account locker rein. Und einen Mac oder ein Macbook lässt sich in Studentenkreisen sicher günstig auftreiben ;) Apfel-Jünger sind die Netteren (duckundflücht :D)
 

kalle123

User
Hallo Udo,

zwei GY521 hab ich noch hier. Aber wie sind die angeschlossen? Ist der INT mit dabei? Rest ist ja klar Vcc, Gnd, SDA, SCL, AD0.

cu KH
 

kalle123

User
Hi Udo, sieht gut aus applaus.gif

Mit deinem Coding kann ich 'alter Sack' (beginnende Demenz ;)) nicht mithalten.

IMG_20200126_145615.jpg

Hab mal 'on the fly' aufgebaut.

Aber gib mir bitte mal ein paar Infos hierzu.
Code:
[SIZE=1]void getImuCalValues(int num){												// read calibration values

  if(READ_EEPROM) {  
	  Serial.println("get eeprom cal data");
  //Eeprom::getIMUValues(num);
  }
  else {
	 Serial.println("get coded cal data");
	// 		in case you dont want to use eeprom stored values:
	// 		define the calibration sets you need for imu sensors 0-n here:
		//   		{Xoff, Yoff, Zoff,   Xgain, 		Ygain, 		Zgain	, 	maxmin dummies}

	ImuCAL[0] =		{   0,    0,    0, 1.000000000, 1.000000000, 1.000000000,	1,-1,1,-1,1,-1};
	ImuCAL[1] =		{   0,    0,    0, 1.000000000, 1.000000000, 1.000000000,	1,-1,1,-1,1,-1};
	ImuCAL[2] =		{   0,    0,    0, 1.000000000, 1.000000000, 1.000000000,	1,-1,1,-1,1,-1};
	ImuCAL[3] =		{   0,    0,    0, 1.000000000, 1.000000000, 1.000000000,	1,-1,1,-1,1,-1};
	ImuCAL[4] =		{   0,    0,    0, 1.000000000, 1.000000000, 1.000000000,	1,-1,1,-1,1,-1};
  }
}[/SIZE]

Hab mich um Sensorabgleich beim MPU6050 bisher noch nicht gekümmert.

Du kannst die Abgleich-werte im Sensor eeprom speichern und dann abrufen?! Hast das aber auskommentiert.

Und dann 4! ImuCAL Blocks 'händisch'? Und die maxmin dummies sagen mir da garnix.

Aber erst mal, der Wechsel bei Eckehards Version von den ADXL 345 auf MPU6050 dürfte sich für den, der das schon nach gebaut hat, wohl lohnen!

Gruß KH

PS. Den Wechsel auf 100nF werde ich auch noch machen ...
 

RayX

User
Mein Favorit ist diese Version ohne Kabel und ohne Bluetooth, das Teil ist für EWD und Ruderweg Messung geeignet und sehr leicht, Akku und Ladegerät sind auch integriert und alles zum Klipsen.
Dazu noch super verarbeitet.
Das Gerät habe ich letztes Jahr mal auf einer Modellbau Börse gekauft.

IMG_20191028_201430 verkleinert .jpg
 

kalle123

User
Mein Favorit ist diese Version ohne Kabel und ohne Bluetooth, das Teil ist für EWD und Ruderweg Messung geeignet und sehr leicht, Akku und Ladegerät sind auch integriert und alles zum Klipsen.
Dazu noch super verarbeitet.
Das Gerät habe ich letztes Jahr mal auf einer Modellbau Börse gekauft.

Schön, und was ist da drin? Sensor, Controller, etc. ?

cu KH
 

RayX

User
Sorry das dir das nicht gefällt, aber die kleinen Kästchen sind fest verschlossen extra kaputt machen möchte ich sie verständlicher weise nicht, ich habe sie als fertig gerät von einem anderen Modellbauer gekauft.
Selbst kann ich sowas nicht machen und werde mich hüten irgendwo dran rum zu fummeln, denn ich kann es auch nicht reparieren.
Beim plaudern meinte er das er die Teile selbst konstruiert und gebaut hat und manchmal auch den ein oder anderen Prototypen in Ebay verkauft, er ändert wohl dauernd irgendwas um es weiter zu optimieren.
Dieses habe ich auch von dem selben gekauft, das ist wohl der Vorgänger version wie er sagte, auch mit Akku und Ladegerät integriert und sehr klein.
Vielleicht hilft es dem ein oder anderen als Idee zum selber machen


IMG_20191028_195908 verkleinert .jpg
 

kalle123

User
Es dreht sich mir nicht um das Gefallen, sondern um so was selbst zu machen und ggfs. auch bei Interesse offen zu legen. Darum hab ich damals auch diesen thread gestartet.

Was mir da 'aufgestossen' ist und mich motiviert hatte, war diese Bild.

http://www.rc-network.de/forum/showthread.php/624334-Ruderweg-Messung-mit-Arduino?p=4326132&viewfull=1#post4326132


Da wurden/werden Geräte kommerziell vertrieben, aber was/wie die messen, wird nicht gekannt gegeben. Ähnlich verhält es sich m.E. bei den CG scales.

Aber das nur am Rande. Was mich wirklich mal interessieren würde (klar, dass du die Kistchen nicht auf-knacken willst, ich frag ja auch nicht, was du bezahlt hast ;)) wie gut sind die Messungen?

Klemm die Messgeber doch mal nebeneinander auf ein Lineal o.ä., fahr mal 0° - 90° und zeichne das Messerergebnis mit nem Video auf. Wie stark sind die Abweichungen beider Sensoren, wie gut wird 0° wieder erreicht?

Wie gut ist der Sensorabgleich erfolgt? Beim ADXL345 und beim MMA 845x ist so ein Abgleich nicht so ohne. Wie es beim GY-521 ausschaut, weiß ich momentan noch nicht.

OK. Deins da sieht schön aus, nur was steckt da hinter? Meine Messteile sehen nicht so toll aus, aber ich fang jetzt nicht noch ein neues Hobby an (3-D Drucker), nur um ne 'tolle' Verpackung zu kriegen.

Gruß KH
 
Hi Kalle,

sorry, wenn ich durch das Coding etwas Verwirrung stifte.
Hatte oben ja bereits ein wenig erwähnt:
Das hier dient als "proof of concept" für eine "3in1" Lösung.


(1) EEprom:
In dieser Ausführung werden die Werte noch händisch eingetragen.
Die Bibliothek ermöglicht es mir "woanders" auch mit dem EEprom zu arbeiten.
Das macht aber eigentlich nur Sinn, wenn man auch eine Kalibrierroutine direkt mit rein-coded.

Meine Lösung wird ja auf ein günstiges LCD-Touch mit Mega2560 hinauslaufen.
Da ist dann eine Kalibrierroutine drin & die Werte werden danach ins EEprom abgelegt, funzt bereits.
Die Extremwerte der IMUs werden nur dort ermittelt, in der Struktur zwischengespeichert und für die Kalkulation der CAL-Werte genutzt.
Im jetzigen sketch sind es eben nur Platzhalter.


(2)
"Und dann 4! ImuCAL Blocks"

na ja, eigentlich 5 (-;
2x Flap IMU für den Ruderweg
1x Flächen-IMU für EWD Messung
1x Ltw IMU für Standard LTW (EWD Messung)
1x LTW IMU für V-Leitwerks EWD Messung

bei den Preisen der GY521 rüste ich nicht um.



Wie gesagt, die Bibliothek habe ich so gestaltet, dass sie auch für weitere Applikationen einfach zu portieren ist.

Grüsse
Udo


hier mal ein preview zur Rudermessung
Mit etwas Glück bringt mir ein Kumpel heute den Prototyp für's Gehäuse

Alles erstmal "beta 0.1"

throw.jpg
 
Ansicht hell / dunkel umschalten
Oben Unten