他给女朋友做了个树莓派复古相机,算法代码可自己编写,成本不到700元

他给女朋友做了个树莓派复古相机,算法代码可自己编写,成本不到700元

简说Python

 来源:量子位萧箫 发自 凹非寺 

阅读文本大概需要 5 分钟

本文经AI新媒体量子位(ID:QbitAI)授权转载,转载请联系出处
萧箫 发自 凹非寺

手机拍照不够爽,带个单反又太重?

试试做个树莓派复古相机,还能自己编写处理算法的那种——

成本不到700元。

www.zeeklog.com - 他给女朋友做了个树莓派复古相机,算法代码可自己编写,成本不到700元

没错,颜值很高,拍出来的照片也能打:

www.zeeklog.com - 他给女朋友做了个树莓派复古相机,算法代码可自己编写,成本不到700元

你也可以快速上手做一个。

如何制作一个树莓派复古相机

目前,这部相机的代码、硬件清单、STL文件(用于3D打印)和电路图都已经开源

首先是硬件部分。

www.zeeklog.com - 他给女朋友做了个树莓派复古相机,算法代码可自己编写,成本不到700元

这部复古相机的硬件清单如下:

www.zeeklog.com - 他给女朋友做了个树莓派复古相机,算法代码可自己编写,成本不到700元
树莓派Zero W(搭配microSD卡)、树莓派高清镜头模组、16mm 1000万像素长焦镜头、2.2英寸TFT显示屏、TP4056微型USB电池充电器、MT3608、2000mAh锂电池、电源开关、快门键、杜邦线、3D打印相机外壳、黑色皮革贴片(选用)

至于3D打印的相机外壳,作者已经开源了所需的STL文件,可以直接上手打印。

材料齐全后,就可以迅速上手制作了~

内部的电路图,是这个样子的:

www.zeeklog.com - 他给女朋友做了个树莓派复古相机,算法代码可自己编写,成本不到700元

具体引脚如下:

www.zeeklog.com - 他给女朋友做了个树莓派复古相机,算法代码可自己编写,成本不到700元

搭建好后,整体电路长这样:

www.zeeklog.com - 他给女朋友做了个树莓派复古相机,算法代码可自己编写,成本不到700元

再加上3D外壳(喷了银色的漆)和镜头,一部简易的树莓派复古相机就做好了。

www.zeeklog.com - 他给女朋友做了个树莓派复古相机,算法代码可自己编写,成本不到700元

至于软件部分,也非常简单。

第一步,在microSD卡里烧录树莓派操作系统后,将下面的代码添加到配置文件中。

//将以下代码添加到config.txt gpu_mem=256 dtoverlay=rpi-display display_rotate=2 

第二步,在树莓派相机启动后,执行如下脚本:

from gpiozero import Button from picamera import PiCamera import time button = Button(26) with PiCamera() as camera: camera.resolution = (4056, 3040) camera.framerate = 5 frame = int(time.time()) camera.start_preview() while True: button.wait_for_press() camera.capture('/home/pi/Pictures/%03d.jpg' % frame) frame += 1 

这部分就搞定了。

当然,也可以进一步改造代码,加入你想要的其他模块,包括自定制图像处理算法、WiFi图片自动传输等。

那么,这样的复古相机有什么用呢?

“树莓派,万物皆可造”

作者给出的理由很简单:他一直没等到同款相机。

去年,树莓派官方新出了一个Pi HQ Camera镜头模组,他对此很心动。

www.zeeklog.com - 他给女朋友做了个树莓派复古相机,算法代码可自己编写,成本不到700元

然而一晃大半年过去,根本没人用它DIY相机,他只能自己上手。

复古相机一出来,意外地挺受欢迎。

一名网友表示,有点心动。这只相机,恰好解决了他用手机拍不出好照片、又不想随身携带微单/单反的问题。

但他也提出了几个问题:

其一,树莓派启动时间太长,以至于可能错过想拍的东西;其二,2000mAh的电池电量,是否不耐用?

不过,立刻就有网友点出:这是台可编程相机!

这意味着,可以通过buildroot(一个构建嵌入式Linux系统的框架)来实现更迅速的启动。

www.zeeklog.com - 他给女朋友做了个树莓派复古相机,算法代码可自己编写,成本不到700元

至于电池容量,也可以随时换上更大的。

除了拍照以外,各路网友还脑洞大开,想到可以用树莓派相机做个“作业自动扫描仪”。

要是用相机随便拍一张,树莓派再搭载个AI模型,就能自动实现调整纸张亮度、去暗影等功能,岂不是方便极了。

www.zeeklog.com - 他给女朋友做了个树莓派复古相机,算法代码可自己编写,成本不到700元

此外,这部树莓派复古相机,还炸出了玩天文摄影的手工硬核网友。

这名网友po出了他用树莓派、恒星敏感器和光学器件做成的天文相机:

www.zeeklog.com - 他给女朋友做了个树莓派复古相机,算法代码可自己编写,成本不到700元

虽然器件外观朴实无华,但拍出来的效果意外地挺好:

www.zeeklog.com - 他给女朋友做了个树莓派复古相机,算法代码可自己编写,成本不到700元

树莓派,果然万物皆可造。

作者介绍

www.zeeklog.com - 他给女朋友做了个树莓派复古相机,算法代码可自己编写,成本不到700元

树莓派复古相机的作者Penk Chen,现居东京,自称是一名“网红工程师”,爱好DIY各种小零件。

这部名为RUHAcam的相机,是他给女朋友Ruha Cheng做的小礼物,并用了她的名字命名。

www.zeeklog.com - 他给女朋友做了个树莓派复古相机,算法代码可自己编写,成本不到700元

