raspberry pi_如何使用Raspberry Pi构建数字针Kong相机

raspberry pi

在2015年末,Raspberry Pi Foundation通过发布小型Raspberry Pi Zero震惊了整个世界。 而且,他们在MagPi杂志的封面上免费赠送了它 。 我立即冲了出去,在几个通讯社附近拖网,直到找到该地区的最后两个副本。 我不确定我会用它们做什么,但我知道它们的体积小将使我能够进行全尺寸Pi无法满足的有趣项目。

Raspberry Pi Zero

MagPi杂志的Raspberry Pi Zero。 CC BY-SA.4.0。

由于对天文摄影的兴趣,我以前修改了Microsoft LifeCam Cinema HD网络摄像头,剥去了它的外壳,镜头和红外截止滤光片,以露出裸露的CCD芯片 。 我将其与定制外壳一起使用,代替了用于天文摄影的Celestron望远镜中的目镜。 它捕获了木星,月球陨石坑特写镜头和太阳黑子的令人难以置信的景色(带有适当的Baader安全膜保护层)。

针Kong照相机 ,方法是在机身盖上钻Kong(该盖子可在未安装镜头的情况下保护相机的内部工作),然后将其盖在从汽水罐上切下的薄盘中,并用针刺穿以提供针Kong。 偶然地,有一天,这个针Kong式机身盖坐在我的桌子上,旁边是改进的astrophotography网络摄像头。 我想知道网络摄像头是否具有足够好的低照度性能以从针Kong机身盖后面捕获图像。 使用GNOME Cheese应用程序只花了一分钟即可验证针Kong网络摄像头确实是一个可行的想法。

从这个想法的萌芽中,我有一种使用我的Raspberry Pi Zeros的方法! 人们制作的针Kong相机通常是极简主义的,除了曝光时间和胶卷的ISO等级外,没有其他控件。 相比之下,数码相机具有20个或更多的按钮,并且菜单中还包含数百种设置。 我的数码针Kong网络摄像头的目标是忠实于针Kong摄影的传统,并打造一种极简主义的设备,完全没有控制,甚至没有曝光时间。

由Raspberry Pi Zero,高清网络摄像头和空粉盒创建的数字针Kong相机是我正在开发的一系列针Kong相机中的第一个项目 。 这是我的方法。

硬件

因为我已经有了Raspberry Pi Zero,所以我需要一个网络摄像头来完成该项目。 鉴于Pi Zero在英国的零售价为4英镑,我希望该项目的其他部分的价格也一样。 在相机上花费30英镑与4英镑的电脑板搭配使用时,会感觉不平衡。 显而易见的答案是前往一个著名的互联网拍卖网站并竞标一些二手网络摄像头。 很快,我花了1英镑加上运费就买了一个普通的高清分辨率网络摄像头。 经过快速测试以确保它可以在Fedora上正常运行后,我着手剥离外壳检查电子设备的尺寸。

Hercules DualPix HD webcam

Hercules DualPix HD网络摄像头,将被去掉电路板和CCD成像传感器。 CC BY-SA 4.0。

接下来,我需要一个手提箱来容纳相机。 Raspberry Pi Zero零电路板仅为65mm x 30mm x 5mm。 网络摄像头的电路板甚至更小,尽管它在CCD芯片周围有塑料安装件,可将镜头固定在适当的位置。 我环顾四周,寻找一个可以容纳两个小电路板的容器。 我发现我妻子的粉末粉盒的宽度刚好适合Pi Zero电路板。 稍微摆弄一下,看起来好像我也可以把里面的摄像头板塞进去。

Powder compact

粉末紧凑型成为针Kong相机的理想之选。 CC BY-SA 4.0。

我着手通过移除一些细小螺丝钉以将内壳从网络摄像头上剥离下来。 网络摄像头的大小几乎无法说明内部或CCD放置位置的电路​​板大小。 我很幸运,这个摄像头很小,布局方便。 由于我正在制作针Kong相机,因此必须卸下镜头以露出裸露的CCD芯片。

塑料支架高约1厘米,太高而无法装入粉饼内部。 我可以用电路板后面的几个螺钉将其完全拆下,但我认为将其保留以阻挡来自外壳间隙的光会很有用,因此我用Craft.io刀将其修整到了4mm高。 ,然后重新附加它。 我弯曲了LED的腿以减小其高度。 最后,由于我不想捕获音频,我砍掉了安装在麦克风上方的第二个塑料管,该塑料管可以使声音漏斗。

Bare CCD chip

卸下镜头后,可以看到裸露的CCD芯片。 圆柱形项圈将镜头固定在适当的位置,并防止电源LED发出的光线破坏图像。 CC BY-SA 4.0。

网络摄像头的USB电缆很长,带有全尺寸插头,而Raspberry Pi Zero使用Micro-USB插座,因此我需要USB到Micro-USB适配器。 但是,插入适配器后,Pi不能装入粉盒中,1m的USB电缆也不能装入。 因此,我用锋利的刀切入了Micro-USB适配器,完全切断了其USB插座,剥去了塑料,露出了通往Micro-USB插头的金属轨道。 我还将网络摄像头的USB电缆剪短至约6厘米,并取下了外部捆和铝箔包裹物,露出了四根单独的电缆线。 我将它们直接焊接到Micro-USB插头的轨道上。 现在,可以将网络摄像头插入Pi Zero,并且该对仍然可以放入粉盒中。

Modified USB plugs

带有网络摄像头USB电缆线的精简Micro-USB插头直接焊接到各个接触条上。 安装后,该插头现在从Raspberry Pi Zero伸出仅约1cm。 CC BY-SA 4.0。

本来我以为这将是我的电气设计的终点,但是经过测试,我意识到我无法分辨相机是在捕获图像还是在打开电源。 我决定使用Pi的GPIO引脚来驱动指示灯LED。 当摄像头控制软件正在运行时,黄色LED点亮,而在网络摄像头捕获图像时,绿色LED点亮。 我通过300ohm限流电阻将BCM引脚17和18连接至LED的正极,然后将两个负极均连接至公共接地引脚。

LEDs

LED通过串联的300ohm电阻和公共接地连接到GPIO引脚BCM 17和BCM 18。 CC BY-SA 4.0。

接下来,是时候修改粉末压块了。 首先,我卸下了容纳粉末的内部托盘,以用铰链上的刀将其切掉,以释放外壳内部的空间。 我原本打算用便携式USB移动电源电池来运行Pi Zero,但该电池无法放入外壳内,因此我在外壳侧面开了一个用于USB电缆连接器的Kong。 LED需要在外壳外部可见,因此我使用3mm的钻头在盖子上开了两个Kong。

然后,我使用6mm的钻头在机壳底部的中心开了一个Kong,然后用薄金属片覆盖了该Kong,然后用缝纫针在其中心刺穿了一个针Kong。 我确保只刺穿针尖,因为插入整个针会使Kong太大。 我用细的湿/干砂纸打磨针Kong,然后从另一侧重新刺穿,再次仅用针尖刺穿。 针Kong相机的目的是要获得一个干净,圆形的Kong,且不产生任何变形或隆起,并且几乎不允许光线通过。 Kong越小,图像越清晰。

Bottom of the case with the pinhole aperture

外壳底部带有针Kong。 CC BY-SA 4.0。

剩下的就是组装完成的设备。 首先,我将网络摄像头电路板固定在外壳中,使用蓝色腻子将其固定在适当的位置,以便CCD直接位于针Kong上方。 使用腻子使我可以在需要清洁灰尘点时方便地重新放置CCD(并且作为保险,以防万一我将其放置在错误的位置)。 我将Raspberry Pi Zero板直接放置在摄像头板上。 为了防止两块板之间发生短路,我用几层电工胶带覆盖了Pi的背面。

Raspberry Pi Zero非常适合粉状粉盒,除了电池的USB电缆穿过外壳上的Kong伸出之外,不需要其他任何东西就可以将其固定在适当的位置。 最后,我将LED穿过先前钻的Kong,然后将它们粘在适当的位置。 我在LED的支脚上添加了更多的胶带,以防止在关闭盖子时对Pi Zero板造成短路。

Raspberry Pi Zero slotted into the case

