Close

dalkova spoust pro zrcadlovku

Úvodní stránka Fórum Vaše projekty Arduino dalkova spoust pro zrcadlovku

Aktuálně je na stránce zobrazeno 29 příspěvků - 1. až 29. (celkem z 29)
  • Autor
    Příspěvky
  • #9301
    fidos
    Účastník

    Ahoj

    obracim se na Vas s prosbou o radu, kde muze byt chyba v zapojeni dalkove spouste. Sestavil jsem podle navodu viz. :

    http://www.instructables.com/id/Motion-Triggered-DSLR-Remote-System/

    krom toho, ze jsem pouzil jine soucastky, nez ma on :

    senzor pohybu: HC-SR501

    433Mhz RF Transmitter + Receiver: http://www.dx.com/p/433mhz-rf-transmitter-module-receiver-module-link-kit-for-arduino-arm-mcu-wl-green-220194#.WDhmgdThBQJ

    Jeden ochotny clovek mi poradil s kodem pro transmitter :

    #include <VirtualWire.h>

    #define PIN_MOTION 2
    #define PIN_LIGHT 13
    #define PIN_TX 12

    char *message;

    void setup() {
    pinMode(PIN_LIGHT, OUTPUT);
    pinMode(PIN_MOTION, INPUT);

    digitalWrite(PIN_LIGHT, LOW);

    vw_set_ptt_inverted(true);
    vw_set_tx_pin(PIN_TX);
    vw_setup(1200);

    delay(1000);
    }

    void loop(){
    byte input = digitalRead(PIN_MOTION);

    if (input == HIGH){
    digitalWrite(PIN_LIGHT, HIGH);

    message = „1“ ;
    vw_send((uint8_t *)message, strlen(message));
    vw_wait_tx();
    delay(1000);
    }
    else{
    digitalWrite(PIN_LIGHT, LOW);
    }
    }

    ktery se zda, ze funguje – nevim to jiste, jen vim, ze pri detekci pohybu se rozsviti ledka a snad i posila signal (nevim jak overit)

    Dejme tomu, ze odesila.

    Kod pro reciever jsem pouzil ze stranek autora projektu a to tento :

    /*———————————————————————————-
    Motion Activated DSLR Shutter Remote
    Receiver Sketch (433mHz Serial RX)
    Written By: Angelo Casimiro (ASCAS/ TechBuilder)
    Date Written: October 18, 2014

    Pin Configuration:
    – Digital#12 of Arduino to Data Out of RX module
    – Digital#11 of Arduino to IR LED
    ———————————————————————————-*/
    #include <multiCameraIrControl.h>
    #include <VirtualWire.h>

    Canon D5(11);

    void setup()
    {
    vw_set_ptt_inverted(true);vw_set_rx_pin(12);
    vw_setup(4000);vw_rx_start();unsigned int data = 0;
    pinMode(13, OUTPUT);
    pinMode(11, OUTPUT);
    }
    void loop(){

    uint8_t buf[VW_MAX_MESSAGE_LEN];uint8_t buflen = VW_MAX_MESSAGE_LEN;

    if (vw_get_message(buf, &buflen)){
    if(buf[0]==’1′){
    digitalWrite(13,1);
    D5.shutterNow();
    }
    if(buf[0]==’0′){
    digitalWrite(13,0);
    }
    }
    }

    ale transmitter pravdepodobne nic neprijima – nerosvicuje ir ani led na desce.

    Jinak jsem zkousel samotne zapojit transmitter a reciever, zda komunikuji a zda se ze funguji. Jen bylo videt, ze signal je ruseny.

    Proto se Vas tazi, kde muze byt chyba?

    Na zaver musim rict, ze jsem zacatecnik a programovani neni moje silna stranka 🙂

    #9307
    posjirka
    Účastník

    takže:
    – máš rozdílné komunikační rychlosti (v setup() máš jednou vw_setup(4000); podruhé vw_setup(1200);)
    – 433 Mhz je standardní řešení, jen je třeba dávat si pozor na napájení (aby to utáhlo vysílač). Pro vyšší výkon se dává vyšší napětí (tuším až okolo 9-12V) ale je to potřeba podívat se na datasheet tvého řešení.Nejsou všechyn stejné.
    – nevím jak máš řešenou anténu. Její provedení výrazně ovlivňuje chování celého řešení hlavně pro dosah.
    – když chceš něco odladit nech si vypsat na seriový port/monitor co ti vlastně přijímá.

    #9348
    fidos
    Účastník

    Dik za odpoved… upravil jsem rychlosti a funguje to 🙂 Akorat neplni funkci – ir ledka se rosviti, ale nespusti fotak… tak nevim proc

    #9349
    posjirka
    Účastník

    nech si vypsat co ti přijímá . viz exampl na stránkách tvůrce knihovny:
    https://www.pjrc.com/teensy/td_libs_VirtualWire.html

    určitě bych použil více než 1 znak. zrovna „1“ se vcelku blbě hledá v tom co ti bude chodit v návalu rušení.

    #9356
    fidos
    Účastník

    nemuze to bejt ir ledkou, sice sviti, ale neznam presne jeji parametry?

    …pak tady sem nasel kod, ktery by mel fungovat i pro moji zrcadlovku, ale v autorove zapojeni (pouze deska + ir led) :

    Bit of a learning curve but spent the day looking into how to get the Canon 5DMkII and 7D MkII to work.
    With an infrared detector and an Arduino sketch I found that the RC-6 remote from Canon outputs a 500uS burst, a delay of 6940us and then another 500uS burst. I then used a IR Led at 940nm – modified a sketch to send these bursts and lo and behold – it works.
    The RC-6 is used for a number of Canon Dslr’s so should cover a few more models for your library

    class CanonRC6{
    public:
    CanonRC6(int pin);
    void shutterNow();
    private:
    int _pin;
    int _freq;
    };

    CanonRC6::CanonRC6(int pin)
    {
    pinMode(pin, OUTPUT);
    _pin = pin;
    _freq = 33;
    }

    void CanonRC6::shutterNow()
    {
    for(int i=0; i<16; i++) {
    digitalWrite(_pin, HIGH);
    delayMicroseconds(15);
    digitalWrite(_pin, LOW);
    delayMicroseconds(15);
    }
    delayMicroseconds(6940);
    for(int i=0; i<16; i++) {
    digitalWrite(_pin, HIGH);
    delayMicroseconds(15);
    digitalWrite(_pin, LOW);
    delayMicroseconds(15);
    }
    }

    Zkousel se nahrat jeho knihovnu (download viz. jeho blog) a nic se nezmenilo.

    #9368
    posjirka
    Účastník

    to se klidně může stát. IR LED má mimo jiné parametr jako vlnová délka. může být špatně nastavená i nosná frekvence a foťák ji pak nedetekuje. Jak píšeš, že jsi zkoušel ten „přímý“ program arduino- foťák a nefunguje , tak bych to na nesprávnou IR LED i typnul.

    #9369
    posjirka
    Účastník

    už an neumím česky 🙂 … samozřejmě tipnul …

    #9373
    fidos
    Účastník

    tak ledku sem vymenil dokonce primo z ovladace rc-6 nespousti. Tim padem to musi bejt v uprave knihovny multiCameraControl nebo VirtualWire, ale netusim jak to mam upravit

    #9374
    fidos
    Účastník

    tak ledku sem vymenil dokonce primo z ovladace rc-6 a nespousti. Tim padem to musi bejt v uprave knihovny multiCameraControl nebo VirtualWire, ale netusim jak to mam upravit

    #9375
    posjirka
    Účastník

    tak to zapoj jak to měl ten sebastian – z arduina přímo na ir led …

    #9376
    fidos
    Účastník

    jo tak podle jeho zapojeni to funguje, ale na mym projektu, kdyz pripojim ledku na reciever, tak to nefunguje. Jak je to mozny, kdyz spusti ledku vlastne stejne jako u Sebastiana?

    #9385
    posjirka
    Účastník

    napadá mě varianta … zda knihovna virtual Wire nepoužívá stejné časovače/přerušení jako knihovna pro IR/foták…. jak budu mít chvilku zkusím se na to podívat…

    #9440
    fidos
    Účastník

    cau, jak to presne myslis?

    #9462
    posjirka
    Účastník

    tak jsem se konečně dostal no to tvoje řešení.
    knihovny se netlučkou – vždyť to fungovalo v instructable.com , ale zaráží mě 2 věci:
    1- spouštíš vysílač na urovńi HIGH. Ty opravdu připojuješ +5V přímo na pin? to je celkem sebevražda.
    Vždy se dává odpor (1k0) mezi pin a +5V a pak se tlačítkem ten pin přizemní (takže úroveń LOW)
    2 – proč máš pauzu 1000 ms (vysílač) ,po odelslání signálu, když v originále bylo 10ms. Takže mohl ten signál odeslat několikrát a pak byla větší pravdepodobnost, že se chytí.
    JKeslti chceš omezit počet semoutí, tak to nech až u přijímače.

    #9469
    fidos
    Účastník

    Pauzu uz sem zkousel nastavit na 10ms, ale stejny. Vysilac mam zapojeny primo na +5V, proc se tam musi davat odpor? Jinak nerozumim “ a pak se tlačítkem ten pin přizemní “ – dam odpor na +5V a co dal?

    #9470
    posjirka
    Účastník

    myslím to takto.

    Připojením pinu přímo na +5V je skvělá cesta do pekel. Nikdy se nepřipojuje napájení přímo bez ochranného odporu. Hrozí zničení vstupních obvodů.

    Attachments:
    #9566
    fidos
    Účastník

    on tam ale na instrucables odpor nema, myslis ze bych moh tim odpalit nejake obvody na vysilaci? Ir ledka ale blika – i kdyz nevim ,jestli blika tak jak ma no.

    #9567
    posjirka
    Účastník

    ví bůh … já tam radši odpor aspo¨n 100R dávám…

    #9568
    fidos
    Účastník

    jeste mi neni jasna jedna vec, a to ze, po prvnim signalu na reciever se zapne ledka na pinu 13 a sviti porad, i kdyz se ir led vypne. Pak se pri pohybu zase ir ledka zapne a vypne atd. Ale na pinu 13 ledka sviti porad, od prvniho prijmuti signalu…

    #9570
    posjirka
    Účastník

    to bude tím, že cela zprava konci bitem 1. potom ve smycce se to už nenuluje.
    zkus použít zpravu = „2“

    #9599
    fidos
    Účastník

    zmenil sem, ale sviti porad

    #9609
    posjirka
    Účastník

    a nepřijímá ti to nějáký bordel ?

    #9611
    fidos
    Účastník

    to nevim, ale ir ledka normalne vypne, jen porad sviti led na pinu 13

    #9612
    posjirka
    Účastník

    hod sem ten kod co používáš …. když se dívám zpětně na forum tak tam jsou asi 3 verze tak a´t máme stejěné informace …

    #9691
    fidos
    Účastník

    kod pro transmitter :

    #include <VirtualWire.h>

    #define PIN_MOTION 2
    #define PIN_LIGHT 13
    #define PIN_TX 12

    char *message;

    void setup() {
    pinMode(PIN_LIGHT, OUTPUT);
    pinMode(PIN_MOTION, INPUT);

    digitalWrite(PIN_LIGHT, LOW);

    vw_set_ptt_inverted(true);
    vw_set_tx_pin(PIN_TX);
    vw_setup(2000);

    delay(1000);
    }

    void loop(){
    byte input = digitalRead(PIN_MOTION);

    if (input == HIGH){
    digitalWrite(PIN_LIGHT, HIGH);

    message = „1“ ;
    vw_send((uint8_t *)message, strlen(message));
    vw_wait_tx();
    delay(10);
    }
    else{
    digitalWrite(PIN_LIGHT, LOW);
    }
    }

    kod pro reciever :

    /*———————————————————————————-
    Motion Activated DSLR Shutter Remote
    Receiver Sketch (433mHz Serial RX)
    Written By: Angelo Casimiro (ASCAS/ TechBuilder)
    Date Written: October 18, 2014

    Pin Configuration:
    – Digital#12 of Arduino to Data Out of RX module
    – Digital#11 of Arduino to IR LED
    ———————————————————————————-*/
    #include <multiCameraIrControl.h>
    #include <VirtualWire.h>

    Canon D5(11);

    void setup()
    {
    vw_set_ptt_inverted(true);vw_set_rx_pin(12);
    vw_setup(2000);vw_rx_start();unsigned int data = 0;
    pinMode(13, OUTPUT);
    pinMode(11, OUTPUT);
    }
    void loop(){

    uint8_t buf[VW_MAX_MESSAGE_LEN];uint8_t buflen = VW_MAX_MESSAGE_LEN;

    if (vw_get_message(buf, &buflen)){
    if(buf[0]==’1′){
    digitalWrite(13,1);
    D5.shutterNow();
    }
    if(buf[0]==’0′){
    digitalWrite(13,0);
    }
    }
    }

    #9718
    posjirka
    Účastník

    1. používej prosím funkci CODE (tlačítko nad textovým oknem odpovědi) jinak je ten kod špatně čitelný.
    2. já bych o trochu pozměnil kod pro reciever:

    #include <multiCameraIrControl.h>
    #include <VirtualWire.h>
    
    Canon D5(11);
    
    void setup()
    {
      vw_set_ptt_inverted(true);vw_set_rx_pin(12);
      vw_setup(2000);vw_rx_start();unsigned int data = 0;
      pinMode(13, OUTPUT);
      pinMode(11, OUTPUT);
    }
    void loop(){
      uint8_t buf[VW_MAX_MESSAGE_LEN];uint8_t buflen = VW_MAX_MESSAGE_LEN;
      if (vw_get_message(buf, &buflen)){
        if(buf[0]==’1′){
          digitalWrite(13,1);
          D5.shutterNow();
        } else { // změna
    // if(buf[0]==’0′){ // zmena
        digitalWrite(13,0);
        }
      }
    }

    no a transmiter taky není moc dotáhnutý k dokonalosti:

    #include <VirtualWire.h>
    
    #define PIN_MOTION 2
    #define PIN_LIGHT 13
    #define PIN_TX 12
    
    char *message;
    
    void setup() {
      pinMode(PIN_LIGHT, OUTPUT);
      pinMode(PIN_MOTION, INPUT);
    
      digitalWrite(PIN_LIGHT, LOW);
    
      vw_set_ptt_inverted(true);
      vw_set_tx_pin(PIN_TX);
      vw_setup(2000);
    
      delay(1000);
    }
    
    void loop(){
      byte input = digitalRead(PIN_MOTION);
    
      if (input == HIGH){
        digitalWrite(PIN_LIGHT, HIGH);
    
        message = „1“ ;
        vw_send((uint8_t *)message, strlen(message));
        vw_wait_tx();
       delay(10);
      } else {
        digitalWrite(PIN_LIGHT, LOW);
        message = „0“ ; // zmena
      }
    }
    
    #9727
    fidos
    Účastník

    zmeneno a porad stejny, tak nevim. Jinak sem meril napeti na pinu pro ir ledku a bylo tam jenom asi 0,05V při sepnuti, není to nejak malo?

    #9729
    fidos
    Účastník

    na recieveru taky porad stejny, při první prijmuti signalu je na pinu 13 porad napeti cca. 5V

    #9737
    posjirka
    Účastník

    musím přiznat, že mě te´d nic nenapdá ….

Aktuálně je na stránce zobrazeno 29 příspěvků - 1. až 29. (celkem z 29)
  • Pro reakci na toto téma se musíte přihlásit.