好好搭搭官方文档
  • FAQ
  • 好好搭搭平台
    • 浏览器
    • 插件
    • 微信物联网小程序
      • 帐号绑定
      • 联网配置
      • 设备绑定
      • 物联应用
      • 在线编程
      • 自定义组件使用
    • 离线版
      • 好好搭搭Scratch中文离线版
      • 好好搭搭Scratch Arduino 2.0
      • Mixly For WuHan
    • 远程协助软件
    • PC端配网工具
    • 配网APP
  • 在线入门课程
    • Scratch编程入门
      • 第1课 喵喵初体验
      • 第2课 喵喵背古诗
      • 第3课 喵喵游西湖
      • 第4课 喵喵学做操
      • 第5课 喵喵学英语
      • 第6课 喵喵演奏会
      • 第7课 喵喵大抽奖
      • 第8课 喵喵运动会
      • 第9课 喵喵学画画
      • 第10课 喵喵出题目
      • 阅读材料一:好好搭搭Scratch中文离线版的使用
      • 阅读材料二:“好好搭搭”网站中的作品管理
      • 阅读材料三:使用PowerPoint制作中文文字角色
      • 阅读材料四:Scratch中的指令类型
      • 阅读材料五:Scratch中的三种程序结构
    • 基于Scratch的传感器板编程
      • 第1课 认识Scratch传感器板
      • 第2课 在Scratch中使用按键——点亮卧室里的灯
      • 第3课 在Scratch中使用LED——防火小卫士
      • 第4课 在Scratch中使用滑杆——生日快乐
      • 第5课 在Scratch中使用蜂鸣器——守卫松饼
      • 第6课 在Scratch中使用声音传感器——赛龙舟
      • 第7课 在Scratch中使用亮度传感器——太阳公公笑了
      • 第8课 在Scratch中使用摇杆――猴子接香蕉
      • 第9课 在Scratch中使用扩展模块——智能灯控
      • 第10课 综合作品制作——森林小卫士
    • 基于Scratch的Nova智能造物入门
      • 第1课 初识智能造物神器——Nova
      • 第2课 在Nova中使用单色LED——模拟红绿灯
      • 第3课 在Nova中使用数码管与按键——送给妈妈的计时器
      • 第4课 在Nova中使用蜂鸣器——音乐播放器
      • 第5课 在Nova中使用超声波传感器——魔法音乐盒
      • 第6课 在Nova中使用RGB LED与电位器——多彩台灯
      • 第7课 在Nova中使用声音与亮度传感器——智能声控灯
      • 第8课 在Nova中使用温湿度传感器——环境自动监测仪
      • 第9课 在Nova中使用电机与红外遥控――智能小风扇
      • 第10课 在Nova中使用舵机——会摇头的电风扇
      • 阅读材料一:“好好搭搭”插件的下载与安装
    • WU-Link智能造物入门
      • 第一课 初识物联网造物神器——WU-Link
      • 第二课 在WU-Link中使用点阵屏——玩转图案设计
      • 第三课 在WU-Link中使用点阵屏——送给妈妈的计时器
      • 第四课 在WU-Link中使用板载传感器——环境自动检测仪
      • 第五课 在WU-Link中使用加速度计——自制计步器
      • 第六课 在WU-Link中使用电子罗盘——指南针来了
      • 第七课 在WU-Link中使用红外传感器——红外电子琴
      • 第八课 Scratch与WU-Link互联互控——物联网点读机
      • 第九课 Scratch与WU-Link互联互控――物联网环境监测仪
      • 第十课 WU-Link之间的互联互控——抽签与抢答程序
      • 阅读材料一:WU-Link的无线网络连接设置
      • 阅读材料二:添加并绑定设备
  • 教学产品
    • Scratch传感器板
    • 好搭Box
    • Nova电子积木
      • Nduino HD
      • Nduino BOT
      • Nduino-Wulink
      • LED
      • 蜂鸣器模块
      • RGB模块
      • RGB灯带模块
      • 单按键模块
      • 四按键模块
      • 电位器模块
      • 亮度传感器模块
      • 超声波传感器模块
      • 声音传感器模块
      • 温湿度模块
      • 灰度传感器模块
      • 4位计时数码管
      • 4位计数数码管
      • 点阵模块
      • 红外接收模块
      • 红外对射模块
      • 蓝牙4.0模块
      • 单路电机驱动模块
      • 双路电机驱动模块
      • 大电流舵机驱动模块
      • MP3音乐模块
      • 火焰传感器模块
      • 霍尔开关模块
      • 继电器模块
      • 倾斜开关模块
      • 震动开关模块
      • 限位开关模块
      • 时钟模块
      • 陀螺仪模块
      • 摇杆模块
      • MQ2传感器模块
      • MQ3传感器模块
      • MQ7传感器模块
    • Arduino开源硬件
      • Arduino UNO主控板
      • Arduino IO扩展板
      • Wulink-UNO
      • haodaMIDI模块
      • LED灯模块
      • 蜂鸣器模块
      • RGB灯模块
      • 单按键模块
      • 四按键模块
      • 电位器模块
      • 亮度传感器模块
      • 超声波传感器模块
      • 声音传感器模块
      • LM35温度传感器
      • 温湿度传感器模块
      • 灰度传感器模块
      • 数码管模块
      • 点阵模块
      • 蓝牙模块
      • MP3模块
      • OLED模块
      • LCD1602显示模块
      • 红外接收模块
      • 红外发射模块
      • 激光发射模块
      • 继电器模块
      • 倾角传感器模块
      • 震动开关模块
      • 人体红外传感器模块
      • 上拉扩展模块
      • 土壤湿度模块
      • 颜色传感器模块
      • 摇杆模块
      • 音频录放模块
    • WU-Link
    • PythonBoard
    • 掌控
      • 掌控板刷好搭固件
      • WULink-Python
    • 3D打印套件
      • 时钟主板
      • 音乐主板
      • 通用主板
      • 机器人主板
      • 互联网主板
      • 电机主板
      • 灯光主板
      • 月球灯
    • 好搭磁性电子积木
    • 数字科学家
      • 主控
      • PH值传感器
      • 水浊度传感器
      • 拉力传感器
      • 压力传感器
      • 气压传感器
      • 水泵
    • KT板套件
    • 徽章板
    • 好搭Bit
      • Scratch3.0互动编程
      • MakeCode
      • Mind+
      • KittenBlock
      • MU Python编程
      • APP 移动端编程
  • 造物产品
    • WuLink-Nano
    • 好搭酷
  • 编程语法
    • Scratch
      • 指令
      • 程序结构
    • Arduino
      • 程序结构
      • 变量
      • 基本函数
      • 类库
    • Micropython
