RC-Einstell-Tool zum Vermessen von Ruderausschlägen und zur Ansteuerung eines Servos

Halllo Rainer, danke für deine Antwort.

Habe leider keinerlei Erfahrung mit dem ESP32. Dachte aber, dass er keine anderen Libs braucht.
Das hatte ich auch erwartet und mich deshalb für den "besseren" ESP32 entschieden...

Liefert denn die Seite "Messen und Steuern" /multiToolPage dynamische Werte?
Zumindest werden da keine sinnvollen Werte angezeigt, beim Speichern mit den grauen Buttons erhält man aber zumindest irgendwelche (falsche) Werte:
2020-05-03 11_27_35-RC-Einstell-Tool.jpg


Wenn ja, würde ich dich bitten, wenn du dich im JavaScript Code zutraust Änderungen zu machen, in der Datei htmlAngleSensorPage.h mal die Anteile für die AudioAusgabe einfach raus zu schmeissen. Hänge mal diese Datei mit den Änderungen hier an

Ich habe die Dateien mal getauscht, hat auch nix gebracht, was ja zu erwarten war, da die Multitoolseite auch nicht läuft.


Ich werde mich wohl heute Abend mal grundsätzlich mit AJAX beschäftigen und mich mit einfachen Beispielen rantasten.

Viele Grüße
Michael
 
Ich werde mich wohl heute Abend mal grundsätzlich mit AJAX beschäftigen und mich mit einfachen Beispielen rantasten.

Viele Grüße
Michael

Dann hast du vermutlich ein Problem mit der Serverfunktion mit deinem ESP32.
Hast eher nichts mit dem Browser zu tun.
Kannst mit der ersten Menü-Seite anfangen. Das ist am einfachsten. Da gibt es wie auf allen Seiten auch ein dynamisches Feld, nämlich die Versionsnummer.
Wenn die nicht korrekt angezeigt wird, dann gibt es da ein Problem beim Zurückliefern der Daten. Kannst ja mal mittels Serial.print() versuchen die Stellen zu finden, die Probleme macht. Alles AJAX Datenrequests werden in der Methode
void getDataReq() im ino File behandelt. Der Javascript-Client sendet String Tokens, die dort ausgewertet werden um den Responsewert zusammen zu bauen und zurück zu senden.

Gruß Rainer
 
Hallo Rainer, ich denke da irgendwo liegt auch mein Problem.

Im alten RuderMessSensor bekomme ich zyklisch den getDataReq() zumindest die Kontrollausgabe im Terminalfenster, allerdings ohne irgendwelche Argumente, folglich wird auch nichts weiter ausgeführt.
Da werde ich mal weiter ansetzen.

Das mit der Startseite und der Versionsnummer ist ein guter Startpunkt, danke für den Tip.
Oder eben ein ganz einfaches Beispiel dazu aus dem Netz angucken...

Viele Grüße
Michael
 

c.radi

User
Hi Christian, ich bin auch nicht der absolute HTML- und schon gar nicht der Mac-Spezialist. Habe jetzt aber mal Zeit gefunden, hier etwas nachzulesen. Die ganze Funktionalität mit dem CTRL-Key steckt im Javascript der Menu-Seite (htmlMenuPage.h). Da ich keinen Mac habe, konnte ich nicht testen, dass auf nem Mac die Meta-Keys nicht so funktionieren, wie auf Windows oder Linux (ich arbeite nur unter Linux mit Firefox, und habe ein-zwei mal die Seiten auf dem Win10 Rechner meiner Frau geteset).