是不是有点心动了?赶紧上手试试吧~

RUHAcam项目地址:
https://github.com/penk/ruha.camera

参考链接:
[1]https://penk.medium.com/
[2]https://news.ycombinator.com/item?id=26859058
[3]https://terramex.neocities.org/astro/
[4]https://ruha.camera/

--END--

老表荐书

图书介绍:Python数据分析与可视化从入门到精通》本书以“零基础”为起点,系统地介绍了Python在数据处理与可视化分析方面的应用。全书共分3篇12章内容,清华大学书单推荐!学Python、练语法、取数据、画图表、可视化、绘地图、重实战……一书在手,精通Python数据分析与可视化!

 扫码即可加我微信 老表朋友圈经常有赠书/红包福利活动 
学习更多: 整理了我开始分享学习笔记到现在超过250篇优质文章,涵盖数据分析、爬虫、机器学习等方面,别再说不知道该从哪开始,实战哪里找了 

优秀的读者都知道,“点赞”传统美德不能丢

www.zeeklog.com - 他给女朋友做了个树莓派复古相机,算法代码可自己编写,成本不到700元

Read more

通过URI Scheme实现从Web网页上打开本地C++应用程序(以腾讯会议为例,附完整实现源码)

通过URI Scheme实现从Web网页上打开本地C++应用程序(以腾讯会议为例,附完整实现源码)

目录 1、需求描述 2、选择URI Scheme实现 3、何为URI Scheme? 4、将自定义的URL Scheme信息写入注册表的C++源码实现 5、如何实现最开始的3种需求 6、后续需要考虑的细节问题        之前陆续收到一些从Web页面上启动我们C++客户端软件的需求,希望我们能提供一些技术上的支持与协助,支持从Web网页上将我们的C++客户端软件启动起来。于是我大概地研究了相关的实现方法,下面把研究的过程与结果在此做一个分享,希望能给大家提供一个借鉴或参考。 C++软件异常排查从入门到精通系列教程(核心精品专栏,订阅量已达10000多个,欢迎订阅,持续更新...)https://blog.ZEEKLOG.net/chenlycly/article/details/125529931C/C++实战专栏(重点专栏,专栏文章已更新500多篇,订阅量已达8000多个,欢迎订阅,持续更新中...)https://blog.ZEEKLOG.net/

By Ne0inhk

比Datasketch好两个数量级?用 Fast Similarity Sketch 优化大规模文本去重(附 C++ 源码)

比datasketch好两个数量级? 用 Fast Similarity Sketch 优化大规模文本去重(附 C++ 源码) 项目地址:https://github.com/pzcddm/FastSketchLSH 论文背景:Fast Similarity Sketching(arXiv:1704.04370v4,FOCS’17 扩展版) 最近在优化大规模去重流水线,基于之前的知识, 我们team做了一个基于Fast Similarity Sketching 的Python 去重包fastsketchlsh, 并且我们先后对比了 datasketch、rensa 和我们自己做的 fastsketchlsh。 这篇blog就把过程里的关键问题讲透:传统 k-mins 为什么慢、FastSketch 为啥快、以及它和 LSH 搭配时为什么在工程上可用。 先说结论 * 经典 k-mins / MinHash

By Ne0inhk
智能指针:告别内存泄漏的利器----《Hello C++ Wrold!》(27)--(C/C++)

智能指针:告别内存泄漏的利器----《Hello C++ Wrold!》(27)--(C/C++)

文章目录 * 前言 * 智能指针的作用 * 智能指针的实现和原理 * 库里面的智能指针 * std::auto_ptr * auto_ptr的模拟实现 * std::unique_ptr * unique_ptr的模拟实现 * std::shared_ptr * shared_ptr的模拟实现 * shared_ptr的一个弊端 * std::weak_ptr * weak_ptr的模拟实现 * 删除定制器 * 作业部分 前言 在 C++ 编程中,动态内存管理始终是开发者面临的核心挑战之一。手动使用new分配内存、delete释放内存的模式,不仅需要开发者时刻关注内存生命周期,更可能因疏忽导致内存泄漏(忘记调用delete)、二次释放(重复调用delete),或是在异常抛出时因执行流跳转跳过delete语句等问题 —— 这些隐患轻则导致程序性能退化,重则引发崩溃或不可预期的运行错误,成为项目中难以排查的 “隐形 bug”。 为解决这一痛点,C++ 标准库引入了智能指针这一核心工具。

By Ne0inhk
今天你学C++了吗?——map

今天你学C++了吗?——map

♥♥♥~~~~~~欢迎光临知星小度博客空间~~~~~~♥♥♥ ♥♥♥零星地变得优秀~也能拼凑出星河~♥♥♥ ♥♥♥我们一起努力成为更好的自己~♥♥♥ ♥♥♥如果这一篇博客对你有帮助~别忘了点赞分享哦~♥♥♥ ♥♥♥如果有什么问题可以评论区留言或者私信我哦~♥♥♥✨✨✨✨✨✨ 个人主页✨✨✨✨✨✨ 前面我们已经学习了set容器的使用,接下来我们来看看map容器有什么奇妙之处?准备好了吗~我们发车去探索C++的奥秘啦~🚗🚗🚗🚗🚗🚗 目录 什么是map? pair 什么是pair? pair的组成 pair的构造与初始化 pair的成员函数 pair的比较 编辑 pair的用途 map的构造 map的插入 编辑 operator[ ] at multimap equal_range equal_range、lower_bound和upper_bound简单对比 1. equal_range 2. lower_bound 3. upper_bound 对比与联系 C++中map和set容器的简单对比 什么是map?

By Ne0inhk