本帖最后由 sunsili 于 2023-12-15 14:23 编辑
小时候画在手腕上的表,我用全志R128让它真正动了起来
小时候,我们总是充满想象力和创造力。
在那个年龄,我们没有真正的手表,但我们总是喜欢在纸上画出自己的手表,仿佛它真的能告诉我们时间。
小时候画的手表
为了弥补童年的遗憾,作者找到了一个智能手表的开源项目——NWatch,并把他移植到了R128开发板上。
NWatch最终可实现效果
项目简介
本项目基于ZakKemble的开源项目NWatch,与原作者的NWatch不一样的是,作者将其移植到DShanMCU-R128s2-DevKit开发板的同时相比于原作者添加了一些功能,比如优化屏幕刷新,使显示更流畅,以及添加蜂鸣器、旋转编码器、DHT11温湿度传感器。
菜单选择
赛车游戏
硬件准备
本项目的基础用意是提供一个综合的示例进行学习参考,所以没有将所有硬件集成到一小块开发板上,而是采用面包板来实现手表功能效果,所需要用到的硬件有以下几个:
软件系统
手表上的所有功能都伴有动画效果。
原作者对软件系统的代码花费了大量时间进行优化渲染,优化的内容就包括了将位图图像从闪存复制到RAM中的帧缓冲区,并通过 SPI 将帧缓冲区发送到 OLED,最终使得手表能够在几乎所有区域的显示中可以保持100+FPS。
一些主要的动画内容:
时间走动的动画效果
菜单切换动画效果
二次开发
打开以下文件进行修改: - R128-S2-SDK/board/r128s2/pro/configs/sys_config.fex
复制代码
IIC引脚配置: - [twi1]
- twi1_sck = port:PB00<3><1><default><default>
- twi1_sda = port:PB01<3><1><default><default>
复制代码
PWM配置: - [pwm6]
- pwm_used = 1
- pwm_positive = port:PA26<4><0><2><default>
复制代码
接下来添加100ask_r128_demos,首先clone仓库或者下载仓库压缩包到本地,并将仓库目录放在sdk的这个目录下面: - R128-S2-SDK/lichee/rtos-components/thirdparty/100ask_r128_demos
复制代码
打开文件进行编辑 - R128-S2-SDK/lichee/rtos-components/thirdparty/Makefile
复制代码
在文件的最后面或最前一行加入下面的内容: - obj-$(CONFIG_COMPONENTS_100ASK_R128_DEMOS) += 100ask_r128_demos/
复制代码
打开文件进行编辑 - R128-S2-SDK/lichee/rtos-components/thirdparty/Kconfig
复制代码
在文件的最后或最前一行加入下面的内容: - source components/common/thirdparty/100ask_r128_demos/Kconfig
复制代码
红外控制手表
源码获取
Gitee源码获取链接: - https://gitee.com/weidongshan/100ask_r128_demos/tree/master/nwatch
复制代码
GitHub源码获取链接: - https://github.com/100askTeam/100ask_r128_demos/tree/master/nwatch
复制代码
如果你不想自己编译或者不需要二次开发,那么可以从下方获取固件:
Gitee处Releases获取: - https://gitee.com/weidongshan/100ask_r128_demos/releases/tag/v0.0.1
复制代码
GitHub处Releases获取: - https://github.com/100askTeam/100ask_r128_demos/releases/tag/v0.0.1
复制代码
烧写固件到DShanMCU-R128s2-DevKit在新窗口打开后开机会自动启动NWatch任务,如果没有自动启动在串口终端输入命令然后按回车即可nwatch_100ask 3。
文章来源:全志科技 |