YouTuber Eric Nam hat die Flexibilität der nativen USB-Unterstützung in Espressifs ESP32-S2-System-on-Chip (SoC) demonstriert, indem er es als Host für eine USB-Webcam verwendet – warnt jedoch davor, dass die Leistungserwartungen gemildert werden sollten.
„[Der] ESP32-S2 unterstützt eine native USB-Schnittstelle. Er fungiert als USB-Host und ermöglicht die Datenkommunikation durch den Anschluss von USB-Peripheriegeräten“, erklärt Nam in einem Video, das die Fähigkeiten des Chips demonstriert. „Leider ist es eine alte Version der USB-Schnittstelle, nämlich 1.1, und die maximale Geschwindigkeit dieses USB beträgt 12 Mbit/s, sodass Sie nicht erwarten können, dass es so schnell ist.“
Die Verwendung eines ESP32-Chips, um einen Kamerasensor in ein drahtloses Gerät zu verwandeln, ist ein gängiges Projekt, aber Nam ist das Problem auf andere Weise angegangen: Anstatt einen TTL-Kamerasensor zu verwenden, hat er sich für eine Webcam entschieden, die sich mit dem ESP32-S2 verbindet über USB.
„Meine aktuelle Kameraauflösung beträgt 320 × 240, und ich konnte eine Bildrate von ungefähr 15 [Bildern pro Sekunde] erreichen“, sagt Nam über seine anfänglichen Bemühungen. „Offiziell sollte es ungefähr 33 FPS bei einer Auflösung von 320×240 ausgeben, aber mit meiner Kamera konnte ich das Intervall zwischen den Bildern nicht auf das Maximum reduzieren.
„Es gibt ein paar Dinge, die Sie zuerst wissen müssen, um das auszuprobieren“, bemerkt Nam. „Sie müssen einen [ESP32-]S2 oder [ESP32-]S3 mit mindestens 2 MB PSRAM [Pseudo-Static RAM] haben, und Ihre USB-Kamera muss MJPEG [Motion JPEG]-Komprimierung unterstützen. Es sollte möglich sein, das Paket einzustellen Größe darf das Maximum von 512 Bytes nicht überschreiten.“
Das Projekt ist mit vielen USB-Webcams kompatibel, sofern diese MJPEG unterstützen. (📷: Dieses Projekt)
„Die Bildübertragungsbandbreite muss weniger als 4 Mbit/s betragen“, fährt Nam fort, „[und] aufgrund der Beschränkungen der isochronen USB-Übertragungsbandbreite sind die Bildrate und die Einzelbildgröße gegenseitig begrenzt. Wenn die Bildgröße 25 KB pro Frame beträgt, darf die Framerate 20 FPS nicht überschreiten.“
Nams vollständige Videodemo ist verfügbar auf dem YouTube-Kanal von That Project, während der Quellcode, auf dem es basiert, stammt ESP IoT Solution GitHub-Repository von Espressif wo es unter der freizügigen Apache 2.0-Lizenz zur Verwendung mit der ESP-IDF-Toolchain verfügbar gemacht wird.