友情提示:380元/半年,儿童学编程,就上码丁实验室。
前面的课程介绍过Micro:bit的运动功能以及Micro:bit支持Python, MicroPython。今天介绍在MicroPython中如何使用Micro:bit的运动功能,并且做一个用运动控制播放音乐的范例。
micro:bit带有一个加速度计。它测量三轴运动:
•X – 从左向右倾斜。
•Y – 向前和向后倾斜。
•Z – 上下移动。
每个轴都有一个返回正数或负数的方法,表示毫米的测量值。当读数为0时,沿着该特定轴是“level”。
例如,这是一个非常简单的精神级别,它使用get_x来测量设备沿着X轴的水平程度:
from microbit import *
while True:
reading= accelerometer.get_x()
if reading > 20:
display.show(“R”)
elif reading < -20:
display.show(“L”)
else:
display.show(“-”)
如果您将设备平放,则应显示 – ; 然而,向左或向右旋转,它将显示 L and R。
我们希望设备不断变化,所以我们使用无限循环(infinite while loop)。在循环体内发生的第一件事是沿着X轴的测量,称为读数(reading)。
因为加速度计非常敏感,所以我的等级是+/- 20。这就是为什么if和elif conditionals( if and elifconditionals)检查> 20和<-20(> 20 and < -20)。 else声明意味着如果读数在-20到20之间,那么我们认为它是水平的。对于每个这些条件,我们使用显示来显示适当的字符。
还有一个Y轴的get_y方法和Z轴的get_z方法。
如果您曾经想过手机知道如何在屏幕上显示图像,那是因为它使用与上述程序完全相同的加速度计。游戏控制器还包含加速度计,以帮助您在游戏中引导和移动。
播放音乐
MicroPython在BBC micro:bit上最美妙的一个方面是如何让您轻松地将设备的不同功能连接在一起。例如,让我们把它变成一种乐器(各种各样的)。
连接扬声器,就像在音乐教程中一样。使用鳄鱼夹将引脚0和GND连接到扬声器的正负输入 – 连接到扬声器的方式并不重要。
如果我们从加速度计读取数据并将其作为音调发生,会发生什么?我们来看看:
from microbit import *
import music
while True:
music.pitch(accelerometer.get_y(), 10)
关键是结束,非常简单。我们将Y轴上的读数作为频率进行编辑,进入music.pitch方法。我们只让它播放10毫秒,因为我们希望音调随着设备的翻转而迅速改变。由于该装置处于无限循环(an infinite whileloop)中,因此它将不断地对Y轴测量的变化作出反应。
就是这样!
向前和向后提示设备。如果沿着Y轴的读数为正,则会改变由the micro:bit播放的音调的音高。
想象一下这些设备的整个交响乐团。你可以演奏曲调吗?您将如何改进程序,使the micro:bit的声音更加音乐化?