Ruderweg Messung mit Arduino

Eckehard

User
Hallo Kalle,

ja,alles klar...bin bei Dir....

Mir gehts hier nur um den, wenn auch klitzekleinen aber manchmal entscheidenden Unterschied.... der dem Arduino Anfänger (also nicht Dich!) u.U. mal Frust bereiten kann.... was ich gerne verhindern möchte.....

Bei den ProMini ist es ja einfacher... Ich verlasse mich da lieber auf die klaren Angaben, lies bitte einmal z.B.

https://store.arduino.cc/usa/arduino-pro-mini
dann Tab "Dokumentation", Absatz "Power"

Die 4NiXX Zellen klemmst Du doch beim ProMini an Pin "RAW" an, oder?
Ist das eigentlich ein 3,3/8MHz oder 5/16MHz Version, die Du einsetzt (mit 4xNiXX Zellen).....?

Sorry, den Hinweis auf etwas Faules im Bild verstehe ich grad nicht....

Grüße
Eckehard
 

kalle123

User
Sorry, den Hinweis auf etwas Faules im Bild verstehe ich grad nicht....

Hallo Eckehard.

Hab zu lange u.a. Service/Inbetriebnahme Bahn- und Bandzugmessung in der Papier- und Metallindustrie nach System Pressductor gemacht.
Und da bist du dann halt auf Sinus und Cosinus geeicht.

Und wie ich das Video von diesem Teil hier im Forum gesehen hab, bin ich über diese Bild fast "automatisch" gestolpert.

tGrvi5Ml.png


Du siehst in der Anzeige Winkel 48°, Länge der Hypotenuse 51 mm und in dem kleinen Bildchen rechts von der Anzeige wird ein senkrechtes Mass in mm angegeben. Nur, Eckehard, das sind keine 41 mm, sondern 38 mm. Die Anleitung zum Gerät schwieg dazu ....

Und dann kamen noch ein paar Sprüche und ich hab mich dran gesetzt, was Eigenes anzufangen.... halt mit der Möglichkeit, zwischen Messung Gegenkathete - Sekante umzuschalten. Wobei wohl die übliche Messmethode im Modellbau die Angabe des Wertes Gegenkathete ist und ich Sekante nicht brauche/nutze.

Oder einfacher Eckehard, schau den und den nachfolgenden Beitrag hier

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

Grüße KH
 

Eckehard

User
Hallo Kalle,

ahhh, klasse,ich erinnere mich an die Diskusion mit Steffen.... find ich klasse, das er als Segelflieger das Detail hier eingebracht hatte.. Würd mich interessieren, ob Steffen die Ruderausschläge auch mit dem Arduino RC Meter kontrolliert... :)....

Danke
Grüße
Eckehard
 

Steffen

User
ahhh, klasse,ich erinnere mich an die Diskusion mit Steffen.... find ich klasse, das er als Segelflieger das Detail hier eingebracht hatte.. Würd mich interessieren, ob Steffen die Ruderausschläge auch mit dem Arduino RC Meter kontrolliert... :)....
Nö, weil ich kein Arduino-RC Meter habe ;-)

Im Ernst: wenn es um die Kontrollen in der Wartung geht, mache ich das natürlich nach Wartungshandbuch. Und ich habe mal eine digitale Wasserwaage wie in #47 gekauft, die kann das, da muss ich nicht Projekt 378 auf die Abarbeitungsliste setzen ;-)

hier stehen noch ein Wuchtstand, ein neue g-Messer als Lichtbalken, die neue Kunstflugdatenerfassungsanlage, eine neues Hauptrad von Beringer, eine endgültigs RFIDBID2Junsi, ein BLE-Knüppeltaster für XCSoar, etc. pp. auf dem Arbeitsplan ;-)

Feine Grüße,

Steffen
 
Ich versuche jetzt auch ein Ruderweg Messung zu bauen.
Benutzt wirdein UNO mit https://nl.aliexpress.com/item/1PCS...id=7422b4f2-2dee-40b8-81cb-27a306125e83&tpp=1.

Weil ich noch ein Newbie bin, versuche ich erst die das Keypad am laufen zu bekommen mit das Program von Kalle123 post 190 KeypadShield_Button_Values.ino.

Wenn ich das Program hochlade dann steht am LCD :

Push the buttons
1023 NONE

wenn Ich select drucke :
Push the buttons
722 NONE

wenn Ich Left drucke :
Push the buttons
480 NONE

wenn Ich Up drucke :
Mapping Correct?
132 btnDOWN

wenn Ich down drucke :
Push the buttons
308 NONE

wenn Ich right drucke :
Mapping correct?
0 btnRight

wenn Ich rst drucke :
Passiert nichts

Ich weiss nicht ganz genau was ich mit dieses Program anfangen sollte aber ich glaibe es funtionieert so nicht mit dass Messungsprogram.

