模吧

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

13607查看 | 57回复

[GUC 1元 DIY ]让MINIMOSD多个功能——摄像头切换

  [复制链接]
发表于 2017-11-14 19:36:48 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本帖最后由 Guc 于 2017-11-14 19:45 编辑

    大家好,我是Guc。前段时间我发了两个关于MINIMOSD的帖子,一个是使用arduino板给minimosd刷bootloader,另一个是MINIIMOSD二次开发,实现界面定制【转】,其实是为接下来的帖子做铺垫的。今天我给大家带来的是[让MINIMOSD多个功能]系列DIY的第一贴——摄像头切换功能。摄像头切换功能是用于切换多个摄像头的视频信号,可以为飞行提供更多的视角。
    我们先来看看需要写什么材料:
一块minimosd板;
一个cd4066芯片;
一些导线;
一些排针;
[GUC 1元 DIY ]让MINIMOSD多个功能——摄像头切换 接收机,DIY,固件 作者:Guc 2124
只需要这么多,cd4066芯片才几毛钱,花1元多一个功能很值,大家说呢?
先让大家看看我做好的实验板:
[GUC 1元 DIY ]让MINIMOSD多个功能——摄像头切换 接收机,DIY,固件 作者:Guc 177
[GUC 1元 DIY ]让MINIMOSD多个功能——摄像头切换 接收机,DIY,固件 作者:Guc 8289
    很丑吧,因为需要测试我就做成了两层,而且我把很多空闲的引脚都接出线了,为了方便其他功能的添加,看起起来有点乱,大家做的时候可以通过引脚进行飞线,使用更小贴片的4066芯片,然后直接用热熔胶固定在OSD板背后,体积就小很多了。
    接下来看看效果:
    视频信号切换功能靠的是4066这个芯片,它的使用方法也很简单,通过给控制引脚加高电平,视频引脚就导通,输入输出可以互换,它最多能够切换4路的视频信号,我这次只用了2路,下图是它的引脚图:
[GUC 1元 DIY ]让MINIMOSD多个功能——摄像头切换 接收机,DIY,固件 作者:Guc 7391
    再看下MINIMOSD上的328p芯片的引脚图:
[GUC 1元 DIY ]让MINIMOSD多个功能——摄像头切换 接收机,DIY,固件 作者:Guc 1219
    MINIMOSD使用的引脚不多,主要使用的是SPI接口引脚,其他都是可以利用的。这次我用到的是模拟引脚A2,数字引脚3和4。
    我们看看添加的代码:
