7779| 8
|
用哈士奇做一个夜晚阅读追焦灯 |
本帖最后由 屌丝王小明 于 2020-9-28 11:49 编辑 有人说如今世界,一天的变化相当于过去一百年的变化,我们正处在这股洪流当中,树立终生学习的观念,在当下是十分必要的。现在是2020年了,电子书,从各个方面来看都具有优势,按道理来说理应成为了主流,应当把传统纸质书的市场份额给蚕食殆尽了。可事实上,纸质书还没消亡,虽然风光不及从前,但还没到成为历史的地步。比如我到现在依旧还在阅读纸质书,并且几乎都是阅读的纸质书籍。可能我是“顽固的旧社会余孽”,非要等到阅读载体彻底革新那天,才会弃暗投明。 DF之前出了一款哈士奇视觉传感器,解了一些稀缺传感器的渴。以前有闻气味的传感器,有测距离的传感器,有测重量的,有测温度的,物理世界的各种参数被各种传感器将其拉到现实生活中,被人们所利用。颇有种百花齐放,人才济济的感觉。可唯独“视觉”方面的传感器这一脉,青黄不接,人才凋零,始终没有一个能扛大旗的出现。 就在“视觉”这一脉快要没落到快要消亡的时候,DF推出了哈士奇,这条狗天赋异禀,一面世就天生异象,技惊四座,其他各脉无不对其侧目。哈士奇接过振兴师门的重任,带领“视觉”传感器一众卧薪尝胆的战士,展开了绝地反击,势如破竹,一战成名。从此,“视觉”一脉传感器强势崛起,隐隐有一统江湖的迹象,再无人敢对其指指点点,说三道四。 哈士奇视觉传感器能干什么?它能识别人脸、识别颜色、识别标签和二维码、识别物品、识图巡线、视觉追踪物体。没有哈士奇之前,Arduino可以说是个瞎子,有了哈士奇以后,你想用arduino看点什么、认出点什么就变得十分容易了。 这次的应用,是一个用于夜晚看书的装置,它运用哈士奇的识别颜色功能来识别出书,将识别信息告知arduino,然后arduino驱动舵机,就可以实现追着书来小范围打光了,方便于晚上的阅读。开头我说了,我是个旧社会余孽,至今还在看纸质书。并且喜欢晚上在靠在床上看书,但是有时候我还在看书,可女同学已经睡下了,所以为了不打扰到她,不能开大灯,只能用小范围的灯光,但是普通小范围灯光是固定的,这就是我想解决的问题。想做一种可以追踪书移动的小范围灯光,这也是创客可以干的、擅长干的一类工作。大市场、大需求的东西不用我们操心,甚至我们没那“手”没那“眼”能够操心,而这种趋于定制化的、能满足个人特殊需求的场景,就是我们作为创客能够发光发热的地方了,并且这种场景天生地将那些“大厂”拒之门外。 我之前想过用冷光片卡在书页后边来当背光,为阅读提供光源,可试验了下,发现效果很尴尬,背面的字儿和正面的字重叠起来,无法辨认。【之前忘拍照了,这里用手机LED照射模拟,效果类似】 下面是详细地制作过程 准备材料: 1. 哈士奇 2. 舵机 3. Uno控制器 制作思路:哈士奇的颜色识别模式下,先学习书页的颜色,完成后,切换到识别颜色的模式,哈士奇会去看,看当前画面内是否出现了书的颜色,如果书出现在了画面内,哈士奇会输出一个识别到的位置信息(其实就是一个方框,这里直接可以拿来用的信息有——这个框的中心坐标,和框的长宽),我们可以只利用方框中心的坐标,来完成这个制作。利用这个坐标离画面中心(160,120)这个点的距离,来驱动舵机转动,使得灯光始终打在书页上边。 小细节: 1.我试过哈士奇和UNO的通信使用串口模式,但是这样的话,舵机会来回抖转,原因还不知道,所以这里用的是IIC通信。 2.画面内的相近颜色可能挺多的,一般是很小面积的颜色块被识别成了书,所以就用了个if语句来滤除掉这些小色块的干扰,只对识别面积较大的结果进行处理。 3.灯方面,我没有用其他灯,直接使用的哈士奇背部的LED灯来模拟光源。 4.我只用了一个维度的追踪,也就是只用了一个舵机来控制哈士奇的左右转动,实际可能需要考虑用两个舵机来实现一个左右和上下的同时追踪,效果会更好一些 安装: 先把哈士奇取出,盒内有一个金属支架,将其用配有的螺丝固定上 将舵机安上一个舵机盘,然后将其粘在哈士奇的金属支架上 最后把它们粘在一个手机支架上 按照哈士奇的wiki资料,让它学习书本的颜色 连线很简单,哈士奇连在Uno扩展板的IIC接口上。舵机连在扩展板上D5脚 代码部分 上图是驱动舵机的部分,可以看到,一开始会有一个判断(result.width+result.height)>=80,这条语句是在过滤掉画面中其他颜色相近的小块。接下来就是判断,书是不是在画面居中的位置。如果识别到书的方框中心,距离画面中心超过20个像素的话,就驱动舵机转3度。因为舵机是180度舵机,所以会给它设定一个转动的极限值,到了极限值就不再转了。实现效果为,如果书往右边去,舵机就跟着往右转,书往左边去,舵机就跟着往左转。 将代码烧录到uno里边 我这里是用哈士奇自带的LED来模拟光源 完成 |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed