最近在学习LVGL相关的开发,后续将会应用于MCU和Linux相关的项目上。选择LVGL主要是因为它非常的轻量,而且控件齐全、精美。LVGL也是采用C语言进行编写的一套GUI框架,因此可以友好的移植到各大嵌入式平台上。以下是我分别用小熊派(MCU)和imx6ull
(Linux)开发板移植的LVGL V8.2
例程效果,开源地址:
在参考众多开源项目中,发现我的朋友正兄近期发布的一个开源项目十分的强大,他直接将一个国外的项目Super knob
用ESP32和无刷电机复刻了出来,这个项目的GUI就是使用了LVGL,不得不说真的是太强了。正兄还将演示视频上传在bilibili上,我去观看了一下,整体效果真的太精彩了!
以下是项目的介绍:
Super knob 是基于ESP32与无刷电机实现的超级旋钮,该项目基于国外开源项目:smartknob。
我将无刷电机的旋钮部分解耦出来,通过磁吸的方式搭配不同的底座,来实现各种应用场景,同时设计了一套协议用于旋钮与底座的交互,可实现针对不同场景带来不同的触感体验,甚至可以在同一个场景的不同操作下模拟不同的触感和阻尼反馈。类似于智能手机中线性马达对于不同应用或页面的机械触感模拟。
同时磁吸的灵感来源于大疆的Action2 方块相机,啪,即可将旋钮与不同外设进行磁吸配对,待开发稳定后,计划用CNC加工金属的外壳,来配合磁吸达到最舒服的体验。
例如:当同一个旋钮组件,磁吸到物联网中控的底座上面,自动弹出对应的UI界面,同时可以控制智能家具,且在控制台灯亮度和空调温度的时候,会带来不同的旋钮触感反馈。
例如:当同一个旋钮组件,磁吸到PC旋钮底座上面,即可变身为PC的超级旋钮,可以用他做翻页、快捷键、切换应用、调节音量和亮度,只要你喜欢,都可以分别为这几个功能配置不同的阻尼反馈。
将旋钮部分解耦开来,搭配不同的底座,即可实现控制万物,且触感与阻尼感各不相同,这是普通的机械旋钮不能带来的!
一、设计草图
二、功能架构
三、UI界面演示
3D模型(初版)
这个项目的软件设计思路十分清晰,代码也十分的简洁,很适合初学者学习研究。项目开源地址如下:
https://gitee.com/wenzhengclub/super_knob
除了软件以外,正兄还开源了硬件和结构,硬件可以直接打样,而结构部分可以进行3D打印,爱了爱了。
文章来源:嵌入式应用研究院
推荐阅读
欢迎大家点赞留言,更多Arm技术文章动态请关注极术社区嵌入式客栈专栏欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。