DIY:便宜地制作非常广角的网络摄像头

After I made my Webcam Cart and blogged about it a package I'd forgotten about arrived. It was a cheap "Zeikos ZE-WA37S 37mm 0.45X Wide Angle Lens." Only $10. I've looked all over for wide-angle webcams and they just don't exist. Over the counter webcams have a very narrow field of view.

制作好我的网络摄像头购物车并将其发布到博客后,我忘记了一个包裹。 那是便宜的“ Zeikos ZE-WA37S 37mm 0.45X广角镜头” 。 才$ 10。 我到处都在寻找广角摄像头,但它们根本不存在。 在柜台上,网络摄像头的视野非常狭窄。

I started with my favorite webcam, an amazing value, the Lifecam Cinema HD. I've got 4 of these. Now, the wide angle lens has a large opening, about an inch and a half, while the Lifecam is maybe an inch in diameter. I needed something to build up the diameter in such a way that it'd hold the wide angle lens in position while avoiding ruining the camera itself.

我从我最喜欢的网络摄像头开始,这是一个惊人的价值,即Lifecam Cinema HD 。 我有四个。 现在,广角镜有一个大开口,大约一英寸半,而Lifecam的直径可能是一英寸。 我需要一些东西来增加直径,以便将广角镜固定在适当的位置,同时避免损坏相机本身。

How? Electrical tape. Lots of it. I wrapped it around and around until it could offer enough outward tension to keep the lens on tightly.

怎么样? 电工胶带。 很多。 我将它缠起来直到它可以提供足够的向外拉力以保持镜头紧紧。

Here's a still shot taken with the Lifecam Cinema HD with the lens it came with.

这是Lifecam Cinema HD附带的镜头的静态照片。

Here's a still shot taken with the same Lifecam Cinema HD with the cheap Zeikos Wide-Angle lens attached. Note the blurriness in the periphery and the slight fish-eye warping in the shelves.

这是与配备廉价Zeikos广角镜的相同Lifecam Cinema HD一起拍摄的照片。 请注意外围模糊不清,架子上略有鱼眼翘曲。

The Lifecam is ideal for this kind of hack because it has a built in AutoFocus that REALLY works hard to keep things focused. I'll be using this for meetings and "getting a sense of the room" since I can't afford a $3000 "Roundtable" camera. I haven't measured it, but I fell I'm getting at least 100 degrees or more of field of view (my gut) so I think it's a good tradeoff of visual acuity for seeing a LOT more of the room for only $10.

Lifecam是此类黑客的理想之选,因为它具有内置的AutoFocus,可真正有效地使事情集中。 我将用它来开会和“感觉房间”,因为我买不起3000美元的“圆桌”相机。 我没有测量它,但是我跌倒了,我至少获得了100度以上的视野(我的直觉),所以我认为以10美元的价格看到更多的房间是对视敏度的一个很好的权衡。

Thoughts?

有什么想法吗?

