Steuerung meiner Kamera: SBC => BT => SBC => IR

Servus,

aktuell verwende ich meine Sony A7III auf einem Gimbal, ich würde die Kamera darauf gerne per IR Fernbedienung steuern. Ich habe eineFernbedienung am Gimbal Griff montiert, das IR Signal erreicht die Kamera aber nicht zuverlässig (IR Empfänger regelmäßig verdeckt, Sonneneinstrahlung) - also IR Diode per Kabel verlängert und vor die Kamera gehängt. Ich hab' auch einen zweiten Aufbau mit Lichtleiter. Das Kabel kommt halt regelmäßig in den Weg...es funktioniert gut genug, eine kabellose Lösung wäre aber von Vorteil. Nur wie?

Links: Aktueller Aufbau, Rechts: Mein Fantasieprojekt

IR zur Übertragung fällt also aufgrund der Unzuverlässigkeit weg, benötige am Ende der Kette aber ein IR Signal zur Steuerung. Meine naive Idee wäre, nur grob als Laie gedacht: Am Gimbal Griff einen SBC mit mechanischen Taster (ich brauche zumindest einen für die wichtigste Funktion, eher mehr) oder kleines Numpad odg...IR Codes der Fernbedienung auslesen. Wenn ich einen Taster drücke, wird der Code oder einfach nur ein Befehl per BT an den zweiten SBC gesendet, der oben an der Kamera bzw deren Cage montiert ist. Der leitet den Code dann per IR Diode an die Kamera weiter bzw löst je nach Befehl eben Code XYZ per IR aus.

Würde das prinzipiell gehen? Gäbe es eine bessere/einfachere Methode (elektronische Bauteile ohne selbst konfigurierten SBC?) Steuerung über Smartphone kommt leider nicht in Frage, ich benötige die Ausgabe über IR - die Steuerung über Gimbal ist auf Grundfunktionen beschränkt, per IR der Fernbedienung kann ich custom Funktionen ansteuern. SOLLTE es in der Art gehen, wären ein paar Grundgedanken dazu nett - was wäre bitte die kompakteste/einfachste Ausführung (SBC,Stromversorgung...) ? Einarbeiten muss ich mich eh selbst, ich bräuchte nur eine Einschätzung über die Machbarkeit bzw eine grobe Richtung...vl. denke ich auch zu umständlich.

Danke und LG

Dann nimm doch Funk.

Sorry, hatte mich verlesen. Geht bei dir dann so nicht.

Ist die Fernbedienung ein Originalzubehör zur Kamera?
Macht die Fernbedienung jetzt einfach nur "Klick" oder kann man mit der Fernbedienung alle möglichen Sachen einstellen?

Die IR-Sende-Diode wird nicht einfach nur AN/Aus gehen sondern nach einem bestimmten Protokoll Signale senden.

Es gibt Arduino-Programme die eine Menge verschiedener Protokolle senden/empfangen codieren/decodieren können. Es gibt auch Arduino-Programme die eine entsprechende Impulsfolge aufzeichnen können.
Dann muss man das Protokoll nicht kennen weil man ja einfach auf der untersten Ebene aufzeichnet.
Es wäre aber schon gut zu wissen was das für ein Protokoll ist.

Übertragung per Funk geht, dazu könnte man Bluetooth, nRF24-Module, oder auch ESP-NOW nehmen. Ganz wie es beliebt.

Der Knackpunkt ist wie sehen die IR-Signale aus?
Kann man die Kamera mit einer Sony-Fernseher IR-fernbedienung ansteuern oder ist das was spezielles?

Ein Vorversuch wäre ob die IR-Fernbedienung schlicht den Sony Standard der sonstigen Fernbedienungen Fernseher DVD-player usw. benutzt.

Auf jedenfall schon einiges an Entwicklungsaufwand. Hast du jemanden in der Nähe der sich mit Elektronik auskennt?

Auf der Senderseite könnte man unter Umständen schon ein ein Smartphone nehmen.

