【脑洞大赛】HUD眼镜

2019-07-168546
AI 快速预览详细 收起
该项目介绍了如何制作一款HUD眼镜,使用nRF52832作为主控,通过微型投影和半透棱镜技术将信息投射到眼前。硬件清单包括OLED显示屏、锂电池包等。最终效果是实现手机消息推送和导航信息显示。难度适中,适合有一定基础的创客爱好者。
【脑洞大赛】HUD眼镜图1
为什么是眼镜?


13世纪被发明,从当时成为贵族们的玩物到今天几乎人手至少一副,眼镜,不管是结构还是功能都没有什么大的变化.不过,随着现在的科技日新月异,VR,AR技术的出现,让我们多多少少也都嗅到了一丝"眼镜革命"马上要来了的气息.
我对于眼镜的改造欲就如同中学时期我们对待历史书上的人物画像一样,总觉得那时他们少了一副帅气的眼镜,之前我就做过一个"焊锡保镖"眼镜
【脑洞大赛】HUD眼镜图3
现在又耐不住了,眼镜作为穿戴物,挂在脸上,作用如果还只是保护眼睛,校正视力是不是有点对不起咱这张脸.当你在骑车,驾驶,腾不开手的同时又需要获取来自手机上的信息,怎么办?这时"第二屏幕"的需求产生了,
它一定具备"不影响你正在执行工作,不剥夺你的正常视线范围,简单操作或不需要用手操作即可完成重要的交互"这样一些主要特性.


"HUD"和"AR"
这两个词我想大家都不陌生,我就按我的理解简单介绍一下,HUD原本是战斗机上把仪表盘数据投射到挡风玻璃上的技术,现在民用了就成了我们常说的"抬头显示",功能说白了就是把方便你开车的一些信息投射到前挡风上.
AR技术呢,俗称虚拟现实技术,目前它最有价值开发方向就是做AR眼镜,什么是"虚拟现实"?其实中间少了两个字"虚拟辅助现实"其中一个重要的功能就是能在真实的视觉画面中对指定的目标进行虚拟标识描述并只反映在你的镜片上,也就是说你从镜片中看到的画面是真实和虚拟并存的,比如下面这个应用场景【脑洞大赛】HUD眼镜图2翻译功能,能够把看到的英语实时翻译成中文显现在眼前.过不了多久应该就能走进我们的生活了.感觉有了它走遍天下都不怕.
还有更多实用的功能推荐大家百科一下.所以讲了这么多,它除了基本类似HUD的投射功能外,还应该具备图像识别与物联网功能.
而下面我的作品充其量也只能算个HUD眼镜的半成品.因为说实话能力有限,手上的材料也有限.比赛时间也快到了,所以只能先这样了.
成像原理
人眼的焦距范围是25mm-50mm左右,我不可能把OLED直接放到自己的眼前,那样就跟把脸凑到电视前看一样,即便看的到上面的字,那也会挡住自己的视野,
所以最理想的方案就是参考谷歌眼镜的微型投影加半透棱镜的方法
【脑洞大赛】HUD眼镜图20
主要研究的部分就是这个微型投影怎么实现,就关于凸透镜焦距的选择,里面涉及到一些公式计算很复杂,告诉大家两个简单方法,要么淘一块70-100mm焦距的菲涅尔透镜,塑料的又比普通的凸透镜薄很多方便你剪裁.
要么和我一样直接拆掉一个VR盒子,取透镜.
至于近似眼的问题,我不是近视,我那副眼镜也是平光镜,所以效果不清楚,但是我想画面光通过你的眼镜校正的,最终看到的是校正后的成像,所以理论上应该没有问题.
【脑洞大赛】HUD眼镜图21
定位
什么都要小
因为屏幕的大小直接决定眼镜旁边这个"家伙"的截面积.所以这个0.66的OLED肯定不行,好在发现DF商城有更小的屏幕,而且整个模块都不大.首选!
https://www.dfrobot.com.cn/goods-1188.html【脑洞大赛】HUD眼镜图4
电源:电池也是我拆了我娃的玩具寻到的小锂电池包
主控一定要能联手机(我轻描淡写了,事实上这涉及到太多专业知识)所以我根据能力最开始罗列了三种方案:
Arduino promini+hc06

Esp32或Esp8266(能玩)

nRF52(只是听说)

查资料,对比,发现nRF52系列的功耗有绝对优势.秉承"只选对的,不选会的"原则淘了两块,面对这两块陌生的超低功耗多协议SoC蓝牙单芯片(我认为大概就是,除了有蓝牙能力自己还能跑程序).只能默默啃资料了...
点亮屏幕
所需:开发工具: j-Link (用于对nrf52832的swclk swdio端口进行烧写程序,固定引脚号)【脑洞大赛】HUD眼镜图5
                      cp2104或CP2102(Tx,Rx串口下载,TX,RX,引脚号会因为协议栈的不同可能会变)如果有JLINK 这个基本可以不用【脑洞大赛】HUD眼镜图6
         板子:nRF52832+Breakout板(方便你用杜邦线实验)【脑洞大赛】HUD眼镜图8【脑洞大赛】HUD眼镜图7
         0.5英寸SPI接口(默认)OLED模块【脑洞大赛】HUD眼镜图34


         接线方式:【脑洞大赛】HUD眼镜图9           jlink可以给它俩供电
         

这里主要下载软件就是nrfconnect安装过程中也会安装一些支持包驱动什么的默认就好,打开软件,你会发现它其实是一个宿主软件,在里面可以直接下载所需要的小程序.
这里我们仅需要下载programmer程序【脑洞大赛】HUD眼镜图14打开programmer,界面介绍:

从图中我们可以看到一个完整的程序一般由引导程序+协议栈+应用程序(由下到上)三部分组成,
【脑洞大赛】HUD眼镜图10
在拖入S132_2.0.HEX后我们发现完成了下面两层,还差一层应用程序,
【脑洞大赛】HUD眼镜图11
这就要靠IDE编译了.打开ArduinoIDE选择示例程序u8g2--- page_buffer---helloworld,
【脑洞大赛】HUD眼镜图12
别慌编译,要改改代码,里面有很多//U8g2_屏幕种类,我们的屏幕//U8g2_LD7032有两个,第一个SPI第二个i2C,I2C要改电路,直接用默认的SPI方式就好,也就是取消注释第一个//LD7032,然后把引脚改成你实际的连线就行了.
需要说明的是OLED可以选择连NRF52832硬件SPI(HW)或软件SPI(SW),如果选软的,在选择引脚上就自由一些.这里选SW.
嫌麻烦直接Copy "U8G2_LD7032_60X32_1_4W_SW_SPI u8g2(U8G2_R0, /* clock=*/ 17, /* data=*/ 18, /* cs=*/ 28, /* dc=*/ 30, /* reset=*/ 14);"引号中的内容插入到里面就好.
【脑洞大赛】HUD眼镜图13
接下来不是点下载,我们是需要这个程序编译后的hex文件,所以先另存为到一个位置,然后在点Arduino的项目--导出已编译的二进制文件.这时候我们需要的应用层就做好了,接下来回到nrfconnect界面添加刚刚保存程序路径下刚编译好的hex文件,这个软件很好理解,左边框框里是现有固件,右边框框其实就像个沙盘,布置好了点右下角的erase&write过不了多久就烧写好了,这时OLED就显示出内容了,这个部分,仅仅只是为了调试OLED,大家不妨多试一下U8G2的其他例程.


制作
LD7032 0.5inchOLED
Nrf52832(重新买了个更小的)
1A充电板
AMS1117(降压3.3v输出)
锂电池包
小开关.按钮各一
4PIN杜邦母座(引出SWD编程接口,方便以后改程序)
废旧cd碟片一张(反射镜面和半透镜材料,其中反射镜面如果有反射率更好的,比如拆掉你女友的化妆盒或粉盒什么的...如果胆子小就算了)
菲涅尔透镜70-100mm焦距(或VR盒子拆下的透镜)
接线方式:
oled和Nrf52832接线上文有,仅加了一个按钮(po.20)
电源方案:
【脑洞大赛】HUD眼镜图15
总体如下:
【脑洞大赛】HUD眼镜图19
【脑洞大赛】HUD眼镜图24
外壳部分:
【脑洞大赛】HUD眼镜图16
【脑洞大赛】HUD眼镜图17
【脑洞大赛】HUD眼镜图18
功能的实现
目前还在研究,这里我用了一个开源项目micooke/arduino-nRF5-smartwatches目前暂时只能够实现传感器的数据读取,和时间显示.

