传感器篇:小龟小车使用无源蜂鸣器

使用前,请确保固件已经升级到最新的V200622版本! 
无源蜂鸣器是一款比较常见的电子元件,不少电子设备上的一些能变化的鸣叫声都是无源蜂鸣器发出的。下图就是一款在arduino模块里能找到的一款无源蜂鸣器模块。



什么都别说,立马试试

目前市场上有两款比较常见的无源蜂鸣器,如下图:A款3根线和B款两根有效线。
小伙伴请先确定手中的无源蜂鸣器属于哪一款,然后对照下图进行连接。
如果是A款蜂鸣器的话,则需要连接3根线;如果是B款蜂鸣器的话,则只需要连接2根线。


然后在Python编辑器里输入下面这行代码:

#让A2管脚的蜂鸣器播放1000Hz声音一秒钟
car.buzzer.play(A2, 1000, 1.0)

执行后,无源蜂鸣器就会发出持续一秒钟1000Hz的鸣叫了。


工作原理

无源蜂鸣器模块是靠输入信号的频率来操控鸣叫的,一般从2KHz到5KHz,频率越高则声音越尖。
可以试试下面的代码,来亲身测试一些频率和鸣叫的尖锐程度关系。

#发出一个1000Hz的鸣叫声
car.buzzer.play(A2, 1000, 1)

#发出一个5000Hz的鸣叫声
car.buzzer.play(A2, 5000, 1)

我们这里借助小龟小车能产生PWM波的功能来实现控制无源蜂鸣器所需要的波形。

上面的freq=1000,duty=0.5,即产生一个1000赫兹的方波(高位和低位占比一样)。


挑战一下

下面我们挑战一下,借助无源蜂鸣器让小龟小车能讲机器人的鸟语。

import random

for _ in range(20):
freq = random.randrange(1000, 5000)
t = random.randrange(10, 100) / 1000
car.buzzer.play(A2, freq, t)


播放音乐简谱

小龟小车支持用蜂鸣器播放音乐简谱,语法而且非常简单如下:

#用蜂鸣器播放 dou re mi fa sol
car.buzzer.music(A2, "1 2 3 4 5")

其中第二参数“1 2 3 4 5”就是我们常见的音乐简谱,关于简谱的语法规范,请参考《小龟小车音乐简谱格式规范》


下面我们实践播放《欢乐女神》这首歌


#播放《欢乐女神》
car.buzzer.music(A2, """
3 3 4 5 | 5 4 3 2 | 1 1 2 3 | {3. 2_} 2 - | 3 3 4 5 |

5 4 3 2 | 1 1 2 3 | {2. 1_} 1 - | 2 2 3 1 | 2 3_4_ 3 1 |
""")