vgs

Ich sag ja immer google ist eine 5-Minutensuche Wert

gegoogelt mit Sony A7III remote control

und was poppt da auf?

schau es dir an ob das bei dir geht

vgs

Zur App:

  1. In Sachen Bedienung kommt es leider nicht mal annähernd an die Haptik eines mechanischen Buttons, den man die ganze Zeit immer wieder betätigt - aktuell habe ich die Ferbedienung am Gimbal Griff, da kann ich mehrere Knöpfe blind mit dem Zeigefinger unterscheiden und betätigen - Augen dauernd auf dem Motiv.

  2. Das weitaus größere Problem: Ich kenn' die App und habe sie auch für andere Anwendungsgebiete in Verwendung - leider unterstützen diese Apps aber nur 0815 Funktionen (Aufnahme Start/Stopp, Blende/Verschlusszeit/ISO ändern, fokussieren...) - mit der Fernbedienung habe ich aber den Vorteil, dass ich auch die Funktionen des Joysticks ansteuern kann (rauf/runter/links/rechts/Mitte) - und auf diese Knöpfe kann man dann custom Funktionen legen wie zB Fokus halten, Clear Zoom oder was auch immer ich will, damit kann ich dann so gut wie alle Funktionen der Kamera auslösen.

Zur Fernbedienung: Ist ein Nachbau der Sony Remote:
http://www.jjc.cc/index.php/Product/product_info/id/468

Ich hab' einige Videos auf YT gesehen, in denen die Signale einer Fernbedienung per IR Receiver ausgelesen werden und dann über zB eine Arduiono DIY Fernbedienung per IR Diode wieder ausgesendet werden...dachte, dass das evtl. auch geht. Aber wie gehabt, auf dem Gebiet kenn' ich mich nicht so gut aus - deshalb die Frage. Wenn's zu viel Aufwand ist, lass ich es halt bleiben und bleib' bei meiner IR Kabel Verlängerung.

Wenn ich mir die Zeit nehme, kann ich mir das schon anlernen bzw. hab' ich auch jemanden in der Familie, der sich a bissal auskennt - ich checke vorher halt gerne zusätzlich das Netz bzw. Fachforen, da man manchmal selbst vl. etwas kompliziert denkt/auf der Leitung steht und Außenstehende einen anderen Blick auf ein Problem und auch mehr Erfahrung haben.

Danke für dein Feedback, LG

Du hast geschrieben dass du die IR-Diode an einem Verlängerungskabel hast.
Da könnte man dann so ein 10 Euro 24 MHz 8 Kanal Logic Analyser anschließen

und dann mit der Freeware PulseView ausprobieren ob das eines der typischen
Standard-IR-Protokolle wie Sony IR (SIRC) ist
https://sigrok.org/wiki/Protocol_decoders

Jetzt habe ich mal noch ein bißchen weiter gegoogelt.
Hier ist ei Artikel da hat jemand mit einer Philipps-Protonto die Pulse-Pause-Zeiten analysiert.

https://www.dpreview.com/forums/thread/2859081
Das hört sich vielversprechend an. Pulse-Pause-Zeiten analysieren geht mit dem Arduino auch.

Zu diesem Thema könntest du noch mal spezieller nachfragen. Stichwort IR-raw-data analysieren.
vgs

Danke für den Input, check' ich dann genauer.
Ich bin mal optimistisch und denke, das wird schon klappen...haken wir IR kurz einfach mal ab.

Was wäre, grob umrissen, der weitere Aufbau? 2 Arduino (reicht da auch der Nano?), einmal unten am Griff mit Taster odg...übermittelt per BT (oder deinen oben genannten Alternativen) dann ein Signal...Taste 1, Signal 1, Taste 2, Signal 2 usw... an den oberen Arduino an der Kamera, an den häng' ich dann ein IR Sendeeinheit und der sendet dann je nach Signal den enstprechenden IR Code? Gibt's da eine Möglichkeit, die beiden jeweils mit einer möglichst kleinen Stromquelle zu versorgen? Powerbank? Ich brauch' wirklich nur einen groben Umriss, da ich mich damit noch gar nicht auseinandergesetzt habe...hab bisher nur mit meinem Pi3 etwas rumexperimentiert.

