Skip to content

活动

水平仪

中级 | MakeCode, Python | LED显示器, 加速计, 声音 | 传感器, 关系运算符, 布尔逻辑, 选择

第 1 步:制作

它是什么?

制作一个工具,用来确保照片、架子、或者是工作平面是水平的。 新版micro:bit的内置麦克风通过声音提示让你轻松保持水平。

介绍

编程指南

学习目标

  • 如何使用加速传感器测量角度
  • 什么是“纵向”和“横向”
  • 如何结合传感器两个方向的读数来找到一个水平的位置。

工作原理

图片显示了micro:bit的纵横向倾斜
  • micro:bit的加速计可以测量两个方向上的倾斜:上下(纵向)以及左右(横向)。 本项目以此来显示micro:bit何时处于水平状态,当水平时将在LED显示屏上提示并发出声音,这在悬挂照片或者是制作工作平面时非常有用。
  • 程序使用loop循环不断测量micro:bit的角度。
  • 如果加速计检测到micro:bit的倾斜角度在+5-5度之间,包括纵向横向,那么我们就可以认为它处于水平位置。 程序将在LED显示屏上输出一个对勾,并且播放提示音。
  • 将耳机连接到micro:bit的引脚0和GND来听取声音,如果你有新版的micro:bit,其内置的扬声器可以让你直接听到声音。
  • 如果纵向或者横向的倾斜度超过了+5或者是-5度的范围,那么程序将在LED显示屏上输出一个大叉,并且停止播放提示音。

所需材料

  • 一个micro:bit
  • MakeCode或者Python编辑器
  • 电池盒(选配)

第 2 步:编程

1from microbit import *
2import music
3
4# Uses accelerometer readings in the x and y axis 
5# and also allows the micro:bit to be slightly off-level
6# to make it work better in practice
7while True:
8    if accelerometer.get_x() > -10 and accelerometer.get_x() < 10 and accelerometer.get_y() > -10 and accelerometer.get_y() < 10:
9        display.show(Image.YES)
10        music.play('C5:1')
11        sleep(200)
12    else:
13        display.show(Image.NO)
14

第 3 步:完善

  • 你能根据角度来改变音乐音调吗?
  • 你能编程制作在LED显示屏上移动的“泡泡”吗?就像真正的水平仪那样。