-
Notifications
You must be signed in to change notification settings - Fork 31
how_to_io
IO 在计算机中指Input/Output,也就是输入和输出,简称 IO 口。
-
各种 IO 接口都不尽相同,有些特殊的接口是要更大一些,而且一般来说,它附近也会印有标签方便用户理解,如这块板子的底部是按照 0/1/2/3V/GND 的顺序分布在金手指上(计算机中大多都是是从 0 开始计算的)。
-
如果你把金手指接上底座,那么其他更小的蓝白线条相间的引脚(pin)也就能够被用上了,这在第一章的硬件介绍的时候,是有特别指出的,忘了可以查看认识 BPI:bit。
-
在这个 microbit 的模块中,将板子的接口定义为 pinN 对象,其中 N 代表接口的数值,所以 0 号接口也就叫做 pin0 对象,如果你在之后觉得这并不好用,可以通过 import machine 的 Pin 重新定义自己喜欢的引脚名称。
-
下面要写的一个案例,就非常有意思了。
-
我们想要触摸板子的引脚并让它做出对应的反应,看起来这个板子就好像个害羞的小姑娘。
-
题外话:希望我们能把这个设备拟人化,作为我们的“人工智障”第一步~(当然本文肯定不会教你如何学习的人工智能啦,而关于 AI 的部分我们会在之后内容中尝试写一些案例)。
-
准备的代码如下:
from microbit import *
while True:
if pin1.is_touched():
display.show(Image.HAPPY)
else:
display.show(Image.SAD)
-
这个时候你需要一只手触摸在 1 号标签的引脚上,就可以能看到板子由 悲 转 喜 了,如果你松开了,它又会改变表情了,是生气吗?XD
-
程序解释起来如下
- 反复运行
pin1.is_touched()
来判断这个引脚是否有被触摸到。(原理是 ADC 采样) - 运行后返回了 True, 此时显示它为笑脸,否则一直显示苦脸,所以你不去摸它的时候,它会感到悲伤的。(等等!这是哪门子的害羞呢!!!!)
- 反复运行
-
运行效果如下图:
-
-
需要注意的是,因为我们人体(手)有静电,有可能会电到它,导致它的表情有时候会很抽搐。
-
最初上手的时候,我们早已学会了如何控制板子 LED 灯的变化,但那都是别人帮我们做好的,所以今天我们来尝试一下,别人是怎么做到的,掌握它后成为别人常说的 别人家的孩子 吧。
-
为此我准备了以下几个常见的 Led 灯,你会发现它们长短不一,这是为了区分它们的正负极,其中正极是长的那端,所以负极就是短的那端。
-
提示:区分正负极的意图是希望你在接线的时候,元件(LED)正极接电源正极(+),元件(LED)负极接电源负极(-)。
-
-
我们开始第一步吧,先普通的把灯点亮,也就是直接将其(LED)接到电源上,那么就把大的那家伙直接接到板子的 3V 和 GND 上吧,3V 指电源正极(3V),GND 指电源负级,也称接地。
-
-
这样就点亮了一盏灯(注意正负极),但这样点亮的灯是不可以控制的,它只会亮,不能灭。
-
本想拿另外一盏灯接上去做对比的,但我发现一个问题,其他的灯都太短了,所以就交换了以下,用我们的大灯来控制了,可以看到此时接上去灯是不会亮的。
-
-
那么我们就通过下面的代码来控制它的亮和灭吧,可以看图中我使用了 pin2 的引脚来控制。
from microbit import *
pin2.write_digital(1)
-
现在我使用了 Pycharm + Mpfshell 插件的方式来运行这段代码。
-
-
可以看到它亮了起来,那就说明我们可以控制了它的亮,这是不是就和最开始入门教程的一致了?
-
-
那么我们这次就补充一个 Blink(闪烁)的效果吧,使用如下代码。
from microbit import *
while True:
pin2.write_digital(1)
sleep(200)
pin2.write_digital(0)
sleep(1000)
-
运行效果如下图:
-
-
程序解释一下
- 使用 pin2 引脚进行输出 1 , 这会让 LED 存在变成高电平,简单认为上就是这个引脚有电压了,效果相当于直接接了电源正极。(原理上应该理解为两个引脚之间形成电势差)
- 首先先将其点亮,即为
pin2.write_digital(1)
,之后使用sleep(200)
让板子休息 200 毫秒,。 - 然后就将其熄灭,也就是
pin2.write_digital(0)
,之后再休息 1000 毫秒,也就是 1 秒。 - 将上述过程重新来一遍。
-
这次我们动手体验了一下硬件的控制,下次再有其他类似的东西,我们也能够依葫芦画瓢来操作啦,继续努力下去,很快也能成为 别人家的孩子 了吧(误)XD。
-
如果你觉得动手很困难,想看看别人是怎么做的,那就可以到这里查看我们亲手制作的实践视频。