Canon 1200D adv. udløser. (Læst 23123x)

Offline asm7100

  • Højpas filter
  • *****
  • Indlæg: 309
  • Antal brugbare Indlæg: 17
  • Hvis det ikke kan gøres så gør det alligevel.
    • Vis profil
Canon 1200D adv. udløser.
« Dato: Januar 12, 2015, 15:07:44 »

Er ved at udvikle en adv. udløser til et Canon 1200D
Skal selvf. kunne remote udløse.
Udløse med et interval som brugeren har bestemt.
En slæde som cameraet kan kører på og tage billeder frem og tilbage, med ende stop på, så lænden selv kan bestemmes.
Andre udløser som man selv kan tilbygge. F.eks lyd, lys hvad man nu lige selv har lyst til at lave.
« Senest Redigeret: Januar 19, 2015, 12:55:50 af asm7100 »
MVH
Allan Madsen

 

Offline asm7100

  • Højpas filter
  • *****
  • Indlæg: 309
  • Antal brugbare Indlæg: 17
  • Hvis det ikke kan gøres så gør det alligevel.
    • Vis profil
Sv: Canon 1200D adv. udløser.
« Svar #1 Dato: Januar 19, 2015, 13:09:21 »
Har nu revurderet hele projektet og har besluttet at det ikke skal opbygges omkring en PIC.
Men har valgt at bruge en ESP12, da den bl.a giver mulighed for trådløs forbindelse.
Dette er jeg kommet rigtigt langt med.
Nu kan jeg bl.a styre mit kamera så jeg kan tage billeder i intervaller, dog skal det stadig programmeres i koden.
Så det er stadig i test men det virker.
Her er også et par billider.
Her er kode som er lagt i ESP12
Kode:
_PROMPT=""

--MCP23017 x20

--MCP23017 X21

-- I2C Setup
    id=0
    intax20 = 5
    intax21 = 1
    sda=6
    scl=7
    PortA = 0x12
    PortB = 0x13


print("Canon 1200D timeslider.")
print("Version 26022015       ")
print("-----------------------")

TimePicDelay = 6 -- Sekunder
TakeTotalPic = 5 -- Number of picture to take.

print("Antal billeder at tage : "..TakeTotalPic.." stk.")
print("Pause mellem billeder  : "..TimePicDelay.. " sekunder")


    -- initialize i2c, set pin6 as sda, set pin7 as scl
    i2c.setup(id,sda,scl,i2c.SLOW)

    -- user defined function: read from reg_addr content of dev_addr
    function read_reg(dev_addr, reg_addr)
      i2c.start(id)
      i2c.address(id, dev_addr ,i2c.TRANSMITTER)
      i2c.write(id,reg_addr)
      i2c.stop(id)
      i2c.start(id)
      i2c.address(id, dev_addr,i2c.RECEIVER)
      c=i2c.read(id,1)
      i2c.stop(id)
      return c
    end

    function write_reg(dev_addr, reg_addr, reg_val)
      i2c.start(id)
      i2c.address(id, dev_addr, i2c.TRANSMITTER)
      i2c.write(id, reg_addr)
      i2c.write(id, reg_val)
      i2c.stop(id)
    end
   
    -- Int MCP23017 Addr 0x20
    write_reg(0x20, 0x00, 0xff) -- set Port A to input
    write_reg(0x20, 0x02, 0xff) -- set Port A to input invert.
    write_reg(0x20, 0x0c, 0xff) -- set Port A to input and pullup.

    write_reg(0x20, 0x01, 0x00) -- set Port B to output


    -- Function til at tage billedet med.
    -- Port Bx20 Bit 7 Hoej Saa lav
    -- Port Bx20 Bit 6 Hoej Saa lav
    function f_take_pic()
      write_reg(0x20, PortB, bit.set(string.byte(read_reg(0x20, PortB)),6))
      tmr.delay(500000)
      write_reg(0x20, PortB, bit.clear(string.byte(read_reg(0x20, PortB)),6))
      tmr.delay(500000)
      write_reg(0x20, PortB, bit.set(string.byte(read_reg(0x20, PortB)),7))
      tmr.delay(500000)
      write_reg(0x20, PortB, bit.clear(string.byte(read_reg(0x20, PortB)),7))
    end

--- Main program ----


    for i = 1, TakeTotalPic do
      tmr.delay(1000000*TimePicDelay)
      reg = read_reg(0x20, PortA) -- Port A (input)

      if string.byte(reg) > 0 then
        print(string.byte(reg))
      end

      print("Billede nr. " .. i.." taget")
     
      f_take_pic()
     
      tmr.wdclr()     
    end
    print("Alle billeder taget.\nProgram slut")
_PROMPT=nil


Muligheden med denne lille ESP12 er mange.
Den kan f.eks connecte til et AP, eller den kan selv funger som et AP
Det vil sige at man f.eks fra sin mobil telefon kan sende kommandoer til den, og man kan også lave det så man kan sætte programmet op via HTML.
Mulighederne er mange
Kan oplyse at det lille program fylder ca 1,5 KB ud af 512Kb.
Opdatering:
26022015 - Endeligt diagram lagt op., Nu er der en MCP23017 koblet på og kamara styring køre nu den vej igennem.
29032015 - Puha dette er et kæmpe projekt, Har fået lodet en prototype op på et hul print, og er ved at prøve at få hul igennem til 1602 displayet, men da der ikke findes eksempler på hvordan det skal gøres er jeg selv ved den, helt fra bunden af, som det kan ses sidder displayet jo på en MCP23017 så ja det er status herfra ang. displayet.
Motor er dog oppe at køre, og taster lige så, der vil snart blive langt mere kode op, når jeg har fin pusset det.
« Senest Redigeret: Marts 29, 2015, 15:03:33 af asm7100 »
MVH
Allan Madsen

 

Offline Icecap

  • Jordet Basic
  • **
  • Indlæg: 177
  • Antal brugbare Indlæg: 19
    • Vis profil
Sv: Canon 1200D adv. udløser.
« Svar #2 Dato: Juli 30, 2019, 14:12:54 »
Nu er jeg kedelig - men jeg købte en timer på e-bay som kan dels trigge som time-lapse (interval) og kan stilles til et antal fotografier eller ingen begrænsning.

Jeg bruger den også til lange åbningstider (sammen med ND-filter) sammen med min Canon EOS 7D.

Bruger den også en gang i mellem som ledningsudløser for at undgå rystelser.

Kostede 128:- mener jeg.

Med Canons program kan jeg tage billeder direkt via USB-ledningen, billederne lægges på computeren som er indkoplet. Man kan køre interval osv.

Nu er det selvfølgeligt ikke det samme som at bygge selv og selvbygge kan have funktioner man ellers savner så jeg fraråder definitivt ikke fra at bygge selv.

Og ja, jeg ved at det er en gammel tråd.