R18 ist ein Robot, der auf einem ESP32 basiert und über ein Browser interface gesteuert werden kann.
Alle Details auf:
https://homofaciens.de/technics-robots-R18-construction_ge.htm

------------------------------------------------------------------------
Software Upload per Arduino UNO:

Um die Software auf den Rovers zu bekommen, wird ein Arduino UNO als Programmierer und die Arduino IDE als Softwarepaket benötigt. 

Zum Hochladen müssen Arduino Uno und ESP32 wie auf der Abbildung verkabelt werden:
Arduino +5V zu ESP32 +5V
Arduino GND zu ESP32 GND
Arduino Pin 0 zu ESP32 Pin UOR
Arduino Pin 0 zu ESP32 Pin UOT
Arduino GND zu ESP32 GND
Vor dem Hochladen des Codes müssen Pin GND und IO0 auf dem ESP32 Board überbrückt werden. Anschließend den Reset Knopf auf dem ESP32 Board drücken. Nach erfolgreichem Hochladen muss die Brücke entfernt und Reset erneut gedrückt werden. Der ESP32 bootet dann mit der neuen Firmware und sollte sich im WLAN anmelden. 

------------------------------------------------------------------------
Vorbereitung der Arduino IDE:

Die Anweisungen gelten für die Installation unter Linux. Getestet habe ich das Ganze unter Linux Mint 20.4 und RaspberryOS.

    Die Arduino IDE kann mit den Befehlen "sudo apt-get update" gefolgt von "sudo apt-get install arduino" installiert werden.
    Unter Linux Mint 20.4 musste ich noch zusätzliche Pakete mit "sudo apt install python-is-python3" und "sudo apt install python3-serial" installieren.
    Nun die Arduino IDE öffnen und auf Datei -> Voreinstellungen gehen. In dem Feld "Zusätzliche Bordverwalter URLs" den folgenden Link eingeben:
    https://dl.espressif.com/dl/package_esp32_index.json
    und das Dialogfeld mit "OK" bestätigen.
    Auf Werkzeuge->Board->Boardverwalter klicken. Dann nach ESP32 suchen und auf die Schaltfläche "Installieren" klicken.
    Unter Werkzeuge->Port den entsprechenden Port mit dem Arduino UNO anklicken.
    Unter Werkzeuge->Board->ESP32 Arduino-> den Eintrag "ESP32 Wrover Module" anklicken. In meinem Fall war die Liste "ESP32 Arduino" zweimal vorhanden, die längere Liste war in dem Fall die richtige.
    Unter Werkzeuge->Upload Speed den Eintrag "115200" auswählen.
    Unter Werkzeuge->Flash Frequency den Eintrag "40MHz" auswählen.
    Unter Werkzeuge->Flash Mode den Eintrag "QIO" auswählen.
    Unter Werkzeuge->Partition Scheme den Eintrag "Huge App (3mb No OTA)" auswählen.
    Unter Werkzeuge->Programmer den Eintrag "AVR ISP" auswählen. Wenn die Liste leer ist, funktioniert's auch ohne eine Auswahl.
    Nun die Arduino IDE schließen und den Ardino Sketch aus dem Download-Paket öffnen.
    Im Quellcode müssen die SSID eures WLAN und dessen Passwort eingetragen werden:
    const char* ssid = "Type-your-SSID-here";
    const char* password = "Type-your-password-here";

    Ebenfalls einzutragen ist eine IP-Adresse für euren Rover und die Gateway Adresse:
    // Set your Static IP address
    IPAddress local_IP(192, 168, 2, 184);
    // Set your Gateway IP address
    IPAddress gateway(192, 168, 2, 1);

    Für die IP-Adresse gilt, dass die ersten drei Zahlen denen in deinem WLAN verwendeten Zahlen entsprechen muss, nur die vierte Zahl kann frei gewählt werden! Die ersten 3 Zahlen erfahrt ihr, indem ihr in einem Terminalfenster auf eurem (Linux) PC den Befehl "ifconfig" eingebt. als Ergebnis erhaltet ihr mehrere Zeilen und in einer davon steht in etwa:
    inet 192.168.2.107 netmask 255.255.255.0 broadcast 192.168.2.255
    Die ersten drei Zahlen nach inet bzw. broadcast sind die ersten drei Zahlen, die ihr im Sketch in den beiden Zeilen eintragen müsst, die vierte Zahl sollte dann die "184" (local_IP) bzw. die "1" (Gateway) sein. Im Quellcode müssen die vier Zahlen der Adressen durch Komma getrennt werden.
    Das Kompillieren und den Upload über Sketch->Hochladen starten. Der Vorgang dauert einige Minuten.
    Ist das Programm erfolgreich hochgeladen, kann die Brücke von GND zu dem Pin IO0 auf dem ESP32 Board entfernt und Reset erneut gedrückt werden. Der ESP32 bootet dann mit der neuen Firmware und sollte sich im WLAN anmelden. Ist das erfolgreich, so blinkt die rote LED auf der Rückseite des ESP32 Boards einmal kurz.
    Nun einen Browser öffnen, der sich im selben WLAN befindet und die Adresse als Ziel eingeben:
    http://192.168.2.184
    Es muss unbedingt "http://" vor der IP Adresse stehen, da der Browser sonst standardmäßig versucht, eine verschlüsselte Verbindung aufzubauen (https://), was nicht funktioniert, da der ESP32 Webserver keine Verschlüsselung beherrscht.
    Es sollte das Kontrollinterface im Browser zu sehen sein und ihr könnt den Videostream starten und die LED ein- und aussschalten. Der Fertig programmierte ESP32 kann jetzt im Rover eingebaut und verkabelt werden.

"Es klappt net!"
...ist keine Aussage, auf die ich irgendetwas antworten kann als "Ja und?"
In jedem der oben angegebenen Schritte wird irgend etwas von den einzelnen Programmen ausgegeben. Lest euch diese Angaben durch, denn dafür werden die von den Programmierern geschrieben! Wenn also etwas schief läuft, so ist das an den Meldungen zu lesen. Wenn ihr von mir Hilfe erwartet, dann müsst ihr unbedingt angeben:

Bei welchem Schritt ein Fehler ausgegeben wurde
und
Welche Meldung zu lesen war.
Gut zu wissen ist auch, mit welchem Betriebssystem (Version?) ihr arbeitet - wirklich weiter helfen kann ich euch nur mit Linux.

In Kontakt könnt ihr mit mir treten, in dem ihr einen Kommentar auf dieser Seite hinterlasst oder mir eine Mail schreibt. Die Addresse findet ihr in der Rubrik Kontakt.

Die Meldung "Es klappt!" bedarf keiner weiteren Angaben, freut mich aber außerordentlich zu hören oder zu lesen. 

Viel Spaß!
 
