目前的位置: 首页 学术信息 正文

ZDS 2023技术报告分享第25篇:使用Zephyr构建开源智能手表


前言

2023年Zephyr开发者大会(ZDS)于6月27日至30日在捷克布拉格隆重举行。与以往两次不同,本次ZDS由Zephyr项目规划和管理,并作为首届嵌入式开源峰会(EOSS)的一部分进行。在这个令人期待已久的盛会中,全球Zephyr开发者们共同探讨了Zephyr实时操作系统(RTOS)的最新技术与发展趋势。作为一款开源、灵活和可扩展的嵌入式实时操作系统,Zephyr项目在2014年由英特尔发起,2016年作为Linux基金会项目正式面向公众启动,得到了全球范围内的广泛关注和采用。


ZDS 2023共70余个技术报告,涵盖了使用指导与展示、新功能与技术、架构修改与操作系统、多核异构与虚拟化、模拟器、测试、工业流程与代码管理、安全性、应用案例、工具与调试等丰富多样的内容。湖大嵌入式实验室的小伙伴们将对本次大会的所有技术报告进行逐一收集、整理与分享,尽最大努力为Zephyr开发者提供ZDS 2023技术报告的开发经验、实践成果以及解决方案的参考。


今天分享第25篇技术报告,由张国栋整理,题目为:

使用Zephyr构建开源智能手表



作者简介

Jakob Krantz是高级嵌入式软件工程师,在 u-blox 担任嵌入式开发人员 6 年,目前正在 Nordic MCU 上使用 Zephyr/nRF Connect。喜欢构建将编程与机电一体化和电子相结合的东西,大多数项目还包括某种类型的3D打印。Jakob Krantz不断学习新事物,不仅很有趣,而且还给了他很大的成就感,这些新事物可以应用于他的爱好项目。



ZSWatch介绍

Jakob Krantz称之为ZSWatch(Zephyr智能手表),命名灵感源自 ZMK 项目(Zephyr 机械键盘)。硬件包括:PCB (KiCAD)、机械外壳(CAD)、Dock、BOM、基于 Zephyr 构建的应用程序、Apps。


选择Zephyr的原因:

  • MCU及环境要求:低功耗蓝牙、低功耗、大生态系统、Nordic + Zephyr 显而易见的选择。

  • Zephyr开源优势:Zephyr 开源 BLE 控制器的使用以及从最低层 BLE 到最高层应用,源代码都开源。



Zephyr 硬件影响

  • 时间有限:优化硬件选择以实现快速启动、没有时间从头开始编写驱动程序、调试时间有限。

  • PCB设计知识很少:没有复杂的 PCB 布局、外部元件很少、内部可完成“一切”的 IC。

  • PCB 大小有限。


最终选取了2个版本,如下图所示:

其中第二个版本的结构如下所示:

硬件选择的结论:对于更多供应商提供官方 Zephyr 驱动程序来说可能是一项不错的投资、使用的传感器 Zephyr 驱动程序仅支持基本传感器使用、最终将Bosch移植到了 Zephyr。


启动过程:为 ZSWatch 创建一个新板、一次添加一个传感器/组件、解决编译问题。



ZSWatch 软件

架构:基于模块的应用程序、用于内部通信的 ZBUS、“应用程序”中的单独代码。具体如下图所示。

默认高功耗:默认空闲超时 30 秒、显示屏消耗> 99%、60 mA 全亮度,30 mA 50% - 线性。

低功耗的方法:

  • 让显示器进入睡眠状态、切断显示器电源。

  • 避免不必要的唤醒,针对将许多不同的 k_work_reschedule 替换为一个通常周期性任务的时间安排并不严格的问题,将周期性任务分成固定的时间间隔快、中、慢周期(例如 100ms、1000ms、5000ms)。具体实现应该为每个周期一个 ZBUS 通道(快速、中速、慢速周期等)包装 zbus_chan_add/rm_obs,仅当在该时段存在时才使用 k_work_reschedule 唤醒。最终实验结果如下表所示。



用户界面

用户界面具有以下特点:很棒的 UI 库、开源、灵活并支持任何需要的东西、支持桌面模拟器、处理用户输入、物理按键、触摸(通过 Zephyr LVGL kscan 端口)。应用很丰富。具体如下图所示。

具体构建应用程序步骤如下:

  • 创建一个应用程序,将其称为“ZDS 应用程序”。

  • 找到一个图标,调整大小为 32x32 像素。

  • 找到 Zephyr 项目徽标,将大小调整为 <240x240 像素。

  • 使用 https://lvgl.io/tools/imageconverter 将它们转换为 c 数组放入ZSWatch图片文件夹。

  • 具体的文件结构如下图所示。

  • ZDS应用程序编写方式如下图所示。

最终生成ZDS应用如下图所示。

在 Linux 上运行:Zephyr native-posix 端口和用于 UI 的 SDL、支持的开发套件上的 hci_usb 示例、避免在闪烁上“浪费”时间。



价格

总体来说价格较便宜,价格如下表所示。



ZSWatch 的下一步

  • Zephyr LVGL 端口需要一些性能改进。

  • 本机 Posix 端口改进。

  • 尝试新的 Zephyr“传感子系统”。

  • 表盘实施返工。

  • 更多耗电工作。


上一条:ZDS 2023技术报告分享第24篇:使用Zephyr时提高效率的实用技巧 下一条:嵌入式系统联谊会秘书长何小庆报告:迎接RISC-V崛起嵌入式开发者准备好了吗

关闭

嵌入式与网络计算湖南省重点实验室
版权所有 © 2023 湖南大学