- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 10 von 566

Thema: outdoor I

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    77
    Beiträge
    2.180
    vielleicht greife ich hier zu weit vor, aber warum eigentlich nicht. Der Mega 2560 soll ja als "motorbetreuer" dienen, evtl. bekommt er noch ein paar Sensoren zur seite...
    Für die kommunikation nach aussen (und innen) soll ein LOLIN ESP32 dienen, den hatte ich als "rest" aus dem projekt der autonomen TT-lok noch da. Das menü auf dem smartphone sah dort so aus:

    Klicke auf die Grafik für eine größere Ansicht

Name:	2019_11_19_bedien_bild_tt_lok.jpg
Hits:	10
Größe:	46,5 KB
ID:	34490
    dies soll, da die bedienung des outdoor roboters ja viel umfangreicher sein wird durch so etwas
    Klicke auf die Grafik für eine größere Ansicht

Name:	20191119_102532.jpg
Hits:	44
Größe:	35,1 KB
ID:	34491
    ersetzt werden...

    Die übernahme des AP-servers macht mir denke ich keine probleme, wie ich aber die (html?) programmierung des neuen bedienfeldes hinbekommen soll, da habe ich keinen blassen schimmer... Wer hilft?
    gruß inka

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.650
    Wenn Du Hilfe beim HTML-Bedienfeld brauchst, kann ich das gerne für Dich übernehmen. Allerdings habe ich keinen ESP32, nur ein ESP-12E. Müsstest den Code dann auf dem ESP32 selbst zum Laufen bringen, wenn Du nicht ganz unbewandert bist, sollte das funktionieren.


    Gruß

  3. #3
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    77
    Beiträge
    2.180
    also bitte nicht übernehmen, das war nicht der hintergrund meiner frage nach hilfe - ich möchte schliesslich verstehen, was da in dem code passiert...

    Die situation:

    - auf dem ESP läuft ein webserver, der ist an sich kein problem, zumindest habe ich (halbwegs) verstanden was da abläuft...

    - der webserver soll auf "tastendrücke" am smartphone reagieren und die werte, die jetzt die IR-fernbedienung (weiss nicht ob das so sinnvoll ist?) vom ESP über I2C an den arduino liefern...

    - evtl. die IR fernbedienung nur um die werte, die jetzt vom smartphone kommen ergänzen, sodass beide bedienungen funktionieren?

    - der arduino soll per switch() - wie jetzt auch schon - die vom ESP kommenden befehle umsetzen und die motoren steuern...

    Die beiden sketches, so wie sie jetzt sind (die am arduino funktioniert ja bereits mit der IR fernbedienung) und die basis für den webserver (die ich teilweise übernehmen wollte) sind im vorletzten post enthalten. Meinst Du wir können so erstmal starten?
    gruß inka

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.650
    Dann habe ich das in der Kürze Deiner Anfrage nicht vollständig verstanden, wie Du das jetzt weiter beschreibst.
    Aber dennoch: das Tastenfeld der abgebildeten Fernbedienung kannst Du in eine HTML-Seite packen, die kannst Du per Webbrowser von jedem Gerät, dass einen hat, aufrufen.
    Als zweites hast Du dann noch die Fernbedienung zum in die Hand nehmen, die ja sowieso schon funktioniert, wie Du sagst.
    Das halte ich für am einfachsten, für jeden.

    Dies habe ich noch nicht verstanden:
    evtl. die IR fernbedienung nur um die werte, die jetzt vom smartphone kommen ergänzen, sodass beide bedienungen funktionieren?

    MfG

    - - - Aktualisiert - - -

    Du kannst Deinen alten Code natürlich umstricken. Dann musst Du sagen, wobei Du genau Hilfe brauchst. Beim Quelltext für HTML? Oder noch was anderes?


    MfG

    - - - Aktualisiert - - -

    Das Bild von der Fernbedienung: kannst Du mal eine ganz genaue Aufnahme direkt von oben machen? Dann kann das Bild bearbeitet werden, dass es sich möglichst gut komprimieren lässt und dann könnte das als Hintergrundbild verwendet werden. Darüber wird ein Raster mit Elementen gelegt, die beim Anklicken die Stelle hervorheben, die auf dem Bild angeklickt wurde. Wäre eine Möglichkeit die Bedienung in HTML bedienbar zu machen.

  5. #5
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    77
    Beiträge
    2.180
    Zitat Zitat von Moppi Beitrag anzeigen
    das Tastenfeld der abgebildeten Fernbedienung kannst Du in eine HTML-Seite packen, die kannst Du per Webbrowser von jedem Gerät, dass einen hat, aufrufen.
    das ist genau der punkt, wo ich hilfe bräuchte... vielleicht sollten wir uns erstmal auf den aufbau der webseite konzentrieren. Ich hab ja vor jahrzenten bereits ein bischen was mit HTML, PHP und CSS gemacht, aber das ist einerseits sicher überholt und auch bereits so gut wie vergessen. Ein paar begriffe und ihre bedeutung sind noch da, mehr ist es aber nicht...

    das hier
    Code:
        while (client.connected())
        {
          if (client.available())
          {
            char new_byte = client.read();
            Serial.write(new_byte);
            header += new_byte;
            if (new_byte == '\n')
            {
    
              if (current_data_line.length() == 0)
              {
    
                client.println("HTTP/1.1 200 OK");
                client.println("Content-type:text/html");
                client.println("Connection: close");
                client.println();
                
    // lok vorwärts/rückwärts
                if (header.indexOf("LED1=ON") != -1)
                {
                  Serial.println("GPIO5 LED is ON");
                  LED_ONE_STATE = "vorwaerts";
                  digitalWrite(GPIO_PIN_NUMBER_5, HIGH);
                }
                if (header.indexOf("LED1=OFF") != -1)
                {
                  Serial.println("GPIO5 LED is OFF");
                  LED_ONE_STATE = "rueckwaerts";
                  digitalWrite(GPIO_PIN_NUMBER_5, LOW);
                }
    // lok an/aus
                if (header.indexOf("LED2=ON") != -1)
                {
                  Serial.println("GPIO18 LED is ON");
                  LED_TWO_STATE = "an";
                  analogWrite(GPIO_PIN_NUMBER_18, velo); //HIGH);
                }
                if (header.indexOf("LED2=OFF") != -1)
                {
                  Serial.println("GPIO18 LED is OFF");
                  LED_TWO_STATE = "aus";
                  analogWrite(GPIO_PIN_NUMBER_18, LOW);
                }
    //lok schneller/langsammer
                if (header.indexOf("LED3=ON") != -1)
                {
                  Serial.println("GPIO22 LED is ON");
                  velo = velo + 5;
                  LED_THREE_STATE = velo; //"on";
                  //analogWrite(GPIO_PIN_NUMBER_22, velo);//HIGH
                }
                if (header.indexOf("LED3=OFF") != -1)
                {
                  Serial.println("GPIO22 LED is OFF");
                  velo = velo - 5;
                  LED_THREE_STATE = velo; //"off";
                  //analogWrite(GPIO_PIN_NUMBER_22, velo); //LOW
                }
    
                if (header.indexOf("LED4=ON") != -1)
                {
                  Serial.println("GPIO19 LED is ON");
                  LED_FOUR_STATE = "an";
                  digitalWrite(GPIO_PIN_NUMBER_19, HIGH);
                }
                if (header.indexOf("LED4=OFF") != -1)
                {
                  Serial.println("GPIO19 LED is OFF");
                  LED_FOUR_STATE = "aus";
                  digitalWrite(GPIO_PIN_NUMBER_19, LOW);
                }
    
                client.println("<!DOCTYPE html><html>");
                client.println("<head><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">");
                client.println("<link rel=\"icon\" href=\"data:,\">");
                client.println("<style>html { font-family: Helvetica; display: inline-block; margin: 0px auto; text-align: center;}");
                client.println(".button { background-color: #4CAF50; border: 2px solid #4CAF50;; color: white; padding: 15px 32px; text-align: center; text-decoration: none; display: inline-block; font-size: 16px; margin: 1px 1px; cursor: pointer; }");
                client.println("text-decoration: none; font-size: 30px; margin: 2px; cursor: pointer;}");
                // Web Page Heading
                client.println("</style></head>");
                //client.println("<body><center><h1>ESP32 Web server LED controlling example</h1></center>");
                //client.println("<center><h2>Web Server Example Microcontrollerslab.com</h2></center>" );
                //client.println("<center><h2>Press on button to turn on led and off button to turn off LED</h3></center>");
                client.println("<form><center>");
    
                client.println("<p> richtung ist " + LED_ONE_STATE + "</p>");
                client.println("<button class=\"button\" name=\"LED1\" value=\"ON\" type=\"submit\">VORW</button>") ;
                client.println("<button class=\"button\" name=\"LED1\" value=\"OFF\" type=\"submit\">RUECKW</button></center>");
    
                client.println("<p>motor ist " + LED_TWO_STATE + "</p>");
                client.println("<button class=\"button\" name=\"LED2\" value=\"ON\" type=\"submit\">AN</button>");
                client.println("<button class=\"button\" name=\"LED2\" value=\"OFF\" type=\"submit\">AUS</button></center>");
    
                client.println("<p>geschwindigkeit ist " + LED_THREE_STATE + "</p>");
                client.println("<button class=\"button\" name=\"LED3\" value=\"ON\" type=\"submit\">SCHNELLER</button>");
                client.println("<button class=\"button\" name=\"LED3\" value=\"OFF\" type=\"submit\">LANGSAMMER</button></center>");
    
                client.println("<p>kamera ist " + LED_FOUR_STATE + "</p>");
                client.println("<button class=\"button\" name=\"LED4\" value=\"ON\" type=\"submit\">AN</button>");
                client.println("<button class=\"button\" name=\"LED4\" value=\"OFF\" type=\"submit\">AUS</button></center>");
    
    
                client.println("</center></form></body></html>");
                client.println();
                break;
              }
              else
              {
                current_data_line = "";
              }
            }
            else if (new_byte != '\r')
            {
              current_data_line += new_byte;
            }
          }
        }
    ist das problem,

    Zitat Zitat von Moppi Beitrag anzeigen
    Du kannst Deinen alten Code natürlich umstricken. Dann musst Du sagen, wobei Du genau Hilfe brauchst. Beim Quelltext für HTML? Oder noch was anderes?
    naja, dass, was jetzt bereits im arduino läuft - läuft ja. Zunächst ist das ja ausreichend. Es geht mir letztendlich darum , dass ich - je nach situation - den roboter per IR-fernbedienung oder smartphone steuen kann...

    edit: foto hinzu...
    Klicke auf die Grafik für eine größere Ansicht

Name:	IR_fernbedienung_arduino.jpg
Hits:	6
Größe:	98,1 KB
ID:	34497
    Geändert von inka (19.11.2019 um 15:24 Uhr) Grund: foto hinzu
    gruß inka

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.650
    Der Link (Anhang 34495) funktioniert nicht.

    Fehler:
    Ungültige Angabe: Anhang
    Wenn du einem normalen, gültigen Link im Forum gefolgt bist, wende dich bitte an den Webmaster.
    - - - Aktualisiert - - -

    Ok, Bild ist jetzt da.

  7. #7
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    77
    Beiträge
    2.180
    ich hatte im nachinein auch probleme das bild darzustellen, keine ahnung was da war...

    ich finde es toll, dass Du mir hilfst, würde aber sehr gerne an Deinen überlegungen teilhaben wollen - wenn's denn nicht zu viel verlangt ist - also auch mit evtl. irrwegen, meinen dummen fragen usw...
    gruß inka

  8. #8
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.650
    Na gut, wenn Du das alles nachvollziehen willst, musst Du selber ran, an den Code, aber mit Unterstützung / Hilfe.
    Das Bild bearbeite ich mal und verpacke das in eine komprimierte Datei, JPEG oder so - was am wenigsten Platz benötigt.

    Die Datei kann in das "Filesystem" auf dem nodeMCU geschrieben werden, damit belegt es keinen Programmspeicher. Allerdings kommt dann wieder zusätzlicher Programmcode, für SPIFF hinzu.
    Oder zweitens, ich codiere die Dateigleich zu Base64 und diesen String kann man dann direkt in den Programmcode integrieren. Das wäre vielleicht zu Anfang die einfachste Methode.




    MfG

Ähnliche Themen

  1. Abstandsmessung Outdoor bis 3m
    Von robo218 im Forum Sensoren / Sensorik
    Antworten: 4
    Letzter Beitrag: 14.12.2017, 06:56
  2. outdoor spy robot
    Von jancrombach im Forum Vorstellung+Bilder+Ideen zu geplanten eigenen Projekten/Bots
    Antworten: 7
    Letzter Beitrag: 14.08.2010, 13:09
  3. Outdoor Roboter
    Von OsramLED im Forum Vorstellung+Bilder+Ideen zu geplanten eigenen Projekten/Bots
    Antworten: 3
    Letzter Beitrag: 07.08.2006, 09:34
  4. Outdoor-Robo
    Von RobotrixerP im Forum Mechanik
    Antworten: 3
    Letzter Beitrag: 16.04.2006, 18:38
  5. [ERLEDIGT] Outdoor - Navigation
    Von Quaio im Forum Sensoren / Sensorik
    Antworten: 37
    Letzter Beitrag: 21.04.2005, 12:31

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress