【掌控】声音传感器—噪音计

2018-11-201.7万
精华项目
AI 快速预览详细 收起
本文介绍了如何使用掌控板和声音传感器制作迷你噪音计。通过OLED显示屏和RGB灯显示不同分贝等级的声音情况,帮助用户了解所处的声音环境。项目难度适中,适合青少年科创比赛和STEM教育项目。
迷你噪音计
【掌控】声音传感器—噪音计图5

最近,读了陶渊明的田园诗---《饮酒(其五)》

结庐在人境,而无车马喧。
问君何能尔,心远地自偏。
采菊东篱下,悠然见南山。
山气日夕佳,飞鸟相与还。
此中有真意,欲辨已忘言


        面对喧嚣的城市,紧张的工作,我们渴望采菊东篱下,悠然见南山的生活,但是身边噪音随处可见,他正在损害听力,使人焦虑,影响我们身心健康,那么我们身处在一个什么样的声音环境?想知道我们身边的噪音有多少嘈杂?让我们一起设计制作迷你版噪音计,检测我们身边噪音,保护我们的身体健康吧
一、     设计思路:噪音计分为四大模块:
1.主界面:远离噪音 保护身心

【掌控】声音传感器—噪音计图1
2.Sound>12040dD)声音正常 安静舒适  绿灯亮  人的表情:笑

【掌控】声音传感器—噪音计图2
3.Sound>30070 dD)声音嘈杂 建议离开  蓝灯亮  人的表情:怒

【掌控】声音传感器—噪音计图3
4.Sound>600100dD)声音刺耳 马上离开  红灯亮  人的表情:哭

【掌控】声音传感器—噪音计图4

二、代码编写

[mw_shl_code=python,true]while True:
    display.fill(0)   #清屏
    display.DispChar('远离噪音 保护身心',20,0)      
    display.DispChar("11-18:",90,45)    #显示日期到90,45
    #display.text("%d" % (sound.read()), 35, 48)  #显示板载声音传感器
    display.blit(fb1,40,16)  #将fb1帧缓存送至oled显示,起始位(40,16)
    display.show()     #刷新
    time.sleep_ms(10) #延时10ms     
    if sound.read()  <500 and sound.read() >300 :
         display.fill(0)   #清屏
         display.DispChar('声音刺耳 马上离开',20,0)      
         display.text("%d" % (sound.read()), 100, 45)  #显示板载声音传感器
         display.blit(fb4,50,16)  #将fb1帧缓存送至oled显示,起始位(50,16)
         display.show()     #刷新
         time.sleep_ms(10) #延时10ms        
         rgb[0] = (255,0,0)    # 设置红色
         rgb[1] = (255,0,0)  # 设定为红色
         rgb[2] = (255,0,0)   # 设置为红色
         rgb.write()
   
    else:
         if sound.read() >240 and sound.read() >120:
             display.fill(0)   #清屏
             display.DispChar('声音嘈杂 建议离开',20,0)      
             #display.DispChar("11-18:",90,45)    #显示日期到90,45
             display.text("%d" % (sound.read()), 100, 45)  #显示板载声音传感器
             display.blit(fb3,50,16)  #将fb1帧缓存送至oled显示,起始位(50,16)
             display.show()     #刷新
             time.sleep_ms(10) #延时10ms
             rgb[0] = (0,255,0)    # 设置绿色
             rgb[1] = (0,255,0)  # 设定为绿色
             rgb[2] = (0,255,0)   # 设置为绿色
             rgb.write()  
               
         else:
             if sound.read() <100 and sound.read()>50 :
                    display.fill(0)   #清屏
                    display.DispChar('声音正常 安静舒适',20,0)      
                    #display.DispChar("11-18:",90,45)    #显示日期到90,45
                    display.text("%d" % (sound.read()), 100, 45)  #显示板载声音传感器
                    display.blit(fb2,50,16)  #将fb1帧缓存送至oled显示,起始位(50,16)
                    display.show()     #刷新
                    time.sleep_ms(10) #延时10ms                     
                    rgb[0] = (0,0,255)    # 设置蓝色
                    rgb[1] = (0,0,255)  # 设定为蓝色
                    rgb[2] = (0,0,255)   # 设置为蓝色
                    rgb.write()
            
             else:
               if sound.read() < 50 :
                 rgb[0] = (0,0,0)   
                 rgb[1] = (0,0,0)  
                 rgb[2] = (0,0,0)   
                 rgb.write()  
[/mw_shl_code]

三、 知识扩展
1.分贝参照表
3040分贝是比较安静的正常环境;
70分贝以上干扰谈话,造成心烦意乱,精神不集中,影响工作效率,甚至发生事故;
90分贝以上的噪声环境,工作或生活会严重影响听力和导致其他疾病的发生。
2. 噪声级
0-30 很安静,几乎感觉不到
30   文静图书馆
40   安静公园
50   文静的办公室
60   正在开会的会议室
70   嘈杂的小巷 电话铃声
80   嘈杂的大街闹钟声
90   嘈杂的工厂
100  非常嘈杂

四、视频回放

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(8)
MP9
MP9
老师,求分享~感谢~~
三春牛-创客
三春牛-创客
厉害
三春牛-创客
三春牛-创客
谢谢分享!
rzegkly
rzegkly
作者
回复三春牛-创客
谢谢
三春牛-创客
三春牛-创客
作品做得不错!
戴眼镜的冰冰
戴眼镜的冰冰
您好 这个电路和代码可以给俺一份嘛 万分感激?
xjsunshine
xjsunshine
可否共享一下完整代码?
rzegkly
rzegkly
作者
回复xjsunshine
可以,相互学习,一起分享
rzegkly
rzegkly
作者
朱老师多向您学习,
rzyzzxw
rzyzzxw回复rzegkly
设计个外壳,加上锂电供电,就成可穿戴噪音计。
rzyzzxw
rzyzzxw
康老师作品很赞。
- 没有更多了 -