Allereerst wil ik al onze lezers bedanken voor de levendige feedback over ons artikel "PlatformIO Installation".
Velen hebben het artikel gelezen en ook de software geïnstalleerd.
Daarom wil ik graag een paar kleine tips geven op weg naar hier vandaag.
Eén.Zoeken en installeren van bibliotheken
De Arduino IDE biedt praktische bibliotheekbeheer.Dit maakt het vrij gemakkelijk om naar bibliotheken te zoeken, ze te installeren, en ze up-to-date te houden.
Een soortgelijke functie wordt geleverd door de knop "Bibliotheken" in PlatformIO:
Ten eerste wil ik mijn favoriete bibliotheek installeren voor het controleren van displays: U8g2 door OliKraus.Om dit te doen, voer ik de naam van de bibliotheek in de zoekbalk: "U8g2" in en bevestig de invoer met Enter, of klik op het vergrootpictogram:
De eerste hit is de gewenste bibliotheek.Door op de bibliotheek te klikken komen we op de overzichtspagina van de bibliotheek.Hier worden alle belangrijke informatie over de bibliotheek getoond, en we kunnen de gewenste versie selecteren (meestal neem ik de meest recente versie), en door op de knop "Installeren" te klikken kunnen we de bibliotheek installeren.
Na een paar momenten de boodschap "Gefeliciteerd!U8g2 @2.23.x is succesvol geïnstalleerd!"
Door op het tabblad "Geïnstalleerd" te klikken, kunnen we zien welke bibliotheken zijn geïnstalleerd en verwijderen indien nodig.Klik op "Reveal" om de bestandsbeheerder te openen en ons de map met de geïnstalleerde bibliotheken te tonen.
De bibliotheken worden niet langer in hun eigen documenten geïnstalleerd onder "C:\Users<Name>DocumentenArduinolibraries", maar onder "C:\Users<platformiolib".
Twee.Een eerste eigen project aanmaken
Voordat we de geïnstalleerde bibliotheek kunnen gebruiken, moeten we een project creëren.
Om dit te doen, gaan we naar de "Home" knop en klik op "New Project" op "Quick Access".
In het volgende venster wijzen we een naam toe en selecteren we de microcontroller.In het voorbeeld neem ik onze Nano V3, dus ik ga naar Nano bij "Board" en kies Arduino Nano ATmega328.Ik laat de vermelding voor "Framework" achter op "Arduino".Ervaren gebruikers kunnen kiezen tussen andere kaders, afhankelijk van het bestuur.
Nu wordt het project gecreëerd.Dit kan een paar minuten duren, vooral als het het eerste project met een bepaalde microcontroller en alle benodigde bestanden moeten worden gedownload van het internet.
Dan verschijnt het aan de linkerkant van de ontdekkingsreizigers, en ons project "OLED TEST" wordt weergegeven.Als we src openen, zien we een bestand genaamd main.cpp.Dit komt overeen met onze lege Arduino schets, met lege setup() en lege lus().
Aan de onderkant van de blauwe statusbalk verschijnt een groot aantal kleine symbolen.Dit zijn knoppen, en laten ons toegang tot verschillende functies.We kunnen de code compileren met Build.Upload de gecompileerde code naar de microcontroller.
Test, ik compiler de blanco schets en upload het.De volgende uitvoer verschijnt in de console:
> uitvoeren van taak: C:\Userschripp\platformio\penvScriptsplatformio.exe run --target upload <
Verwerking van nanoatmega328 (platform: atmelavra; board: nanoatmega328; framework: arduino)
---------------------------------------------------------------------------
PackageManager: Installatie tool-avrdude @1.60300.0
downdowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndownloaden downloaden downloaden downloaden downloaden downloaden downloaden downloaden downloaden downloaden downloaden downloaden downloaden downloaden downloaden downloaden downloaden downloaden downloaden downloaden downloaden downloaden downloaden downloaden downloaden downloaden downloaden downloaden downloaden downloaden downloaden downloaden downloaden downloaden downloaden downdowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndowndownloaddownloaddownloaddownloaddownloaddownloaddownloaddownloaddownloaddownloaddownloaddownloaddownloaddownloaddownloaddowndownloaddownloaddownloaddownloaddownloaddownloaddownloaddownloaddownloaddownloaddownloaddownloaddownloadloadloaddownloadloaddownloaddownloaddownloadloaddownloaddownloaddownloads;, downloaddownloaddownloaddownloaddownload;.
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%
De verbosemodus kan worden ingeschakeld via `-v, --werkwose'-optie
PLATFORM: Atmel AVR > Arduino Nano ATmega328
SYSTEEM: ATMEGA328P 16MHz 2KB RAM (30KB Flash)
Bibliotheek Dependency Finder > http://bit.ly/configure-pio-ldf
LDF-MODELEN: FINDER(ketting) COMPATIBILITEIT(zacht)
Verzameling 25 compatibele bibliotheken
Scannen van afhankelijkheden...
In afhankelijkheden
Samenstelling
Archiveren
Samenstelling
Samenstelling
Samenstelling
Samenstelling
Samenstelling
Samenstelling
Samenstelling
Samenstelling
Samenstelling
Samenstelling
Samenstelling
Samenstelling
Samenstelling
Samenstelling
Samenstelling
Samenstelling
Samenstelling
Samenstelling
Samenstelling
Samenstelling
Samenvoeging
Samenstelling
Samenvoeging
Samenvoeging
Samenvoeging.pioenvsnanoatmega328FrameworkArduinobedrading in shift.c.o
Archivering
Koppeling
Gebouw.pioenvsnanoatmega38firmware.hex
Controle grootte.pioenvsnanoatmega328firmware.
Geheugegebruik > http://bit.ly/pio-geheugen-gebruik
GEGEVENS: [] 0.4% (gebruikte 9 bytes uit 2048 bytes)
PROGRAM: []1.4% (gebruikte 444 bytes van 30720 bytes)
Het upload protocol instellen...
BESCHIKBAAR: arduino
CURRENT: upload protocol = arduino
Op zoek naar upload poort...
Auto-gedetecteerd: COM25
Upload.pioenvsnanoatmega38firmware.hex
avrdude: AVR-apparaat geïnitialiseerd en klaar om instructies te accepteren
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
avrdude: Device signature = 0x1e950f (waarschijnlijk m328p)
avrdude: het lezen van invoerbestand ".pioenvsnanoatmega328firmware.hex"
avrdude: het schrijven van flash (444 bytes):
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\ 35; 35;\35;\35;\ 35;\ 35; 35; 35;\ 35; 35;\ 35;
avrdude: 444 bytes van flash geschreven
avrdude: verificatie van flash geheugen tegen.pioenvsnanoatmega328firmware.hex:
avrdude: laad data flash data uit invoerbestand.pioensnanoatmega328firmware.hex:
avrdude: invoerbestand.pioensnanoatmega328firmware.hex bevat 444 bytes
avrdude: lezen op-chip flash data:
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------'35;\35;\35;\\\\35;\\\\\\\\\\\\\
avrdude: verificatie...
avrdude: 444 bytes van flash geverifieerd
avrdude: safemode: Fuses OK (E:00, H:00, L:00)
Avrdude gedaan.Dank u, meneer.
Het nam 5.87-seconden ======================== Take 5.87 seconden =====
De terminal wordt hergebruikt door taken, druk op elke sleutel om te sluiten.
Het bestand "platformio.ini" bevindt zich onderaan de Explorer. Als we dit selecteren, herkennen we de geselecteerde microcontroller. Op dit punt kunnen we indien nodig de poort voor de upload wijzigen.
We kunnen de optie "upload_port" in dit bestand toevoegen, b.v. met de regel "upload_port = COM25".
Verdere opties voor de uploadopties zijn te vinden op https://docs.platformio.org/en/latest/projectconf/section_env_upload.html#upload-port
Tip: op de PlatformIO: startpagina onder "Apparaten" worden alle aangesloten en herkende boards weergegeven:
Platform IO: Tab: Apparaten
Nu kunnen we de bibliotheek integreren met #include. Ik gebruik de voorbeeldschets van ons eBoek voor het 0.91 “i²c OLED-scherm met kleine aanpassingen.
# opnemen <Arduino.h> # opnemen <U8g2lib.h> U8G2_SSD1306_128X32_UNIVISION_F_HW_I2C u8g2(U8G2_R0, / * reset = * / U8X8_PIN_NONE); u8g2_uint_t offset; u8g2_uint_t breedte; const char *tekst = "Test"; nietig instellen() { u8g2.beginnen(); u8g2.setFont(u8g2_font_logisoso32_tf); breedte = u8g2.getUTF8Width(tekst); u8g2.setFontMode(0); } nietig lus() { u8g2_uint_t x; u8g2.eerste pagina(); doen { x = offset; u8g2.setFont(u8g2_font_logisoso32_tf); doen { u8g2.drawUTF8(x, 32, tekst); x += breedte; } terwijl ( x < u8g2.getDisplayWidth() ); u8g2.setFont(u8g2_font_logisoso32_tf); u8g2.setCursor(0, 64); u8g2.afdrukken(breedte); } terwijl ( u8g2.volgende pagina() ); offset -= 1; als ( (u8g2_uint_t)offset < (u8g2_uint_t) - breedte ){ offset = 0; u8g2.clearBuffer(); } }
Na het compileren en uploaden verschijnt de tekst op het display:
Elk begin is moeilijk. Overschakelen naar nieuwe software is niet alleen moeilijk, maar vereist ook veel discipline, omdat het heel gemakkelijk zou zijn om gewoon snel de Arduino IDE te starten en de code daar snel te uploaden.
Ik hoop dat deze stapsgewijze handleiding je kan helpen deze verleiding te weerstaan.
We willen graag weten hoe je toegang tot de wereld van PlatformIO was. Schrijf uw ervaring in de reacties of stuur ons een korte e-mail. Welke struikelblokken moest u overwinnen? Kun je je voorstellen dat je het volledig zou doen zonder de Arduino IDE? Over welke aspecten van PlatformIO zou je meer blogberichten willen zien?
Ik kijk uit naar je feedback en zeg tot ziens voor vandaag.
Hoogachtend, Markus Neumann
15 Reacties
Jörn Weise
Hallo Peter,
im Prinzip geht es mit dem einbinden von externen Bibliotheken, siehe dazu https://docs.platformio.org/en/latest/projectconf/sections/env/options/library/lib_extra_dirs.html
Jedoch würde ich das nicht empfehlen, wenn nicht die Libraries sehr speziell sind. Das Prinzip hinter PlatformIO ist, dass jedes OS die Libs runterladen kann und dort abspeichert, wo es passt. Wenn nun Extra-Libs angenommen werden, so kann es nachher zum Fehler kommen.
Gruß
Jörn
Peter
Vielen Dank für den tollen Artikel.
Wie ist es möglich, lokal gespeicherte Libraries (Arduino-IDE) in Platformio zu integrieren,, bzw. über die Suchfunktion entsprechenden Libraries zu filtern.
Beispiel: Bei der Suche nach einer Library mit dem Namen “Wire” werden mehr als 600 Treffer angezeigt. Auch solche in denen der Name “Wire” im Namen nicht enthalten ist.
Julia
vielen Dank für den hilfreichen Artikel, ich bin begeistert. Nur das Hochladen auf den ESP32 klappt nicht.
Ich arbeite mit macOS Big Sur Vers. 11.2.3
mit Windows klappt es
Fehler: A fatal error occurred: Failed to connect to ESP32: Timed out waiting for packet header
den Boot Button auf dem ESP32 habe ich gedrückt während des Hochladens,
beste Grüße von Julia
Jürgen Beckamp
Danke für den guten Beitrag,
ich kann Libraries nur in ein Projekt installieren.
Bei mir fehlt der gezeigte Schalter “Install…” (viertes Bild).
Ich habe dort “Add to Project” als einzige Auswahl und muss dann auch das Projekt auswählen in das die Libs installiert werden.
So werden viele “gleiche” Libs in den unterschiedlichen Projektordnern abgelegt.
Es wird jedesmal .pio unter dem Projekt erzeugt und darin ist libdeps\esp32… mit den Libs.
( z.B. für ein Webserverprojekt wird .pio mit 110MB und 167Dateien gross) je nach Projekt und installieren Libs, die beim Upate ja auch berücksichtigt werden.
Den erwähnten Ordner „C:\Users\\.platformio\lib“ habe ich nicht.
Ich habe mein Userverzeichnis auf Laufwerk D: verlegt (weil C: klein ist), und da ist kein Verzeichniss „D:\Users\\.platformio\lib“.
Was muss ich in den Einstellungen ändern um auch ein gemeinsames Liraries-Verzeichnis zu bekommen?
In der platformio.ini habe ich dann z.B. :
lib_deps =
AsyncTCP@^1.1.1
ESP Async WebServer@^1.2.3
Im Main.cpp dann die normalen #include und es geht…
aber die Libs kommen dann wohl aus dem Unterordner .pio aus dem jeweiligen Projekt.
Danke für die Unterstützung
Mit freundlichem Gruß
Jürgen
Markus W
Anntwort für Daniel:
Sehr einfach, indem man auf den src-Ordner im Arbeitsbereich mit der rechten Maustaste klickt und dann “Neue Datei” wählt. Dann benennt man die Datei und sie ist auch gleich als neuer Tab geöffnet.
Ich habe mir hier die “ordentliche” Arbeitsweise mit Header- und Quelltextdateien angewöhnt.
Das einzige, was ich noch nicht vertsnden habe, ist die Verwendung von Git.
Daniel
Hallo, ich bin auch gerade dabei, von der Arduino IDE auf PlatformIO umzusteigen. Vielen Dank für den hilfreichen Beitrag.
In der Arduino IDE kann man den Code eines Projektes (z.B. der Übersichtlichkeit halber) einfach in mehrere .ino Dateien aufteilen.
Wie macht man sowas in PlatformIO?
Viele Grüße
Daniel
R. Otto
Hallo,
ist es möglich aufzuzeigen, wie man mit einem Programmer (zB STK500) oder /und mit dem Bottloader das Programm auf den Arduino überträgt- wo wird das konfiguriert?
Dieter Behm
hallo Herr Markus Neumann,
der Artikel ist super, danke auch für Ihren Einsatz für meine Ersatzlieferung. Nach anfänglichen Problemen komme ich meinem Ziel mit Ihren Artikeln ein Stück näher.
Danke dafür
Dieter Behm
Markus
Ich habe ein Problem mit dem seriellen Monitor unter PlatformIO (in VSC) und dem “ESP32 NodeMCU Module WLAN WiFi Development Board mit CP2102” von Euch.
Unter der Arduinio Ide funktionierte der Zugriff auf die serielle Schnittelle (für Debug-Ausgaben) problemlos.
Unter PlatformIO scheint der ESP32 nicht zu funktionieren, sobald ein “Serial.begin(115200);” in der setup-Funktion erscheint.
Ohne diesen Zugriff auf Serial.XY macht der ESP32 was er soll. (hab mal zum testen die LED blinken lassen)
Welche Einstellungen sind in PlatformIO nötig, damit der serielle Zugriff funktioniert?
Umgebung: MacOS
Einstellungen z.B. für Board habe ich genauso wie hier beschrieben übernommen:
https://docs.platformio.org/en/latest/tutorials/espressif32/arduino_debugging_unit_testing.html
Wer kann mir helfen?
Danke + Gruß
Markus
Bert
Hallo, wie kann mann die Deutsche Sprache Installieren vielen Dank im voraus Gruß Bert
Thomas
Auch vom mir vielen Dank.
Nun kann ich ganz prima Bibliotheken einbinden. Doch wie werde ich die wieder los?
Wie kann man Bibliotheken deinstallieren?
Weiß das jemand?
LG au Berlin
Michael
Danke für diese Anleitung. Dadurch fällt der Wechsel von der Arduino IDE auf PlattformIO leichter :-)
Udo Scharnitzki
Hallo,
es gibt relativ wenige Tutorials, die wie dieses hier, ausführlich und engagiert eine Software vorstellen. Es hat unter Windows 10 alles auf Anhieb geklappt. Für eine Bewertung habe Sie volle Punktzahl mit Auszeichnung verdient.
Vielen, vielen Dank für die Arbeit, die Sie sich gemacht haben. Sowas braucht die Welt!!! Ihnen “ALLES GUTE” weiterhin.
Stephan Strittmatter
Super Artikel, ich bin auch recht schnell von der Arduino IDE auf Platform.io umgestiegen. Die IDE ist um Welten besser.
Bernd
Das hat einwandfrei funktioniert! Vielen Dank für diese Hilfe!