Ruderweg Messung mit Arduino

I3uLL3t

User
Hi Marcel,
Es wäre schön wenn die winkelmesserei in der Wäge sketch von Nightflyer88 könnte eingebunden werden. die winkelmess sensoren werden uber I2C ausgelesen.
Gruss
Koen


Hi,
das kann und werde ich nicht machen sorry. Die Waage und das Ruderwegmessen sind zwei unterschiedliche Werkzeuge die nicht im direkten mit einander zu tun haben. Ja es wäre nett wenn man ein Multitool als App hat mit dem man alles steuern und verwalten kann aber der zeitliche Aufwand und die Parallel Entwicklungen würden so hoch sein, dass es keinen Sinn ergibt.
Dazu muss ich dann auch noch sagen wird es für eine Opensource Lösung nicht mehr tragbar. Die App und die Messeinrichtungen so aufzubauen, dass eine entweder oder Lösung funktioniert, sind quasi wieder Neuentwicklungen. Das einzige was man behalten kann ist die Berechnung aus den Sensoren.
Grob abgeschätzt wird ein nachbauen für jederman nicht mehr so einfach sein. Da viele Faktoren beachtet werden müssen.
Als letztes noch.. Ich bin ein Chaot und auch lange nicht so weit wie andere hier was Programmierung angeht und damit würde keiner so einfach Klar kommen :D:D:D
Das Rudermessen in Kombination mit WLAN/Bluetoth und App wird jetzt mein erst Projekt in der Kombination.

Gruß Marcel
 

onki

User
Hallo Marcel,

also die NightFlyer-Lösung bei der Waage funktioniert auf zweierlei Wegen.
Das finde ich ehrlich gesagt auch eine tolle Sache.
Beides (Waage und Ruderwegmessung) zu kombinieren erachte ich allerdings auch als ziemlich unmöglich.
Aber man kann viele Dinge zweckentfremden. Das ist ja ein Sinn von OpenSource.

Der ESP8266 kann in zweierlei Modi betrieben werden. Ich habe in der Konfiguration meine WLAN-Zugangsdaten eingegeben, sodass sich der ESP8266 in mein lokales WLAN einbindet. Findet der 8266 das nicht, ist er nicht einfach beleidigt sondern wechselt in den AP Modus und spannt sein eigenes WLAN als AP auf. Damit kann ich mich dann außerhalb der Werkstatt via Smartphone auch verbinden. Auf den kleinen OLED-Display wird die aktive IP angezeigt, was sehr hilfreich ist.
So kann ich dann via Webbrowser den im ESP integrierten Webserver (der wird via SPIFFS übertragen und gepflegt) aufrufen und die Daten ansehen und sogar ggf. in eine Datei speichern.

Das hat den großen Vorteil, dass es Plattformunabhängig ist und keine separate App nötig ist. Ob man via BT auch auf den lokalen Webserver kommt weiß ich nicht, BT kann aber nur der ESP32. Prinzipiell finde ich BT auch toll aber man benötigt i.d.R. immer noch eine App dazu weil BT halt mit HTML nicht so doll kann.

Ich bin zwar nicht der Programmierexperte aber muss mich seit Jahrzehnten mit Software auseinandersetzen.
So wie ich das sehe kann man den Webserver der Waage nahezu 1:1 übernehmen. Es müssen nur die anzuzeigenden Variablen im HTML-Code angepasst und die Darstellung entsprechend geändert werden. Auch die Schaltflächen müssen natürlich auf die Gegebenheiten angepasst werden.

Ich hoffe ich konnte etwas behilflich sein.

Gruß
Onki
 

I3uLL3t

User
Das hat sogar sehr weiter geholfen!!
Den Ansatz und die Bedenken der Platformabhängigkeit hatte ich auch schon, wusste aber nicht das der ESP tatsächlich als "richtiger" Webserver arbeiten kann.
Dann werde ich mir das von Nightflyer mal genauer anschauen und gucken wie ich das eingestielt bekomme.

Gruß Marcel
 