Habe jetzt einen Mac-Key-Handler eingebaut, der hoffentlich das gewünschte Ergebnis liefert. Ist in GitHut (https://github.com/Pulsar07/RcSetupTool) eingecheckt und es liegt auch ein aktueller bin-File mit dabei. Konnte es aber in Ermangelung eines Mac nicht testen. Wenn es immer noch nicht tut gib mir hier bitte Feedback, dann muss ich nochmals ran. Als sehr üblen Workaround hätte ich noch ein kleines Goodie: Einfach an die URL des Sensors ein "/expertPage" dran hängen, dann brauchst du nicht an die Windows-Kiste ran fassen. Ich bekomme da auch immer Pickel ;-(

Gruß Rainer

Hallo Rainer,

ich liebe meinen Mac, muss aber beruflich auch viel mit Windows arbeiten. Ich kann Dir versichern, beide haben so Ihre Macken.
Vielen Dank für die Anpassung, zumindest auf dem Mac funktioniert das nun auch. Das Verhalten ist zwar etwas "seltsam", denn man darf die Teste nicht gedrückt halten, sonder muss sie einmal betätigt haben. Danach wird dann die richtige Seite aufgerufen.
Also dafür erstmal vielen Dank.

Warum machst Du Dir das Leben da so schwer, mach doch einfach zwei Knöpfe auf die Startseite, einen für die "normalen" Einstellungen, und einen für die "Experten"-Einstellungen.
Das hätte auch den Vorteil, dass man vom Handy oder Tablet zu der Seite kommt, denn da wüsste ich nicht, wie man das sonst hinbekommt (Außer die Seite direkt aufzurufen).

Ich finde immer "versteckte" Funktionen in der Bedienung wenig intuitiv, denn es ist das Wissen notwendig.
Der Aufruf über /expertPage funktioniert am Mac, die aufgerufene Seite wird aber in Safari nicht angezeigt. Dass ist aber bei allen Webseiten so, man sieht dies erst, wenn man in das Adressfeld klickt.

Gruß
Christian
 
Implementierung auf ESP32 mit MMA8451 - läuft...

Implementierung auf ESP32 mit MMA8451 - läuft...

Dann hast du vermutlich ein Problem mit der Serverfunktion mit deinem ESP32.

Bug auf der einen oder Feature auf der anderen Seite ist die Frage...

Die mit JavaScript generierte Anfrage
Code:
getDataReq?id_version&id_angleValue&cpx_flightphase
benutzt nur Argumentnamen, aber keine Argumentwerte.
Das führt dann beim ESP32-Webserver wohl zu einem Problem, server.args() ist leer, die for-Schleife in void getDataReq() wird nicht ausgeführt und entsprechend wird auch kein response gesendet.
Mit einem entsprechend der Query-String Richtlinien angehängten Dummy-Argumentwert klappt dann auch alles.
Code:
getDataReq?id_version=0&id_angleValue=0&cpx_flightphase=0
Der Argumentwert steht dabei lediglich in der Anfrage und auf dem Server in den entsprechenden server.arg(i), wird aber nicht ausgewertet.


Da scheint der ESP8266-Server toleranter zu sein bei der Auswertung von Query Strings ohne Wert.

Gruß,
Michael
 
Hi Michael,

das hast du natürlich Recht, die Spec sagt, dass ein HTTP-Request einen oder mehrere Query Strings mit name/value hat. Meine hatten nur name. Der Fix waren exakt 2 Zeichen im htmScript.h.
Habe noch den Vorschlag von Christian aufgegriffen und die Experten-Einstellungen auf einen eigenen Menü-Button gelegt.
Auch er hatte natürlich Recht, dass ein Smartphone oder Tablet eben keine Tastatur mit SHIFT oder CTRL Taste hat. Wollte lediglich die Kalibrierungsfunktionen etwas verstecken, da man diese nicht einfach mal so machen sollte. Wenn diese total im Wald stehen und so gespeichert werden ist es nämlich möglich, dass eine Kalibrierung nicht mehr funktioniert, da die Startwerte komplett falsch sind. Dann hilft nur noch "alle Einstellungen zurücksetzen".

--> neue Version: V0.162 auf https://github.com/Pulsar07/RcSetupTool verfügbar.

Gruß Rainer
 
Der Fix waren exakt 2 Zeichen im htmScript.h.

Genau das wollte ich im letzten Beitrag auch schon schreiben, das Rausfinden hat allerdings schon etwas gedauert... ;)

