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

2023-11-09 18:01

本文主要是介绍小时候画在手腕上的表,我用全志R128让他真正动了起来,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

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

在这里插入图片描述

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

在这里插入图片描述

项目简介

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

在这里插入图片描述

在这里插入图片描述

硬件准备

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

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

在这里插入图片描述

模块接线对应引脚
IIC OLEDSCKPB00
SDAPB01
EC11S1PA24
S2PA25
KEYPA29
蜂鸣器BEEP DATAPA26
红外接收IR DATAPA10
DHT11DHT11 DATAPA6

软件系统

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

原作者对软件系统的代码花费了大量时间进行优化渲染,优化的内容就包括了将位图图像从闪存复制到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

这篇关于小时候画在手腕上的表,我用全志R128让他真正动了起来的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/377718

相关文章

MySQL数据库宕机,启动不起来,教你一招搞定!

作者介绍:老苏,10余年DBA工作运维经验,擅长Oracle、MySQL、PG、Mongodb数据库运维(如安装迁移,性能优化、故障应急处理等)公众号:老苏畅谈运维欢迎关注本人公众号,更多精彩与您分享。 MySQL数据库宕机,数据页损坏问题,启动不起来,该如何排查和解决,本文将为你说明具体的排查过程。 查看MySQL error日志 查看 MySQL error日志,排查哪个表(表空间

用Unity2D制作一个人物,实现移动、跳起、人物静止和动起来时的动画:中(人物移动、跳起、静止动作)

上回我们学到创建一个地形和一个人物,今天我们实现一下人物实现移动和跳起,依次点击,我们准备创建一个C#文件 创建好我们点击进去,就会跳转到我们的Vision Studio,然后输入这些代码 using UnityEngine;public class Move : MonoBehaviour // 定义一个名为Move的类,继承自MonoBehaviour{private Rigidbo

神经网络训练不起来怎么办(零)| General Guidance

摘要:模型性能不理想时,如何判断 Model Bias, Optimization, Overfitting 等问题,并以此着手优化模型。在这个分析过程中,我们可以对Function Set,模型弹性有直观的理解。关键词:模型性能,Model Bias, Optimization, Overfitting。 零,领域背景 如果我们的模型表现较差,那么我们往往需要根据 Training l

Java8中的Stream,让集合操作酸爽起来

简介 java8也出来好久了,接口默认方法,lambda表达式,函数式接口,Date API等特性还是有必要去了解一下。比如在项目中经常用到集合,遍历集合可以试下lambda表达式,经常还要对集合进行过滤和排序,Stream就派上用场了。用习惯了,不得不说真的很好用。 Stream作为java8的新特性,基于lambda表达式,是对集合对象功能的增强,它专注于对集合对象进行各种高效、便利的聚合

Python 中考虑 concurrent.futures 实现真正的并行计算

Python 中考虑 concurrent.futures 实现真正的并行计算 思考,如何将代码所要执行的计算任务划分成多个独立的部分并在各自的核心上面平行地运行。 Python 的全局解释器锁(global interpreter lock,GIL)导致没办法用线程来实现真正的并行​,所以先把这种方案排除掉。另一种常见的方案,是把那些对性能要求比较高的(performance-critica

hibernate泛型Dao,让持久层简洁起来

【前言】hibernate作为持久层ORM技术,它对JDBC进行非常轻量级对象封装,使得我们可以随心所欲的使用面向对象的思想来操作数据库。同时,作为后台开发的支撑,的确扮演了一个举足轻重的角色,那么我们在项目中如何灵活应用hibernate,也会给项目维护以及项目开发带来便利,下面我将展示我们项目中是如何来对hibernate进行应用和操作。 【目录】              -

正面超越Spark | 几大特性垫定Flink1.12流计算领域真正大规模生产可用(下)

点击上方蓝色字体,选择“设为星标” 回复”资源“获取更多资源 我们书接上文,我们在之前的文章《正面超越Spark | 几大特性垫定Flink1.12流计算领域真正大规模生产可用(上)》详细描述了Flink的生产级别Flink on K8s高可用方案和DataStream API 对批执行模式的支持。 接下来是另外的几个特性增强。 第三个,Flink对SQL操作的全面支持 再很早之前,我在浏览社

大数据只是听起来唬人?其实啥也不是。

点击上方蓝色字体,选择“设为星标” 回复”面试“获取更多惊喜 各位读者大佬们晚上好。 前两天一个读者找到我,问了一些问题。想来大家都是同龄人,虽然素不相识,但是我想起来我前几年刚毕业的时候,大概也是怀揣这样的问题,进入到了这么一个行业。 这个同学的问题大概也是很多新手同学的疑问罢。 这位同学在学校一直学习的是Java后端的工作,「然后现在做实时流平台,岗位是Java大数据,工作一年半了快,但

卷起来了,Apache Flink 1.13.6 发布!

点击上方蓝色字体,选择“设为星标” 回复"面试"获取更多惊喜 Hi,我是王知无,一个大数据领域的原创作者。  放心关注我,获取更多行业的一手消息。 Apache Flink 社区发布了 Flink 1.13 的另一个错误修复版本。 此版本包括99个错误和漏洞修复以及 Flink 1.13 的小改进,包括 Apache Log4j 的另一次升级(到 2.17.1)。您将在下面找到所有错误修复

题目:输入 5 个数(含负数、小数)将它们按由小到大的顺序排列起来。提示:需要排序的数字通过参数传递进来。

题目:输入 5 个数(含负数、小数)将它们按由小到大的顺序排列起来。 提示:需要排序的数字通过参数传递进来。 例如: 输入:-1 2.1 -3 5 7 输出: -3 -1 2.1 5 7 import java.util.Scanner;public class FuShuXiaoShuPaiXu {public static void swap(double[] arr,int a,in