传感器篇:小龟小车使用无源蜂鸣器
使用前,请确保固件已经升级到最新的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 |
""")