Ruderweg Messung mit Arduino

kalle123

User
Hallo Kalle,

die Idee zwei Sensoren zu verwenden, machen das RC-Meter imho erst "rund".
Mit "rund" meine ich: Man kann zwei Klappen sehr einfach auf gleiche Werte einstellen.

Beispiel:
Ich stelle mir das folgendermaßen vor:

- Man klemmt die Sensoren z.B. an die linke und rechte Queruderklappe...
- gibt die Klappentiefe am RC-Meter ein
- stelle das RC-Meter auf Null
- nun stellt man gemäß der Anleitung des Modells
am Sender den gewünschten positiven Winkel/Ausschlag am linken QR ein (Anzeige im RC-Meter links: Ausschlag und Winkel)
- nun stellt man
am Sender den gleichen positiven Winkel am rechten QR ein (Anzeige im RC-Meter rechts: Winkel)

Damit hat man beide Winkel / Ausschläge gleich eingestellt.

Ich finde das ist der Aufwand wert.....

Daher Eckehard, hab ich mir ja auch die 2 Sets gebaut. ;)

Einen Dreher seh ich da nicht?

Die ADRESSE!!

two_adxls_03.jpg

Das mit der Umschaltung auf Sekantenmessung sehe ich eher als Herausforderung, da ich die Umschlatung mit einem Taster (monostabil) hinbekommen möchte...

Notwendig nicht, aber sicher eine schöne Herausforderung.

Grüße und schönen Abend noch - KH
 

kalle123

User
Hallo Eckehard.

Hab gestern Abend 2 ADXL345 so zusammen auf eine Arduino UNO geschaltet und einen I2C scanner sketch aufgespielt.

Einwandfrei und ohne Probleme. Die beiden I2C Adressen werden gefunden.

two_adxls_03.jpg

Danach wollte ich mal deinen Ansatz probieren.

Code:
#include "Wire.h"     // Für I2C Bus
#include <LiquidCrystal.h>      // für das LCD
#include <SainsmartKeypad.h>     // fuer die Keys auf dem Keypad Shield
#include <ADXL345.h>     // fuer das Breackkout Board 
#include <I2Cdev.h>     // fuer das Breackkout Board

Ziemlich Meckerei beim Kompilieren ;)

Wire.h, LiquidCrystal.h sind wohl die standard libraries.

SainsmartKeypad.h hab ich gefunden, wird dort aber sainsmartkeypad.h geschrieben.

ADXL345.h und I2Cdev.h aber ?? ADXL345.h ist nicht die, die ich nehme? Und was ist mit I2Cdev.h?

Gruß KH
 

Eckehard

User
Hallo Kalle,

da muss ich Dich leider etwas "vertrösten", sitze gerade vor dem "falschen" Rechner... udn werde am Wochenende auch nicht dazu kommen da ich unterwegs bin......

Nur soviel, ohne es prüfen zu können:
- aus dem I2Cdev.zip die Libraries/Verzeichnisse I2Cdev und ADXL345 in Dein "libraries" Verzeichnis kopieren....
- die SaintsmartKeypad wird Dir vermutlich nicht helfen, da Du doch mein BreakoutBoard (LCD1602 und 6 Taster) nicht vorliegen hast? Hier wird nur ein Port verwendet, über den der Schaltzustand der 5 Tasten gelesen wird. Taste 6 ist Reset zum Arduino...Wenn ich mich richtig erinnere (habe Deinen .ino grad nicht vor Augen), hast Du pro Taster einen A Port des Arduinos verwendet, oder?

Diese Compiler Fehler wegen mehreren gleichnamigen Libraries kenne ich auch. Daher hatte ich damals auch geschrieben, das mein Sketch noch nicht final ist.... Ich möchte hier noch nachbessern, und zusammen mit meinem Sketch auch ein Libraries Paket schnüren.... damit es pnp(lay) funktioniert.....

Viel Glück!
Mehr dazu erst ab nächste Woche....

Eckehard
 

kalle123

User
Danke für die schnelle Antwort, Eckehard.

Es "brennt" ja nicht ;) Aber so eine keyboard/lcd Combo hab ich selbstverständlich da. Bin schon länger mit Arduinos unterwegs. Ging damals mit Nintendo Wii Sensoren und Pro minis für MultiWii los .... Da sammelt sich halt was über die Zeit.