Mir persönlich ist im Moment die Kalibration egal, da ich den MMA8451 nutze. Allerdings finde ich die "versteckte" Seite auch nicht so toll, alleine weil ich beim nächsten Modell eh nicht mehr daran denke :rolleyes:
Dann lieber einen Hinweis, das man damit vorsichtig umgehen sollte und Blödsinn anstellen kann. Die Verantwortung sollte man den Leuten, die so ein Ding zusammenbauen, zutrauen. Ansonsten hat man halt Pech gehabt und muss auf die Factory Defaults zurück.
Oder man (also tendenziell du...) fügt die Möglichkeit hinzu, nur die Kalibration zurückzusetzen. Die Iterationsschleife wird ja eh etliche hundert mal durchlaufen, macht es da überhaupt Sinn, nicht standardmäßig mit sauberen Parametern die Kalibration zu starten? Ich habe mich allerdings (noch?) nicht wirklich mit dem MPU6050 beschäftigt.

Gruß
Michael
 

udill

User
Hallo,

wollte auch mal das tolle Tool unter Linux-Mint zum Laufen bringen. Bekomme aber Seitenweise nur Hinweise auf fehlende XXX.h Dateien. Nachdem ich mir diese im Internet zusammengesucht hatte, kamen dann beim Compilieren Fehlermeldungen über Doppeldeklarationen und undefinierte Konstanten und Bezeichner. Die Fehlermeldungen füllten Seiten und am Schluss endete der Compilerlauf mit der Feststellung, dass in der RcSetupTool.ino in der Zeile 2000nochwas eine solche } Klammer fehlen würde. Habe von Arduino nicht besonders viel Ahnung. Auch wenn ich versuche, die Erweiterungen "esp-idf-2.0" oder "arduino-esp32" oder "esp-open-sdk" oder "jrowberg-i2devlib" in meinem Sketchordner zu entpacken, meldet mir Arduino, dass es sich nicht um gültige Libraries handelt und keine "Dateien".h gefunden wurden. Bin mit meinem Latein am Ende und habe das Handtuch geworfen :confused: Vielleicht kann mir ja netterweise einer der Spezialisten auf die Sprünge helfen. Dafür schon einmal Danke.

Gruß Udo
 

kalle123

User
Hallo Udo.

Zuerst, die Sache funktioniert. Hab das hier unter DEBIAN getestet.

Aber deine Ausführungen helfen nicht wirklich weiter. Was hast du da an Hardware? Was hast du woher geladen und dann bitte step-by-step, was hast du gemacht?

Dann kann man dir helfen.

Hab noch ein LM 19.3 in einer VM. Notfalls kann ich das dort parallel zu deinen Bemühungen testen. :)

Gruß KH
 
Hallo,

:confused: Vielleicht kann mir ja netterweise einer der Spezialisten auf die Sprünge helfen.

Gruß Udo

Wie Kalle schon geschrieben hat, hast du leider die wichtigen Dinge nicht erwähnt. Ich arbeite und entwickle ausschließlich unter Fedora was aber keine Rolle spielen dürfte. Es sollte mit deiner Mint-Distribution auch keine Probleme geben.

Wenn du mit Arduino-Entwicklung noch nichts gemacht hast, ist die Einstiegshürde natürlich schon ein kleiner Hügel ;-)

