Страница 1 из 1

Bluetooth пульт для фотокамеры на ESP32

Добавлено: 27 сен 2024, 11:27
Axel
Есть интересная библиотека Bluetooth пульта для фотокамеры Canon на ESP32. Пытаюсь сделать пользовательский блок, но не понятно, что делать с void blink(){ digitalWrite(LED, !digitalRead(LED));}. Помогите разобраться.

Ссылка на библиотеку https://github.com/maxmacstn/ESP32-Canon-BLE-Remote

Пример кода из библиотеки. Его и пытаюсь реализовать через блок.

#include "CanonBLERemote.h"
#include <Arduino.h>
#include "Ticker.h"


#define LOG_LOCAL_LEVEL ESP_LOG_INFO
#include "esp_log.h"
#include <esp32-hal-log.h>

#define SHUTTTER_BTN 14
#define FOCUS_BTN 12
#define LED 2

String name_remote = "ESP32 Remote";
CanonBLERemote canon_ble(name_remote);
Ticker blinker;

void blink(){
digitalWrite(LED, !digitalRead(LED));
}

void setup()
{
Serial.begin(115200);
esp_log_level_set("*", ESP_LOG_INFO);

pinMode(SHUTTTER_BTN, INPUT_PULLUP);
pinMode(FOCUS_BTN, INPUT_PULLUP);
pinMode(LED, OUTPUT);
digitalWrite(LED, HIGH);

canon_ble.init();

delay(1000);
// Pairing
if(digitalRead(SHUTTTER_BTN) == LOW ){
blinker.attach_ms(200,blink);

// pair() function should be called only when you want to pair with the new camera.
// After paired, the pair() function should not be called.
do{
Serial.println("Pairing...");
}
while(!canon_ble.pair(10));

blinker.detach();
digitalWrite(LED, HIGH);

}


delay(1000);
Serial.println("Setup Done");
}

void loop()
{

// Shutter
if (digitalRead(SHUTTTER_BTN) == LOW){
Serial.println("Shutter pressed");
digitalWrite(LED, LOW);
if(!canon_ble.trigger()){
Serial.println("Trigger Failed");
}
digitalWrite(LED, HIGH);
}
// Focus
else if (digitalRead(FOCUS_BTN) == LOW){
Serial.println("Focus pressed");
digitalWrite(LED, LOW);
if(!canon_ble.focus()){
Serial.println("Focus failed");
}
digitalWrite(LED, HIGH);

}

}

Re: Bluetooth пульт для фотокамеры на ESP32

Добавлено: 27 сен 2024, 20:05
aidar_i
Axel писал(а): 27 сен 2024, 11:27 Есть интересная библиотека Bluetooth пульта для фотокамеры Canon на ESP32. Пытаюсь сделать пользовательский блок, но не понятно, что делать с void blink(){ digitalWrite(LED, !digitalRead(LED));}. Помогите разобраться.
Засуньте в функцию.

Re: Bluetooth пульт для фотокамеры на ESP32

Добавлено: 28 сен 2024, 17:03
Axel
aidar_i писал(а): 27 сен 2024, 20:05 Засуньте в функцию.
Спасибо за помощь! Всё оказалось очень просто :yes:

Re: Bluetooth пульт для фотокамеры на ESP32

Добавлено: 02 окт 2024, 16:37
Axel
Вопрос к знатокам. Реально ли на один контроллер залить два разных пульта (две разные библиотеки)?
Есть библиотека для смартфона и отдельная библиотека для фотокамеры. Обе по отдельности работают хорошо.

Одновременная синхронизация со смартфоном и фотокамерой не планируется. Только либо смартфон, либо камера. Но реализовать это на одной ESP32 пока не получается. Возможно это сделать?

Re: Bluetooth пульт для фотокамеры на ESP32

Добавлено: 02 окт 2024, 18:00
aidar_i
Скорее возможно, включаете нужный пульт.

Re: Bluetooth пульт для фотокамеры на ESP32

Добавлено: 02 окт 2024, 18:51
Axel
aidar_i писал(а): 02 окт 2024, 18:00 Скорее возможно, включаете нужный пульт.
Подскажите, пожалуйста, в каком направлении копать? Как включить нужный пульт? Оба пульта на разных пинах. Скетч компилируется и загружается без ошибок. Подключается к смартфону без проблем. Но сразу после подключения начинаются несанкционированные нажатия.