谷动谷力

 找回密码
 立即注册
查看: 674|回复: 0
打印 上一主题 下一主题
收起左侧

小时候画在手腕上的表,我用全志R128让它真正动了起来

[复制链接]
跳转到指定楼层
楼主
发表于 2023-12-15 13:59:36 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 sunsili 于 2023-12-15 14:23 编辑

小时候画在手腕上的表,我用全志R128让它真正动了起来


小时候,我们总是充满想象力和创造力。

在那个年龄,我们没有真正的手表,但我们总是喜欢在纸上画出自己的手表,仿佛它真的能告诉我们时间。

小时候画的手表

为了弥补童年的遗憾,作者找到了一个智能手表的开源项目——NWatch,并把他移植到了R128开发板上。

NWatch最终可实现效果
项目简介

本项目基于ZakKemble的开源项目NWatch,与原作者的NWatch不一样的是,作者将其移植到DShanMCU-R128s2-DevKit开发板的同时相比于原作者添加了一些功能,比如优化屏幕刷新,使显示更流畅,以及添加蜂鸣器、旋转编码器、DHT11温湿度传感器。

菜单选择

赛车游戏
硬件准备

本项目的基础用意是提供一个综合的示例进行学习参考,所以没有将所有硬件集成到一小块开发板上,而是采用面包板来实现手表功能效果,所需要用到的硬件有以下几个:
  • DShanMCU-R128s2-DevKit开发板
  • 0.96寸OLED(SSD1306)
  • EC11旋转编码器模块
  • 红外接收模块+红外遥控器
  • 无源蜂鸣器模块
  • DHT11温湿度模块


模块
接线
对应引脚
IIC OLED
SCK
SDA
PB00
PB01
EC11
S1
S2
KEY
PA24
PA25
PA29
蜂鸣器
BEEP DATA
PA26
红外接收
IR DATA
PA10
DHT11
DHT11 DATA
PA6
软件系统

手表上的所有功能都伴有动画效果。

原作者对软件系统的代码花费了大量时间进行优化渲染,优化的内容就包括了将位图图像从闪存复制到RAM中的帧缓冲区,并通过 SPI 将帧缓冲区发送到 OLED,最终使得手表能够在几乎所有区域的显示中可以保持100+FPS。


一些主要的动画内容:
  • 进入和退出睡眠模式时的 CRT 动画(类似于某些 Android 智能手机具有的 CRT 动画)。
  • 主要时间数字切换时具有动画效果。
  • 菜单有一个向左/向右滚动的动画,选择一个选项将会有当前菜单从屏幕上掉下来的动画效果。


时间走动的动画效果

菜单切换动画效果
二次开发

打开以下文件进行修改:
  1. R128-S2-SDK/board/r128s2/pro/configs/sys_config.fex
复制代码


IIC引脚配置:
  1. [twi1]
  2. twi1_sck        = port:PB00<3><1><default><default>
  3. twi1_sda        = port:PB01<3><1><default><default>
复制代码


PWM配置:
  1. [pwm6]
  2. pwm_used        = 1
  3. pwm_positive    = port:PA26<4><0><2><default>
复制代码


接下来添加100ask_r128_demos,首先clone仓库或者下载仓库压缩包到本地,并将仓库目录放在sdk的这个目录下面:
  1. R128-S2-SDK/lichee/rtos-components/thirdparty/100ask_r128_demos
复制代码



打开文件进行编辑
  1. R128-S2-SDK/lichee/rtos-components/thirdparty/Makefile
复制代码


在文件的最后面或最前一行加入下面的内容:
  1. obj-$(CONFIG_COMPONENTS_100ASK_R128_DEMOS) += 100ask_r128_demos/
复制代码


打开文件进行编辑
  1. R128-S2-SDK/lichee/rtos-components/thirdparty/Kconfig
复制代码


在文件的最后或最前一行加入下面的内容:
  1. source components/common/thirdparty/100ask_r128_demos/Kconfig
复制代码


红外控制手表
源码获取

Gitee源码获取链接:
  1. https://gitee.com/weidongshan/100ask_r128_demos/tree/master/nwatch
复制代码

GitHub源码获取链接:
  1. https://github.com/100askTeam/100ask_r128_demos/tree/master/nwatch
复制代码


如果你不想自己编译或者不需要二次开发,那么可以从下方获取固件:

Gitee处Releases获取:
  1. https://gitee.com/weidongshan/100ask_r128_demos/releases/tag/v0.0.1
复制代码

GitHub处Releases获取:
  1. https://github.com/100askTeam/100ask_r128_demos/releases/tag/v0.0.1
复制代码


烧写固件到DShanMCU-R128s2-DevKit在新窗口打开后开机会自动启动NWatch任务,如果没有自动启动在串口终端输入命令然后按回车即可nwatch_100ask 3。

文章来源:全志科技
+10
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|深圳市光明谷科技有限公司|光明谷商城|Sunshine Silicon Corpporation ( 粤ICP备14060730号|Sitemap

GMT+8, 2024-5-21 15:37 , Processed in 0.215682 second(s), 44 queries .

Powered by Discuz! X3.2 Licensed

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表