Skip to content

「图形化编程」Micro:bit 按钮魔术

huangdongmoshu

今天要做的这个小魔术很简单,但是很有趣,可以在你的小伙伴面前炫一把,让他们大吃一惊。

先来看看效果吧,在开始时,按下按钮 A,显示 A,按下按钮 B,显示 B,重复一次,然后晃动一下 micro:bit 板子,大喊一声,变,两个按钮就交换了位置,按下按钮 A,显示 B,按下按钮 B,显示 A,再晃动一下 板子,大喊一声,变,就变回来了,按下按钮 A,显示 A,按下按钮 B,显示 B

huangdongmoshu

最后有实机演示效果视频

实现原理

这回我们要用到一个新模块,当 振动 事件,

zhendong

它的作用是检测 micro:bit 板子有没有振动,如果有,则执行事件模块里的代码,它是我们这个小魔术的核心,我们会用它来交换两个按钮,我们需要一个变量来表明 A 按钮 按下 应该显示 A 还是 B,而 按钮 B 的逻辑和 按钮 A 刚好相反,当振动时,对这个变量 取反,这样就改变两个按钮的状态啦,按钮 A 按下显示 B,按钮 B 按下显示 A,然后再振动一次,再对这个变量取反,状态又变回最初的情况啦

代码实现

当开机时

初始化非常简单,只有一个模块

  1. 初始化一个 变量 AxianshiA,并设置为 true
    kaiji

按钮事件

按钮 A 和 按钮 B 的事件刚好相反,一起说

  1. 当 按钮 A 按下时,如果 AxianshiA 为 true,显示字符串 A
  2. 否则 AxianshiA 为 false 显示字符串 B
  3. 让 字符串 在屏幕 显示 100 毫秒
  4. 清空屏幕,字符串消失
  5. 当 按钮 B 按下时,如果 AxianshiA 为 true,显示字符串 B
  6. 否则 AxianshiA 为 false,显示字符串 A
  7. 让 字符串 在屏幕 显示 100 毫秒
  8. 清空屏幕,字符串消失

anniushijian 2

当 振动 事件

最最重要也最简单的 交换部分,

  1. 当振动时,将 AxianshiA 设置为 非 AxianshiA,这个 非 AxianshiA 是一个取反操作,当 AxianshiA 为 true 时,取反就是 false,再振动一次,再进行一次取反,就是对 false 取反,就变成 true
  2. 显示一个鬼脸图案
  3. 暂停 100 ms,让鬼脸图案停留 100 ms
  4. 然后清空屏幕

就完成啦

jiaohuan

真机演示

https://v.youku.com/v_show/id_XNDQ0MzkxMjk0NA==.html?spm=a2h3j.8428770.3416059.1

思考题

加鬼脸的目的是给你自己一个提示,两个按钮已经交换了,当熟练了之后,就把那个鬼脸图案去掉吧,聪明的你一定知道该怎么做啦

hex 文件

这个教程的 hex 文件可以在这个地址下载(请右键另存为)

0 0 votes
Article Rating
Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x