Readme hinzugefügt

This commit is contained in:
Phillip Kühne 2019-10-02 12:00:17 +02:00
parent a07f07ed0b
commit b590557c3f

22
README.md Normal file
View File

@ -0,0 +1,22 @@
Dies ist das einfache Beispielprojekt für das Steckergeschenk, was zum zum Zeitpunkt der Übergabe auch darauf lief.
# Hardware
Das Geschenk besteht, von der Elektronik her betrachtet Aus einem ESP32 (Das konkrete Board ist ein _DOIT ESP32 DEVKIT V1_). Kurz gefasst ist der ESP32 ein Mikrocontroller welcher über 2,4GHz-WLAN und Bluetooth verfügt und im einfachsten Fall über das Arduino-Framework programmiert werden kann. Dieser steuert einen Streifen von 24 WS2812b RGB-LEDs. Diese laufen mit 5V, sind adressierbar und werden vom Mikrocontroller über den Pin **GPIO13** gesteuert.
Weitere Infos:
- [Eine gute Übersicht über den ESP32](https://www.exploreembedded.com/wiki/Overview_of_ESP32_features._What_do_they_practically_mean%3F)
- [ESP-32 Dokumentation vom Hersteller (Espressif)](https://www.espressif.com/en/products/hardware/esp32/overview)
- [Detaillierte Infos zu den WS2812b](https://cdn-shop.adafruit.com/datasheets/WS2812B.pdf)
# Software
Was hier vorliegt ist ein [PlatformIO](https://platformio.org/)-Projekt. Dies ist eine Alternative zur Nutzung der (meiner Meinung nach) relativ unbequemen Arduino-IDE.
Wenn PlatformIO installiert ist (gibt es für Windows sowie alle möglichen Linux-Distros - Ich nutze es unter Arch) kann mit dem Befehl `platformio run --target upload` das Programm auf den angeschlossenen Mikrocontroller hochgeladen werden. Der Quellcode kann mit einem Editor/ einer IDE der Wahl bearbeitet werden.
**Ich würde aufgrund des Stromverbauchs der LEDs ausdrücklich empfehlen das Netzteil mit anzuschließen, da sonst der Rechner die LEDs über USB mit Strom versorgt!**
Der Hauptvorteil von PlatformIO ist die vollständige Steuerung über ein Kommandozeilenwerkzeug (`platformio`). So können zum Beispiel weitere Bibliotheken aus der [Registry](https://platformio.org/lib) mit dem Befehl `platformio lib install $LIBRARY_ID` installiert werden (`$LIBRARY_ID` ist _offensichtlich_ nur ein Platzhalter für die tatsächliche ID der Bibliothek).
Die verwendete Bibliothek für die LED-Ansteuerung ist [SmartLeds](https://platformio.org/lib/show/1740/SmartLeds). Diese ist auf die Hardware des ESP32 angepasst und nutzt diesen volkommen aus, so dass es keine Timingprobleme gibt.
Beispiele für die Nutzung von WLAN und Bluetooth des ESP-32 im Rahmen des Arduino-Frameworks findet ihr [in diesem GitHub Repository](https://github.com/espressif/arduino-esp32/tree/master/libraries).
Falls ihr noch Fragen habt, fragt mich ruhig.