好好搭搭官方文档
  • 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也具有识别方向的功能。

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

“校准板载指南针”指令:

属于“点阵屏”类别指令;使用这个指令可以校准板载的电子罗盘。

由于地球磁场非常微弱,因此电子罗盘容易受到各种电子产品的干扰。为了提高数据准确性,电子罗盘在使用前一般都需要校准,让电子罗盘的数值更加准确。

“读板载指南针角度”指令:

属于“点阵屏”类别指令;使用这个指令可以读取板载电子罗盘的角度值。所读取数值的范围是(0-360),将WU-Link正面向上摆放,所读取的角度值和方向之间的关系是:“0”度—正北方、“90”度—正东方、“180”度——正南方、“270”度——正西方。

作品制作

要制作指南针,需要先运行校准指令,校准板载的电子罗盘;然后可以在点阵屏上直接显示WU-Link所指示方向的角度值,也可以在点阵屏上显示表示方向的字母。

第一步:校准板载电子罗盘

电子罗盘使用之间必须先进行校准。由于校准程序只需要在程序一开始的时候运行一次,因此可以将“校准板载指南针”指令作为“初始化”指令。

电子罗盘的校准过程会自动完成,为了让校准过程操作更加明确,可以在“校准板载指南针”指令前面添加“点阵屏”清除指令和“点阵屏显示文本”指令,修改“点阵屏显示文本”指令的参数为“Go!”;在“校准板载指南针”指令后面再添加“点阵屏”清除指令和“点阵屏显示文本”指令,修改第二个“点阵屏显示文本”指令“的参数为“OK”。这样运行校准指令之前会有提示开始校准程序,完成后也有提示已经完成校准。

具体初始化程序代码如下图所示:

WU-Link电子罗盘校准操作可以按以下步骤操作:

  1. 运行上图所示的校准程序。

  2. 程序运行以后,点阵屏会显示“Go!”提示文本,这时让WU-Link在水平位置上旋转(比如放在桌面上旋转)。

  3. 旋转一定时间以后(根据周围环境的不同,一般半分钟左右),当点阵屏显示“OK”时,表明电子罗盘校准完成。

想一想:

除了以上介绍的校准提示方法,想一想,你还可以使用什么方法提示操作者开始校准、完成校准?

第二步:在点阵屏上显示方向角度值

电子罗盘校准完成后,就可以用它来指示方向。一般可以采用在点阵屏上显示方向角度值的形式指示方向。具体可以按以下步骤操作:

  1. 将“点阵屏”类别中的“点阵屏清除”、“点阵屏显示数”指令拖动到编程区,与默认的“重复执行”指令组合,将“板载”类别中的“读板载指南针角度”指令拖动到“点阵屏显示数”指令的参数位置,作为它的参数。

  2. 将“控制”类别中的“延时”指令拖动组合到“点阵屏显示数”指令的下方,修改它的参数值为“200”毫秒。

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

试一试:

将WU-Link从北面开始,顺时针或者逆时针旋转,观察点阵屏上显示的角度值,你发现有什么规律?

第三步:在点阵屏上显示方向字母

WU-Link电子罗盘显示方向的角度值按顺时针方向从0度到360度依次递增。正北方是0度、正东方是90度、正南方是180度、正西方是270度(如下图所示)。

在WU-Link上显示方向的角度值并不直观,还可以采用显示四个方向英文字母的方式:E(东)、S(南)、W(西)、N(北)。

要在点阵屏上显示这些表示方向的字母,首先需要创建变量保存角度值,然后根据变量值进行判断、显示相应的字母。具体可以按以下步骤操作:

1.单击“变量”类别中的“创建变量”按钮,在打开的“新建变量”对话框中,输入需要创建的变量名称“角度”,最后单击“确定”按钮完成变量创建。

2.变量创建完成后,还需要初始化。将“变量”类别中的“声明变量类型并赋值”指令拖动到编程区,组合到原有初始化指令的下方。确认“声明变量类型并赋值”指令所声明的变量名称是“角度”,类型为“整数”。

3.将“数学与逻辑”类别中的“数值”指令拖动组合到“声明变量类型并赋值”指令右边,将所创建的变量"角度"赋值为“0”。 完整的初始化程序代码如下图所示:

4.将“变量”类别中的“赋值”指令拖动组合到默认的“重复执行”指令里,确认指令第一个参数是“角度”变量,再将“板载”类别中的“读板载指南针角度”指令拖动组合到“赋值”指令最后一个参数的位置,作为它的参数。

5.将“控制”类别中的“有条件执行”指令拖动组合到“赋值”指令的下方;单击指令左上角的“设置”按钮,在打开的设置窗口中,将左边的“否则如果”图标拖动两个组合到右边“如果”图标的下方,再拖动左边的“否则”图标、组合到右边“否则如果”图标的下方(如下图所示);设置完成后,再次单击指令左上角的“设置”按钮关闭设置窗口。

6.将“数学与逻辑”类别中的“逻辑关系”指令作为“有条件执行”指令的条件,确认它是默认的“且”逻辑关系;再添加两个“逻辑比较”指令作为“逻辑关系”指令的两个参数,设置第一个“逻辑比较”指令为“角度”变量“”“45”,第二个“逻辑比较”指令为“角度”变量“≤”“135”。

7.将“点阵屏”类别中的“点阵屏显示文本”指令拖动组合到“有条件执行”指令的执行位置,修改这个指令的文本参数为“E”。

8.右键单击“有条件执行”指令的条件——“逻辑关系”指令,在打开的右键菜单中选择“复制”选项,将复制的“逻辑关系”指令拖动组合到“有条件执行”指令第一个“否则如果”的条件位置,修改这个指令第一个“逻辑比较”指令为“角度”变量“”“135”,第二个“逻辑比较”指令为“角度”变量“≤”“225”。

9.再次单击复制“逻辑关系”指令、添加到“有条件执行”指令第二个“否则如果”的条件位置,修改这个指令第一个“逻辑比较”指令为“角度”变量“”“225”,第二个“逻辑比较”指令为“角度”变量“≤”“315”。

10.复制三个“点阵屏显示文本”指令,添加到两个“否则如果”的执行位置,以及最后的“否则”的执行位置;依次修改这个三个指令的文本参数为“S”、“W”、“N”。 完整的主程序代码如下图所示:

试一试:

以上程序只能判断、显示四个方向;能不能修改程序,再增加“东南”、“西南”、“西北”、“东北”这四个方向的判断、显示?

拓展与思考

“用角度值指示方向”这种方法比较精确,可以准确得知方向的数值;“用字母指示方向”这个方法比较直观,能够马上知道当前的方向。能不能编写一个兼顾这两种方法的程序,用按键根据需要切换显示。