Ich habe bereits Erfahrungen mit Arduino und bin geschäftlich ein
erfahrender Anwendungs-Entwickler (Java, C, C++, C#, etc...,
Windows/Linux, etc., VS, Eclipse, etc..). In letzten Zeit fasziniert
mich privat immer mehr Microcontroller-Enwicklung. Ich sehe nach ersten
Basics-Erfahrungen mit Arduino's, Attiny's, STM32 den ESP32 für mich als
Microcontroller der Wahl um verschiedene private-Projekte damit zu
realisieren (Preis, Grösse, Powermanagement, 2-Prozessoren, etc.,
angebotene Features).
Welche Tutorials, e-books, etc. würdet ihr empfehlen, um hier schnell
professionell und tiefgehend zu lernen. Ich möchte einfach kein Zeit
verschwinden um Stundenlang youtube videos oder sinnlose Bücher
anzuschauen, die nur Basics vermitteln oder nicht gut sind. Hier ist
Eure Erfahrung gefragt.
Folgende Schwerpunkte sind mir wichtig und sollen vertieft betrachtet
werden:
- Multithreading, interrupts, etc.
- Entwicklung Powereffizienter Anwendungen. Powermanagement (u.a. deep
sleep) allgemein...
- OTA
- Arduino API vs Espressif ESP32
- Arduino IDE vs. Eclipse, vs. VS, vs. platform IO, etc. bei der
Enticklung von ESP32
- Wo sind die Grenzen bei der Arduino-IDE mit STM32
- Wo ist die Entwicklung mit Assembler unbedingt notwending (wenn
überhaupt)?
Ich bin natürlich offen auch Geld für Bücher, etc. auszugeben, wenn ich
dadurch eine schnellere learning-kurve habe.
Da das SDK noch in der Beta-Phase steckt kann man noch keine Anleitung
in Buch-Form empfehlen. Da ändert sich alle Nase etwas. An Deiner Stelle
würde ich das IDF und die zugehöre Doku downloaden. Weitere Fragen
werden im Support Forum geklärt.
Installiere Dir doch zum Anfang das Arduino für den ESP32 und geh die
Beispiele durch, die dich interessieren. Dann guckst Du im Arduino
SourceCode:
https://github.com/espressif/arduino-esp32
und anschliessend im IDF:
https://github.com/espressif/esp-idf
Die Arduino library ist nur ein Wrapper für das IDF, dort steht der
Low-Level Kram drin. Wichtigstes Dokument ist dann das Manual
https://www.espressif.com/sites/default/files/documentation/esp32_technical_reference_manual_en.pdf
Habe selbst viel mit dem ESP32 rumgespielt, aber wenn Du es auf
besonders stromsparenden Betrieb abgesehen hast, kann ich ihn leider
nicht empfehlen. Vielleicht haben wir aber auch unterschiedliche
Ansprüche. Schau mal bei den "Deep sleep" Beispielen zum starten und
miss den Stromverbrauch.
Bezüglich Toolchain ist mein Vorschlag für einen simplen Einstieg mit
einem Arduino Sketch anzufangen. Das bindest Du dann als Projekt in
Eclipse ein und referenzierst die Arduino und IDF Bibliotheken, damit Du
auto-completion , etc bekommst und die Bibliothek beim programmieren
kennen lernen kannst.
Sobald der Sketch grösser wird lagerst Du einfach Funktionen (oder
Klassen) in eine Arduino-Bibliothek aus, die Du im Sketch includierst.
Der Vorteil ist, dass Du dich nicht gross mit dem IDF Build-System
rumärgern musst, sondern einfach Deine main.cpp in Arduino kompilierst.
Wenn Du dann im Thema drin bist und fortgeschrittene Ansprüche hast,
kannst Du dich in das IDF Build-System einarbeiten.
Marco schrieb:> Ach so, auf diese Weise lassen sich auch Arduino und IDF Funktionen> mischen
Sicher. Wenn Arduino ein geschlossenes System wäre, hätte es keinen
Erfolg gehabt.
>Sicher. Wenn Arduino ein geschlossenes System wäre, hätte es keinen>Erfolg gehabt.
Naja. Wobei es ja nicht unbedingt so sein müsste, dass die Low-Level
Funktionen nach oben sichtbar sind. Bei den STM32 Frameworks kommt es
sehr darauf an, welches man verwendet und dann die HAL Header verwendet
werden können.
Marco schrieb:> Habe selbst viel mit dem ESP32 rumgespielt, aber wenn Du es auf> besonders stromsparenden Betrieb abgesehen hast, kann ich ihn leider> nicht empfehlen.
Der ESP32 verbraucht in deep sleep modus 7 µA, was bei CR123A 3V
Lithium-Batterie 1600mAh theoretisch 228571 Stunden also, 9523 Tage also
fast 26 Jahre. Die ATiny13 verbrauchen noch weniger, etwa: 0,2µA, den
würde ich aber nur in absoluten Aussnahmefällen mit einer kleineren
Batterie wie Z.b.: CR3230.
Geht die Programmierung unter Arduino direkt mit FreeRTOS für ESP32?
Ich würde die Arduino IDE nicht verwenden. Sie funktioniert zwar bietet
aber kaum Komfort für das Programmieren, lieber eine IDE mit Code
Vervollständigung und "IntellieSense".
Da du auch unter Arduino auf das IDF Framework zugreifen kannst, kann du
auch die FreeRTOS Funktionen nutzen.
ESP32newbe schrieb:> Der ESP32 verbraucht in deep sleep modus 7 µA, was bei CR123A 3V> Lithium-Batterie 1600mAh theoretisch 228571 Stunden also, 9523 Tage also> fast 26 Jahre. Die ATiny13 verbrauchen noch weniger, etwa: 0,2µA, den> würde ich aber nur in absoluten Aussnahmefällen mit einer kleineren> Batterie wie Z.b.: CR3230.
Das ist richtig, aber Du wirst ja auch was mit ihm machen wollen, von
daher bist Du ja nicht durchgehend im Deep Sleep, abgesehen davon, dass
dann jedesmal der Hauptspeicher gelöscht wird. Du kannst dann noch mit
dem ULP was machen, der einen Speicher hat, den man über den Sleep
retten kann. Je nachdem welche Peripherie Du brauchst. Aber wofür einen
ESP32, wenn Du den Hauptspeicher nach jedem aufwachen wieder neu
initialisieren musst (oder gar nicht verwendest). Kommt halt ganz auf
den Anwendungsfall an, welchen Speicher und welche Peripherie Du
durchgehend brauchst. Wenn er hauptsächlich Stand-By ist und nur
gelegentlich aufgeweckt wird, kann es in Ordnung sein.