HaaS EDU场景式应用学习 - 分歧争端机

简介: HaaS EDU场景式应用学习 - 分歧争端机

在这里插入图片描述

实验介绍

分歧争端机使用的场景是当出现分歧时,分别摇一摇HaaS EDU K1来摇出一个0到100之间的数字,通过比较谁摇出的数字大来解决分歧的一种方法。本质是通过摇一摇这个动作来随机产生一个数字。这个实验的核心如何通过加速度传感器来检测到摇一摇这个动作,并随机生成一个数字。

显示效果

O1CN019OP4kF22I19ZudgVF_!!6000000007096-1-tps-1200-800.gif

涉及知识点

  • 三轴加速度传感器的原理和使用
  • 随机数生成的方法
  • OLED绘图

开发环境准备

硬件

开发用电脑一台
HAAS EDU K1 开发板一块
USB2TypeC 数据线一根
  • 1
  • 2
  • 3

软件

AliOS Things开发环境搭建

开发环境的搭建请参考 @ref HaaS_EDU_K1_Quick_Start (搭建开发环境章节),其中详细的介绍了AliOS Things 3.3的IDE集成开发环境的搭建流程。
  • 1

HaaS EDU K1 DEMO 代码下载

HaaS EDU K1 DEMO 的代码下载请参考 @ref HaaS_EDU_K1_Quick_Start (创建工程章节),其中,
选择解决方案: 基于教育开发板的示例
选择开发板: haaseduk1 board configure
  • 1
  • 2
  • 3

代码编译、烧录

参考 @ref HaaS_EDU_K1_Quick_Start (3.1 编译工程章节),点击 ✅ 即可完成编译固件。
参考 @ref HaaS_EDU_K1_Quick_Start (3.2 烧录镜像章节),点击 "⚡️" 即可完成烧录固件。
  • 1
  • 2

硬件介绍 - MPU-6050

请参考陀螺仪小球中的相同章节。

应用开发

 本实验通过MPU_Get_Accelerometer去获得三轴加速度传感器的原始值。然后计算出在y方向上和z方向上的差值,作为震动大小的强弱标志。当两个方向上的震动大小都超过了阈值,就认为是一次有效的摇晃,就生成随机数。生成随机的方法直接采用OS自动的rand()方法,他的返回值对100进行取模,保证是一个小于100的数字。然后将这个数据显示在OLED屏幕上。
  • 1
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);
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35

开发者支持

HaaS官方:https://haas.iot.aliyun.com/
HaaS技术社区:https://blog.csdn.net/HaaSTech
开发者钉钉群和公众号见下图,开发者钉钉群每天都有技术支持同学值班。
在这里插入图片描述

相关文章
|
Web App开发 前端开发 JavaScript
看看人家 阿里的 低代码引擎,多优雅!
特性 引擎协议 使用示例 工程化配置: cdn 可选方式:
|
3月前
|
运维 Java Linux
阿里云计算巢MC我的世界服务器零基础搭建全教程,Java/基岩双版本一键部署实操指南
《我的世界》凭借自由创造、多人联机、海量模组拓展的核心玩法,长期拥有庞大玩家群体,但绝大多数玩家尝试家用电脑搭建联机服时都会遇到难以解决的痛点:家用宽带无公网IP、上行带宽极低、多人同时在线卡顿严重、电脑关机服务器直接下线、内网穿透工具不稳定频繁掉线。想要稳定和全国各地好友长期联机,云服务器是最优解决方案。2026年阿里云依托计算巢平台上线我的世界专属一键部署服务,无需编写代码、无需手动配置Java运行环境、不用调试防火墙端口,全程可视化点击操作,零基础游戏玩家几分钟即可搭建专属稳定MC服务器,同时完整兼容Java原版、模组整合包、基岩版三大主流游戏类型,搭配10M不限流量BGP多线带宽
873 0
|
5月前
|
人工智能 自然语言处理 算法
"大三考下CAIE一级人工智能认证,我秋招时吃到了红利"
CAIE注册人工智能工程师(一级)是专为大学生设计的AI能力认证,零基础可考、门槛低、贴合秋招需求。覆盖AI基础、应用与工程认知,非算法岗(产品/运营/数据等)同样适用,获电信、腾讯、平安等百家企业认可,助你在简历筛选和面试中脱颖而出。
|
3月前
|
数据采集 自然语言处理 文字识别
大模型训练语料和知识库内容安全治理实践:企业落地要看哪些环节?
企业做大模型训练语料和知识库内容安全治理,建议把安全能力前置到数据入库、知识切片、检索召回、模型生成和运营复盘全流程。重点治理版权、隐私、违规内容、知识库投毒、Prompt Injection、过期口径和审计留痕问题,避免模型在生产环境中输出不合规、不准确或不可追溯的答案。
同城外卖系统开发搭建详解:订单状态流转与一致性控制方案
本文深入解析同城外卖系统订单模块,聚焦订单状态流转逻辑与跨服务一致性设计。结合实际业务场景,拆解支付、商家处理、骑手配送、完成评价四大阶段,详解异常路径应对与状态机(FSM)管控实践,助力构建高可靠、可追溯的订单系统。
|
6月前
|
存储 安全 物联网
系统科学与哲学方法论
本大纲系统整合系统科学(老三论、新三论、复杂系统论)与唯物辩证法核心原理(对立统一、内外因、主次矛盾等),强调实践论指导,揭示系统演化共性规律,为系统规划与数字化转型提供哲学方法论支撑。
553 1
|
算法 Python
逆袭之路!用 Python 玩转图的 DFS 与 BFS,让数据结构难题无处遁形
【7月更文挑战第12天】图的遍历利器:DFS 和 BFS。Python 中,图可表示为邻接表或矩阵。DFS 沿路径深入,回溯时遍历所有可达顶点,适合找路径和环。BFS 层次遍历,先近后远,解决最短路径问题。两者在迷宫、网络路由等场景各显神通。通过练习,掌握这些算法,图处理将游刃有余。
435 3
|
索引 Python
技术好文共享:用Python的Pygame包做飞行棋
技术好文共享:用Python的Pygame包做飞行棋
|
机器学习/深度学习 人工智能 图计算
【视觉AIGC识别】误差特征、人脸伪造检测、其他类型假图检测
【视觉AIGC识别】误差特征、人脸伪造检测、其他类型假图检测
1965 0
|
算法
【模型预测控制MPC】使用离散、连续、线性或非线性模型对预测控制进行建模(Matlab代码实现)
【模型预测控制MPC】使用离散、连续、线性或非线性模型对预测控制进行建模(Matlab代码实现)
1619 0

热门文章

最新文章