Ich würde mir dann sowieso erst mal einfach nur ein Arduino Anfängerset von Amazon holen oder die Einzelteile (IR und BT Module, Taster, Fernbedienung blabla) zusammenkaufen und dann mal die Basics lernen, a bissal rumexperimentieren sobald ich Zeit hab'...hat eh keine Eile und wird auch seine Zeit brauchen, bis ich das hinbekomm'.

Danke & LG

Ein Starterset ist nicht unbedingt nötig.
Wenn du Spaß am herumspielen oder ganz allgemein an Hardware-Verwendung auch links und rechts von deinem Projekt interessiert bist hast dann kann man das kaufen.

Ja zwei kleiner Arduinos tun es auch.
Es gibt ja mittlerweile eine Menge weiterer Microcontroller die mit der Arduino-IDE programmiert werden können.

Ein Arduino Nano BLE hätte auch gleich bluetooth onboard

Es gibt ein sub-forum project guidance.
Wenn du einigermaßen englisch kannst dann könntest du dort fragen.
Das deutsche Forum ist eines für alles.
@Moderator:
Jetzt hat sich die Fragestellung ein Stück weit geändert:

"welche zwei kleinen Arduinos um per Funk Befehlsbytes zu übertragen und am Empfänger eine IR-Sendediode zu betreiben
Neuen Thread aufmachen oder den Thread-Titel dieses Threads abändern?

vgs

also es ist vermutlich mit Kanonen auf Spatzen geschossen, aber vieleicht zur Funkübertragung ein ESP8266 mit ESP-NOW? Zum Testen Anfangen mit zwei NodeMCU und wenns später mal viel kleiner werden soll, nackte ESP8266-12E oder 12F

Danke für eure Rückmeldung, ich versuch mich parallel zum Input dazu zu informieren...
Also ich schau mir jetzt mal die Arduino Nano BLEs und ESP8266 an.

Zum Set...ja, werd' ich mir generell wahrscheinlich holen weil ich immer wieder mal Basteleien rund und meine Rechner, Kameras und Drohnen hab' - damit lassen sich manche Ideen sicher ausgefeilter umsetzen. Der Anfang ist nur etwas schwierig, da es so viele verschiedene SBC in verschiedenen Ausführungen gibt und man gar nicht weiss, womit man anfangen soll...einarbeiten wird sowieso eine Zeit brauchen, kann ich aber nebenher dann im Sommer machen.

Ich werd' dann bei Bedarf einen neuen Thread mit spezifischer Fragestellung eröffnen, muss euer Input erstmal abarbeiten. Frage nur am Rande gestellt, da ich gerade über die D1 Mini Variante mit WiFi des zuvor genannten ESP8266 gestolpert bin: https://youtu.be/YV8Mx1qvH4A - wäre der evtl. dafür geeignet? Einarbeiten muss ich mich wie gesagt sowieso, wäre halt nett, wenn ich dazu gleich die richtigen Teile kauf' und ein Set dann optional dazu.

Danke nochmal und liebe Grüße!

ja du kannst auch den Wemos D1 probieren. Das nimmt sich nichts ob NodeMCU oder Wemos. Einige nehmen den NodeMCU, die anderen den Wemos. Ich bin halt eher auf den schmalen NodeMCU V2 unterwegs. Grundsätzlich sind diese Module aber sehr ähnlich. Wichtig erscheint mir halt eines dieser Boards und keine "nackten" ESP zum Anfangen.

Der Unterschied zwischen ESP8266 nodeMCU und ESP8266 WeMos D1 mini ist nur dass der WeMos D1 mini ein paar weniger IO-Pins herausgeführt hat. Da du für diese Anwendung nur wenige IO-pins benötigst kann man auch das WeMos D1 mini nehmen.

