Специальные цены   новые товары
Закрытая тема
Показано с 1 по 3 из 3

управление камерой gopro с пульта frsky taranis

Тема раздела Самодельная электроника, компьютерные программы в категории Общие вопросы; Вот решил вечером сделать приспособу для управления GoPro в полете Используем Arduino и ESP8266. Если будет интересно, могу расписать по ...

  1. #1

    Регистрация
    07.10.2008
    Адрес
    Санкт-петербург, пушкин
    Возраст
    41
    Сообщений
    18

    управление камерой gopro с пульта frsky taranis

    Вот решил вечером сделать приспособу для управления GoPro в полете



    Используем Arduino и ESP8266. Если будет интересно, могу расписать по подробнее.

  2.  
  3. #2

    Регистрация
    20.06.2005
    Адрес
    Москва
    Возраст
    53
    Сообщений
    1,503
    Записей в дневнике
    38
    Конечно интересно, распишите)

  4. #3

    Регистрация
    07.10.2008
    Адрес
    Санкт-петербург, пушкин
    Возраст
    41
    Сообщений
    18
    Берем ардуину мини, микро. По большому счету подойдет любая. У меня была вот такая.



    Далее нам понадобится модуль WiFi ESP8266. Их тоже много модификаций, подойдет, я думаю, любой. Я брал такой


    Он питается напряжением 3.3 вольта. От 5 дохнет, проверено. По этому нам понадобится стабилизатор на 3.3 вольта, например такой AMS1117



    Инструкций по прошивке и того и другого в интернете полно навалом. По этому заострять внимание на этом не буду. Только напомню, что для прошивки ESP8266 надо замкнуть GPIO0 на землю перед включением питания.

    Для начала прошьем код в ESP8266/ Выглядит он так.

    Код:
    #include <ESP8266WiFi.h>
    const char* ssid     = "SuperGoPro";
    const char* password = "1234512345";
    const int httpPort = 80;
    int val = 0;
    String url = "";
    WiFiClient client;
    
    void setup() {
      Serial.begin(115200);  delay(10);
      WiFi.begin(ssid, password);
      while (WiFi.status() != WL_CONNECTED) {delay(500); Serial.print(".");}
      if (!client.connect("10.5.5.9", httpPort)) {return; }
      delay (3000); SendCommands ("HTTP://10.5.5.9/bacpac/PW?t=1234512345&p=%01");  // power on
    }
    
    void loop() {
        if (Serial.available() > 0) { val = Serial.read();
         if (val =='1') SendCommands ("HTTP://10.5.5.9/bacpac/PW?t=1234512345&p=%01");  // camera power on
         if (val =='2') SendCommands ("HTTP://10.5.5.9/bacpac/PW?t=1234512345&p=%00");  // camera power off
         if (val =='3') SendCommands ("HTTP://10.5.5.9/camera/CM?t=1234512345&p=%00");  // camera CM - 00 Video Mode
         if (val =='4') SendCommands ("HTTP://10.5.5.9/camera/CM?t=1234512345&p=%01");  // camera CM - 01 Photo Mode
         if (val =='5') SendCommands ("HTTP://10.5.5.9/bacpac/SH?t=1234512345&p=%01");  // bacpac SH - 01 Shutter
         if (val =='6') SendCommands ("HTTP://10.5.5.9/bacpac/SH?t=1234512345&p=%00");  // bacpac SH - 00 Stop  
      }
    }
    
    void SendCommands(String command){
        if (!client.connect("10.5.5.9", httpPort)) {return;}
        //delay (100);
          client.print(String("GET ") + command + " HTTP/1.1\r\n" + "Host: " + "10.5.5.9" + "\r\n" + "Connection: close\r\n\r\n"); delay(10);
    }
    Не забываем задать свое имя сети Wifi камеры и ее пароль. В коде думаю все понятно и предельно просто, кому надо, могут добавить свои команды. Мне пока хватает этого.

    Полный список команд управления камерой

    Код:
    URL structure: http://10.5.5.9/camera or bacpac/COMMAND?t=PASSWORD&p=%NUMBER
     PASSWORD: Replace by your camera's WiFi Password
     HTTP Response Codes:
     Response Code Meaning
      200 Successful
      403 Password Incorrect
      410 Command Failed
    
    bacpac PW - 00 Turn GoPro OFF
    
    bacpac PW - 01 Turn GoPro ON
    
    bacpac RS - Reset bacpac
    
    bacpac SH - 01 Shutter
    
    bacpac SH - 00 Stop
    
    camera PV - 02 Preview ON
    
    camera PV - 00 Preview OFF
    
    camera TM - Set time, requires a longer string, each field is a byte with a % before it:
    
    Last 2 digits of the year
    Month (1 - January, 12 - December)
    Day of the month (1 - 31)
    Hour (24-hour format, starts from zero)
    Minute
    Second
    Mode:
    
    camera CM - 00 Video Mode
    
    camera CM - 01 Photo Mode
    
    camera CM - 02 Burst Mode
    
    camera CM - 03 Timelapse Mode
    
    camera CM - 04 Timer Mode (hero2)
    
    camera CM - 05 Play HDMI
    
    Orientation
    
    camera UP - 00 Orientation UP
    
    camera UP - 01 Orientation DOWN
    
    Video resolutions HERO2 and HERO3 silver:
    
    camera VR - 00 WVGA 60
    
    camera VR - 01 WVGA 120
    
    camera VR - 02 720 30
    
    camera VR - 03 720 60
    
    camera VR - 04 960 30
    
    camera VR - 05 960 48
    
    camera VR - 06 1080 30
    
    Video resolutions Black edition:
    
    camera VV 08 4kCin12
    
    camera VV 07 2.7kCin24
    
    camera VV 06 4k 15
    
    camera VV 05 2.7k 30
    
    camera VV 04 1440p 40
    
    camera VV 03 1080 60
    
    camera VR 05 1080 30
    
    camera VR 06 960 48
    
    camera VV 02 960 100
    
    camera VV 01 720 120
    
    camera VV 00 WVGA 240
    
    Video resolutions HERO3+Black:
    
    camera VV 06 - 4K
    
    camera VV 08 - 4K 17:9
    
    camera FS 01 - 4K 15FPS
    
    camera FS 00 - 4K 12FPS
    
    camera VV 07 - 2K
    
    camera VV 05 - 2.7k
    
    camera FS 02 - 2.7k 24FPS
    
    camera FS 04 - 2.7k 30FPS
    
    camera VV 04 - 1440p
    
    camera FS 05 - 1440 48FPS
    
    camera VV 09 - 1080 SuperView
    
    camera VV 03 - 1080
    
    camera VV 02 - 960p
    
    camera VV 0a - 720 SuperView
    
    camera VV 01 - 720p
    
    Frame rate:
    
    camera FS - 00 FPS12
    
    camera FS - 01 FPS15
    
    camera FS - 0b FPS12p5
    
    camera FS - 02 FPS24
    
    camera FS - 03 FPS25
    
    camera FS - 04 FPS30
    
    camera FS - 05 FPS48
    
    camera FS - 06 FPS50
    
    camera FS - 07 FPS60
    
    camera FS - 08 FPS100
    
    camera FS - 09 FPS120
    
    camera FS - 0a FPS240
    
    Fov:
    
    camera FV - 00 wide
    
    camera FV - 01 medium
    
    camera FV - 02 narrow
    
    Photo resolution HERO2 and HERO3 silver:
    
    camera PR - 00 11mpW
    
    camera PR - 01 8mpM
    
    camera PR - 02 5mpW
    
    camera PR - 03 5mpM
    
    Timelapse Interval:
    
    camera TI - 00 0,5 sec
    
    camera TI - 01 1sec
    
    camera TI - 05 5sec
    
    camera TI - 0a 10sec
    
    camera TI - 1e 30sec
    
    camera TI - 3c 60sec
    
    Volume:
    
    camera BS - 00 no sound
    
    camera BS - 01 70%
    
    camera BS - 02 100%
    
    White Balance HERO3 "ONLY IF Protune ON"
    
    camera WB - 00 auto
    
    camera WB - 01 3000k
    
    camera WB - 02 5500k
    
    camera WB - 03 6500k
    
    camera WB - 04 CAMRAW
    
    Continuous Shot (HERO3):
    
    camera CS - 00 Single
    
    camera CS - 03 3SPS
    
    camera CS - 05 5SPS
    
    camera CS - 0a 10SPS
    
    Burst Rate HERO3:
    
    camera BU - 00 3/1s
    
    camera BU - 02 10/1s
    
    camera BU - 03 10/2s
    
    camera BU - 04 30/1s
    
    camera BU - 05 30/2s
    
    camera BU - 06 30/3s
    
    Loop Video HERO3:
    
    camera LO - 00 OFF
    
    camera LO - 01 5min
    
    camera LO - 02 20Min
    
    camera LO - 03 60Min
    
    camera LO - 05 Max
    
    Protune ON/OFF:
    
    camera PT - 01 ON
    
    camera PT - 00 OFF
    
    Delete:
    
    camera DL - (no number) last
    
    camera DA - (no number) all
    
    camera DF - delete specific?
    
    Photo resolution Black ed:
    
    camera PR - 05 12mpW
    
    camera PR - 04 7mpW
    
    camera PR - 06 7mpM
    
    camera PR - 03 5mpM
    
    Leds:
    
    bacpac LB - 00 no leds
    
    camera LB - 01 2 leds
    
    camera LB - 02 4 leds
    
    Spot Meter:
    
    camera EX - 00 OFF
    
    camera EX - 01 ON
    
    One Button Mode:
    
    camera OB - 00 OFF
    
    camera OB - 01 ON
    
    Protune Resolutions HERO2 and HERO3 silver:
    
    camera VR - 07 1080 30 Protune
    
    camera VR - 08 1080 24 Protune
    
    camera VR - 11 1080 25 Protune
    
    camera VR - 09 960 60 Protune
    
    Protune Resolutions HERO3 black ONLY IF PROTUNE IS ON:
    
    camera VV 00 720 120T
    
    camera VV 02 960 100T
    
    camera VV 03 1080 60T
    
    camera VV 04 1440 48T
    
    camera VV 05 2.7k 30T
    
    camera VV 06 4k 15T
    
    camera VV 07 2.7KCin24T
    
    camera VV 08 4kCin12T
    
    Auto Power Off:
    
    camera AO - 00 NEVER
    
    camera AO - 01 60s
    
    camera AO - 02 120s
    
    camera AO - 03 300s
    
    Default Mode:
    
    camera DM - 00 Video
    
    camera DM - 01 Photo
    
    camera DM - 02 Burst
    
    camera DM - 03 Timelapse
    
    OnScreen Display:
    
    camera OS - 00 OFF
    
    camera OS - 01 ON
    
    Locate:
    
    camera LL - 01 Start
    
    camera LL - 00 Stop
    
    Video Mode:
    
    camera VM - 00 NTSC
    
    camera VM - 01 PAL
    */
    С платой wifi закончили, переходим к ардуинке. Ей мы будем обрабатывать SBUS сигнал приходящий с передатчика. и отсылать команды на wifi модуль. Тут есть небольшой момент. Сигнал передатчика SBUS идет в инвертированом виде. Многие ставят мс инвертора, типа 74HC14, у меня под рукой его не оказалось. По этому собрал инвертор на транзисторе. транзистор подойдет практически любой NPN. У меня по рукой оказался 2N2222. собираем с ним простейшую схемку. Резисторы любые по 1к.



    Заливаем в ардуину код.

    Код:
    #include <SBUS.h>
    SBUS sbus(Serial);
    #include <SoftwareSerial.h>
    #define rxPin 2
    #define txPin 3 
    SoftwareSerial mySerial =  SoftwareSerial(rxPin, txPin);
    int CameraMode = 2;  // 
                        // 1 - video mode
                        // 2 - photo mode
                        
    int CameraRecord = 0; // запись выключена
    
                        
    void setup()
    {
      sbus.begin();
      mySerial.begin(115200);
      mySerial.println("SBUS Status");
      delay (10000); // ждем 10 секунд пока установится соединение wifi 
      mySerial.println("1");delay (2000);mySerial.println("4");delay (2000);mySerial.println("5");
    }
    
    // this is timer2, which triggers ever 1ms and processes the incoming SBUS datastream
    ISR(TIMER2_COMPA_vect)
    {
      sbus.process();
    }
    
    void loop()
    {
      delay(1000);
      //printSBUSStatus();
      if ( sbus.getNormalizedChannel(16) < -10 && CameraMode != 2) {CameraMode = 2;  mySerial.println("4");}
      if ( sbus.getNormalizedChannel(16) >  10 && CameraMode != 1) {CameraMode = 1;  mySerial.println("3");}
      if ( sbus.getNormalizedChannel(15) >  10 && CameraMode == 1  && CameraRecord == 0 ) { CameraRecord = 1; mySerial.println("5");}
      if ( sbus.getNormalizedChannel(15) >  10 && CameraMode == 1  && CameraRecord == 1 ) { CameraRecord = 0; mySerial.println("6");}
      
      if ( sbus.getNormalizedChannel(15) >  10 && CameraMode == 2) {  mySerial.println("5");}
    }
    
    void printSBUSStatus()
    {
      mySerial.print("Ch1  ");
      mySerial.println(sbus.getNormalizedChannel(1));
      mySerial.print("Ch2  ");
      mySerial.println(sbus.getNormalizedChannel(2));
      mySerial.print("Ch3  ");
      mySerial.println(sbus.getNormalizedChannel(3));
      mySerial.print("Ch4  ");
      mySerial.println(sbus.getNormalizedChannel(4));
      mySerial.print("Ch5  ");
      mySerial.println(sbus.getNormalizedChannel(5));
      mySerial.print("Ch6  ");
      mySerial.println(sbus.getNormalizedChannel(6));
      mySerial.print("Ch7  ");
      mySerial.println(sbus.getNormalizedChannel(7));
      mySerial.print("Ch8  ");
      mySerial.println(sbus.getNormalizedChannel(8));
      mySerial.print("Ch9  ");
      mySerial.println(sbus.getNormalizedChannel(9));
      mySerial.print("Ch10 ");
      mySerial.println(sbus.getNormalizedChannel(10));
      mySerial.print("Ch11 ");
      mySerial.println(sbus.getNormalizedChannel(11));
      mySerial.print("Ch12 ");
      mySerial.println(sbus.getNormalizedChannel(12));
      mySerial.print("Ch13 ");
      mySerial.println(sbus.getNormalizedChannel(13));
      mySerial.print("Ch14 ");
      mySerial.println(sbus.getNormalizedChannel(14));
      mySerial.print("Ch15 ");
      mySerial.println(sbus.getNormalizedChannel(15));
      mySerial.print("Ch16 ");
      mySerial.println(sbus.getNormalizedChannel(16));
      mySerial.println();
      mySerial.print("Failsafe: ");
      if (sbus.getFailsafeStatus() == SBUS_FAILSAFE_ACTIVE) {
        mySerial.println("Active");
      }
      if (sbus.getFailsafeStatus() == SBUS_FAILSAFE_INACTIVE) {
        mySerial.println("Not Active");
      }
      
      mySerial.print("Data loss on connection: ");
      mySerial.print(sbus.getFrameLoss());
      mySerial.println("%");
    }
    Залили, соединяем это всё вместе. инвертор на транзисторе к приемнику и к ардуине, ардуину к wifi модулю по следующей схеме



    На камере не забываем включить wifi. При включении питания. должна включится камера, переключится в режим фото и сделать одну фотографию

    В общем всё просто и понятно
    Кстати библиотека SBUS_FUTABA у меня почему то не заработала. Я взял другую, она ниже во вложении.
    Чуть не забыл. канал 16 это переключение режимов камеры фото или видео, канал 15 это затвор или старт-стоп записи. Можете поменять в коде по своему вкусу.

    ps я не программист и не инженер. тапками не кидать, если что-то не нравится, делаем сами, по своему.
    Миниатюры Миниатюры Нажмите на изображение для увеличения