翻译自: https://www.hanselman.com/blog/diy-making-a-very-wide-angle-webcam-on-the-cheap

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果您看到本PDF,请发邮件给 21504965@qq.com,让我知道我的付出没有白费。谢谢! 自制GPS群:19504537 (电台(短波)+GPS(GPRS选配)+陀螺仪(MEMS)) 本项目征集 志愿者: 1、工程师:硬件/软件/模具(外壳) 2、VC:疑似头脑简单型。本项目暂时看不到盈利的希望。 3、测试者。喜欢户外的同学,测试产品,写测试报告,提供产品的建议和意见。 缘起:当户外邂逅工程师 现实中,难于让人理解自己,于是开始了户外活动。 一番辗转,来到了磨房。 由于方向感差,借助GPS。 但是对于手持GPS不满意: 1、便宜的有二手Lowrance。只有英文版的,由于是二手的,不知道那一天就挂了。 2、麦哲伦和高明的都是2000¥起价的。 3、车载GPS基本上都不支持轨迹导航(KML格式或者可以转换为KML格式),不支持等高线。 4、派特风只是一个玩具,价格还比较高。(不支持等高线) 于是决定自己做一个。 搜索到了: http://bbs.21ic.com/icview-119539-1-1.html 本人DIY的手持GPS~~~~ 它的GPS支持轨迹导航,做出了一个雏形。不想从头开始,就想找楼主要源代码。 看楼主 sun68 的个人资料: 自我介绍: 淘宝: http://shop59878916.taobao.com/ 个人网站: http://OurSTM.5d6d.com 进入了它的群:奋斗STM32讨论QQ群: 42465044(2009-12-20) 找到了群猪的QQ:9191274 和他商定,买他的开发板,给源代码。于是就有了压缩包中的 9191274-DIYGPSsun68.7z。 他说他本来想移植到 ARM 的,由于工作忙(业余去做ARM开发板了。) 于是说,我会在将来移植到 ARM 的。 由于板子以Si Labs的C8051F120为MCU,以 ST7565P12864-28(128X64点)为显示元件,于是上 TAOBAO 找C8051F120的开发板,找支持汉字库的12864点阵屏幕。以理解本程序。 开发板最后找到了 新华龙电子有限公司:http://www.xhl.com.cn/ 130¥ 卓越上面找到: 无线电电子电路制作(图解趣味电子制作) 作者:(日本)大久保忠 http://www.amazon.cn/ 扫描仪用的是新买的 清华紫光Uniscan A686。330¥ PHOTOSHOP 用的是 简体中文 v5.0.2 版本。 选用 初级模式 中的 文字识别 模式。 本模式扫描一页大概要 30秒钟,可以知道我付出的劳动。 存储为 BMP 图片格式(600M),由于体积太大,为了防止以后要识别它,就用 汉王PDF OCR 8.1.0.3 来识别为TXT文件。TXT文件没有经过校对。 最后,使用 FreePic2Pdf.exe V1.26 来生成 PDF 了。 GPS的打算: 10米电台:比 U段/V段(0.7米/2米)的波长要长,理论上在户外传播的远。 具体参考: http://www.gogojm.com/bbs/viewthread.php?tid=26980 小型背负式短波电台随想 带数据传输功能,用来在队友之间(留守人员)传输坐标。 电台的合作伙伴:BG3EE。 带 MEMS陀螺仪的GPS:采用高灵敏度的GPS模块。由于在山谷的时候没有GPS信号,或者GPS信号漂移大,准备使用 深迪的 MEMS陀螺仪来校正:MEMS惯性测量单元(六轴) - S4400 http://www.senodia.com/cn/index.php?option=com_content&view=article&id=8&Itemid=9 地图:支持 MP 格式的等高线地图。 显示部分打算采用 ILI9320 控制的 320×240 的 TFT屏幕(手机屏幕),3英寸左右。 MCU第一版采用 STC 的8051系列,第二版采用ST的ARM:STM32F103VET6TR。 同时关注 Energy Micro 的 EFM 32 Gecko 系列的ARM。
自制带摄像头的无线小车设计设计说明 利用网络摄像头的报警输出端口的继电器开开合合形成一个二进制的编码,然后用一个Arduino来进行译码,扩展了网络摄像头的I/O口1、网络摄像头 2、Arduino控制板 3、电机驱动扩展板 4、Arduino稳压板(为了保证网络摄像头稳定的电源) 5、10k电阻(端口上拉)及面包线 6、小车底盘、( 2WD / 4WD)(含直流电机、电源) L298P电机驱动扩展板 稳压扩展板 网络摄像头我是在网上为了保证摄像头使用电压的稳定,我没有使用Arduino板上的5V电压,而是单独用了一个稳压扩展板。该扩展板在小车调试前期可不用,直接用稳压器给网络摄像头提供电源。小车底盘( 2WD /4WD)是路虎5履带底盘。最后找了一个直插的10k电阻,再准备一些面包线,这样所有的材料都准备好了。 稳压扩展板的使用很简单,我们先来简单介绍一下。如下图的标识,将电池接到扩展板的输入端子,输入端子旁边的两个跳线帽要跳到PWRIN位置;然后调节输出电压微调电位器,用万用表测量电源输出端电压使其稳定在5V;最后将网路摄像头电源接口与扩展板电源输出端连在一起。 电机驱动板的使用大家可能都比较熟悉了,本人这里再简单提两句。先要选择控制方式,这个制作中使用的是PWM方式;再者就是连接直流电机,如下图所示的连接端子。M1+和M1—连接一个直流电机,M2+和M2—连接另一个直流电机,电机驱动板占用Arduino的4、5、6、7脚。 最后我们重点来说一下Arduino控制板与网络摄像头的连接。在网上的那篇文章中作者用摄像头公司提供的插件做了一个运行在PC端的软件,以此来控制继电器产生宽窄不一的脉冲。这里我没有采用这种方式,PC软件的制作也不是谁都能完成的。本人采用的方式是直接用Arduino捕获网络摄像头内控制步进电机的信号,拆掉了网络摄像头中左右转的步进电机,用摄像头本身左右旋转的信号来控制小车的左右转,而用继电器的吸合来控制小车的前进与停止 开始拆摄像头! 导线引出后,我们合上网络摄像头的底盖,来看看它背面的接口。如下图所示,在摄像头后面最中间的是天线接口,天线右侧的4个I/O口就是报警输出端口,4个I/O用1、2、3、4标识,其中1、2是报警输出端口,分别接到了继电器两端,3为报警输入端口(此端口未用),4为摄像头内容电路的数字地。 这3个I/O(不包括3号I/O)加上之前的A+和B+总共5条线,与Arduino的连接关系如下图所示。连接网络摄像头内报警继电器一端的2脚连到Arduino的GND,而连接继电器另一端的1脚连到Arduino的9脚,同时在9脚加上10k的上拉电阻,这样当继电器未吸合时,9脚因为上拉电阻,所以状态为高;而当继电器吸合时,9脚接GND,所以状态为低。网络摄像头报警接口的4脚也要连接到Arduino的GND,以使网络摄像头控制板与Arduino共地。A+与B+分别连接到Arduino的2、3脚,这两个脚如果连反了可以在程序中调整。 步进电机的控制方式是不断的化A、B两相上的电压大小和电流方向,这样在A+和B+上就会产生一串脉冲。使用示波器观察我们发现,当发送左转的命令时,首先在A+上产生脉冲,而当发送右转的命令时,首先在B+上产生脉冲,效果如下图所示。 我们就利用A+、B+上的信号差异,以及继电器的吸合来实现对小车的控制。Arduino端用到了外部中断功能,2脚对应Arduino外部中断0,3脚对应Arduino外部中断1。代码如附件所示。 可以在代码中添加一些Serial.println()的语句来查看一下程序在我们控制网络摄像头时能够做出正确的相应。代码调试完成后,如图下图所示,将Arduino控制板、电机驱动扩展板、稳压扩展板层叠的插在一起固定在小车的后面,前方安装好网络摄像头。 完成后的wifi小车上电工作正常后,如图下图所示。wifi小车的控制与网络摄像头的控制方式类似,打开电脑端的浏览器,在地址栏中输入网络摄像头的IP地址(不确定IP地址的话可以使用产品中附带的IP网络摄像头搜索软件搜一下)进入监控界面,就使用界面右侧的按钮来控制这部简易的wifi小车。另外该摄像头还有一个厂家分配的唯一域名,只要在我们的路由器端简单配置就能够实现广域网条件下的小车控制了。
广角摄像头标定是指通过对摄像头进行一系列的校准操作,以获取摄像头的内部参数和外部参数,从而实现对图像的几何校正和测量。下面是一份简单的广角摄像头标定代码的介绍: 1. 导入所需库: 在开始编写代码之前,需要导入相应的库,如OpenCV和NumPy。 2. 准备标定板图像: 标定板是一个已知尺寸的棋盘格图案,用于标定摄像头。需要准备一系列不同角度和位置的标定板图像。 3. 检测角点: 使用OpenCV的函数`findChessboardCorners()`来检测标定板图像中的角点。该函数会返回检测到的角点坐标。 4. 标定摄像头: 使用OpenCV的函数`calibrateCamera()`来进行摄像头的标定。该函数会使用检测到的角点坐标和标定板的实际尺寸,计算出摄像头的内部参数矩阵和畸系数。 5. 保存标定结果: 将标定得到的内部参数矩阵和畸系数保存到文件中,以便后续使用。 下面是一份示例代码: ```python import cv2 import numpy as np # 准备标定板图像 image_files = ['image1.jpg', 'image2.jpg', 'image3.jpg'] board_size = (9, 6) # 棋盘格内角点数目 # 创建储存角点的数组 obj_points = [] # 世界坐标系中的三维点 img_points = [] # 图像平面中的二维点 # 生成标定板的世界坐标系中的三维点 objp = np.zeros((board_size[0] * board_size[1], 3), np.float32) objp[:, :2] = np.mgrid[0:board_size[0], 0:board_size[1]].T.reshape(-1, 2) for file in image_files: # 读取图像 img = cv2.imread(file) gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 检测角点 ret, corners = cv2.findChessboardCorners(gray, board_size, None) if ret: obj_points.append(objp) img_points.append(corners) # 标定摄像头 ret, mtx, dist, rvecs, tvecs = cv2.calibrateCamera(obj_points, img_points, gray.shape[::-1], None, None) # 保存标定结果 np.savez('calibration.npz', mtx=mtx, dist=dist) print("标定完成!") ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值