Powered by GitBook
On this page
  • 模块与指令
  • 加速度计
  • “检测到摇晃”指令:
  • “读板载加速度计”指令:
  • 作品制作
  • 第一步:在点阵屏上显示是否摇晃
  • 第二步:创建变量并初始化
  • 第三步:判断并累计步数
  • 第四步:让计步器更精确
  • 拓展与思考

Was this helpful?

  1. 在线入门课程
  2. WU-Link智能造物入门

第五课 在WU-Link中使用加速度计——自制计步器

Previous第四课 在WU-Link中使用板载传感器——环境自动检测仪Next第六课 在WU-Link中使用电子罗盘——指南针来了

Last updated 6 years ago

Was this helpful?

[TOC]

WU-Link主板上集成了一块加速度计,可以检测WU-Link在各个方向上的移动。本课将利用这块板载的传感器,编写程序,让WU-Link成为可以累计步数的计步器。

模块与指令

要制作本课的范例作品,需要认识以下这些新的模块:

加速度计

加速度是描述物体速度变化快慢的物理量。加速度计就是能够检测到这种变化并转化、输出相应数值的传感器。在汽车安全系统、地震检测、游戏控制、佩带式智能设备等很多方面都有广泛的应用。

WU-Link在主板上集成的加速度计型号是“MMA7660FC(如下图所示)。它的大小是3 × 3 × 0.9(毫米),可以检测X、Y、Z三个方向的加速度大小,检测精度是±1.5个重力加速度。

要制作本课的范例作品,还需要使用以下新的指令:

“检测到摇晃”指令:

属于“板载”类别指令;可以检测WU-Link有没有被晃动。如果检测到晃动,输出值为“1”;否则为“0”。

“读板载加速度计”指令:

