> micro:bit
查看: 3438|回复: 1

[入门教程] 玩转micro:bit-用BXY玩板载按钮

[复制链接]
本帖最后由 rzyzzxw 于 2018-5-16 21:09 编辑

我要按按钮,A,B,A,B。   
拿出上学时的学习劲头,一边学一边记学习心得。
发现有错,提出来我再改正啊。:handshake
1、比比看谁按的多
这是个官方教程中的例子,很好玩的。
小伙伴们比一比,在10秒钟内,看谁按下A按钮次数多。
列个表格记录下来,不服,再比几次。


这个程序的功能:记录10秒内,A按键被按下的次数,并在10秒后将次数滚动显示出来。

[AppleScript] 纯文本查看 复制代码
from microbit import *
#write your program:
sleep(10000)
display.scroll(str(button_a.get_presses()))


笔记:sleep():设置microbit睡眠的时间,以毫秒为单位,sleep(10000)则是睡眠10秒。
有一个button_a对象被调用,通过它的get_presses()方法得到它被按下的次数。
由于get_presses()返回的是一个整数,但是display.scroll()只接收字符,所以我们需要将整数转换为字符串。我们用这个str()函数(“string”的缩写)可以将整数转换为字符串。

2、养一只电子宠物
作死创客小姐姐有一个视频,用scratch做过一个皮皮虾,老有趣了。
捕获1.PNG
http://www.acfun.cn/v/ac3519565
用bit做皮皮虾,有些难,做简单些的吧。
好吧,简单的可不是一点点呢。

一个非常简单的网络宠物。它很伤心,当你按下按钮A,它会笑。但是如果按下按钮B,它会死亡。
例子来自官方教程:
[AppleScript] 纯文本查看 复制代码
from microbit import *
#write your program:
while True:
  if button_a.is_pressed():
    display.show(Image.HAPPY)
  elif button_b.is_pressed():
    break
  else:
    display.show(Image.SAD)
display.clear()


这个例子我连着写了好几遍,终于明白了一点。
(1)、  if elif else  如果  否则如果 否则  这个在图形化编程中常用的句子
(2)、  break声明跳出循环

3、自己出个题目吧
按下A亮红心,按下B灭掉。
[AppleScript] 纯文本查看 复制代码
from microbit import *
#write your program:
led=Image("00000:""00000:""00000:""00000:""00000:")
while True:
  if button_a.is_pressed():
    display.show(Image.HEART)
  elif button_b.is_pressed():
   display.show(led)

下载运行,成功。其实这个程序有点啰嗦,上面自定义了一张空白图片。
后来发现还有一个清屏的语句可用的。display.clear():$
程序:
[AppleScript] 纯文本查看 复制代码
from microbit import *
#write your program:
while True:
  if button_a.is_pressed():
    display.show(Image.HEART)
  elif button_b.is_pressed():
    display.clear()


模仿,实践。
思考:你有办法检查 两个按钮是否被按下吗?(提示:Python有and(与),or(或)和not(非)逻辑运算符来判断多个事实的正确或错误(产生任何事情True或False结果)。

作业:使用Microbit的按钮制作一个“简易计数器”,要求每次按下按钮A一次计数增加1并在LED阵列上滚动显示出来!
参考:https://mp.weixin.qq.com/s/C_ZZvjpvRw1bG65I7cf3Hg
这个问题要用到设置变量了,是个新问题哦。

本学习内容参考官方教程: http://docs.dfrobot.com.cn/bxy/buttons.html









rzyzzxw  版主
 楼主|

发表于 2018-2-24 09:30:32

本帖最后由 rzyzzxw 于 2018-2-28 14:51 编辑

思考题参考:
[AppleScript] 纯文本查看 复制代码
from microbit import *
#write your program:
while True:
  if button_a.is_pressed() and button_b.is_pressed():
    display.show(Image.HAPPY)
    sleep(1000)
    for i in range(0,4):
      display.show(Image.HEART_SMALL)
      sleep(200)
      display.show(Image.HEART)
      sleep(200)
  elif button_a.is_pressed():
    display.show(Image.HAPPY)
    sleep(1000)
  elif button_b.is_pressed():
    display.show(Image.HEART_SMALL)
    sleep(1000)
  else:
    display.show(Image.SAD)
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
wifi气象站

硬件清单

btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2019 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail