蘑菇云【行空板Python入门教程】第三课:多功能提醒器

多功能提醒器

生活中,我们对于声音并不陌生,美妙动听的音乐令人陶醉,节奏感十足的鸣笛声令人警醒,然而,当音量达到一定的强度,妨碍到人们正常休息、学习和工作,声音就会成为噪音。

与此同时,闹钟在许多小伙伴的生活中也有着举足轻重的作用,它能及时提醒我们时间。

在这节课上,让我们一起来制作一个行空板多功能提醒器吧,一方面监测环境音量并在音量过大时进行警告,另一方面实时显示时间,在达到指定时间后提醒我们。

在这里插入图片描述

任务目标

功能1:将通过行空板麦克风检测到的环境音量显示在屏幕上,同时,设定一个噪音阈值,当音量超过阈值时使蜂鸣器发声进行警告。

功能2:在屏幕上显示一个时钟,当到达设定的时间后,进行提醒。

行空板屏幕-闹钟显示

行空板屏幕-闹钟显示

知识点

1、了解声音及相关概念

2、认识麦克风和蜂鸣器

3、学习使用Pinpong库使蜂鸣器发声的方法

4、学习使用unihiker库检测环境音量的方法

5、学习使用unihiker库显示填充矩形、填充时钟的方法

材料清单
硬件清单:

行空板教程入门学习硬件材料

软件使用:Mind+编程软件x1

知识储备

1、声音及相关概念

物理中声音是由物体振动发生的,正在发声的物体叫做声源。

物体在一秒钟之内振动的次数叫做频率,单位是赫兹。

响度是指人主观上感觉声音的大小,俗称音量。响度由振幅和与声源之间的距离决定,振幅越大,响度越大,和声源的距离越小,响度越大。

音调是指声音的高低(高音、低音),由频率决定,频率越高,音调越高,这节课上我们将会学习通过控制频率的方式来设置音调。

2、麦克风

麦克风也叫传声器,是一种能够将声音信号转换成电信号的器件,可用于检测语音和声音响度,行空板的麦克风是内置在板子的单板机系统上的,这节课上我们使用其环境音量检测功能,检测时返回的是一个百分量,范围在0%-100%,声音越响数值越高。

行空板开发板-麦克风

3、蜂鸣器

蜂鸣器是一种能够发出类似蜂鸣声音的器件。行空板的蜂鸣器是内置在板子的单片机系统上的。

行空板开发板蜂鸣器器件

同时,单片机系统上的所有元器件都有各自的功能引脚,蜂鸣器的引脚为P26,可见下图。

行空板引脚功能图

4、Pinpong库Tone类中的常见方法

Pinpong库中的Tone类可以控制蜂鸣器发声,在使用前,我们需要先导入Pinpong库,初始化行空板,实例化Tone类来创建一个对象。

from pinpong.board import Board,Pin,Tone # 从pinpong.board包中导入Board,Pin,Tone模块

Board().begin() # 初始化,选择板型和端口号,不输入则进行自动识别

tone = Tone(Pin(Pin.P26)) # 将Pin传入Tone中实现模拟输出

其中,Pin、Tone与Board 类似,都是pinpong.board包下的模块。“P26”指的是板子上蜂鸣器所在的引脚,“Pin(Pin.P26)”是在创建一个引脚对象,最后将这个引脚对象传入Tone类中进行实例化,创建得到一个tone对象。

同时,Tone类的方法有很多,我们只使用其中的一部分,在编程时,通过“对象.方法名()”的形式来实现功能。

(1)freq()方法设置蜂鸣器发声的频率

tone.freq(200) # 按照设置的频率200播放

其中,“200”表示设定的具体的频率大小。

(2)on()方法启动蜂鸣器

tone.on() # 打开蜂鸣器

(3)off()方法关闭蜂鸣器

tone.off() # 关闭蜂鸣器

5、Unihiker库GUI类中的常见方法

GUI类中的方法有很多,我们只使用其中的一部分,在编程时,通过“对象.方法名()”的形式来实现功能。

(1)fill_rect()方法显示填充矩形

GUI类中的fill_rect()方法可以实现在行空板屏幕上显示一个填充矩形。

gui.fill_rect(x=75, y=30, w=90, h=30, color=“#00ff00”) # 显示第一个填充矩形

gui.fill_rect(x=75, y=70, w=90, h=30, color=“#00ff00”) # 显示第二个填充矩形

其中,参数x和y分别表示填充矩形所在的横纵坐标位置,w和h表示填充矩形的宽度和高度,color对应要填充的颜色。

(2)fill_clock()方法显示填充时钟

GUI类中的fill_clock()方法可以实现在行空板屏幕上显示一个填充时钟。

clock = gui.fill_clock(x=120, y=230, r=60, h=3, m=4, s=5, color=(255, 255, 255), fill&

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值