实验介绍
分歧争端机使用的场景是当出现分歧时,分别摇一摇HaaS EDU K1来摇出一个0到100之间的数字,通过比较谁摇出的数字大来解决分歧的一种方法。本质是通过摇一摇这个动作来随机产生一个数字。这个实验的核心如何通过加速度传感器来检测到摇一摇这个动作,并随机生成一个数字。
显示效果
涉及知识点
三轴加速度传感器的原理和使用随机数生成的方法OLED绘图开发环境准备
硬件
1,开发用电脑一台 2,HAAS EDU K1 开发板一块 3,USB2TypeC 数据线一根
软件
AliOS Things开发环境搭建
1,开发环境的搭建请参考 @ref HaaS_EDU_K1_Quick_Start (搭建开发环境章节),其中详细的介绍了AliOS Things 3.3的IDE集成开发环境的搭建流程。
HaaS EDU K1 DEMO 代码下载
1,HaaS EDU K1 DEMO 的代码下载请参考 @ref HaaS_EDU_K1_Quick_Start (创建工程章节),其中, 2,选择解决方案: 基于教育开发板的示例 3,选择开发板: haaseduk1 board configure
代码编译、烧录
1,参考 @ref HaaS_EDU_K1_Quick_Start (3.1 编译工程章节),点击 ? 即可完成编译固件。 2,参考 @ref HaaS_EDU_K1_Quick_Start (3.2 烧录镜像章节),点击 "??" 即可完成烧录固件。
硬件介绍 - MPU-6050
请参考陀螺仪小球中的相同章节。
应用开发
1,本实验通过MPU_Get_Accelerometer去获得三轴加速度传感器的原始值。然后计算出在y方向上和z方向上的差值,作为震动大小的强弱标志。当两个方向上的震动大小都超过了阈值,就认为是一次有效的摇晃,就生成随机数。生成随机的方法直接采用OS自动的rand()方法,他的返回值对100进行取模,保证是一个小于100的数字。然后将这个数据显示在OLED屏幕上。
void shakeshake_task()
{
while (1) // 获取三轴加速度信息 MPU_Get_Accelerometer( ax, ay, az); // 计算出y轴和z轴方向上的变化量 y_change = (ay = ay_pre) ? (ay - ay_pre) : (ay_pre - ay); z_change = (az = az_pre) ? (az - az_pre) : (az_pre - az); // 变化量都超过阈值,则进行下一步处理 if ((y_change SHAKE_Y_THRESHOLD) (z_change SHAKE_Z_THRESHOLD)) // 生成100以下的随机数 rand_value = rand() % 100; // 将随机数转化为需要显示的字符 itoa(rand_value, showstr, 10); // 清除屏幕memory OLED_Clear(); // 画出显示的图标 OLED_Icon_Draw(50, 0, icon_shakeshake_32_32_v2, 1); // 画出显示的字符 OLED_Show_String(54, 36, showstr, 24, 1); // 画出左右翻页的图标 OLED_Icon_Draw(2, 24, icon_skip_left, 0); OLED_Icon_Draw(122, 24, icon_skip_right, 0); // 将屏幕memory显示出来 OLED_Refresh_GRAM(); // 保存本次y轴和z轴方向上的值 az_pre = az; ay_pre = ay; // 暂停50ms aos_msleep(50); }
}
开发者支持
HaaS官方
HaaS技术社区
开发者钉钉群和公众号见下图,开发者钉钉群每天都有技术支持同学值班。
在Python开发过程中,我们难免会遇到多重条件判断的情况的情况,此时除了用很多...
背景 我们知道 如果在Kubernetes中支持GPU设备调度 需要做如下的工作 节点上安装...
本文转载自微信公众号「bugstack虫洞栈」,作者小傅哥 。转载本文请联系bugstack...
TIOBE 公布了 2021 年 3 月的编程语言排行榜。 本月 TIOBE 指数没有什么有趣的变...
近几年,互联网行业蓬勃发展,在互联网浪潮的冲击下,互联网创业已成为一种比较...
想了解更多内容,请访问: 51CTO和华为官方战略合作共建的鸿蒙技术社区 https://...
溢价 域名 的续费价格如何?通常来说,因为溢价域名的价值高于普通域名,所以溢...
本文转载自公众号读芯术(ID:AI_Discovery)。 这一刻你正在应对什么挑战?这位前...
基本介绍 给定 n 个权值作为 n 个叶子节点,构造一颗二叉树,若该树的带权路径长...
前言 统计科学家使用交互式的统计工具(比如R)来回答数据中的问题,获得全景的认...