Raspberry Pi Zero插入盒中,边缘仅有1mm的间隙。 连接到摄像头的被破坏的Micro-USB插头在电池的Micro-USB插头旁边。 CC BY-SA 4.0。

软件

当然,如果没有软件来控制它,计算机硬件将毫无用处。 Raspberry Pi Zero可以运行与全尺寸Pi相同的软件,但是由于Zero的CPU速度较慢,引导传统的Raspbian OS映像是非常耗时的过程。 耗时超过一分钟的相机是不会在现实世界中获得太多使用的相机。 此外,运行完整的Raspbian操作系统几乎对本相机没有任何帮助。 即使我禁用了启动时启动的所有冗余服务,启动仍然花费不合理的时间。 我决定只使用U-Boot引导加载程序和Linux内核作为库存软件。 自定义的书面init二进制文件从microSD卡上安装根文件系统,加载驱动网络摄像头所需的内核模块,填充/dev并运行应用程序二进制文件。

应用程序二进制文件是另一个自定义的C程序,它执行控制摄像机的核心工作。 首先,它等待内核驱动程序初始化网络摄像头,将其打开,然后通过低级v4l ioctl调用对其进行初始化。 GPIO引脚配置为通过/dev/mem戳寄存器来驱动LED。

随着初始化的进行,相机进入了循环。 每次迭代都会使用默认的曝光设置以JPEG格式从网络摄像头捕获一个帧,然后将图像直接保存到SD卡,然后Hibernate三秒钟。 该循环将一直持续到拔下电池为止。 这很好地实现了最初的目标,即创建一种与典型的模拟针Kong照相机一样简单的数码照相机。

此自定义用户空间的代码GPLv3或任何更高版本下可用。 Raspberry Pi Zero需要一个ARMv6二进制文件,因此我使用QEMU ARM仿真器从x86_64主机上构建了它,以从chroot运行带有Pignus发行版工具链的chroot编译器(用于ARMv6的Fedora 23端口/重建)。 两个二进制文件均与glibc静态链接,因此它们是独立的。 我构建了一个自定义RAMDisk,其中包含二进制文件和一些必需的内核模块,并将其复制到SD卡中,引导加载程序可以在其中找到它们。

Completed camera

成品相机完全隐藏在粉盒中。 唯一异常的提示是USB电缆从侧面出来。 CC BY-SA 4.0。

拍照

硬件和软件都完成之后,就该看看相机的功能了。 每个人都熟悉现代数码相机(无论是专业数码单反相机还是移动电话)所产生的出色图像质量。 在这里将期望重置为更现实的水平非常重要。 高清摄像头可捕获1280x1024分辨率(〜1兆像素)。 CCD很难从通过针Kong允许的少量光线中捕获图像。 网络摄像头会自动增加增益和曝光时间以进行补偿,从而产生非常嘈杂的图像。 图像的动态范围也非常狭窄,直方图被挤压可以证明,必须在后期处理中对其进行拉伸才能获得真正的黑白。

最好的效果是在白天在室外拍摄图像,因为大多数室内照明不足,无法记录任何可用的图像。 CCD的直径只有1厘米左右,距离针Kong只有几毫米,从而形成了一个相对狭窄的视野。 例如,在通过将相机握在手臂上而拍摄的自拍照中,人的头部充满了整个画面。 最后,图像处于非常柔和的焦点,这是所有针Kong相机的基本特征。

Picture of houses taken with pinhole webcam

街道的露台的房子,伦敦。 CC BY-SA 4.0。

Airport photo

范堡罗机场,原航站楼。 CC BY-SA 4.0。

最初,我只是使用相机拍摄少量的静止图像。 后来我将循环延迟从三秒减少到一秒,并使用了用于在几分钟内捕获图像序列的相机。 我使用GStreamer将图像渲染为延时视频

这是我通过此过程创建的视频:

经过一天的工作后,从银行到泰晤士河畔的班特卢(Waterloo)步行的视频。 以每分钟40帧的速度以每秒20帧的动画速度捕获1200帧。

翻译自: https://opensource.com/article/18/3/how-build-digital-pinhole-camera-raspberry-pi

raspberry pi

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值