Package: haas-python-noise
HaaS Python介绍HaaS Python是阿里云IoT团队最新研发的一套低代码编程框架，兼容MicroPython编程规范，依托HaaS平台软硬件积木提供AI、支付、蓝牙配网、云连接、UI等物联网场景常用的能力，从而解决了物联网应用开发难的问题。有了Python轻应用框架，物联网编程不再局限于专业软件开发人员，一般的技术员也可以快速实现复杂的物联网需求。
更多HaaS Python介绍和开发资料见HaaS Python官网,创意案例,硬件积木HaaS Python is a set of low-code programming frameworks newly developed by Alibaba Cloud IoT team. It is compatible with MicroPython programming specifications. It relies on the hardware and software building blocks of the HaaS platform to provide capabilities commonly used in IoT scenarios such as AI, payment, Bluetooth network configuration, cloud connection, and UI. Solve the difficult problem of IoT application development. With the Python light application framework, IoT programming is no longer limited to professional software developers, and general technicians can quickly implement complex IoT requirements.
For more HaaS Python introduction and development materials, seeHaaS Python official website,Creative Case,Hardware Building Blocks安装方法在HaaS Python官网下载开发板对应的固件，并完成固件烧录Download the firmware corresponding to the development board atHaaS Python websiteand complete the firmware burning在开发板上运行以下命令完成安装和使用,如果您在使用过程中遇到问题，欢迎在github上向我们提交issue，我们的工程师会及时解答Run the following commands on the development board to complete the installation and use. If you encounter problems during use, please submit an issue to us ongithub, Our engineers will answer in timeimport upip
upip.install("haas-python-noise")
import haas-python-noise麦克风噪音测量传感器 - Noise一、产品简介麦克风噪音测量传感器，通过单片机对信号的简单处理，可实环境音检测、声控开关这样的有趣实验。传感器模块仅占用一个IO口，通过电压强度（mV）来判断音量大小。注：该模块仅能测量到音量变化，无法判断音色、音频。引脚定义：V：接 3.3V/5VG：接 GNDS：接 ADC二、技术参数工作电压：5V DC操作电压：5V DC规格尺寸：33.0mm * 14.0mm * 1.6mm小工作电压：4.5V DC大工作电压：5.5V DC工作电流：260 ｕA频率范围：100 - 10000Hz灵敏度：-50dB兼容接口：2.54 间距的三针接口和 Grove 的四针接口三、软件接口麦克风噪音测量传感器HaaS Python驱动：下载地址Noise(adcObj) - 创建 Noise 驱动对象函数原型：drv = Noise(adcObj)参数说明：参数类型必选参数？说明adcObjADC是调用此函数前需确保 adcObj 对象已经处于 open 状态返回值：
Noise 对象成功，返回 Noise 对象；Noise 对象创建失败，抛出 Exception示例代码：importutime# 延时函数在utime库中fromdriverimportADCimportnoise# 初始化 ADC 类型的设备adcObj=ADC()adcObj.open('noise_adc')# 按照 board.json 中名为 "noise_adc" 的设备节点的配置参数print("noise inited!")drv=noise.Noise(adcObj)输出：noise inited!getVoltage - 获取当前噪音对应的电压值，单位 mV函数功能：
通过 ADC 控制器获取传感器电压值 mV 并返回函数原型：drv.getVoltage()参数说明：
无返回值
voltage（数据类型：整型；单位：mv）示例：voltage=drv.getVoltage()print("voltage is",voltage,"mV")输出：voltage is 1014 mVcheckNoise(voltage, threshold) - 检查噪音值是否超过阈值函数功能：
通过 ADC 控制器获取传感器电压值 mV，通过与一段时间的平滑均值作比较，判断当前值是否超过阈值（默认400），并返回 changed, voltage函数原型：drv.checkNoise(voltage, 400)参数说明：
无返回值：
changed（数据类型：布尔值）示例：voltage=drv.getVoltage()changed=drv.checkNoise(voltage,400)ifchanged:print("volume changed, voltage is",voltage,"mV")else:print('volume not changed, voltage is',voltage,'mV')输出：volume not changed, voltage is 1014 mV四、接口案例此使用实例在 board.json 中定义了名为 noise_adc 的 ADC 类型的对象。在 Python 脚本中周期性的检查当前噪音值结果并打印在日志中。代码：# board.json配置：{"name":"board-name","version":"1.0.0","io":{"noise_adc":{"type":"ADC","port":6,"sampling":12000000,"atten":3,"width":3}},"debugLevel":"ERROR","repl":"disable"}# Python代码importutime# 延时函数在utime库中fromdriverimportADCimportnoiseif__name__=='__main__':# 初始化 ADC 设备adcObj=ADC()# 按照 board.json 中名为 "noise_adc" 的设备节点的配置参数，初始化 ADC 类型设备对象ret=adcObj.open('noise_adc')ifret!=0:raiseException('open device failed%s'%ret)# 初始化 Noise 传感器drv=noise.Noise(adcObj)print('watch, doing...')whileTrue:# 无限循环voltage=drv.getVoltage()# 获取当前噪音值 mVchanged=drv.checkNoise(voltage,400)# 检查噪音值是否有变化，阈值为400mV（默认）ifchanged:print('got change%s'%voltage)utime.sleep_ms(30)adcObj.close()# 关闭 ADC 设备输出：...gotchange1963gotchange1010gotchange1675gotchange2138...五、通信协议主控芯片和噪音测量传感器之间通信为 ADC 通讯，获取电压值 mV六、工作原理从如下实物图可以看到传感器内部集成了 MIC 输入，信号通过 S 口输出，主控端通过 ADC 控制器采样读取电压值。MIC工作原理话筒使用较多的为动圈式话筒和驻极体话筒，我们使用的这款硬件是驻极体话筒，属于电容式话筒的一种，其内部包含有一个场效应管作放大用，因此拾音灵敏度较高，输出音频信号较大。由于内部是场效应管，因此驻极体话筒可以用于直流电压工作。驻极体话筒分为三端式（源极输出）和二端式（漏极输出）两种：接线方式：三端式驻极话筒的应用电路如左图所示，漏极 D 接电源正极，输出信号自源极 S 取出并经电容 C 耦合至放大电路，R 是源极 S 的负载电阻。二端式驻极话筒的应用电路如右图所示，漏极 D 经负载电阻 R 接电源正极，输出信号自漏极 D 取出并经电容 C 耦合至放大电路。参考文献及购买链接[1]购买链接