先是定义引脚:
const int moshi=A2;
const int shiping1=3;
const int shiping2=4;
进行循环的部分
{
  int duoliang= pulseIn(moshi,1);
if(duoliang>1600){
    digitalWrite(shiping1, HIGH);
    digitalWrite(shiping2, LOW);  
}
else{
digitalWrite(shiping2, HIGH);
    digitalWrite(shiping1, LOW);
}
代码是不是超级简单?
    pulseIn可以检测最长达2秒的脉冲时间,所以如果使用了这个固件必须接上接收机,不连接会使osd数据更新变慢。
    最重要的接线图来了:
[GUC 1元 DIY ]让MINIMOSD多个功能——摄像头切换 接收机,DIY,固件 作者:Guc 6957
    接线中接收机的接线需要再连接一根共地线,其他接线安排好就可以固定在板子背后就可以了,要注意的是328p引脚飞线的焊接,引脚比较小,要小心着焊,焊好后可以像我一样给它上点热熔胶。
    关于固件的刷入方法请看帖子:【GUC CIY】超声波辅助飞行模块这个帖子中有详细说明,和arduino mini pro的写入方法一样。当然也可以使用OSD工具进行刷入,不过经常出现掉bootloader的问题,不过也没事还有这个帖子:使用arduino板给minimosd刷bootloader可以解决。
    更重要的固件在这里: [GUC 1元 DIY ]让MINIMOSD多个功能——摄像头切换 接收机,DIY,固件 作者:Guc 6471 minimosd视频切换固件.zip (63 KB, 下载次数: 7, 售价: 2 牛币)
    如果大家有去DIY,希望能在帖子下把你的作品分享给大家看看,谢谢阅贴!
发表于 2017-11-14 20:22:28 | 显示全部楼层
6666大神啊
发表于 2017-11-14 20:24:38 | 显示全部楼层
技术贴看了是必须要回的
发表于 2017-11-14 21:18:25 | 显示全部楼层
羡慕技术大神,值得学习
发表于 2017-11-14 21:18:54 | 显示全部楼层
這個厲害了,動手能力強
发表于 2017-11-14 21:35:19 | 显示全部楼层
厉害啊,技术大神
发表于 2017-11-14 22:59:58 | 显示全部楼层
楼主厉害啊,顶 顶 顶 顶 顶 顶
发表于 2017-11-14 23:11:03 | 显示全部楼层
技术贴 顶一下
发表于 2017-11-14 23:15:43 | 显示全部楼层
能不能单独做一个切换模块呢?
发表于 2017-11-14 23:29:21 | 显示全部楼层
pulsein可以设置超时时间,默认2s,可以改小一点
 楼主| 发表于 2017-11-15 07:13:42 | 显示全部楼层
ken 发表于 2017-11-14 23:29 [GUC 1元 DIY ]让MINIMOSD多个功能——摄像头切换 接收机,DIY,固件 作者:Guc 3004
pulsein可以设置超时时间,默认2s,可以改小一点

谢谢提醒[GUC 1元 DIY ]让MINIMOSD多个功能——摄像头切换 接收机,DIY,固件 作者:Guc 6244
 楼主| 发表于 2017-11-15 07:14:39 | 显示全部楼层
补充关于pulseIn()函数的用法

pulseIn()函数用来读取一个引脚的脉冲(HIGH或LOW)。
例如,如果value是HIGH,pulseIn()会等待引脚变为HIGH,开始计时,再等待引脚变为LOW并停止计时。
返回脉冲的长度,单位毫秒。
如果在指定的时间内无脉冲函数返回。计时范围从10微秒至3分钟。(1秒=1000毫秒=1000000微秒)
语法:pulseIn(pin, value) pulseIn(pin, value, timeout)
参数:pin:你要进行脉冲计时的引脚号(int)。
value:要读取的脉冲类型,HIGH或LOW(int)。
timeout (可选):指定脉冲计数的等待时间,单位为微秒,默认值是1秒(unsigned long)​​
 楼主| 发表于 2017-11-15 07:16:05 | 显示全部楼层
螺丝 发表于 2017-11-14 23:15 [GUC 1元 DIY ]让MINIMOSD多个功能——摄像头切换 接收机,DIY,固件 作者:Guc 9868
能不能单独做一个切换模块呢?

可以啊,用个arduino pro mini就可以,代码都一样。
 楼主| 发表于 2017-11-15 07:16:19 | 显示全部楼层
川师鲤鱼 发表于 2017-11-14 23:11 [GUC 1元 DIY ]让MINIMOSD多个功能——摄像头切换 接收机,DIY,固件 作者:Guc 1336
技术贴 顶一下

谢谢帮顶
发表于 2017-11-15 07:37:01 | 显示全部楼层
定点版头追[GUC 1元 DIY ]让MINIMOSD多个功能——摄像头切换 接收机,DIY,固件 作者:永远的零 7760
发表于 2017-11-15 10:13:52 | 显示全部楼层
厉害了,我的哥
发表于 2017-11-15 10:15:00 | 显示全部楼层
[GUC 1元 DIY ]让MINIMOSD多个功能——摄像头切换 接收机,DIY,固件 作者:明月清风2015 3572 [GUC 1元 DIY ]让MINIMOSD多个功能——摄像头切换 接收机,DIY,固件 作者:明月清风2015 8989 [GUC 1元 DIY ]让MINIMOSD多个功能——摄像头切换 接收机,DIY,固件 作者:明月清风2015 2385
发表于 2017-11-15 12:15:43 | 显示全部楼层
楼主厉害啊,顶 顶 顶 顶 顶 顶
发表于 2017-11-15 14:07:07 | 显示全部楼层
听说回帖可也拿分,同时也是一种美德!!
发表于 2017-11-15 19:17:04 | 显示全部楼层
好贴,顶一个,这样的话可以把芯片直接绑在OSD上
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|关于模吧|APP下载|广告报价|小黑屋|手机版|企业会员|商城入驻|联系我们|模吧 ( 冀公网安备13080502000084号 )

© 2013-2020 Moz8.com 模吧,玩出精彩!