Micro Controller unter macOS - Teil 2

Einrichten der Arduino IDE und Einbindung der ESPs sowie die Einrichtung von Thonny unter macOS

An Apple a day keeps Windows away :-)

Teil 2 – ESPs einrichten

1. Eine kurze Vorbemerkung

Die Mikrocontroller von Espressif, ESP8266 und ESP32, erfreuen sich unter den Bastlern großer Beliebtheit, sind sie doch schnell, haben viel Speicherplatz, WLAN und sogar, je nach Variante, Bluetooth mit an Bord. Außerdem gibt es zahlreiche günstige Boards von verschiedensten Herstellern. Zudem sind sie auch mit der Arduino IDE programmierbar. Allerdings sind einige Schritte zusätzlich nötig, damit die IDE mit den ESPs spricht.

Dazu kommt noch, dass die Version 1.8.13 der Arduino IDE für macOS noch nicht ganz »Big Sur« fest ist, was ein paar zusätzliche Schritte erfordert. Packen wir es an!

2. Bereitstellen der Boards für ESP8266 und ESP32

    Als Erstes muss der Arduino IDE mitgeteilt werden, von wo die Files zum Umgang für die ESPs geholt werden können. Dazu rufen wir unter /Datei die Voreinstellungen (engl. »Preferences«) auf und tragen die »Bordverwalter URLs« ein:
    Für den ESP8266 ist dies:
    https://arduino.esp8266.com/stable/package_esp8266com_index.json
    und für den ESP32:
    https://dl.espressif.com/dl/package_esp32_index.json


    a) Eintragen der URLs:

    Nach einem Klick auf das Symbol rechts neben der Zeile »Zusätzliche Boardverwalter-URLs« öffnet sich ein kleines Fenster, wo die beiden oben genannten URL, eine in je einer eigenen Zeile, eingetragen werden.


      b) Herunterladen der Files im »Boardverwalter/Boardmanager«

      Dazu rufen wir ihn auf: /Werkzeuge / Board / Boardverwalter ...


      c) Laden der Files für den ESP8266: In das Suchfeld esp82 eintragen und »Installieren« klicken (es dauert ein paar Sekunden, bis das gewünschte Paket gefunden wird)


      d) Laden der Files für den ESP32: In das Suchfeld esp32 eintragen und »Installieren« klicken,


      dann das Fenster schließen.

      3. Das erste Programm mit einem ESP6266

        Wieder verwende ich das Beispielprogramm »Blink« aus der Beispielsammlung.

        Als Testobjekte standen mir zur Verfügung:

        Alle drei Boards von AZ-Delivery.

        Das Programm »Blink« (alle Kommentare entfernt):

        void setup() {
          pinMode(LED_BUILTIN, OUTPUT);
        }

        void loop() {
          digitalWrite(LED_BUILTIN, HIGH);   // turn the LED on
          delay(200);                        // wait for a second
          digitalWrite(LED_BUILTIN, LOW);    // turn the LED off
          delay(200);                        // wait for a second
        }

        Damit das Programm ESP-kompatibel wird, müssen wir das passende Board sowie den richtigen Port auswählen. Das passende Board zu wählen kann ein wenig ein Ratespiel sein, manchmal weiß man nicht, welches bei einem vorliegt. Ich habe Board »WeMos D1 R1« gewählt, was mit allen drei meiner ESP8266-iger funktioniert hat.

        Werkzeuge -> Board: -> ESP8266 Boards (2.7.4) -> WeMos D1 R1


        Und der Port: Werkzeuge -> Port -> /dev/cu.usbserial-1420


        Die genaue Bezeichnung des Ports hängt natürlich von der Hardware ab.

        Nun frohgemut das Programm übersetzten und auf das Board laden.

        Hier gab es nun ein ernsthaftes Problem, das wohl darauf zurückzuführen ist, dass die ESP8266 Umgebung noch nicht völlig »Big Sur« kompatibel ist.

        Es kam stets eine Fehlermeldung »pyserial or esptool directories...«:


        Nach einiger Suche im Netz wurde ich fündig und konnte das Problem lösen: 

        a) Herunterladen der Datei: https://github.com/espressif/esptool/archive/v3.0.zip
        b) Herunterladen der Datei: https://github.com/pyserial/pyserial/archive/v3.4.zip
        c) Entpacken der im Download-Ordner liegenden Dateien »esptool-3.0.zip« und »pyserial-3.4.zip«
        d) Umbenennen der Ordner »esptool-3.0« in »esptool« und von »pyserial-3.4« in »pyserial«
        e) Diese beiden Ordner werden nun in das Verzeichnis
        ~/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/tools/
        kopiert und ersetzen die dort befindlichen, gleichnamigen Ordner.

        Wie um aller Welt kommt man nun in diesen Ordner? Der Ordner ~/Library ist gewöhnlich im Finder versteckt. Was also tun?
        Ganz einfach: die Zeile

        ~/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/tools/

        in die Zwischenablage kopieren und dann im Finder den Menüpunkt aufrufen: »Gehe zu -> Gehe zum Ordner ...« und dann in das kleine Fenster die Zwischenablage einfügen und »Öffnen« klicken.


        Nach dieser Prozedur klappte bei allen drei Boards die Kompilierung und der Übertragun und es setzte ein heftiges Blinken der eingebauten LED ein. 

        Geschafft!

        4. Das erste Programm mit einem ESP32

          Hier gab es nun doch ein Problem. Alle drei Boards der Reihe »ESP32 D1 R32 Entwicklungsboard mit CH340G und WiFi + Bluetooth (Arduino kompatibles Internet Development Board)« von AZ-Delivery weigerten sich zunächst, ein Programm aufzunehmen. Bei zweien konnte keine Verbindung aufgebaut werden und das andere Board meldete: »A fatal error occurred: Timed out waiting for packet content«. Dieses Board konnte durch eine Reduktion der »Upload Speed« auf 115200 Baud zum Leben erweckt werden.


          Die beiden Anderen waren auch bei der geringsten »Upload Speed« von 460800 Baud nicht dazu zu bewegen, einen Kontakt zur Arduino IDE herzustellen.

          Das lag definitiv nicht am macOS, denn ich hatte das gleiche Ergebnis mit der Arduino IDE sowohl unter WIN 7 als auch unter LINUX Mint.

          Nach Rücksprache mit Gerald Lechner konnte wenigstens eines der Board zu Leben erweckt werden.
          Die Meldung: »Connecting........_____....._____....._____....._____....._____.....« bedeutet, dass das Board nicht in den Flash-Modus versetzt werden kann.
          Verbindet man den Pin OO mit GND und betätigt dann der Rest-Knopf, so wird das Board manuell in den Flash-Modus versetzt. Bei einem der beiden Verweigerer hat das zum Erfolg geführt, beim Zweiten war es vergebliches Bemühen.

          Funktioniert haben also drei Boards:


          Als Board wählte ich zunächst das »ESP32 Dev Modul« aus der Rubrik »ESP32 Arduino«, der Port hieß /dev/cu.usbserial-0001. (Alle benötigten Treiber waren vorinstalliert!)

          5. Das Programm

          Auch hier wieder das bewährte Programm »Blink«, das aber ein wenig abgewandelt werden musste. Denn es ist der Pin 1 oder Pin 2, der mit der internen LED verbunden ist und die vordefinierte Konstante LED_BUILTIN ist diesem Modul unbekannt.

          int LED = 1;
          // 1 für ESP32 NodeMCU; 2 für für ESP32 D1 R32

          void setup() {
            pinMode(LED, OUTPUT);
          }

          void loop() {
            digitalWrite(LED, HIGH);
            delay(200);
            digitalWrite(LED, LOW);
            delay(200);
          }

           

          Für das Heltec-Board musste ich einstellen:

          Board: Heltec WiFi Kit 32

          Port: /dev/cu.usbserial-0001

          Das Programm musste geändert werden:

          void setup() {
            pinMode(LED_BUILTIN, OUTPUT);
          }

          void loop() {
            digitalWrite(LED_BUILTIN, HIGH);
            delay(200);
            digitalWrite(LED_BUILTIN, LOW);
            delay(200);
          }

           

          Geschafft!  Beim nächsten Mal installieren wir Thonny als Entwicklungsumgebung für Micro Python.

          Download pdf

           

          Esp-32Esp-8266Für arduinoGrundlagen softwareProjekte für anfänger

          6 Kommentare

          Marco

          Marco

          Hallo,
          ich nochmal hab den Fehler gefunden.
          Anscheinend gibt es Unterschiede bei den Kabels.
          Habe drei Stück ausprobiert und erst beim dritten wurde der ESP8266 vom Mac erkannt.
          Bei den anderen beiden war nur die Stromversorgung von ESP gegeben.
          Gruß Marco

          Marco

          Marco

          Hallo zusammen,
          der Beitrag ist echt spitze.
          Leider wird bei mir der serielle USB-Port nicht angezeigt sondern nur kabellose Verbindungen.
          Weiß jemand woran das liegt?
          Beste Grüße
          Marco

          Rudolf Reiber

          Rudolf Reiber

          Das Problem von Julia konnte gelöst werden. Es fehlte das neueste esptool an der entsprechenden Stelle. Ob das nun an Big Sur lag oder daran, dass die Arduino IDE nicht korrekt upgedatet wird? Ich weiß es nicht. Auf jeden Fall tut bei Julia nun alles.

          Rudolf Reiber

          Rudolf Reiber

          Hallo Julia,
          kannst Du die Probleme bitte genauer schildern.
          Bei mir ist die ESP32 Umgebung völlig „Big Sur“ kompatibel.
          Viele Grüße
          R. Reiber

          Julia

          Julia

          vielen Dank für diesen Artikel, die Problembehandlung für den ESP 8266 hat gut geklappt,
          aber was ist mit der ESP32 Umgebung, auch sie ist noch nicht völlig »Big Sur« kompatibel,
          beste Grüße von Julia

          Rudolf Reiber

          Rudolf Reiber

          Hinweis: bei dem dritten ESP32 Board, das nicht tat, befand sich ein Lötbatzen zwischen zwei Pins, dem TXT- und RXT-Pin. Das ist bei der Endkontrolle des Boards offensichtlich nicht aufgefallen. Mithin konnte das Board nicht mit der tion mit der ARDUINO-IDE erfolgen. Nach dem Entfernen der Lötbrücke funktionierte auch das dritte Board einwandfrei.

          Einen Kommentar hinterlassen

          Alle Kommentare werden vor der Veröffentlichung moderiert

          Empfohlene Blogbeiträge

          1. ESP32 jetzt über den Boardverwalter installieren
          2. Lüftersteuerung Raspberry Pi
          3. Arduino IDE - Programmieren für Einsteiger - Teil 1
          4. ESP32 - das Multitalent
          5. OTA - Over the Air - ESP Programmieren über WLAN