Skip to content

活动

micro:bit宠物

中级 | MakeCode, Python | LED显示器, 加速计, 扬声器​​​​, 触摸标志 | 变量, 迭代, 选择

第 1 步:制作

它是什么?

编程制作你自己的电子宠物。 The micro:bit's built-in speaker makes it even more fun with its expressive sounds.

介绍

编程指南

学习目标

  • 如何使用变量和循环来制作简单的计时器。
  • 如何使用selection(选择)在不同的时间触发不同的事件。
  • 让micro:bit看上去似乎停止运行程序的小窍门!

工作原理

  • 电子宠物在1990年代发明于日本,并很快成为风靡全球的玩具。
  • 它们是可以挂在钥匙圈上的小徽章。 简单显示的小动物。 你必须通过按键和玩简单游戏的方式照顾它,并与它进行互动。 如果你忽视它,不给它喂食或做清洁,它就会变得忧伤、行为不端或生病。
  • 该程序使用名为timer的变量来跟踪你忽视宠物的时间。 用forever循环将timer的值每过一秒钟(1000毫秒)增加1。
  • 如果timer的值到了20,那么你的宠物将在LED显示屏上显示一个哀伤的脸,同时通过内置的扬声器发出一声哀叹。
  • 如果达到30,那么宠物将入睡。
  • 如果到了40,那么宠物将发出神秘的声音并且死亡。 程序使用“set built-in speaker off”模块来防止扬声器发出任何其它声响。 使用“while true”循环来确保LED显示屏上仅显示骷髅头图像。
  • 只要你一直和你的宠物保持互动,它就会活着并且快乐! 描一下徽标使其快乐,或摇晃让它咯咯笑。 这将重置timer为0。
  • 如果你的宠物死了,可以按下micro:bit背面的reset按键来让其复活。

所需材料

  • V2 micro:bit with sound (or MakeCode simulator)
  • MakeCode或者Python编辑器
  • 电池盒(选配)

第 2 步:编程

1from microbit import *
2import audio
3
4timer = 0
5display.show(Image(
6    "00000:"
7    "09090:"
8    "00000:"
9    "09990:"
10    "00000"))
11audio.play(Sound.HELLO)
12
13while True:
14    if pin_logo.is_touched():
15        timer = 0
16        display.show(Image.HAPPY)
17        audio.play(Sound.HAPPY)
18    elif accelerometer.was_gesture('shake'):
19        timer = 0
20        display.show(Image.SURPRISED)
21        audio.play(Sound.GIGGLE)
22    else:
23        sleep(500)
24        timer += 0.5
25        # sleep for half a second only to make it react more quickly to logo touch & shake
26        
27    if timer == 20:
28        display.show(Image.SAD)
29        audio.play(Sound.SAD)
30    elif timer == 30:
31        display.show(Image.ASLEEP)
32        audio.play(Sound.YAWN)
33    elif timer == 40:
34        display.show(Image.SKULL)
35        audio.play(Sound.MYSTERIOUS)
36        break
37    

第 3 步:完善

  • 尝试你的宠物生命不同时间段的体验。
  • 使用micro:bit的LED显示屏来创作你自定义的面部表情
  • Add more variables to track how hungry or dirty your pet is, and add new interactions to feed or clean your pet, for example by pressing buttons or making a loud sound picked up by the micro:bit's built-in microphone.