Grüße KH
 

kalle123

User
Hallo Markus.

- auf dem GY-291 Sensor shield sind schon jeweils 2 pull-up Widerstände drauf. R3 und R4.

GY-291-Schaltplan.jpg

- ich hab "nur mal schnell" zwei Sensoren so an einen Uno angeschlossen und ein I2C scanner sketch laufen lassen. Dabei gab es, wie gesagt, keine Probleme.

Gruß KH
 

kalle123

User
Noch mal zu den 2 Sensoren an einem Arduino.

Wenn ich die Variante noch mal bauen sollte, dann mit dem 2004 LCD statt 1602.

Hier mal der Vergleich. Hab das 2004 nur mal so angeklemmt.

Nur die Zeile
Code:
lcd.begin (20, 4);            // for 16 x 2 LCD module

in meinem sketch geändert. Da bringe ich ohne großen Aufwand die info für 2 Sensoren unter ...

Bildschirmfoto_2017-07-23_11-08-06.jpg

Gruß KH
 
Hallo zusammen,
so, bin auch am basteln, ist mein zweites Arduino-Projekt 😊. Da ich bei meinem ersten Projekt (Jeti Testsensor von www.rc-thoughts.com) ein fertiges hex-file hatte hielten sich die Startschwierigkeiten in Grenzen 😊 Aber auch für die jetzige Ruderwegmessung geht es Stück für Stück voran:
- Arduino 1.8.3 für Win10 läuft
- Blink-Sketch lässt sich auch hochladen
- Ansteuerung des Displays klappt auch schon

Sobald ich aber den fertigen Sketch einsetzen will wird beim kompilieren die LCD.h angemeckert. Ich vermute dass ich vielleicht eine „falsche“ Library für das LCD habe? „Arduino-LiquidCrystal-I2C-library-master“ ist aktuell installiert und die Beispiele davon funktionieren, allerdings halt nicht mit dem hier hochgeladenen Winkelmesser-Sketch.
Könnte vielleicht von Euch jemand kurz die verwendeten Links zu allen nötigen Libraries einstellen? Ein neu installiertes Arduino 1.8.3 plus die von Kalle verlinkten Libraries alleine reichen bei mir nicht aus, damit kommt der LCD.h-Fehler. Irgendwie muss da noch mehr im Vorfeld hinzugefügt werden. Übrigens, ich habe genau die weiter vorne im Thread verlinkten Artikel: Arduino, ADXL345 und LCD von Gearbest.

Oder kann mal bitte jemand kurz sein Hex-file hochladen? Dann könnte checken ob generell alles passt und mich dann „Schritt-für-Schritt“ dem Problem nähern 😊


Vielen Dank vorab und viele Grüße
Jochen

PS: ich bin an der Variante mit einem Sensor pro Display am testen
 

kalle123

User
Hallo Jochen.

Die hier

https://github.com/jenschr/Arduino-libraries

war wohl die, die ich genommen hab. Heißt etwas anders .... Versuch es mal damit.

Bau hier z.Z. meinen PC um von PCLinuxOS mit KDE auf DEBIAN Xfce und da herrscht noch etwas Chaos ;)

Für welchen Arduino (Nano, Uno ....) soll ich denn das hex file generieren notfalls? Bin kein Freund von solch "geheimen" Code, offene Karten sind mir da lieber.

Gruß KH
 
Hi Kalle,
prima, Danke erstmal, muss ich gleich heute abend testen :-)

Das Hexfile wäre perfekt für den Arduino Pro Mini Atmega 328 3,3V 8Mhz

Viele Grüße
Jochen
 

kalle123

User
Jochen, hier.

txt weg und hex drann.

- mir wäre es lieber, du versuchst zuerst die andere lib.

- normal verwendet man besser einen pro mini 328 5V/16Mhz

- wie willst du die hex Dateien auf den Arduino laden?

Gruß KH
 

Anhänge

  • RC_ANGLE_THROW.ino.txt
    22,9 KB · Aufrufe: 154
  • RC_ANGLE_THROW.ino.with_bootloader.txt
    27,6 KB · Aufrufe: 139
