本帖最后由 Nana 于 2017-8-10 09:54 编辑

学习Python语言需要与实例相结合才能事半功倍。傻瓜教程来啦───使用Microbit播放音乐,显示图像或文字。

目的:循环: 重复执行一段代码

列表: 存放多个数据或命令

条件语句: 通过if语句,让代码来判断条件

技能:如何在microbit的屏幕上显示图像或文字

如何发现microbit的按键被按下

如何通过扬声器来播放音乐所需软硬件:

Micro:bit主板

数据线

扬声器

Python应用1.jpg (73.59 KB, 下载次数: 12)

Python:Microbit1

2017-8-9 14:13 上传

Microbit与扬声器连接示意图:

2.png (12.06 KB, 下载次数: 15)

Python:Microbit2

2017-8-9 14:23 上传

连线效果图:

3.png (116.01 KB, 下载次数: 11)

Python:Microbit3

2017-8-9 14:23 上传

所需代码:

[Python] 纯文本查看 复制代码# musical quiz buzzer for micro:bit

# [url=http://www.dfrobot.com.cn]www.dfrobot.com.cn[/url]

from microbit import *

import music

music.set_tempo(bpm=220)

Player_A_tune = ["c", "d", "e", "f", "g"]

Player_B_tune = ["g", "f", "e", "d", "c"]

display.scroll("Quiz buzzer")

while True:

display.show(Image.HAPPY)

if button_a.was_pressed():

display.show("A")

music.play(Player_A_tune)

sleep(2000)

elif button_b.was_pressed():

display.show("B")

music.play(Player_B_tune)

sleep(2000)

sleep(20)

运行成功效果:

4.png (84.05 KB, 下载次数: 7)

Python:Microbit4

2017-8-9 14:23 上传

6.png (110.87 KB, 下载次数: 10)

Python:Microbit6

2017-8-9 14:23 上传

5.png (109.74 KB, 下载次数: 8)

Python:Microbit5

2017-8-9 14:23 上传

代码详解:4

5from microbit import *

import music第4行:你可以使用这个模块里面的成员函数。导入的模块越多,可以调用的成员函数也越多,但会占用更多的内存。你可以通过Microbit模块控制屏幕显示、检测按钮状态、音乐播放等。

7

8

9

10music.set_tempo(bpm=220)

Player_A_tune = ["c", "d", "e", "f", "g"]

Player_B_tune = ["g", "f", "e", "d", "c"]

第7行:控制当按键按下时音乐的播放速度,数值越大,播放越快。第8行和第10行:定义2个列表,均含5个字符。这些字符代表着音符的名字。

7.png (7.26 KB, 下载次数: 10)

Python:Microbit7

2017-8-9 14:23 上传

你可以自己写出更好的曲调,这里还有一些曲调可供参考:

"c#:4" :播放c调4个节拍

"db5:1" :播放D调1个节拍,5代表播放比C调多一个八度音阶(即音阶4)

"eb3:3" 播放E调3个节拍,第一个3代表播放比C调多一个八度音阶(即音阶4)12

13

14

15

16

17

18

19

20

21

22

23

24display.scroll("Quiz buzzer")

while True:

display.show(Image.HAPPY)

if button_a.was_pressed():

display.show("A")

music.play(Player_A_tune)

sleep(2000)

elif button_b.was_pressed():

display.show("B")

music.play(Player_B_tune)

sleep(2000)

sleep(20)

第12行:在屏幕上滚动显示字符' Quiz buzzer '/ " Quiz buzzer "。必须是英文字体的单引号或双引号。

第14行:while循环,后面的条件满足时,将会执行后面的语句,执行完后,在判断条件是否满足,以此循环,直到条件不满足时退出。这里的True表示条件为真,那么程序会一直运行14到24行的代码。

8.png (9.71 KB, 下载次数: 8)

Python:Microbit8

2017-8-9 14:23 上传

缩进是判断逻辑语句范围的标准,在python中非常重要。Python小白们要重视啊~

第15行:显示一个笑脸。

第16到19行与第20到23行的功能相似:判断按键是否按下。如果按键a按下,显示‘A’播放列表‘Player_A_tune’,睡眠2秒,如果按键b按下,显示‘B’播放列表‘Player_B_tune’。

第24行:让程序睡眠20毫秒,然后继续进入循环。

下面是microbit的音乐代码,有一些错误供大家修改,‘#’可以注释(屏蔽)一行代码,可以用来判断BUG的位置。

[Python] 纯文本查看 复制代码# musical quiz buzzer for micro:bit

# [url=http://www.dfrobot.com.cn]www.dfrobot.com.cn[/url]

from microbit import *

import music

music.set_tempo(bpm=220)

PLAYER_A_TUNE = ["c", "d", "e", "f", "g"]

PLAYER_B_TUNE = ["g", "f", "e", "d", "c"]

display.scroll("Quiz buzzer")

while True:

display.show(Image.HAPPY)

if button_a.was_pressed():

display.show("A")

music.play(player_a_tune)

sleep(2000)

elif button_b.was_pressed()

display.show("B")

music.play(player_b_tune)

sleep(2000)

sleep(20)

*Python是区分大小写的

*Python中缩进很重要

如果你将代码调试出来了,你可以试试同时按下2个按键。你会发现它会显示a按键被按下。这是为什么?能不能修复它?(预知后事如何,请待下回分解

9.png (4.05 KB, 下载次数: 10)

Python:Microbit9

2017-8-9 14:23 上传

)

micropython中文社区 microbit_UpyCraft-micropython: 让Microbit发声相关推荐

  1. micropython中文社区 microbit_microbit如何烧录micropython固件

    欢迎大家加入我们的uPyCraft-Micropython QQ群: 619558168 Microbit硬件上是由cmsis-dap芯片和nrf51822芯片两部分构成.Cmsis-dap芯片负责烧 ...

  2. micropython中文社区 socket通讯_基于MicroPython结合ESP8266模块实现TCP通信(AT指令版)...

    转载请注明文章来源,更多教程可自助参考docs.tpyboard.com,QQ技术交流群:157816561,公众号:MicroPython玩家汇 实验目的 - 学习ESP8266模块(ESP-01) ...

  3. micropython中文社区 socket通讯_基于micropython的TCP客户端编程

    python概述 python现在是一门比较火的语言,如果能够使用python编写嵌入式的应用程序,那该有多好呀,现在micropython软件框架的出现,使得python进入了嵌入式领域. pyth ...

  4. micropython中文社区 socket通讯_python网络编程学习笔记(3):socket网络服务器

    服务器和客户端程序很类似,上节学习了客户端程序,这一节将仔细学习一下利用socket建立TCP服务器和UDP服务器. 1.TCP连接的建立方法 客户端在建立一个TCP连接时一般需要两步,而服务器的这个 ...

  5. micropython中文社区-micropython支持中文啦!

    [Python] 纯文本查看 复制代码import urequests as requests from machine import Pin,I2C,SPI import time import n ...

  6. micropython中文教程 嵌入式详细教程_MicroPython中文教程 v2.0 嵌入式详细教程 PDF 完整版...

    给大家带来的一篇关于MicroPython相关的电子文档资源,介绍了关于MicroPython中文教程.MicroPython.嵌入式方面的内容,本书是由Python官网出版,格式为PDF,资源大小6 ...

  7. 中文谐音怎么读_AOS中文社区创始人大豪:零隐链是AOS最恰当的中文表达

    AOS在进入中文市场很长一段时间里,都只是叫AOS,刚开始的时候,用户在中文搜索引擎检索AOS,搜到的信息与AOS公链几乎没有联系.市场很疑惑,BTC叫比特币.ETH叫以太坊.EOS叫柚子,而AOS在 ...

  8. python语言中文社区-python语言中文

    广告关闭 2017年12月,云+社区对外发布,从最开始的技术博客到现在拥有多个社区产品.未来,我们一起乘风破浪,创造无限可能. 为了得到一个可以正常返回的 url ,需要修改示例中的 secretid ...

  9. python语言中文社区-python的汉语

    广告关闭 2017年12月,云+社区对外发布,从最开始的技术博客到现在拥有多个社区产品.未来,我们一起乘风破浪,创造无限可能. sdk 3.0 实现了统一化,各个语言版本的 sdk具备使用方法相同.接 ...

最新文章

  1. Open vSwitch(OVS)源码编译Ubuntu16.04,Linux内核版本4.15
  2. Linux下安装Weblogic10.3.6并创建简单集群测试
  3. UDEV管理RAC共享存储
  4. Silverlight 2 相关文章汇总
  5. python基础教程:将一个列表切分成多个小列表
  6. W: 无法下载 http://ppa.launchpad.net/fcitx-team/nightly/ubuntu/dists/jessie/main/binary-amd64/Packages
  7. Eureka-服务注册
  8. 【Java版】将汉字转化为gb2312编码
  9. JDBC(二)驱动程序类型发展历程
  10. JDK8HashMap的扩容核心解读,尾插法
  11. java reducebykey_Spark入门(五)--Spark的reduce和reduceByKey
  12. 新人起步,扬帆起航!
  13. 蓝点中文_linux2.0 实验二 简单shell命令
  14. Docker基础(3)——基础网络模型
  15. 关于小米Ruby15.6笔记本驱动黑苹果博通蓝牙的补充
  16. Python实现常用的假设检验
  17. 智慧商圈,对接微信、支付宝、云闪付实现自动积分
  18. Matlab2018a崩溃解决的办法No sandbox or build area path
  19. 推荐一款优秀的硬盘空间管理工具软件-TreeSize Free
  20. 微信小程序将时间戳转为日期格式

热门文章

  1. 题解 P1985 【[USACO07OPEN]翻转棋】
  2. 薪酬 | 2020年 DBA薪资报告:你的待遇是否受到疫情影响?
  3. tongue读音解析实例
  4. 《林超:给年轻人的跨学科通识课》导图 06:复杂性科学模型
  5. 怎么批量从NCBI上下载基因序列
  6. 人工智能融入社交交友 小冰比非诚勿扰更有诚意
  7. 颜色值表述区别:#FFFFFF,rgb(256, 256, 256),0xFFFFFF
  8. Swift 2021 生态调研报告
  9. 算法实战(一)两数之和
  10. 2022年9月11日:人生第一次相亲记录