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

简介: 一文解析如何通过加速度传感器来检测到摇一摇这个动作,随机生成一个数字。

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

显示效果

image.png

涉及知识点

  • 三轴加速度传感器的原理和使用
  • 随机数生成的方法
  • 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技术社区
开发者钉钉群和公众号见下图,开发者钉钉群每天都有技术支持同学值班。
image.png

相关文章
|
6月前
|
监控 Linux Android开发
振南技术干货集:各大平台串口调试软件大赏(5)
振南技术干货集:各大平台串口调试软件大赏(5)
|
6月前
|
Linux 网络安全 Android开发
振南技术干货集:各大平台串口调试软件大赏(2)
振南技术干货集:各大平台串口调试软件大赏(2)
|
6月前
|
Linux 网络安全 Android开发
振南技术干货集:各大平台串口调试软件大赏(1)
振南技术干货集:各大平台串口调试软件大赏(1)
|
6月前
|
Unix Linux iOS开发
振南技术干货集:各大平台串口调试软件大赏(4)
振南技术干货集:各大平台串口调试软件大赏(4)
|
2月前
|
网络协议 算法 程序员
IM开发者的零基础通信技术入门(十四):高铁上无线上网有多难?一文即懂!
本系列文章尽量使用最浅显易懂的文字、图片来组织内容,力求通信技术零基础的人群也能看懂。但个人建议,至少稍微了解过网络通信方面的知识后再看,会更有收获。如果您大学学习过《计算机网络》这门课,那么一定不要错过本系列文章。
41 5
IM开发者的零基础通信技术入门(十四):高铁上无线上网有多难?一文即懂!
|
3月前
|
存储 监控 安全
全国产化十二导联心电图机
十二导联心电图机是医疗设备,通过十二个电极接触患者体表,同步采集心电信号,经滤波处理获得高质量心电图。广泛应用于医院、体检中心及家庭,支持心脏疾病诊断与监测。本机具备高保真ECG采样、强抗干扰能力及24小时连续监测等功能,支持蓝牙或USB实时传输数据,内置算法辅助医生快速判断病情,重要数据可云端存储。符合多项国际安全标准,确保设备稳定可靠。
|
6月前
|
监控 网络协议 Linux
振南技术干货集:各大平台串口调试软件大赏(7)
振南技术干货集:各大平台串口调试软件大赏(7)
|
6月前
|
传感器 运维 定位技术
网安预习课程硬件延伸
本篇博文是一篇关于计算机硬件、软件、网络知识和故障排查的摘要。主要内容包括: 1. 应用软件: 2. 电脑故障分析: 3. 网络介绍与分类: - 总线型网络:简单、成本低,适用于小规模网络。 - **环形网络**:中心节点故障会导致整个网络失效,常用于分布式系统。 - **星形网络**:管理和扩展方便,但中心节点至关重要。 - 网形网络:高冗余和可靠性,适合对可靠性要求高的环境。 4. 网络类型: 5. IP地址: 涵盖了计算机硬件、软件故障、网络基础和IP地址等多个IT领域的基础知识,是学习计算机科学和技术的入门内容。
|
6月前
|
Unix Linux Shell
振南技术干货集:各大平台串口调试软件大赏(3)
振南技术干货集:各大平台串口调试软件大赏(3)
|
6月前
|
监控 Linux Android开发
振南技术干货集:各大平台串口调试软件大赏(6)
振南技术干货集:各大平台串口调试软件大赏(6)
下一篇
无影云桌面