Trotzdem wäre mal wichtig zu analysieren wie viele Taster du an der Fernbedienung anschliessen willst. Wenn es dann doch mehr als 5 Schaltfunktionen werden sollen dann hätte das WeMos zu wenige IO-Pins.
Es lassen sich nämlich nicht alle IO-pins ganz beliebig beschalten.

vgs

Im Normalfall 3 Taster, maximal 5. ABER sicherheitshalber bestell' ich mir beide Modelle falls es doch mehr werden sollten - werd' ich in Zukunft eh so oder so wahrscheinlich auch für andere Projekte nutzen.

Hab' jetzt afaik alles zusammen, jetzt geht es nur mehr um die Stromversorgung. Da lese ich mich gerade ein...scheint ja einige Varianten zu geben: Powerbank, 18650er (davon hätte ich ja genug rumliegen - https://youtu.be/gG82_fG4VM8), Lithium Pack wäre vl kompakter...Funktionsweise eines battery shields usw...das muss ich noch checken, habt ihr zum Abschluss dazu vl noch Input? Dann hab's a Ruhe vor mir :smiley:

Thx!

konkrete Fragen beantworten hier die meisten immer gerne.
Wenn battery-shield eine Aufladeelektronik meint dann würde ich das höchstens mit einem Lithium-Eisenphosphat Akku machen.
Lithium-Eisenphosphat Akkus sind eigensicher. Lithium-Polymer fängt an zu brennen wenn man die überlädt.

Wenn es denn ein Lithiumpolymer sein muss nur mit Profiladegerät laden.
Einen Akkutyp nehmen der eine feste Schale um sich herum hat. Auch der Sicherheit wegen.

Den Stromverbauch eines ESP8266 würde ich mit 100 mA ansetzen.
Jetzt kommt es darauf an wie lange es dauern darf bis es für dich OK ist den Akku zu wechseln.

Für die Stromversorgung: ein NodeMCU kann am Eingang
5V bis 9V. Da ist schon ein Spannungsregler drauf. Also könnte man einen
2S-Akku direkt anschließen.

vgs

Im Thema Anleitung: ESP32 mit ESP-NOW als Sender und Webserver als Access Point habe ich Daten von einem ESP32 an vier ESP32 mittels ESP-NOW übertragen. Geht natürlich auch mit einem Sender und einem Empfänger, auch mit fester MAC-Adresse des Empfängers.

Manche IOs haben eine spezielle Bedeutung beim Start: ESP32 Pinout Reference: Which GPIO pins should you use?

Getting Started with the ESP32 Development Board

Ich habe keine Erfahrung damit, aber schön klein: ESP32 Wlan WiFi Modul

ich würde zunächst mal gleiche Modelle bestellen - ist weniger geklicke in der IDE wennst nicht immer das Modell umstellen musst. :wink:

Wenn ich das richtig sehe muss man da das ESP32-Modul selbst auflöten
und es gibt keinen USB-COM-Port-Chip.
vgs

Dann möchte ich das einem Anfänger (wie auch mir) nicht empfehlen!

Dann hätte ich da gleich noch mehr :roll_eyes:

Da ich nur ESP32 habe, habe ich einen als ESP-NOW-Sender und einen als Empfänger programmiert. Der Sender wandelt den Code der IR-Fernbedienung in eine Zahl, die an den Empfänger übertragen wird. Die ESP-NOW-Erkennung läuft mittels MAC-Adresse, die Du anpassen mußt.

Empfänger:

#include <esp_now.h>
#include <WiFi.h>

struct key_struct {
  uint32_t key;             // Bedeutung des nachfolgenden Textes
} myData;

//callback function that will be executed when data is received
void OnDataRecv(const uint8_t * mac, const uint8_t *incomingData, int len) {
  memcpy(&myData, incomingData, sizeof(myData));
  Serial.print("Bytes received: "); Serial.print(len); Serial.print("\tkey: ");
  Serial.println(myData.key, HEX);
}

