全志科技
直播中

文小二

2年用户 837经验值
擅长:嵌入式技术 处理器/DSP 控制/MCU
私信 关注
[开源项目]

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

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

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

在这里插入图片描述

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

在这里插入图片描述

项目简介

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

在这里插入图片描述

在这里插入图片描述

硬件准备

本项目的基础用意是提供一个综合的示例进行学习参考,所以没有将所有硬件集成到一小块开发板上,而是采用面包板来实现手表功能效果,所需要用到的硬件有以下几个:

  • DShanMCU-R128s2-DevKit开发板
  • 0.96寸OLED(SSD1306)
  • EC11旋转编码器模块
  • 红外接收模块+红外遥控器
  • 无源蜂鸣器模块
  • DHT11温湿度模块

在这里插入图片描述

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

软件系统

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

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

在这里插入图片描述

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

在这里插入图片描述

在这里插入图片描述

二次开发

打开以下文件进行修改:

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

源码获取

基于R128-S2设计的全套开发板已上线淘宝百问网韦东山老师个人店进行售卖,包含黑色的DshanMCU-R128s2-R16N16模组和全套的DshanMCU-R128s2-DEVKIT。

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。

更多关于项目的详情可以前往百问网R128综合项目开发案例界面了解。

https://aw-r128.100ask.net/zh/rtos/demo/part2/chapter1.html

更多回帖

发帖
×
20
完善资料,
赚取积分