Lepton-Pythonista-MicroPython
Dieses Projekt zielt darauf ab, das Wärmebildvideo eines FLIR Lepton auf ein iPhone zu streamen. Der Videostream wird von einem ESP32 über VoSPI des Lepton abgerufen und dann sendet der EPS32 das Video über WLAN/UDP an das iPhone (es ist kein Router erforderlich). Ein erstes Programm wird in Micropython für den ESP32 geschrieben. Dieser richtet die Lepton-Konfiguration über das CCI ein, ruft die Videodaten vom Lepton ab und sendet sie ohne Verarbeitung an das iPhone. Ein zweites Programm ist in Pythonista für das iPhone geschrieben. Dieser verarbeitet die empfangenen Daten und zeigt die Bilder/Videos an. Das Programm ermöglicht dem Benutzer die Auswahl des Modus: 1) AGC (8-Bit-Graustufen) 2) RAD /T Linear, RGB. Im zweiten Modus kann der Benutzer die Temperatur durch Berühren des Bildschirms abrufen. ACHTUNG: Das Programm beinhaltet keine Kalibrierung des Lepton. Der Benutzer kann zoomen, Screenshots machen und Videos aufnehmen (zu diesem Zweck drei Schaltflächen am unteren Bildschirmrand).
Hardware
- Iphone (8)
- ESP32 Wroom DevKit (von uPesy)
- Überbrückungskabel + Steckbrett
- Lepton 3.5
- Breakout-Board V2.0
Vorbereitung
- Richten Sie in boot.py das Passwort und die SSID ein
- in main.py: Richten Sie das TIMEOUT ein. Das Streaming dauert die durch TIMEOUT angegebene Dauer. Wenn Sie möchten, dass die Schleife ewig läuft, ersetzen Sie die Dauer in der „while-Schleife“ durch „true“
- Verkabelung gemäß dem elektrischen Schema des Lepton Breakout Board V2.0 und https://lepton.flir.com/getting-started/raspberry-pi-lepton/ + MOSI-Erdung
Verwendung
- Schalten Sie den ESP32 ein. Nach 5 Sekunden blinkt die blaue LED mit 1 Hz. Dies bedeutet, dass der ESP32 auf die Modusauswahl vom Pythonista-Programm wartet
- Gehen Sie im iPhone zum WLAN-Konfigurationsfenster und wählen Sie den entsprechenden WLAN-Zugangspunkt (den Sie oben unter „Vorbereitung“ unter 1 angegeben haben) aus. Überprüfen Sie, ob das Wifi-Logo auf dem iPhone-Bildschirm angezeigt wird
- Führen Sie das Pythonista-Programm aus, wählen Sie den Modus aus, die blaue LED des ESP32 blinkt schneller (10 Hz), bis die Initialisierung abgeschlossen ist
- Wenn die Initialisierung abgeschlossen ist, bleibt die LED konstant, das Video erscheint zwei Sekunden später auf dem iPhone
- Der Benutzer kann zoomen (1, 1,5, 2, 2,5, 3, ganze Breite) und einen Screenshot machen (Dateien heißen Screenshot0X.jpg, die vorherigen Dateien werden gelöscht).
- Der Benutzer kann Videos aufnehmen. Die Dateien heißen vid0X.mp4, beginnend mit Name)
- Im RAD-Modus (RGB) kann der Benutzer die Temperatur durch Berühren der Ansicht abrufen
- Oberer Bildschirm: Schlechter CRC: Informationen zur Kommunikationsqualität, normalerweise etwa 20–25 %. qsize: Größe der Warteschlange, die zwischen dem Thread, der die Daten empfängt, und dem, der die Daten verarbeitet, geteilt wird. Wenn alles in Ordnung ist, sollte qsize nicht größer als 2 sein (= schnellere Verarbeitung als Datenempfang). fps: Bilder pro Sekunde, sollte 9 sein (zumindest außerhalb der USA, vielleicht können es in den USA 27 sein?). T (nur im RAD-Modus): Temperatur, die nach dem Berühren der Ansicht angezeigt wird (ein weißer Punkt erscheint, wenn der Bildschirm berührt wird, siehe Videobeispiel)
- RGB: Die verwendete Palette finden Sie im Ordner „Pythonista“. Das Programm passt den Farbbereich an den aktuellen Temperaturbereich der Szene an
- Streaming-Dauer: siehe Anmerkung zu 2) oben unter „Vorbereitung“
- Während des Video-Streamings kann der Benutzer das Pythonista-Programm stoppen und erneut ausführen, muss jedoch den gleichen Modus wie ursprünglich angegeben wählen (es ist nicht möglich, den Modus während des Streamings zu ändern). Hinweis: In diesem Zusammenhang erscheint die Ansicht nach 4/5 s nach Auswahl des Modus. Möchte der Nutzer in einen anderen Modus wechseln, muss der ESP32 zurückgesetzt werden (dann blinkt die blaue LED mit 1 Hz, etc...)