Am besten du benutzt das Arduino-IDE (https://www.arduino.cc/en/Main/Software) das ist für Anfänger am geeignetsten.
Vermutlich kannst du in deinem Mint-Linux auch schon eine perfekt passende Arduino-IDE in der Paket-Liste finden.

Versuch dich über ein Tutorial mit den Grundfunktionen etwas einzuarbeiten.
Damit du damit für einen ESP8266 entwickeln kannst musst du in den Einstellungen die Additional Board URL : http://arduino.esp8266.com/stable/package_esp8266com_index.json hinzufügen und am besten gleich die Sketchbook Location auf ein Verzeichnis stellen (z.B. $HOME/MeineArduinoSketches) , in dem deine Sketchfolder liegen. In diesem Verzeichnis solltest du ein Unterverzeichnis "libraries" anlegen, in dem du dann deine Bibliotheken, die du nicht über das Arduino IDE downloadest, entpacken. Dort werden sie dann auch gebaut und gefunden. Libraries sind hier immer Verzeichnisse mit C, C++ Dateien und mehr.

Danach musst du noch in der Board-Verwaltung die Software, Compiler, Tools und Bibliotheken für den ESP8266 downloaden. Siehe hierzu z.B.: https://www.heise.de/ct/artikel/Ard...it-machen-fuer-ESP8266-und-ESP32-4130814.html

Damit solltest dann eigentlich zurecht kommen.
Gruß Rainer
 

kalle123

User
Rainer, hab gerade mal reingeschaut in LM.

Dort wird eine uralt Version 1.0.5 und ein aktueller flatpack 1.8.12 angeboten.

Uralt kann man wohl knicken und den flatpack würde ich mit spitzen Fingern anpacken.

KltpxGEl.png


Ich lade grundsätzlich das hier

79oZqP1l.png


von der Arduino Seite und entpacke nach ~$ und fahr die IDE von da aus. :)

Gruß KH
 

udill

User
Hallo ihr netten Leute,

danke für eure Tipps. Nachdem ich mein Linux-Mint mit der "ESP -IDF" Entwicklungsumgebung nach der Anleitung von hier: [Linux Setup Guide](http://esp-idf.readthedocs.io/en/latest/linux-setup.html) erfolgreich erweitert hatte, funktionierte das Compilieren und Hochladen der "RcSetupTool.ino" in einem "Flutsch" und ohne einen Fehler.

Die ersten Gehversuche mit der App und einem GY-251 waren vielversprechend. Ein kleiner Hinweis sei an den Entwickler gestattet. Wenn man Einstellungen ändert, wäre es schon, wenn man einen Hinweis bekäme, dass die Daten erfolgreich gespeichert wurden, so wie beim Kalibrieren des MPU6050 das Ende der Kalibrierung angezeigt wird.

Gruß Udo
 

udill

User
Nein, ich nutze einen ESP8266! Ich habe zwar keine Ahnung, aber es hat problemlos funktioniert und die Musik spielt :D

Gruß Udo
 

kalle123

User
Naja, Udo. Ist dein Baby. :)

Aber komm nicht mit Fragen an, wenn es denn doch mal hakt.

Hatte mich schon etwas gewundert ....

Auch wenn ich versuche, die Erweiterungen "esp-idf-2.0" oder "arduino-esp32" oder "esp-open-sdk" oder "jrowberg-i2devlib" in meinem Sketchordner zu entpacken, meldet mir Arduino, dass es sich nicht um gültige Libraries handelt und keine "Dateien".h gefunden wurden.

und dein Link

This is documentation of ESP-IDF, the framework to develop applications for ESP32 chip by Espressif.

Gruß KH
 

udill

User
... Danach musst du noch in der Board-Verwaltung die Software, Compiler, Tools und Bibliotheken für den ESP8266 downloaden. Siehe hierzu z.B.: https://www.heise.de/ct/artikel/Ard...it-machen-fuer-ESP8266-und-ESP32-4130814.html[ ...

Hallo Rainer,

vielen Dank für deine hilfreichen Informationen. Nach der Anleitung in der "ct" konnte ich die entscheidenden Libraries und Patches in die Arduino IDE einbauen. Allerdings hatte ich den gleichen Effekt vorher schon durch die "externe" Installation der "ESP -IDF" Entwicklungsumgebung.

Noch ein kleiner Hinweis: Dieser "ct"-Leitfaden ist sehr lesenswert und sicherlich auch interessant für erfahrene Programmierer
wink.gif


Gruß Udo
 
Hallo

habe gerade versucht das Programm auf den ESP zu bringen bekomme aber folgende Fehlermeldung.

D7 was not declared in this scope


Es wird der Servoausgang nicht definiert?

Sorry mein Fehler falsches bord aktiviert.

Danke
 
Ansicht hell / dunkel umschalten
Oben Unten