属于“板载”类别指令;可以读取WU-Link在左右(X)、垂直(Y)、前后(Z)三个方向上的加速度数值,可以更加精确的获取WU-Link的运动状态。

指令默认是读取按键“X”方向的值;可以单击打开下拉列表参数,从中选择“X”、"Y"、"Z"这三个选项,选择读取WU-Link在左右、垂直、前后这三个方向上的加速度数值。

作品制作

要制作“计步器”,先要通过在WU-Link点阵屏上显示“检测到摇晃”指令的值,了解这个指令的使用方法;然后编写代码,让WU-Link变成一个能够累计走路步数的“计步器”。

第一步:在点阵屏上显示是否摇晃

要在点阵屏上显示是否摇晃了WU-Link,可以按以下步骤操作:

1.将“点阵屏”类别中的“点阵屏清除”指令拖动到编程区,与默认的“初始化”指令组合。

2.将“点阵屏”类别中的“点阵屏显示数”指令与“重复执行”指令组合。

3.将“板载”类别中的“检测到摇晃”指令拖动到“点阵屏显示数”指令的参数位置,作为它的参数。

完整的程序代码如下图所示:

​

试一试:

将上图所示代码编译后下载到WU-Link,然后按下表要求改变WU-Link的状态,将点阵屏上显示的数值记录下来。想一想,什么状态下显示“1”?什么状态下显示“0”?

第二步:创建变量并初始化

要在计步器上显示步数,首先需要创建变量用于累计所走的步数。具体可以按以下步骤操作:

1.单击“变量”类别中的“创建变量”按钮,创建新的变量(本课范例程序创建的变量名称是“步数”)。

2.将“变量”类别中的“声明变量类型并赋值”指令拖动到编程区,组合到原有“初始化”指令的“点阵屏清除”指令下方。确认“声明变量类型并赋值”指令所声明的变量名称是“步数”,类型为“整数”。

3.将“数学与逻辑”类别中的“数值”指令拖动组合到“声明变量类型并赋值”指令右边,将所创建的变量"步数"赋值为“0”。

完整的初始化程序代码如下图所示:

想一想:

“步数”变量为什么要赋值为“0”?可以是其它数吗?为什么?

第三步:判断并累计步数

人在走路时,手臂一般都会自然的前后摆动。将WU-Link拿在手上走路,手臂摆动的同时,WU-Link也会跟随摆动。因此可以通过“检测到摇晃”指令来判断是否在走路,再通过数值的累加得到具体的步数。

要实现以上功能,可以按以下步骤编写程序:

1.在“重复执行”指令中添加“控制”类别中的“有条件执行”指令,将“板载”类别中的“检测到摇晃”指令作为“有条件执行”指令的条件。

2.将“变量”类别中的“赋值”指令拖动组合到“有条件执行”指令的执行位置,再将“数字与逻辑”类别中的“数学运算”指令拖动组合到“赋值”指令右边,将该指令参数设置为“步数”变量“+”“1”。

3.删除原有的“点阵屏显示数”指令参数,将该指令参数修改“变量”类别中的“步数”“变量”指令,在点阵屏上显示“步数”变量的值。

具体主程序代码如下图所示:

​

试一试:

将以上代码编译后下载到WU-Link,然后将WU-Link拿在手上自然走路,一边走一边心里默数步数,走十步以后和WU-Link上显示的数字比较是否相同?为什么会不同?

第四步:让计步器更精确

  • 一般人走路时,走一步手臂会自然摆动2次。而上一步所编写的程序中,点阵屏直接显示累加的变量“步数”,是真实步数的2倍,因此应该将“步数”除以“2”后再显示。具体如下图所示:

  • 为了进一步提高计步器的精度,还可以在“有条件执行”指令的执行位置再添加“控制”类别中的“延时”指令,设置“延时”指令的参数为“300”毫秒,也就是“0.3”秒。这样间隔“0.3”秒累加一次,可以防止通过故意快速摆动手臂作弊的漏洞。

    完整的主程序代码如下图所示:

试一试:

“延时”300毫秒是否最合适?你认为应该是多少?

拓展与思考

上网搜索专业的计步器软件算法是怎样的?然后进一步修改、调试程序,提高所编写的计步器软件的精确度,使它更具有实用价值。