Eine Webseite ist fertig, bei der zweiten passt das Layout und die AJAX Kommunikation, WLAN Controller spricht mit der NanoWii usw.
User-Input auf der WebSeite zur Steuerung wird bereits an den WebServer gesendet, aktuelle Daten angezeigt und mit dieser Seite kann ich die cablecam fahren lassen.
Direkt nach dem Start ist die Weg-Untergrenze bei 0 und die Obergrenze 9999999. Deswegen ist es mir noch nicht erlaubt die Cablecam zu benutzen und die untere Hälfte des Screens (Movement) ist ausgeblendet. Wann immer ich jetzt auf "Start moving slowly" drücke, fährt die Cablecam mit einer sehr niedrigen maximalen Geschwindigkeit um 100 Motor Umdrehungen weiter. Das wiederhole ich so oft bis ich am Seilende bin, dann drücke ich den Stop Button und lege die aktuelle Position als die Weg Obergrenze fest. Gleichzeitig wird die maximale Geschwindigkeit auf den Sollwert gesetzt.
Ab jetzt kann ich mit dem GoTo Schieberegeler zwischen den Werten für die Unter (0.00) und Obergrenze (750.00) hin und her fahren, der Browser hat einen onChange Event und ruft ständig die URL move.cgi?targetpos=xyz auf, xyz ist der Wert des Schiebereglers, aktuell eben 276.00. Im Webserver wird diese URL ausgewertet und per UART das Kommando $T276.0*FF an die NanoWii geschickt und diese lässt die Cablecam sofort an diese Position fahren. Das ist natürlich bei weitem nicht so feinfühlig wie mit einer Fernsteuerung, aber dazu dient es ja auch nicht primär. Das eigentliche Ziel sind Wegprofile abzufahren, aktuell gibt es nur das automatisierte Fahren an den Anfang oder das Ende des Seils indem ich unterhalb des Reglers auf die Start- oder Endposition (0.00 oder 750.00) klicke.
Im Bereich "Current Position" werden aktuelle Werte dargestellt:
Pos: die Umdrehungen des Motors, die Ist-Position also
Target: Der Soll-Wert. Die Differenz zwischen den beiden ist was der PID Regler noch korrigieren müsste
Speed: Die aktuelle Soll-Geschwindigkeit
Throttle: Die microsekunden des PWM Signals, also hier gerade 1,479ms lange, sprich in Neutral (=1,5ms Pulsweite)
Ganz unten sieht man was am seriellen Protokoll gerade so abgeht, aktuell wurde die NanoWii nach dem Throttle Output gefragt "$o*FF" und hat geantwortet mit "$o 1479.00 OK*4e". Das $o zeigt mir zu welchem Befehl der Wert 1479.00 gehört, OK sagt das kein Fehler auftrat und *4e ist die Prüfsumme (XOR, ganz so wie beim GPS NMEA Protokoll auch).
Die nächste Seite "Settings" existiert schon, ich muss noch alle Kommandos im WebServer in NanoWii Kommandos umsetzen, also wenn diese Seite den URL move.cgi?kp=10.0 per AJAX anspricht, dann wird das serielle Kommando $1 10.0*FF abgesetzt, der Befehl 1 ist eben der Kp Wert alleine. (Ja, ich habe das Protokoll vom vorhergehenden Post erweitert)
Sobald ich die Settings per Webseite ändern kann, werde ich mal versuchen wie schön oder schlecht die Regelung am Seil funktioniert.