Skip to content

HenrikAalto/RotorCam180

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

45 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RotorCam180

Mit dem Projekt RotorCam180 soll eine drehbare WabCam erstellt werden. Basierend auf einem ESP32CAM Modul in Verbindung mit einem RC-Servo soll zunächst ein um 180° schwenkbares Kameramodul entstehen. Die Befehle zur Steuerung soll via Telnet gesendet werden können.

Motivation:
Zwar gibt es eine Vielzahl an Webcams auf dem Markt, doch sind die allermeisten Modelle inzwischen nur mit einer herstellereigenen Cloud nutzbar. Eine Eigenheit die mir persönlich überhaupt nicht zusagt ;-)

Idee:
Seit einiger Zeit ist nun das ESP32Cam-Modul verfügbar (z.B. bei Banggods) Die kompakte Bauform ist ideal um sie, in Kombination mit einem RC-Servo, eine drehbare Webcam aufzubauen.

Umsetzung:
Die eigentliche WebCam-Funktionalität ist bereits in diversen Repositories zur Verfügung gestellt worden. In der ersten Version greife ich auf SourceCode von RandomNerd zurück. An dieser Stelle vielen Dank an Rui Santos!

Die Steuerung des Servos erfolgt über eine Telnet-Verbindung. Nach Eingabe eines ‚?‘ erscheint die aktuelle Befehlsliste:

ESP32 - Cam Controller V0.1.1 (04-06-2019)  
_________________________________________________________  
Befehle  
Bxxx    - Blitz (Intensität 0 < xxx < 100)  
Rxxx    - Rotation (Winkel 0 < xxx < 180  
q       - Telnet-Sitzung beenden  
l       - Zustandslog aktivieren/deaktivieren 
i       - Initialisierung  
?       - Diese Liste  

Hinweis:
Die Kommando-Buchstaben (zur Steuerung des Moduls) sind in Großbuchstaben, gefolgt von einem Parameter, Sitzungsbefehle in Kleinbuchstaben einzugeben.

Um eine solide Einheit zu bilden, braucht die ganze Geschichte natürlich ein kompaktes Gehäuse. Das STL-Files des Moduls liegt hier ab lässt sich mit einem 3D-Drucker leicht herstellen. Es dient lediglich als Basisträger. Eine Abdeckung die das Ganze wetterfest und damit für den Außeneinsatz tauglich machen wird, ist in Planung…

Technischen Details:
Um den Aufbau möglichst schlank zu gestalten, also ohne zusätzliche Platine (die weiteren Platz gebraucht hätte), ist das Gehäuse so entworfen, dass es auf der einen Seite das ESP32CAM-Modul aufnimmt Title
und den Servo Title
auf der Anderen.
Ein Durchbruch zu Vcc GND und Pin12 des ESP32CAM, in passender Größe für den Stecker des Servos ermöglichen die Verbindung von Beiden.
Title
Leider passt die Pinbelegung des Steckers am Kabel Servomotor, bei diesem Modell nicht ab Werk nicht zu der am ESP32 CAM. Darum muss Vcc (rot) und GND (braun) am Stecker vertauscht werden. Es ist jedoch recht einfach die Kunststoffnasen des Steckers leicht aufzubiegen. Title
Dann können die beiden Metallstecker nach hinten herausgezogen und in der passenden Position wieder eingeschoben werden. An die Anschlussleitung des Servos wird nun noch die Stromzuführung gelötet und durch die Bohrung des Gehäuses nach außen geführt. Der Rest des Kabels findet in der Aussparung des Gehäuses Platz.
Das Drehkreuz des Servos wird nicht benötigt, da seine Achse später in die Grunplatte gesteckt und dort verschraubt wird. Es sollte also ausreichend Anschlussleitung eingeplant werden, damit die Drehung um 180° möglich ist.
Dieses Foto zeigt nicht den letzten Designstand. Die aktuelle Version des Halters hat zusätzlich eine Öffnung um ggf. die Anschlussleitung einer externe Antenne nach außen führen zu können. Title
Um das Trägermodul im Gehäuse zu befestigen wird es mit einer Innensechskantschraube und eine Unterlagsscheibe fixiert. Das Gehäuse bietet auch die möglichkeit eine Kunststoffscheibe besser gesagt -folie einzuschieben, damit die Kameraoptik und die LED nicht der Witterung ausgesetzt sind. Um das erkennbar zu machen, habe ich die Scheibe für das Foto ein Stück weit herausgezogen. Eine Nut zum einschieben eines umlaufenden Dichtungsgummies (hier mit Flexifilament ausgeführt) ist ebenfalls vorhanden.
Title
Hier das fertige, geschlossene Gehäuse (incl. Grundplatte).

Hinweise:
Bei dem von mir getesteten ESP32-Cam Modell war das WiFi-Signal sehr schwach. Entgegen meiner Erwartung war die interne Antenne nicht aktiv. Nach Verbinden mit einer externen WiFi-Antenne über den IPX-Stecker klappte alles prima und die Bildübertragung lief deutlich flüssiger (das war auch der Grund, das Design des Haltes nochmal anzupassen und eine Öffnung für das Antennenkaben hinzuzufügen). Auf der Seite von Robot Zero One fand ich dann auch einen Hinweis, wie man erkennen kann welche Antennenkonfiguration einem geliefert wurde (On-Board vs IPEX Antenna). Bei einem anderem ESP32-Modul, das ich inzwischen erhalten habe, war (wie erwartet) die interne Antenne aktiv. Es war der gleiche Artikel, vom gleichen Liferanten - also besser immer erst mal unterm Mikroskop nachsehen.
So siehts aus wenn der 0 Ohm Widerstand den externen Antennenanschluss aktiviert: Title
...und so wenn die interne, aufgedruckte Antenne aktiv ist:
Title
Umlöten ist bei dem SMD-Fisselkram schwierig. Da es sich aber um einen 0 Ohm Widerstand handeln soll (also eine simple Verbindung), könnte ein Brücke aus Lötizinn zu internen Antenne genügen. Natürlich nur wenn zuvor das SMB-Bauteil ausgelötet wurde. Ich hab das aber nicht getestet sondern werde noch mit einigen externe Antennen testen. Wenn sich was brauchbares ergibt schreib ich's hier rein...
Sehr hilfreich kann in dem Zusammenhang auch der unter https://github.com/SeeedDocument/forum_doc/raw/master/reg/ESP32_CAM_V1.6.pdf abliegende Schaltplan sein. Anhand dessen auch die etwas sonderbar anmutende Funktion des Pins4 (3,3V/5V) erklärlich wird. Es wirkt auf den ersten Blick unsinnig, dass im Plan der 3,3V- und der 5V-Anschluss jeweils über einen 0 Ohm Widerstand zusammengeschaltet werden. Schaut man sich das Board jedoch genauer an, erkennt man, dass der Hersteller nur einen (oder auch keinen) der 0 Ohm Widerstände eingelötet hat.
Ursprünglich hatte ich überlegt dies zur Stromzuführung zu nutzen. Da dies trotz der oben erwähnten Erkentnisse jedoch nicht so richtig funktioniert wurde die Idee wieder verworfen.