步骤:1,ArduinoIDE添加第三方硬件[backcolor=rgba(27, 31, 35, 0.05)]https://micooke.github.io/package_nRF5_smartwatches_index.json
        2,开发板管理器打开,刷新后,搜索nrf5 smartwatchs下载安装
        3,安装好后,在IDE上这样设置
[backcolor=rgba(27, 31, 35, 0.05)]     【脑洞大赛】HUD眼镜图22
4选择示例程序并在第二栏LD107_OLED.h下注释原来的引脚设置添加U8G2_LD7032_60X32_1_4W_SW_SPI u8g2(U8G2_R0, /* clock=*/ 17, /* data=*/ 18, /* cs=*/ 28, /* dc=*/ 30, /* reset=*/ 14);
【脑洞大赛】HUD眼镜图23
另存为项目,然后导出编译后的hex文件.
接下来就和前面调试屏幕时的步骤,打开NRFconnect选择softdevice+刚刚编译好的hex,烧写.
【脑洞大赛】HUD眼镜图25
【脑洞大赛】HUD眼镜图26
【脑洞大赛】HUD眼镜图27【脑洞大赛】HUD眼镜图30【脑洞大赛】HUD眼镜图29
【脑洞大赛】HUD眼镜图28
后记
这个项目没完,因为软件方面远远没有达到我的预期:
1能够有APP的支持,能够推送手机上的消息,
2能够和手机上的导航对接显示简要的导航信息.
我不是工程师,很多东西缺乏技术与经验,采用这款我完全陌生的nrf52832作为主控,主要是保证续航能力,并且它支持蓝牙5.0,我预留了SWD接口也是为了未来能够有一些突破.
同时也希望有兴趣的朋友能够帮助我一起完善它.


下载:
固件:【脑洞大赛】HUD眼镜图30 softdeviced

【脑洞大赛】HUD眼镜图30 编译好的程序
下载好后改名去掉.ino后缀名

3D文件:
下载附件3d.rar








shutterstock_598826705-e1490043964326_副本.jpg (33.13 KB, 下载次数: 5195)

HUD眼镜 · 创客DIY项目_image_3.webp

shutterstock_598826705-e1490043964326_副本.jpg (14.85 KB, 下载次数: 5350)

HUD眼镜 · 创客DIY项目_image_6.webp

timg.jpg (62.13 KB, 下载次数: 5297)

HUD眼镜 · 创客DIY项目_image_9.webp

201908190009149707.png (218.54 KB, 下载次数: 5462)

HUD眼镜 · 创客DIY项目_image_12.webp

201908190009145915.png (218.54 KB, 下载次数: 5328)

HUD眼镜 · 创客DIY项目_image_15.webp

捕获.PNG (43.9 KB, 下载次数: 5308)

HUD眼镜 · 创客DIY项目_image_18.webp

拖进来了.PNG (212.54 KB, 下载次数: 5383)

HUD眼镜 · 创客DIY项目_image_21.webp

拖.PNG (235.57 KB, 下载次数: 5552)

HUD眼镜 · 创客DIY项目_image_24.webp

选择softdevice.PNG (253 KB, 下载次数: 5391)

HUD眼镜 · 创客DIY项目_image_27.webp

IMG_20190818_125542.jpg (46.72 KB, 下载次数: 5254)

HUD眼镜 · 创客DIY项目_image_30.webp

3d.rar

38.87 KB, 下载次数: 7075

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(5)
insky
insky
厉害厉害厉害厉害厉害
940904475
940904475
大佬我按照你的思路做出来了
壳子是用的你的3d模型
自己画了几版pcb,用的msp430g2553
现在实现的是手机蓝牙串口发什么屏幕显示什么
最近也在考虑手机app的支持
创客马老师
创客马老师
作者
回复940904475
项目进度又前进了一步,我换了芯片,用ESP32,实现了APP和中文字体消息的显示。过段时间发出来
940904475
940904475
请问这个焦距是怎么选的呢?
还有那个反射镜是不是并不是必要的?只是为了让光线拐个弯?
创客马老师
创客马老师
作者
回复940904475
兄台有新投射想法吗?可以发表一下吗?
创客马老师
创客马老师
作者
我刚才特地拿给我一个近视加散光的朋友试了一下,他一脸惊奇的问我在哪买的?
所以我想应该问题不大.
pATAq
pATAq
之前在群里好像有人讲过这种,屏幕特别小,觉得很神奇,但是估计我这种散光的用不了
期待楼主早日做出成品
- 没有更多了 -