void setup() {
  delay(500);
  //Initialize Serial Monitor
  Serial.begin(115200);
  Serial.println("\nStart ESP-NOW receiver");
  Serial.print("ESP Board MAC Address:  ");
  Serial.println(WiFi.macAddress());
  //Set device as a Wi-Fi Station
  WiFi.mode(WIFI_STA);

  //Init ESP-NOW
  if (esp_now_init() != ESP_OK) {
    Serial.println("Error initializing ESP-NOW");
    return;
  }

  // Once ESPNow is successfully Init, we will register for recv CB to
  // get recv packer info
  esp_now_register_recv_cb(OnDataRecv);
}

void loop() {}

Monitor bei bestehender Verbindung:

Start ESP-NOW receiver
ESP Board MAC Address:  A4:CF:12:9A:14:A0
Bytes received: 4	key: FFA25D

Diese MAC-Adresse muß in das Sendeprogramm übertragen werden:

#include <esp_now.h>
#include <WiFi.h>
#include <IRremote.h>

const int RECV_PIN = 15;
IRrecv irrecv(RECV_PIN);
decode_results results;

// REPLACE WITH YOUR ESP RECEIVER'S MAC ADDRESS
uint8_t broadcastAddress1[] = {0xa4, 0xcf, 0x12, 0x9a, 0x14, 0xa0}; // an den Empfänger anpassen!

struct key_struct {
  uint32_t key;             // Bedeutung des nachfolgenden Textes
} myData;

void senden() {
    esp_err_t result = esp_now_send(0, (uint8_t *) &myData, sizeof(key_struct));
    Serial.println(result == ESP_OK ? "Sent with success" : "Error sending the data");
}

// callback when data is sent
void OnDataSent(const uint8_t *mac_addr, esp_now_send_status_t status) {
  char macStr[18];
  Serial.print("Packet to: ");
  // Copies the sender mac address to a string
  snprintf(macStr, sizeof(macStr), "%02x:%02x:%02x:%02x:%02x:%02x",
           mac_addr[0], mac_addr[1], mac_addr[2], mac_addr[3], mac_addr[4], mac_addr[5]);
  Serial.print(macStr);
  Serial.print(" send status:\t");
  Serial.println(status == ESP_NOW_SEND_SUCCESS ? "Delivery Success" : "Delivery Fail");
}

void setup() {
  irrecv.enableIRIn(); // Start the receiver
  Serial.begin(115200);
  delay(500);
  Serial.println("\nStart ESP-NOW sender");

  WiFi.mode(WIFI_STA);

  if (esp_now_init() != ESP_OK) {
    Serial.println("Error initializing ESP-NOW");
    return;
  }

  esp_now_register_send_cb(OnDataSent);

  // register peer
  esp_now_peer_info_t peerInfo;
  peerInfo.channel = 0;
  peerInfo.encrypt = false;
  // register first peer
  memcpy(peerInfo.peer_addr, broadcastAddress1, 6);
  if (esp_now_add_peer(&peerInfo) != ESP_OK) {
    Serial.println("Failed to add peer");
    return;
  }
}

void loop() {
  if (irrecv.decode(&results))
  {
    Serial.print("Key: "); Serial.println(results.value, HEX);
    myData.key = results.value;
    senden();
    irrecv.resume();
  }
}

Monitor bei bestehender Verbindung:

Start ESP-NOW sender
Key: FFA25D
Sent with success
Packet to: a4:cf:12:9a:14:a0 send status:	Delivery Success

Der Empfänger müßte jetzt noch eine IR-LED ansteuern, die finde ich gerade nicht in meiner Bastelkiste :flushed:

Ha, danke...jetzt hab' ich wirklich genug für den Anfang. Bestellung für alle Teile geht dann mal raus, sobald ich die Zeit habe und die Lieferung da ist, mach' ich mich ran...dann folgen sicher auch noch spezifische Fragen. Danke nochmal an alle, war mir eine große Hilfe!

Liebe Grüße