41岁极客狂喜!7寸屏神还原《星际迷航》操作台!

宅家这些年,我培养了不少新爱好,其中一项就是家庭自动化。我深入探索了Home Assistant这个广受欢迎的开源智能家居平台,它提供了极致的定制性,能让家里的各种设备变得更加智能高效。
对我个人而言,Home Assistant就像是个得力助手,尤其在管理一些日常事务上帮了我大忙。比如,它会适时提醒我日程安排,提醒我晾衣服,设定各种计时器,还能实时监控家里的门铃摄像头和宠物摄像头。这种亲手打造智能生活的体验,不仅带来了便利,更让我的“技术宅”之魂得到了极大的满足。最近,我更是把这种“极客式”的快乐推向了一个新的高度。
Home Assistant允许用户创建个性化的仪表板,来操作家中的智能设备。社区里,许多爱好者投入了大量时间和精力去完善他们的仪表板,有些作品简直令人惊叹。我甚至发现了一个社区主题,能让我的Home Assistant界面瞬间变身为《星际迷航:下一代》中经典的LCARS电脑控制系统。对于我们这些看着《星际迷航》长大的科幻迷来说,LCARS可不仅仅是一个界面,它承载了满满的回忆。虽然从实用角度来看,LCARS的交互方式并不总是最便捷的,它的设计初衷更多是为了在剧中营造一种“井然有序”的未来感。但不得不承认,它的美学风格真是独树一帜,那种独特的视觉魅力,在我八岁时就深深吸引了我,至今仍未褪色。
皮卡德舰长(帕特里克·斯图尔特饰演)在《星际迷航:下一代》中操作LCARS界面。
我的iPhone仪表板主屏幕。
我的大部分智能家居场景都是通过自动化实现的,也就是说,设备们会根据预设条件自动运行,无需我手动干预。当然,我也广泛使用语音控制。没错,我的唤醒词就是“电脑”!虽然看《星际迷航》时偶尔会出现误触,但那种身临其境的感觉,让我觉得一切都值得。尽管如此,有些功能我还是更偏爱通过仪表板来操作。毕竟,有时候我们就是想亲手“指挥”一下。比如,查看天气信息,或者一键切换到特定的灯光场景,仪表板都能提供直观便捷的体验。
自从迷上Home Assistant以来,我一直梦想着能拥有一个完美的LCARS风格控制界面。前面提到的社区主题已经很棒了,我甚至把它用在了我手机的主仪表板上。但对于一个追求完美的“星际迷航”粉丝来说,它还是有一些小小的不足之处。
比如,界面上那些经典的L形分隔符,它们的尺寸和比例总觉得有些偏差,按钮也常常被拆分成两部分。这些细节虽然很小,但对于我这种希望把还原度做到极致的粉丝来说,它们就显得格外扎眼了。既然市面上的主题不能满足我,那我决定自己动手,打造一个专属于我的LCARS控制面板。这不仅是对技术的探索,更是对童年梦想的一种致敬。
最近,我偶然发现了LVGL(Light and Versatile Graphics Library)这个图形库。它能让你创建出比Home Assistant自带仪表板更加定制化、更复杂的图形界面。我当时就想,LVGL肯定能和Home Assistant协同工作。而将这两者连接起来的“最后一块拼图”,就是ESPHome。ESPHome是一个开源固件框架,像我这样的编程初学者,也能用相对简单的标记语言来编程支持Wi-Fi的微控制器,比如ESP32、ESP8266和RP2040。它与Home Assistant深度集成,潜力巨大。
我用ESPHome组件来做运动检测器、存在传感器、空气质量传感器,以及控制各种LED灯带。更令人兴奋的是,ESPHome还支持在特定的显示硬件上运行LVGL。新媒网跨境获悉,这种开源软硬件的结合,正为普通用户打开了前所未有的个性化智能家居定制大门。
所以,我购置了一块Waveshare的7英寸触摸显示屏,它内置了ESP32-S3微控制器。设备到手,我便立刻着手我的“星际征程”。
我花费了大量时间,在互联网上搜寻上世纪90年代《星际迷航》系列中出现过的LCARS面板截图和粉丝作品。最终,我将目标锁定在了其中一个设计上。
具体功能不是很清楚。但看起来非常酷。
接下来就是真正的建造过程了。要使用ESPHome结合LVGL来构建界面,你需要用YAML语言来定义每个图形元素的特性,比如大小、位置、颜色等等。LVGL把这些元素叫做“小部件”(widgets)。所以,我的第一步是在Adobe Illustrator中绘制出设计稿作为参考。
在Illustrator中先完成设计,最大的好处是属性面板能提供所有我需要的数值,以便在YAML中进行精确构建。
随后,我开始了一项相对繁琐但充满乐趣的任务:在Home Assistant的ESPHome编辑器中,将我的设计稿一点一滴地还原出来。幸运的是,使用ESPHome时,并不需要像LVGL底层那样掌握C语言。取而代之的是YAML,对于像我这样充满热情的业余爱好者来说,YAML的语法要宽容得多,更易于上手。
我逐个组件地定义了每个按钮的尺寸、位置、颜色、标签文字以及形状。在LVGL中,最佳实践是尽可能使用其内置的小部件,而不是简单地插入图片。虽然LVGL也支持图片功能,但ESP32微控制器资源有限,图片文件会迅速占用大量内存。因此,在这个设计中,我只在右上角使用了两个真正的图片作为仪表盘,其余所有的形状,都是通过LVGL的按钮小部件实现的。新媒网跨境了解到,这种对硬件资源的精打细算,是许多DIY项目成功的关键。
让这一切得以运作的YAML代码片段。
在构建过程中,我确实需要耍一些“小聪明”来处理那些不规则的形状。要知道,LCARS界面中的某些按钮只有两个圆角。然而,LVGL的按钮功能在处理圆角时,要么全部是圆角,要么都不是。不过,幸运的是,LVGL并不介意你将多个形状堆叠在一起。所以,对于那些只需要半圆角的按钮,我巧妙地在方形按钮的一端叠加了一个圆形。由于它们的颜色相同,视觉上看起来就像一个完整的、带有特定圆角的形状。而界面中央那些标志性的L形弯角,也是通过类似的方法巧妙组合而成的。这种解决问题的小技巧,让整个项目充满了探索的乐趣。
加上黑色背景,使形状颜色一致,就能拥有LCARS界面。
经过一番努力,我的梦想终于实现了。一个货真价实、高度还原的LCARS风格触摸屏,现在就静静地立在我的客厅里。我敢打赌,12岁时的我看到这一幕,一定会惊叹不已。而41岁的我,此刻的心情也同样激动万分。
接下来,就是将它与家中的智能设备连接起来。由于我在客厅里完成了这个项目,所以最先连接的就是客厅的灯具。(说实话,我在动手做这个项目之前,并没有完全想清楚它具体要用来做什么。这种项目,还真不是那些只讲究实用主义的人能理解的。)
我设置了一个特定的按钮,当客厅灯亮起时,它会变成白色;当灯关闭时,它又会恢复原有的颜色。另外一个按钮则负责实际的开关操作。在我看来,面板上的按钮功能越多,那种掌控星舰的感觉就越真实。目前,这个面板上的按钮数量,甚至比我家里的灯还要多!
面板上还设计了一个仪表盘,它不仅能实时显示客厅灯的亮度,还能直接通过触摸来调节。此外,还有一些状态按钮,可以显示我家当前是处于“正常”模式还是“温馨”模式。这些模式设定,会联动我精心布置的WLED灯带系统,自动切换不同的灯光场景,营造出多样化的家居氛围。
虽然还未臻完美,但我真的非常喜欢它。
现在,这个承载着LCARS面板的触摸屏,就摆放在我沙发旁边的一个小支架上。坦白说,它一点也不实用。我们早就知道LCARS的初衷并非以实用性为主。然而,它却美轮美奂。每当我用它来控制家里的灯光时,就像儿时的英雄们驾驶星舰一样,这种感觉让我的“极客”之心无比愉悦。新媒网跨境认为,这种将个人爱好与智能科技完美结合的DIY精神,不仅实现了儿时的梦想,更展现了未来智能家居无限的个性化可能。这不仅仅是一个控制面板,它更是一件融入生活的艺术品,承载着热爱与情怀。
新媒网(公号: 新媒网跨境发布),是一个专业的跨境电商、游戏、支付、贸易和广告社区平台,为百万跨境人传递最新的海外淘金精准资讯情报。
本文来源:新媒网 https://nmedialink.com/posts/41-geek-joy-7in-trek-console.html


粤公网安备 44011302004783号 