Hallo Marcel und Onki,
Die combination winkelmessung und 3 punkt Wage hab ich schon einige zeit auf eine Arduino nano mit Bluetooth modul und Android App laufen.
Sehe screendumps auf http://www.rc-network.de/forum/showthread.php/43402-Bildertest/page54 ab post 803.
Wegen absturtz vom festplatte sind leider die source files vom Android App verloren gegangen.

Gruss
Koen

@ Onki, hast du schon oder suchst du noch eine grössere Console für die 2 punktwage, wo der ESP 8266 rein passen soll ?
http://www.rc-network.de/forum/showthread.php/658919-Schwerpunkt-Waage-mit-Arduino/page38 post 565 und post 585
 

onki

User
Hallo Koen,

ich nutze das Standard-Unterteil. Ich hab mich lediglich für ein kleineres ESP8266 Board entschieden. Ist gestern angekommern, geflasht worden und funktioniert soweit prima.
Statt des NodeMCU nutze ich nun das Wemos D1 mini. Das bringt alle nötigen Pins mit für die Waage.

Gruß
Onki
 

I3uLL3t

User
So,
ich habe mir jetzt den Code von Nightflyer angeschaut.........:confused::confused::confused::confused: Weit über meinen Skills was er da Programmiert hat.
Ich verstehe einige Teile des Codes, andere wiederum nicht. Klar ist mir auch noch nicht wie das Design der Webseite generiert wird bzw. wo es hinterlegt ist.
Da werde ich noch einige Tage mit verbringen bis ich alles verstanden habe.

Gruß Marcel

EDIT: OK wo das Design entsteht habe ich gefunden.
 
schönen Dank

schönen Dank

Hallo Eckehard, hallo Kalle...

vielen Dank für die ausführliche Doku hier. Ich habe Eckehards Lösung gebaut. Anhand der Ebay-links, der Check-Liste und Tips war die Sache, auch ohne große Vorkenntnisse, ein Klaxs.

Zum Schluss ist mir noch ein Anfängerfehler unterlaufen. Ich hatte den Ordner "libraries" auf d:/irgendwo und nicht im Installationsverzeichnis vom ARDUINO 1.8.9. Beim Kompilieren kam es zu einem Fehler.

Das einzigste was noch ist, die Winkelanzeige ist gegenläufig. Irgendwo habe ich hier aber auch etwas dazu gelesen... wo nur?

Morgen mal sehen und die Sensoren abgleichen..

Danke&Gruß, Erik
 

kalle123

User
Hallo Eric.

Freu mich, dass du dich meldest :)

Ich würde einfach mal an der Stelle im Code von Eckehard schauen.

Zeile angle1 bzw. angle2

mHuqJkzl.png


Grüße nach Dortmund - KH
 

Eckehard

User
Hi EriK, Kalle,

ja, Kalle hat es schneller gefunden....

Um es genau zu sagen, es bezieht sich auf Version 5, Zeile 288:
++++++++++++++
angle2 = int(tilt2) * -1; //sensor orientation! "* -1" because 180degrees rotated compared to sensor 1
++++++++++++++

der Version:

Ich hatte im Kopfteil der ino es vermerkt:
++++++++++++++
-Sensor Kalibrierung: offset und gain angepasst
++++++++++++++

Es handelt sich um folgende Version des Sketches ....
++++++++++++++
/*
STATUS OK
Version */
int ino_version = 52;
long ino_date = 171230;
/*
Kompiliert unter Arduino 1.8.5

1. Unter Verwendung der mit Arduino 1.8.5 mitglieferten libraries:
Wire
...\arduino-1.8.5\hardware\arduino\avr\libraries\Wire\src\Wire.cpp
...\arduino-1.8.5\hardware\arduino\avr\libraries\Wire\src\Wire.h
LiquidCrystal:
...\arduino-1.8.5\libraries\LiquidCrystal\src\LiquidCrystal.cpp
...\arduino-1.8.5\libraries\LiquidCrystal\src\LiquidCrystal.h
EEPROM:
...\arduino-1.8.5\hardware\arduino\avr\libraries\EEPROM\src\

2. Zusaetzliche Libraries (https://www.i2cdevlib.com) im Sketch Verzeichnis:

ADXL345.cpp
ADXL345.h
I2Cdev.cpp
I2Cdev.h

3. Verwendete Hardware, die bei mir funktioniert
3.1 LCD KeypadShield
3.2 Arduino UNO R3
3.3 ADXL345 BreakoutBoard, GY-291

-Fixes: Help Screen kommt nun zuverlaessiger, switch/case statt if/else
-Fixes: SerialDebug Schnittstelle, Ausgabe "Initialize Serial Port..." wird nun ausgegeben
-Verbesserung: Button RIGHT zeigt HELP Screen an
-Verbesserung: Ausgabe der Version und Datum
-Erweitert: Wert CHORD wird mit Button SELECT im EEPROM gespeichert
-Maximalwert CHORD 999mm begrenzt
-Ausgabe der Prefixe ANG und THR reduzuiert, damit konfigurierter Wert CHRORD angezeigt werden kann
-Sensor2 (rechter Sensor): Orientierung angepasst, Sensor um 180Grad gegenüber Sensor1 gedreht eingesetzt wird
-Code Review, Vereinfachung der Programmstruktur, LCD Ausgabe und Aktion in einem switch/case/.../default vereint
-Sensor Kalibrierung: offset und gain angepasst
+++++++++++++++++++++

Zeig mal Bilder vom fertigen "RC_ANGLE_THROW_KeypadShield_5" ....
Speziell die Klemmen zum temporären befestigen an den Klappen interessieren mich......

Grüße
Eckehard
 

Eckehard

User
Hallo Kalle,

sieht sehr gut aus! Dein Alu Würfel mit dem Sensor drann ist aber auch schön winkelig .... ;)....

Danke auch für die Bilder von den Klemmen, da bin ich nicht so weit....

Und Auflösung 0.1 Grad mit MMA????

Aber... welcher Code/Sketch wurde geladen?

Fragen über Fragen....ok, habe auch nicht alles "zurück"gelesen...

Danke und Grüße
Eckehard
 

kalle123

User
Hallo Eckehard.

Das sind nur Sperrholzplättchen mit nem Distanzstück dazwischen.

Der Winkel in dem Video ist ein CNC Bauteil, das ist winklig.

Und den Code stell ich gerne hier ein. Ist in Zusammenarbeit mit Jeroen entstanden.

Immer noch mit den 4 Tastern.

Buttons to Arduino D2, D3, D4 and D5
D2 - zero setting
D3, D4 - up and down depth value
D5 - write chord to eeprom

ABER, hab das mit zwei MMA8451 gemacht. Mit einem Sensor krieg ich das wie im Video hin, mit dem anderen Sensor bleiben Abweichungen ~ 0.8°

Glaube fast, es gibt da 'gute' und 'weniger gute' Sensoren.

Grüße KH
 

Anhänge

  • BBR_Angle_meter_v.1_mma.ino.txt
    8,6 KB · Aufrufe: 116
Habe auch mit dem MMA aufgebaut. Über den Abgleich lässt sich viel erreichen, das beide Sensoren gleich laufen. Habe für + und - Richtung eigene Abgleich Gemacht. Komme dann auf +-0,5 Grad Abweichung
 

roth_georg

User gesperrt
So, nochmal Steffen.

Du besorgst dir diese Teile.

tRMNP1Il.png


Lädst dir die Arduino IDE von hier

https://www.arduino.cc/en/Main/Software

auf deinen Rechner.

Keyboardshield auf den Uno packen, USB Kabel anschliessen und mal etwas mit der Arduino IDE und dem Kontroller "spielen", um ein Gefühl für die Sache zu kriegen.

Gibt da einfache Programme (sketches), in der Art, Taste drücken ---> Anzeige.

Dann Eckehards Schaltung mit den beiden Sensoren so aufbauen. Hab mal mit Fritzing gezeichnet ;)

5lBkPPQl.png


Eckehards Programm (Link hab ich oben reingesetzt) aufspielen.

Halterungen für die Sensoren machen und Gehäuse für die Elektronik drucken. DAS ISSES. Feddig!

Also wenn du Servos an einen Empfänger stecken kannst, dann kannst du das auch :D

Gruß KH

Hallo Kalle

Vielen Dank! Ich möchte gerne deinem Ratschlag folgen und den Messer gem #466 machen.
Auf deinem Bild zeigst du alle Komponenten:

  • 1x ADLX345
  • 1x Schild LC1602
  • 1x Arduino

Scheint mir machbar zu sein.

ABER, im Schaltbild unter #467 zeigst du 2x ADLX345.

Wieso brauche ich denn nun 2x ADLX345? Das versteh ich nun nicht ganz.

Vielleicht noch zwei weitere Fragen?

  • Wie erfolgt die Stromversorgung?
  • Du schreibst „Keyboardshield auf den Uno packen“. Was meinst du damit?
  • Hast du evtl. Druckdateien?


Liebe Grüsse und vielen Dank, Georg
 

kalle123

User
Georg, DAS IST ECKEHARDS Version.

Ich hab gebaut: 1 Arduino Pro Mini, 1 LCD 1602 und 1 Sensor. Und das halt 2x.

Eckehard: 1 Arduino Uno, 1 Keypadshield und 2 Sensoren.

Du schmeisst da zwei Sachen durch einander. ;)

  • Wie erfolgt die Stromversorgung?
  • Du schreibst „Keyboardshield auf den Uno packen“. Was meinst du damit?
  • Hast du evtl. Druckdateien?

Stromversorung Eckehard?

Steckernetzteil

Keypadshield wird da einfach aufgesteckt.

Druckdateien von WAS????

Gruß KH
 

roth_georg

User gesperrt
OMG!

Vielen Dank für die Hilfe! Ich muss so ein Teil haben und entschuldige die Fragen.....



"Eckehard: 1 Arduino Uno, 1 Keypadshield und 2 Sensoren."

Diese Version scheint mir einfacher, da ich fast nix löten muss. Ich gehe davon aus, dass ich aud dem Keypadshield beide Sensoren ablesen kann; also ein Sensor (zB) WK1 und der andere Sensor für WK2. Wäre natürlich toll! Womit ich ein Problem habe, resp. was ich nicht verstehe, ist, dass die Sensoren unterschiedlich ans Keypadshield gelöter werden (+ Strom geht bei Sensor 2 zusätzlich an SD0).

"Druckdateien von WAS????"

Ich hab' gedacht, es gibt evtl ein "Case", dass ich 3D drucken kann.



Sorry sorry....

Georg
 

Eckehard

User
Hallo,

hier ein paar Antworten auf Fragen, die ich beantworten kann:

Stromversorgung: Ich benutze eine Powerbank mit USB Kabel an USB A Buchse vom Arduino UNO....Das reicht mir, da die Powerbank eigentlich immer einsatzbereit/geladen ist...

Ich gehe davon aus, dass ich aud dem Keypadshield beide Sensoren ablesen kann; also ein Sensor (zB) WK1 und der andere Sensor für WK2. Wäre natürlich toll! Womit ich ein Problem habe, resp. was ich nicht verstehe, ist, dass die Sensoren unterschiedlich ans Keypadshield gelöter werden (+ Strom geht bei Sensor 2 zusätzlich an SD0).

- Ja, es werden beide Sensor Werte gleichzeitig angezeigt, das war ja meine Motivation....
- Die zusätzliche Beschaltung von SDO an einem Sensor konfiguriert diesen Sensor auf eine andere I2C Adresse.... Damit sind beide Sensoren, die ja am gleichen I2C Bus angeschlossen sind, getrennt ansprechbar....

Viel Spaß beim Tüfteln....

Eckehard
 

RayX

User
Hallo zusammen,


habe mir auch eine Ruderweg Messung mit dem MMA 8452 gebaut.
Funktioniert soweit gut, aber ich glaube das ist ein Fehler drinnen.
Mir ist aufgefallen das wenn man die Ruderlänge auf 10mm stellt und dann den Sensor um 90° kippt dann wird 14,4mm angezeigt.
Müssten das nicht 10mm sein ?

Meine Logik dahinter wenn ich ein 10mm Langes Streichholz auf den Tisch lege oder es senkrecht stelle hat es immer 10mm. oder habe ich da einen Denkfehler ??


Gruß
 
Ansicht hell / dunkel umschalten
Oben Unten