so, hab´s jetzt mal mit einem Pro Mini 328 5V/16Mhz versucht, selber Zustand. Ist ja aber eigentlich auch klar, die meldungen kommen ja bereits beim kompillieren :-(

Folgendes konnte ich erreichen: --> Display und ADXL345 werden beide von Deinem Scanner erkannt, das ist ja schon mal gut.

Trotz kompletter Neuinstallation kommt da etwas mit den Libraries durcheinander. Denke ich muss echt warten bis mal jemand eine komplette neuinstallation mit Arduino 1.8.3 für Win10 macht und dann schauen welche vorhandenen Liraries in welcher version ubgedatet werden und welche dann noch von woher auch immer hinzugefügt werden.

Muss jetzt leider weg; werde aber morgen abend weiter kämpfen :-) ... wollte die Hex mit XLoader laden; klappte aber nicht :-(

Gruß Jochen

PS: Fehler sehen dann in der Art hier aus:
IC:\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Arduino\hardware\arduino\avr\variants\eightanaloginputs" "-IC:\Arduino\hardware\arduino\avr\libraries\Wire\src" "-IC:\Users\Jochen\Documents\Arduino\libraries\LiquidCrystal" "-IC:\Users\Jochen\Documents\Arduino\libraries\ADXL345\src" "C:\Users\Jochen\Documents\Arduino\libraries\LiquidCrystal\I2CIO.cpp" -o "C:\Users\Jochen\AppData\Local\Temp\arduino_build_272176\preproc\ctags_target_for_gcc_minus_e.cpp"
C:\Users\Jochen\Documents\Arduino\libraries\LiquidCrystal\I2CIO.cpp:35:26: fatal error: ../Wire/Wire.h: No such file or directory

#include <../Wire/Wire.h>

^

compilation terminated.

Bibliothek Wire in Version 1.0 im Ordner: C:\Arduino\hardware\arduino\avr\libraries\Wire wird verwendet
Bibliothek LiquidCrystal im Ordner: C:\Users\Jochen\Documents\Arduino\libraries\LiquidCrystal (legacy) wird verwendet
Bibliothek ADXL345 in Version 0.2.0 im Ordner: C:\Users\Jochen\Documents\Arduino\libraries\ADXL345 wird verwendet
exit status 1
Fehler beim Kompilieren für das Board Arduino Nano.



oder


IC:\Arduino\hardware\arduino\avr\libraries\Wire\src" "C:\Users\Jochen\AppData\Local\Temp\arduino_build_272176\sketch\sketch_jul26a.ino.cpp" -o "nul"
"C:\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10803 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR "-IC:\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Arduino\hardware\arduino\avr\variants\eightanaloginputs" "-IC:\Arduino\hardware\arduino\avr\libraries\Wire\src" "C:\Users\Jochen\AppData\Local\Temp\arduino_build_272176\sketch\sketch_jul26a.ino.cpp" -o "C:\Users\Jochen\AppData\Local\Temp\arduino_build_272176\preproc\ctags_target_for_gcc_minus_e.cpp"
C:\Users\Jochen\Documents\Arduino\sketch_jul26a\sketch_jul26a.ino:33:17: fatal error: LCD.h: No such file or directory

#include <LCD.h>

^

compilation terminated.

Bibliothek Wire in Version 1.0 im Ordner: C:\Arduino\hardware\arduino\avr\libraries\Wire wird verwendet
exit status 1
Fehler beim Kompilieren für das Board Arduino Nano.
 
So, ich kann nun Erfolg melden, alles funktioniert 😊

Da ich ja der totale Anfänger in Sachen Arduino bin anbei eine kurze Summary wie es eigentlich bei allen funktionieren müsste. Vielleicht hilft es ja dem ein oder andern::

- Arduino 1.8.3 installieren
- Keine Updates der Libraries machen; alle so lassen wie sie sind
- Sicherstellen dass das lokale Verzeichnis /user/arduino/libraries leer ist (ansonsten wurden bereits zusätzliche Libraries oder Updates installiert und dann gibts es Probleme)
- NewLiquidCrystal 1.3.4 installieren. Download von hier: https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads/
- ADXL345 installieren. Download von hier: https://github.com/jenschr/Arduino-libraries
- Sketch von Kalle laden (Download von hier: http://www.rc-network.de/forum/show...-mit-Arduino?p=4337835&viewfull=1#post4337835 )
- Alles ohne Fehlermeldung kompilieren und hochladen
- --> alles funktioniert

Besten Dank erstmal für dien tolle Idee und den Support hier. Werde sicherlich an dem Thema weitermachen 😊

Viele Grüße
Jochen

PS: danach können bis auf den ADXL345 alle Libraries upgedatet werden; sobald ein Update auf den ADXL345 läuft bricht bei mir das kompilieren ab
 

Eckehard

User
Version mit 2 ADXL345 Sensoren...

Version mit 2 ADXL345 Sensoren...

Hallo,

anbei nun meine Version des RC-Meter:

Verwendet habe ich folgende Hardware:
-2 ADXL345 Sensoren
-Arduino UNO R3
-KeypadShield

Standardinstallation arduino 1.8.3, zusätzlich die I2Cdev libraries, siehe Anhang


Angezeigt werden nun zwei Winkel und auch zwei Ausschläge für eine vorgegebene Klappentiefe

Anmerkung zum Ausprobieren:
Die Endung .txt der angehängten Dateien entfernen, die ZIP Archive entpacken.

-Das libraries.zip in den Sketch Ordner entpacken, den existierenden libraries Ordner sichern/umbenenen!
-KeypadShield_Button_Values.ino: erleichtert das Setzen der korrekten Werte für das Mapping der KeypadShield Buttons
-RC_ANGLE_THROW_KeypadShield_2.ino: Meine Version vom RC-Meter

Der Code ist sicherlich zu verbesseren, mir gefällts.

Viel Spaß

Eckehard
 

Anhänge

  • RC_ANGLE_THROW_KeypadShield_2.zip.txt
    3,2 KB · Aufrufe: 152
  • KeypadShield_Button_Values.zip.txt
    1,1 KB · Aufrufe: 72
  • libraries.zip.txt
    31,2 KB · Aufrufe: 83

kalle123

User
Hallo Eckehard.

Hab es hier mal provisorisch zusammen gesteckt.

PyVTLqGl.png


Schön kompakt, aber ich hab ja meine zwei ...

SEL -> Null, LEFT -> Umschaltung Thr <> SEK, UP/DOWN -> Klappentiefe, aber wozu ist RIGHT?

I2Cdev lib brauchte ich nicht, aber deine ADXL345 ist (natürlich) anders.

Grüße KH

PS. Die ADXL345 lib pack ich mir mal in meine "Sammlung".
 

Eckehard

User
Hallo Kalle,

hm, also wenn "meine" ADXL345 verwendet wird, dann benötigst Du auch die I2Cdev Libraries....denn die I2Cdev wird von der ADXL345 ja benötigt/includiert...

Habe testweise die I2Cdev mal aus meinem libraries Verzeichnis gelöscht, und den Compiler gestartet...

Erwartungsgemäß kommt:

....Angel_Throw_Meter\RC_ANGLE_THROW_KeypadShield_2\RC_ANGLE_THROW_KeypadShield_2.ino:44:0:

C:\Users\Eckehard\Documents\Arduino\libraries\ADXL345/ADXL345.h:36:20: fatal error: I2Cdev.h: No such file or directory

#include "I2Cdev.h"

Daher:
Bist Du sicher, das Du "meine" ADXL345 Library wirklich verwendest hast? Kann ich mir fast nicht vorstellen......
Hast Du zwei ADXL Sensoren angeschlossen?

Zu btnRIGHT...

schau mal in den Code:

...
case btnRIGHT:
{
if (serialDebug) {
Serial.println(lcd_key);
}
else {}
break;
}
...

der Button hat keine Funktion für das RC-Meter :-) ...

Grüße
Eckehard
 
Wird zur Jetpower vorgestellt und ist danach zeitnah bei mir im Shop. Ich mache den Vertrieb in Deutschland?

Ist vergleichbar mit dem aktuellen AT Meter, hat den zusätzlichen Komfort der Bluetooth Übertragung und der übersichtlichen Darstellung in der Smartphone App. Und auch die Umschaltung der Auflösung ist komfortabler.
 
Ansicht hell / dunkel umschalten
Oben Unten