wie soll ich weiter machen?

Gruss
 

kalle123

User
Ich weiss nicht ganz genau was ich mit dieses Program anfangen sollte aber ich glaibe es funtionieert so nicht mit dass Messungsprogram.


Das sind die Werte die von DEINEN keypadshield generiert werden, wenn du die entsprechende Taste drückst.

1023 NONE
722 select
480 Left
132 Up
308 down
0 right

Der Teil in dem Programm meine posts #190 musst du jetzt anpassen!

if (adc_key_in > 1000) return btnNONE;
if (adc_key_in < 20) return btnRIGHT;
if (adc_key_in < 95) return btnUP;
if (adc_key_in < 160) return btnDOWN ;
if (adc_key_in < 200) return btnLEFT;
if (adc_key_in < 230) return btnSELECT;


Fängst von unten an.

RIGHT geht ja schon mal.

Nächster Wert in DEINER Aufzählung ist 132. Also änderst du die 95 in 140 im Programm. Nächster Wert bei dir ist 308 für DOWN. Also die 160 ändern in 320 usw. Und schon funktioniert das .... ;)

Da du wohl Eckehards Version bauen wirst, alles Weiter durch Ihn dann.

Gruß KH
 
Hallo KH,

Danke fur das Antwort.
Heutemorgen habe ich es gleich versucht (konnte nicht warten) und jetzt functionieert es.

Heute abend fang ich an um die Kommunication zu testen und danach die kalibrirung.

Gruss,

Jeroen
 

kalle123

User
Hallo Jeroen.

Schön, dass das jetzt funktioniert. ;)

Wenn weitere Fragen da sind, einfach hier posten.

NUR, gib auch möglichst umfangreiche Information, welche Programme (sketche) du nimmst, welche Hardware du da hast usw. usw.

Je mehr Info du gibst, desto einfacher wird es, dir zu helfen. Bilder sind auch nicht schlecht!

Gruß KH
 

Eckehard

User
Hi,

zu....
Ich weiss nicht ganz genau was ich mit dieses Program anfangen sollte aber ich glaibe es funtionieert so nicht mit dass Messungsprogram.

Der Sketch KeypadShield_Button_Values.ino macht folgendes:

1. Drückt man eine Taste X am KeypadShield, wird der Wert am Analog Eingang angezeigt, der der Taste X zugeordnet ist.
Man sollte jetzt den Wert notieren

2. Weiterhin sollte man prüfen, ob die "gemappte" Bezeichnung zur gedrückten Taste passt (Mapping Correct?)

Drückt man z.B. die taste "Right", und die Anzeige zeigt:

Mapping Correct?
132 btnDOWN

dann passt das Mapping in der Funktion read_LCD_buttons nicht:

if (adc_key_in < 50) return btnRIGHT;

Code:
int read_LCD_buttons()
{
  // read value on adc input A0
  adc_key_in = analogRead(0);
  /**********************************************************/
  // make sure pushed button on keypadshield equals 
  // printed return value.
  // change threshold if needed
  /**********************************************************/
  //               threshold:      return value:
  /**********************************************************/
  if (adc_key_in >    1000)        return btnNONE;
  if (adc_key_in <    50)          return btnRIGHT;
  if (adc_key_in <    150)         return btnUP;
  if (adc_key_in <    300)         return btnDOWN  ;
  if (adc_key_in <    500)         return btnLEFT;
  if (adc_key_in <    700)         return btnSELECT;
  return btnNONE;  // when all others fail, return this...
}

Spiel mal mit den Werten im KeypadShield_Button_Values.ino erstmal solange rum, bis das Mapping passt....

Die ermittelten Werte threshold (also z.B. 50 ) und Mappings (also z.B. btnRIGHT) musst Du dann in den Sketch RC_ANGLE_THROW_KeypadShield_x.ino übernehmen!

Ich kanns ja nicht probieren, da mir Deine KeypadShield nicht vorliegt, aber mit den von Dir ermittelten Werten sollte eigentlich folgendes passen:

Code:
if (adc_key_in > 1000) return btnNONE;
if (adc_key_in < 50) return btnRIGHT;
if (adc_key_in < 200) return btnUP;
if (adc_key_in < 400) return btnDOWN ;
if (adc_key_in < 600) return btnLEFT;
if (adc_key_in < 800) return btnSELECT;

Grüße
Eckehard
 

kalle123

User
Hallo Eckehard.

Etwas spät, aber du bist zur Stelle :D

Ich mach mal einen Vorschlag. Da ja anscheinend die Mehrzahl der Nachbauer eher deiner Version den Vorzug zu geben scheinen (die Jungs löten halt nicht so gerne wie ich ;)), wie wäre es denn, wenn du zu mal einen Plan der Verkabelung für die Newbies raus gibst?