Название: 20151023_154310.jpg‎
Просмотров: 13
Размер:	48.9 Кб
ID:	1130029   Нажмите на изображение для увеличения
Название: 20151023_154732.jpg‎
Просмотров: 656
Размер:	41.8 Кб
ID:	1130036   Нажмите на изображение для увеличения
Название: AMS1117.gif‎
Просмотров: 23
Размер:	3.9 Кб
ID:	1130041   Нажмите на изображение для увеличения
Название: inverter_sbus.jpg‎
Просмотров: 666
Размер:	50.8 Кб
ID:	1130042   Нажмите на изображение для увеличения
Название: 2619724_orig.jpg‎
Просмотров: 665
Размер:	38.9 Кб
ID:	1130046  
    Вложения

Закрытая тема

Похожие темы

  1. FrSky Taranis - Максимум возможностей за минимальные деньги.
    от vikar в разделе Аппаратура радиоуправления
    Ответов: 17659
    Последнее сообщение: 21.06.2021, 15:47
  2. Куплю FrSky Taranis X9D
    от Kvaki в разделе Барахолка. Аппаратура
    Ответов: 10
    Последнее сообщение: 16.02.2016, 23:31
  3. Продам Запчасти от FrSky Taranis (экран, основную плату, аккумулятор, блок питания)
    от experimentator в разделе Барахолка. Аппаратура
    Ответов: 10
    Последнее сообщение: 21.11.2015, 10:38
  4. Стащили аппу FrSky Taranis
    от GrAl в разделе Магазины, интернет-торговля
    Ответов: 3
    Последнее сообщение: 23.03.2015, 19:23
  5. FrSky Taranis как джостик или пульт
    от ebragim в разделе Симуляторы
    Ответов: 5
    Последнее сообщение: 31.12.2014, 20:26

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения