切换到宽版
  • 5785阅读
  • 31回复

ESP8266自动快门线,求哪位大哥帮个忙?门外汉小白需要帮助! [复制链接]

上一主题 下一主题
离线handsome
 

发帖
2524
M币
0
专家
3
粉丝
51
只看楼主 倒序阅读 我要置顶 楼主  发表于: 2018-03-14
0基础 不懂单片机一类的。
目前因为摄影需求。想做一个自动快门线。
经过一番了解知道了了esp8266这个东西。
但是因为对编程啥都不懂,尝试看了几天教程。。实在头大!
打算用esp8266接继电器控制3根快门线的通断。
又了解了相机的快门线,就是3根线


地线 引脚1 引脚2 引脚1接地(相当于半安快门)就对焦  然后再把引脚2也接地(3根线接一起)就释放快门  
1‘2号线都对地(相当于按下快门)的时候 相机会释放快门并且收回  
但是在B门模式的时候 1·2号线接地后 快门释放直到1.2号线都与地线断开后才会收起快门。
设想:通过esp8266 控制2个引脚电平 实现相机快门的对焦和拍摄。
普通延时拍摄时:esp8266控制1号引脚(假设接对焦线)对焦 然后延时30毫秒(给镜头对焦时间)然后控制2号引脚释放快门 中间延时1分钟(可以在手机上或者web页面中设置这个延时值)重复上面的动作。
总结:也就是esp8266延时循环 控制1号 和 2号引脚输出高电平  之后通过继电器控制快门线的相应接通实现对焦拍摄功能!
而两张延时照片中间的 延时时间可以在web界面或者手机中自己设定。
B门长时间曝光模式:esp8266控制—1号引脚对焦 —延时30毫秒—控制2号引脚释放快门(因为在B门模式快门释放后不会自动收回,断开1·2号引脚的高电平后才会收回快门)—延时曝光时间(web中设置)—控制1·2号引脚输出低电平
总结:与上面普通延时拍摄相比,就是普通延时拍摄 相机会在快门释放后自动收回快门。 而B门长曝光模式,相机释放快门后(相当于按下快门键)后等到1.2号引脚和地断开后(相当于松开快门键)才会收回快门。 按下与松开快门之间的这段时间需要手动设定。


哪位大哥能帮忙写下这个功能呢!或者指导下小弟呀!对单片机基本是一窍不通。
买的这种全IO引出的!


官方固件需要勾选写什么功能呢?
感谢坛友elecfunwb的耐心指导,以上功能已基本实现。期间遇到各种基本语法性问题 耽误了很多时间。 如果要直接用下面代码,请注意自己的模块io口默认情况是拉高还是拉低了的。如果出现该关的时候变成开了 就请调换下面代码中的low与HIGH的位置。
wifi.setmode(wifi.STATION)
wifi.sta.config("WiFi名字","密码")--你家里的路由或者手机开热点让模块链接。
print(wifi.sta.getip())
led1 = 12
led2 = 04 --这个是模块的io口号码,你看看你买的模块上面有哪些口可以已用知己改后面的号码。
gpio.mode(led1, gpio.OUTPUT)
gpio.mode(led2, gpio.OUTPUT)
gpio.write(led1, gpio.HIGH)
gpio.write(led2, gpio.HIGH)
local a
if (srv~=nil) then
  srv:close()
end
srv=net.createServer(net.TCP)
srv:listen(80,function(conn)
    conn:on("receive", function(client,request)
        local buf = ""
        print(request)
        local _, _, method, path, vars = string.find(request, "([A-Z]+) (.+)?(.+) HTTP")
        if(method == nil)then
            _, _, method, path = string.find(request, "([A-Z]+) (.+) HTTP")
        end
        local _mode, _time, t
        if (vars ~= nil)then
            _, _, _mode, _time = string.find(vars, "(%w+)=(%d+)&*")
        end
        if(_mode == "m1")then
              _, _, a = string.find(vars, "&*ZS=(%d+)")
              t=_time*1000
              print(t,a)
              print("mode1")
              tmr.stop(0)
              tmr.alarm(0,t,1,AlarmMode1)
        elseif(_mode == "m2")then
              print("mode2")
              t=_time*1000
              tmr.stop(0)
              gpio.write(led1, gpio.LOW)
              tmr.delay(1000000)
              gpio.write(led2, gpio.LOW)
              tmr.alarm(0,t,0, function()
              gpio.write(led1, gpio.HIGH)
              gpio.write(led2, gpio.HIGH)
              end
              )
        elseif(_mode == "stop")then
              print("stop")
              tmr.stop(0)
              gpio.write(1, gpio.HIGH)
              gpio.write(2, gpio.HIGH)
        end
        buf = buf.."<h1> Hello, NodeMcu.</h1>"
        buf = buf.."延时<form><input type=\"text\" name=\"m1\" value=\"1\" pattern=\"[0-9]{2,4}\">秒 <input type=\"text\" name=\"ZS\" value=\"\" pattern=\"[0-9]{1,4}\">张 <input type=\"submit\" value=\"延时\" ></form>"
        buf = buf.."<form><input type=\"text\" name=\"m2\" value=\"2\" pattern=\"[0-9]{1,4}\">秒 <input type=\"submit\" value=\"B门\" ></form>"
        buf = buf.."<form><dir style=\"display: none;\"><input name=\"stop\" value=\"1\"></dir><input type=\"submit\" value=\"停止\" ></form>"
        client:send(buf)
    end)
    conn:on("sent", function (c) c:close() end)
end)
function AlarmMode1()
    gpio.write(led1, gpio.LOW)
    tmr.delay(1000000)
    gpio.write(led2, gpio.LOW)
    tmr.delay(1000)
    gpio.write(led1, gpio.HIGH)
    gpio.write(led2, gpio.HIGH)
    a=a-1
    print(a)
    if(a==0)then
                    tmr.stop(0)
                end
end

模块上面就只需要,刷nodemcu 然后将上面的代码保持为init.lua文件 烧录到模块中去就行了(注意骚绿位置)

然后外部电路很简单 我就口述一下就行了。。

两个光耦串联,输入端(接模块一端)中间通过电阻接正极 两边分别接led1和led2对应的引脚 然后光耦另一边 同样窜连 中间接快门线的地线 两边分别接对焦线与快门释放线(对应关系请自己测试,就两根线不对就换一下)
就这样,我还没动手做外部电路。。不过应该没问题吧!光耦不行大不了换三极管或者续电器来触发快门线。
[ 此帖被handsome在2018-03-31 21:46重新编辑 ]
本文内容包含图片或附件,获取更多资讯,请 登录 后查看;或者 注册 成为会员获得更多权限
离线sharkzyn

发帖
123
M币
22
专家
2
粉丝
14
只看该作者 1楼 发表于: 2018-03-14
请登录后查看
离线amo73

发帖
882
M币
1363
专家
9
粉丝
34
只看该作者 2楼 发表于: 2018-03-14
请登录后查看
离线handsome

发帖
2524
M币
0
专家
3
粉丝
51
只看该作者 3楼 发表于: 2018-03-14
回 sharkzyn 的帖子
请登录后查看
离线捱多年

发帖
139
M币
148
专家
0
粉丝
2
只看该作者 4楼 发表于: 2018-03-14
请登录后查看
离线捱多年

发帖
139
M币
148
专家
0
粉丝
2
只看该作者 5楼 发表于: 2018-03-14
请登录后查看
离线devcang

发帖
18104
M币
9149
专家
20
粉丝
97
只看该作者 6楼 发表于: 2018-03-15
请登录后查看
离线maidoo

发帖
621
M币
6805
专家
19
粉丝
84
只看该作者 7楼 发表于: 2018-03-15
请登录后查看
离线一灯
发帖
788
M币
45
专家
3
粉丝
13
只看该作者 8楼 发表于: 2018-03-16
请登录后查看
离线kindzhon

发帖
165
M币
3382
专家
9
粉丝
19259
只看该作者 9楼 发表于: 2018-03-16
请登录后查看
快速回复
限80 字节
温馨提示:所有技术区严禁灌水,“沙发”“顶”字样;禁止广告贴;以免被删除
 
上一个 下一个