Gerade mal bei Fritzing rein geschaut, die Teile sind da.

FhLMPZPl.png


Grüße KH
 
Gerade wieder etwas weiter gekommen.
Mit der i2c scanner beide Adressen gefunden. (0x1D und 0x53)
(ADXL345 angeschlossen wie post #122)

Danach RC_ANGLE_THROW_KeypadShield_5.ino hochgeladen und auf das LCD fangt etwas an.
Es sieht so aus dass es funtionieert. ;-)

Meine Frage ist muss ich jetzt noch Kalibrieren mit diesem Program (oder ein seperates)? und ja wie tu ich dass?

Gruss
 

kalle123

User
Hallo Jeroen.

Erst mal. Das "RC_ANGLE_THROW_KeypadShield_5.ino" ist Eckehards Werk, nicht meins.

Ich weiss nicht, ob da das Kalibrieren mit im Programm ist. Glaube aber nicht.

Der/die ADXL 345 werden normalerweise mit einem separaten Programm kalibriert. Ich hab da irgendwo hier im thread was zu geschrieben, Bilder dazu gepostet und deinen Link zum Kalibrierprogramm eingestellt.

Schau mal -> post #113 und #117

DU BRAUCHST NICHT ZU KALIBRIEREN (ich hasse den Begriff - Abgleich des Sensors gefällt mir besser), aber das Messergebnis ist besser.

cu KH
 
Hallo KH,

Ich weiss dass das Program Eckehards Werk ist aber die beide Losungen laufen, glaube ich, ein bischen durch einander.

Meine Frage ist sollte ich die 345 "Abgleichen" oder kann ich jetzt einfach die 2 sensor aufklen auf die Flachen, select button drucken fur zero "Position" und dann einfach messen?



Gruss

Jeroen

Ich hatte dein Post #113 und #117 schon gefunden aber dass die beide Programmen hier stehen war ich mich nicht sicher.
 
Weil es jetzt bei mir funktionieert, hier meine Komponenten

Uno : https://nl.aliexpress.com/item/ATME...32823864271.html?spm=a2g0s.9042311.0.0.SvwIGn

LCD Keypad Shield LCD1602 LCD 1602 Module Display
https://nl.aliexpress.com/item/1PCS...32711879357.html?spm=a2g0s.9042311.0.0.SvwIGn

GY-291 ADXL345 3-Axis Digitale Gravity Sensor Acceleration Module IIC/SPI transmissie.
https://nl.aliexpress.com/item/GY-2...32719111836.html?spm=a2g0s.9042311.0.0.SvwIGn

Zeichnung : two_adxls_03.jpg

Program : Eckehard post 134 und 144

Unterstutzung : Eckehard und Kalle123 !!!!!!


Jetzt mal testen wie Genau alles ist.
 

kalle123

User

Eckehard

User
Hallo Jeroen,

ein spezielles Kallebrier Programm, ups (sorry Kalle) ich meinte natürlich, Kalibrier Sketch habe ich nicht erzeugt.

Ich hatte damals auch den Calibration Sketch aus https://learn.sparkfun.com/tutorials/adxl345-hookup-guide verwendet... um die offset und gain Werte für meine beiden ADXLs getrennt zu ermitteln....

Der Nachteil ist ja, daß dieser "nur" einen ADXL anbindet... die/meine Version/Hardware aber zwei ADXL angeschlossen hat....

Da man nicht soooooo oft abgleicht, hatte ich mir das damals gespaart.... und gelötet...

Denkbar wäre, ähnlich wie in meinem RC_ANGLE_THROW_KeypadShield_5.ino unter Verwendung der I2C_dev das Callibration Sketch zu erweitern...
Wäre ne schöne kleine Programmier Aufgabe.... wer traut sich ran?
Könnte man ja dann gleich in RC_ANGLE_THROW_KeypadShield_X.ino integrieren....

Grüße
Eckehard
 

kalle123

User
Hast mich da wohl missverstanden, Eckehard ;)

Die "inflationäre" Verwendung des Begriffs "Kalibrierung" stößt mir halt irgendwie auf. (Beruflich bedingt ....)

Ich nutze halt lieber Begriffe wie "Justierung" oder "Abgleich", für das was wir da machen.

Bei "Kalibrierung" muss ich immer an "Kalibrierprotokolle, Kalibrierplaketten und Kalibrierintervalle" denken.

Meine ADXL345 sind auch abgeglichen und ich brauch da nicht umzulöten :D. Ein kleiner Vorteil meiner Version.

Ach ja, die eeprom Speicherung der Klappentiefe hab ich auch noch nachgerüstet. War zu blöde, das jedes mal neu einzutippen.

Grüße KH
 
Ansicht hell / dunkel umschalten
Oben Unten