查看: 760|回复: 6

用哈士奇做一个夜晚阅读追焦灯

[复制链接]
本帖最后由 屌丝王小明 于 2020-9-28 11:49 编辑

  有人说如今世界,一天的变化相当于过去一百年的变化,我们正处在这股洪流当中,树立终生学习的观念,在当下是十分必要的。现在是2020年了,电子书,从各个方面来看都具有优势,按道理来说理应成为了主流,应当把传统纸质书的市场份额给蚕食殆尽了。可事实上,纸质书还没消亡,虽然风光不及从前,但还没到成为历史的地步。比如我到现在依旧还在阅读纸质书,并且几乎都是阅读的纸质书籍。可能我是“顽固的旧社会余孽”,非要等到阅读载体彻底革新那天,才会弃暗投明。

  DF之前出了一款哈士奇视觉传感器,解了一些稀缺传感器的渴。以前有闻气味的传感器,有测距离的传感器,有测重量的,有测温度的,物理世界的各种参数被各种传感器将其拉到现实生活中,被人们所利用。颇有种百花齐放,人才济济的感觉。可唯独“视觉”方面的传感器这一脉,青黄不接,人才凋零,始终没有一个能扛大旗的出现。

  就在“视觉”这一脉快要没落到快要消亡的时候,DF推出了哈士奇,这条狗天赋异禀,一面世就天生异象,技惊四座,其他各脉无不对其侧目。哈士奇接过振兴师门的重任,带领“视觉”传感器一众卧薪尝胆的战士,展开了绝地反击,势如破竹,一战成名。从此,“视觉”一脉传感器强势崛起,隐隐有一统江湖的迹象,再无人敢对其指指点点,说三道四。

  哈士奇视觉传感器能干什么?它能识别人脸、识别颜色、识别标签和二维码、识别物品、识图巡线、视觉追踪物体。没有哈士奇之前,Arduino可以说是个瞎子,有了哈士奇以后,你想用arduino看点什么、认出点什么就变得十分容易了。

  这次的应用,是一个用于夜晚看书的装置,它运用哈士奇的识别颜色功能来识别出书,将识别信息告知arduino,然后arduino驱动舵机,就可以实现追着书来小范围打光了,方便于晚上的阅读。开头我说了,我是个旧社会余孽,至今还在看纸质书。并且喜欢晚上在靠在床上看书,但是有时候我还在看书,可女同学已经睡下了,所以为了不打扰到她,不能开大灯,只能用小范围的灯光,但是普通小范围灯光是固定的,这就是我想解决的问题。想做一种可以追踪书移动的小范围灯光,这也是创客可以干的、擅长干的一类工作。大市场、大需求的东西不用我们操心,甚至我们没那“手”没那“眼”能够操心,而这种趋于定制化的、能满足个人特殊需求的场景,就是我们作为创客能够发光发热的地方了,并且这种场景天生地将那些“大厂”拒之门外。


追随书的灯光.gif


  我之前想过用冷光片卡在书页后边来当背光,为阅读提供光源,可试验了下,发现效果很尴尬,背面的字儿和正面的字重叠起来,无法辨认。【之前忘拍照了,这里用手机LED照射模拟,效果类似】

2020_09_27_23_30_IMG_1958.JPG



下面是详细地制作过程
准备材料


制作思路:哈士奇的颜色识别模式下,先学习书页的颜色,完成后,切换到识别颜色的模式,哈士奇会去看,看当前画面内是否出现了书的颜色,如果书出现在了画面内,哈士奇会输出一个识别到的位置信息(其实就是一个方框,这里直接可以拿来用的信息有——这个框的中心坐标,和框的长宽),我们可以只利用方框中心的坐标,来完成这个制作。利用这个坐标离画面中心(160120)这个点的距离,来驱动舵机转动,使得灯光始终打在书页上边。


小细节
1.我试过哈士奇和UNO的通信使用串口模式,但是这样的话,舵机会来回抖转,原因还不知道,所以这里用的是IIC通信。
2.画面内的相近颜色可能挺多的,一般是很小面积的颜色块被识别成了书,所以就用了个if语句来滤除掉这些小色块的干扰,只对识别面积较大的结果进行处理。
3.灯方面,我没有用其他灯,直接使用的哈士奇背部的LED灯来模拟光源。
4.我只用了一个维度的追踪,也就是只用了一个舵机来控制哈士奇的左右转动,实际可能需要考虑用两个舵机来实现一个左右和上下的同时追踪,效果会更好一些



安装:
先把哈士奇取出,盒内有一个金属支架,将其用配有的螺丝固定上

2020_09_27_13_18_IMG_1943.JPG


将舵机安上一个舵机盘,然后将其粘在哈士奇的金属支架上

2020_09_27_13_59_IMG_1944.JPG


最后把它们粘在一个手机支架上

2020_09_27_23_25_IMG_1953.JPG


按照哈士奇的wiki资料,让它学习书本的颜色

2020_09_27_23_26_IMG_1956.JPG

连线很简单,哈士奇连在Uno扩展板的IIC接口上。舵机连在扩展板上D5

2020_09_27_14_00_IMG_1945.JPG


代码部分

QQ截图20200927233446.png

上图是驱动舵机的部分,可以看到,一开始会有一个判断(result.width+result.height>=80,这条语句是在过滤掉画面中其他颜色相近的小块。接下来就是判断,书是不是在画面居中的位置。如果识别到书的方框中心,距离画面中心超过20个像素的话,就驱动舵机转3度。因为舵机是180度舵机,所以会给它设定一个转动的极限值,到了极限值就不再转了。实现效果为,如果书往右边去,舵机就跟着往右转,书往左边去,舵机就跟着往左转。

将代码烧录到uno里边

我这里是用哈士奇自带的LED来模拟光源
2020_09_27_23_21_IMG_1950.JPG


2020_09_27_23_25_IMG_1955.JPG

完成

2.png

3.png

1.png


hashiqiservo.ino (2.38 KB, 下载次数: 15)

汤果  高级技匠

发表于 2020-9-28 12:36:58

背光灯版Kindle完美解决这个问题
回复

使用道具 举报

RRoy  初级技匠

发表于 2020-9-28 14:59:27

通读全文,发现第三段是文章的精华
回复

使用道具 举报

hnyzcj  版主

发表于 2020-9-28 19:09:24

厉害厉害,小明出手,非同凡响
回复

使用道具 举报

rzegkly  版主

发表于 2020-9-29 07:50:10

当读到DF推出了哈士奇,天生异象,技惊四座,其他各脉无不对其侧目。
不仅作品新颖,文章更吸引人,文学和创客的有机结合,漂亮
回复

使用道具 举报

春秋大仙  中级技师

发表于 2020-10-10 18:12:36

王大师出手,非同凡响
回复

使用道具 举报

 初级技师

发表于 2020-10-10 19:54:51

o(* ̄▽ ̄*)ブ又一个简易却实用的作品φ(゜▽゜*)♪
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2020 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail