43719浏览
查看: 43719|回复: 57

[项目] 【Arduino】168种传感器系列实验(185)---MAX4466声音模块

[复制链接]
本帖最后由 驴友花雕 于 2021-8-8 07:16 编辑

37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手试试多做实验,不管成功与否,都会记录下来——小小的进步或是搞不掂的问题,希望能够抛砖引玉。

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验一百八十五:MAX4466声音传感器 驻极体话筒放大器 麦克风可调功放模块 microphone


【Arduino】168种传感器系列实验(185)---MAX4466声音模块图2

【Arduino】168种传感器系列实验(185)---MAX4466声音模块图1

驴友花雕  中级技神
 楼主|

发表于 2021-9-14 13:46:01

  【Arduino】168种传感器模块系列实验(资料代码+图形编程+仿真编程)
  实验一百八十五:MAX4466声音传感器 低功耗驻极体话筒放大器 麦克风可调功放模块
  项目十三:RGB LED 灯的声学频谱控制

  实验开源代码

  1. /*
  2.   【Arduino】168种传感器模块系列实验(资料代码+图形编程+仿真编程)
  3.   实验一百八十五:MAX4466声音传感器 低功耗驻极体话筒放大器 麦克风可调功放模块
  4.   项目十三:RGB LED 灯的声学频谱控制
  5.   实验接线:MAX4466咪头模块OUT接Uno的A0
  6.   Rpin 11
  7.   Gpin 10
  8.   Bpin 9
  9. */
  10. #define Rpin 11
  11. #define Gpin 10
  12. #define Bpin 9
  13. #define delayLEDS 3
  14. #define sensorPin A0
  15. float sensorValue = 0, filteredSignal = 0,
  16.       filteredSignalValues[] = {3.4, 3.1, 2.7, 2.4, 2.1, 1.7, 1.3, 0.9, 0.4};
  17. void setup () {
  18.   Serial.begin (9600);
  19. }
  20. void loop () {
  21.   MainFunction();
  22.   delay(6);
  23. }
  24. void MainFunction() {
  25.   sensorValue = (float) analogRead(sensorPin) * (5.0 / 1024.0);
  26.   FilterSignal(sensorValue);
  27.   Serial.print(sensorValue);
  28.   Serial.print(" ");
  29.   Serial.println(filteredSignal);
  30.   CompareSignalFiltered(filteredSignal);
  31. }
  32. void FilterSignal(float sensorSignal) {
  33.   filteredSignal = (0.945 * filteredSignal) + (0.0549 * sensorSignal);
  34. }
  35. void CompareSignalFiltered(float filteredSignal) {
  36.   if (filteredSignal > filteredSignalValues[0]) {
  37.     RGBColor(0, 127, 255);
  38.     Serial.println("Blue");
  39.   } else if (filteredSignal <= filteredSignalValues[0] && filteredSignal > filteredSignalValues[1]) {
  40.     Serial.println("Azure");
  41.     RGBColor(0, 255, 255);
  42.   } else if (filteredSignal <= filteredSignalValues[1] && filteredSignal > filteredSignalValues[2]) {
  43.     RGBColor(255, 0, 0);
  44.     Serial.println("Cyan");
  45.   } else if (filteredSignal <= filteredSignalValues[2] && filteredSignal > filteredSignalValues[3]) {
  46.     RGBColor(0, 255, 127);
  47.     Serial.println("Aqua marine");
  48.   } else if (filteredSignal <= filteredSignalValues[3] && filteredSignal > filteredSignalValues[4]) {
  49.     RGBColor(0, 255, 0);
  50.     Serial.println("Green");
  51.   } else if (filteredSignal <= filteredSignalValues[4] && filteredSignal > filteredSignalValues[5]) {
  52.     RGBColor(255, 255, 0);
  53.     Serial.println("Yellow");
  54.   } else if (filteredSignal <= filteredSignalValues[5] && filteredSignal > filteredSignalValues[6]) {
  55.     RGBColor(0, 0, 255);
  56.     Serial.println("Magenta");
  57.   } else if (filteredSignal <= filteredSignalValues[6] && filteredSignal > filteredSignalValues[7]) {
  58.     RGBColor(255, 0, 127);
  59.     Serial.println("Rose");
  60.   } else if (filteredSignal <= filteredSignalValues[7] && filteredSignal > filteredSignalValues[8]) {
  61.     RGBColor(255, 127, 0);
  62.     Serial.println("Orange");
  63.   } else if (filteredSignal <= filteredSignalValues[8]) {
  64.     RGBColor(0, 127, 255);
  65.     Serial.println("Red");
  66.   } else {
  67.     RGBColor(255, 50 , 0);
  68.     Serial.println("Default: Blue");
  69.   }
  70. }
  71. void RGBColor(int Rcolor, int Gcolor, int Bcolor) {
  72.   analogWrite(Rpin, Rcolor);
  73.   analogWrite(Gpin, Gcolor);
  74.   analogWrite(Bpin, Bcolor);
  75.   delay(delayLEDS);
  76. }
复制代码


回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2021-8-13 08:48:59

本帖最后由 驴友花雕 于 2021-8-17 14:24 编辑

                                            


  【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  实验一百八十五:MAX4466声音传感器 低功耗驻极体话筒放大器 麦克风可调功放模块 microphone
  项目之七:高灵敏度的声级波形测试(人声与拍手声)

  实验开源代码


  1. /*
  2.   【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  3.   实验一百八十五:MAX4466声音传感器 低功耗驻极体话筒放大器 麦克风可调功放模块 microphone
  4.   项目之七:高灵敏度的声级波形测试(人声与拍手声)
  5.   模块接线:
  6.   MAX4466  Arduino
  7.   VCC        5V
  8.   GND        GND
  9.   OUT         A0
  10. */
  11. #define MIC_IN A0
  12. // 以毫秒为单位的采样窗口宽度(50 ms = 20Hz)
  13. int sampleWindow = 50;
  14. void setup(){
  15.   Serial.begin(9600);
  16.   pinMode( MIC_IN, INPUT );
  17. }
  18. void loop(){
  19.   //将模拟传感器读取为声级的数值
  20.   double soundSensed = sampleSoundPeak();
  21.   // 转换为声级数值
  22.   double volts = (soundSensed * 3.3)/1.83; //系数是自定的实验值
  23.   // 打印出来
  24.   Serial.println(volts);
  25. }
  26. /**
  27.     Sense 最大输入差异是从模拟 MIC 传感器输入
  28.     在某个“时间窗口”内。
  29.     返回值在 0 - 1024 范围内。
  30. **/
  31. double sampleSoundPeak(){
  32.   // 记录开始时间
  33.   double startMillis = millis();
  34.   // 这将是最高峰,所以从很小开始
  35.   int signalMax = 0;
  36.   // 这将是最低峰,所以从高处开始
  37.   int signalMin = 1024;
  38.   // 将保持麦克风的当前值
  39.   int sample;
  40.   // 收集 50 毫秒的数据
  41.   while ( (millis() - startMillis) < sampleWindow ){
  42.     // 从 mic 读取一个值并将其记录到示例变量中
  43.     sample = analogRead( MIC_IN );
  44.     // 丢弃虚假读数
  45.     if (sample < 1024)
  46.     {
  47.       // 如果当前样本大于最大值
  48.       if (sample > signalMax)
  49.       {
  50.         // 这是新的最大值——保存它
  51.         signalMax = sample;
  52.       }
  53.       // 否则,如果当前样本小于最小值
  54.       else if (sample < signalMin)
  55.       {
  56.         // 这是新的数值——保存它
  57.         signalMin = sample;
  58.       }
  59.     }
  60.   }
  61.    // 现在我们已经收集了我们的数据,
  62.    // 确定峰峰值幅度为最大值 - 最小值
  63.   int peakDifference = signalMax - signalMin;
  64.   // 将其返回给此方法的调用者
  65.   return peakDifference;
  66. }
复制代码

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2021-9-8 07:56:46

Arduino 系列传感器和执行器模块实验目录清单:
一块扩展板完成Arduino的10类37项实验(代码+图形+仿真)
https://mc.dfrobot.com.cn/thread-280845-1-1.html
连杆形式的腿机构十一种:盘点机器人行走背后的机械原理
https://mc.dfrobot.com.cn/thread-308097-1-1.html
【花雕动手做】超低成本,尝试五十元的麦克纳姆轮小车!
https://mc.dfrobot.com.cn/thread-307863-1-1.html
【花雕动手做】超迷你哦,用徽商香烟盒做个智能小车!
https://mc.dfrobot.com.cn/thread-307907-1-1.html
【花雕动手做】太搞笑啦,一支胶管制成二只蠕动机器人
https://mc.dfrobot.com.cn/thread-308046-1-1.html
【花雕动手做】快餐盒盖,极低成本搭建机器人实验平台
https://mc.dfrobot.com.cn/thread-308063-1-1.html
【花雕动手做】特别苗条,使用微波传感器控制的纤细小车
https://mc.dfrobot.com.cn/thread-308866-1-1.html
【花雕动手做】脑洞大开、五花八门的简易机器人66种
https://mc.dfrobot.com.cn/thread-307900-1-1.html

实验一百五十八:QMC5883L电子指南针罗盘模块 三轴磁场传感器GY-271
https://mc.dfrobot.com.cn/thread-308195-1-1.html
实验一百六十三:BMI160 6轴惯性运动传感器 16位3轴加速度+超低功耗3轴陀螺仪  I2C/SPI 14LGA
https://mc.dfrobot.com.cn/thread-310371-1-1.html
实验一百六十五:2.4 英寸 TFT LCD 触摸屏模块 XPT2046 PCB ILI9341 240x320 像素 8 位 SPI 串口显示器
https://mc.dfrobot.com.cn/thread-309803-1-1.html
实验一百七十六:6mm大尺寸8x8LED方块方格点阵模块 可级联 红绿蓝白色 可选8级亮度
https://mc.dfrobot.com.cn/thread-309845-1-1.html
实验一百八十三:GY-530 VL53L0X 激光测距 ToF测距 飞行时间测距传感器模块 IIC通信协议
https://mc.dfrobot.com.cn/thread-310273-1-1.html
实验一百八十五:MAX4466声音传感器 驻极体话筒放大器 麦克风可调功放模块 microphone
https://mc.dfrobot.com.cn/thread-310193-1-1.html
实验一百八十九:TDA1308 硅麦克风 数字咪头放大模块 拾音器放大板 楼氏SUNLEPHANT
https://mc.dfrobot.com.cn/thread-310246-1-1.html
实验一百九十三:TCS34725颜色识别传感器 RGB IIC明光感应模块 ColorSensor
https://mc.dfrobot.com.cn/thread-310209-1-1.html
实验二百:RCWL-0515微波雷达感应开关 人体感应 智能感应探测传感器 12-15米远距离2.7G微波检测模块
https://mc.dfrobot.com.cn/thread-310313-1-1.html
实验二百零三:Air724UG合宙 Cat14G模块 DTU物联网UART串口通信数据TCP透传 核心板组合套餐
https://mc.dfrobot.com.cn/thread-310342-1-1.html
实验二百零九:Gravity: I2C & UART BC20 NB-IoT & GNSS通信模块 NB-IoT广域低功耗无线通信 GPS/北斗精准定位
https://mc.dfrobot.com.cn/thread-310433-1-1.html


回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2021-8-8 06:55:46

本帖最后由 驴友花雕 于 2021-8-8 07:40 编辑

【Arduino】168种传感器系列实验(185)---MAX4466声音模块图1
MAX4466
是微功率运算放大器,经过优化,可用作麦克风前置放大器。它们提供了优化的增益带宽产品与电源电流的理想组合,以及超小型封装中实现低电压工件环境。 MAX4466具有增益稳定特性,仅需24μA的电源电流即可提供200kHz的增益带宽。经过解压缩,可实现+5V/V的最小稳定增益,并提供600KHZ增益带宽。此外这些放大器具有轨到轨输出,高 AVOL ,以及出色的电源抑制和共模抑制比,适合在嘈杂环境中工作。广泛应用于蜂窝电话、数字复读装置、耳机、助听器、麦克风前置放大器、便携计算机和语音识别系统中。
回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2021-8-8 07:07:35

本帖最后由 驴友花雕 于 2021-8-8 07:18 编辑

主要特性
1、+2.4V 至 +5.5V 电源电压运行版本,
2、可提供 5nA 完全关断(MAX4467/MAX4468)
3、出色的电源抑制比:112dB
4、出色的共模抑制比:126dB
5、高 AVOL:125dB (RL= 100kΩ)
6、轨到轨输出
7、低 24μA 静态电源
8、电流增益带宽积:
     200kHz (MAX4465/MAX4467/MAX4469)
     600kHz AV≥5 (MAX4466/MAX4468)
9、采用节省空间的封装
     5-Pin SC70 (MAX4465/MAX4466)
     8 引脚 SOT23 (MAX4467/MAX4468/MAX4469)

【Arduino】168种传感器系列实验(185)---MAX4466声音模块图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2021-8-8 07:24:50

MAX4466芯片引脚图


【Arduino】168种传感器系列实验(185)---MAX4466声音模块图1
回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2021-8-8 07:26:09

【Arduino】168种传感器系列实验(185)---MAX4466声音模块图1
回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2021-8-8 08:10:00

MAX4466功能框图

【Arduino】168种传感器系列实验(185)---MAX4466声音模块图1
回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2021-8-8 08:40:45

MAX4466主要电气参数

【Arduino】168种传感器系列实验(185)---MAX4466声音模块图1
【Arduino】168种传感器系列实验(185)---MAX4466声音模块图2
回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2021-8-8 08:45:18

本帖最后由 驴友花雕 于 2021-8-8 09:12 编辑

MAX4466的经典应用电路


【Arduino】168种传感器系列实验(185)---MAX4466声音模块图1

【Arduino】168种传感器系列实验(185)---MAX4466声音模块图2

附件:MAX4466相关技术资料链接(英文,来自MAXIM美信公司官网)
https://datasheets.maximintegrated.com/en/ds/MAX4465-MAX4469.pdf

附注:MAXIM是美信公司(Maxim Integrated Products)的英文缩写,全球最好的模拟信号和混合信号半导体公司。Maxim Integrated Products成立于1983年,总部位于美国加利福尼亚的Sunnyvale,公司拥有9300多名员工,是世界范围内模拟和混合信号集成产品的设计、开发与生产领域的领导者之一。通过对温度、压力、声音等现实世界的各种信号进行检测、放大,并将其转换成计算机处理所需要的数字信号, Maxim的电路把现实世界与数字世界“连接”在一起。Maxim是全球模拟、混合信号、高频及数字电路设计、研发、制造的领导者,所提供的产品能够实现上述数字内核与周边系统的连接。它们在世界范围内拥有大约35,000个大型客户。

MAXIM官网:https://www.maximintegrated.com/cn.html




回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2021-8-8 09:06:16

【Arduino】168种传感器系列实验(185)---MAX4466声音模块图1

MAX4466模块描述:
使用这款精心设计的驻极体麦克风放大器为您的项目添加耳朵。这个完全组装和测试的电路板带有一个焊接在 20-20KHz 驻极体麦克风上。对于放大,我们使用Maxim MAX4466,这是一款专为这项精密任务而设计的运算放大器!该放大器具有出色的电源噪声抑制能力,因此该放大器听起来非常好,并且不像我们尝试过的其他麦克风放大器突破那样嘈杂或沙哑!

此突破最适合用于变声器、音频录制/采样和使用 FFT 的音频反应项目等项目。在背面,我们包含一个用于调节增益的小型微调电位器。您可以将增益设置为 25x 至 125x。这下降到大约 200mVpp(对于大约 6" 外的正常说话音量),这对于连接到期望“线路电平”输入而没有削波的东西很有用,或者高达大约 1Vpp,非常适合从微控制器 ADC 读取。输出是轨到轨,所以如果声音变大,输出可以达到 5Vpp!

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2021-8-8 09:16:41

MAX4466模块电原理图

【Arduino】168种传感器系列实验(185)---MAX4466声音模块图1
回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2021-8-8 09:18:25

MAX4466模块电原理图之二


【Arduino】168种传感器系列实验(185)---MAX4466声音模块图1
回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2021-8-8 09:43:53

本帖最后由 驴友花雕 于 2021-8-14 05:03 编辑

                                                                        Translator                        
                                                                           
                    
                                            
                        
                    
               
MAX4466模块特点及优点:
电源电压:+2.4V至+5.5V(可直接接STM/ARDUNIO/树莓派等开发板)
电源抑制比:112dB
共模抑制比:126dB
AVOL:125dB(RL = 100kΩ) 轨到轨输出
静态电源电流:24μA
增益带宽:600kHz
尺寸:20.8mm x 13.8mm x 7.5mm/0.8 x 0.5 x 0.3inch

【Arduino】168种传感器系列实验(185)---MAX4466声音模块图1【Arduino】168种传感器系列实验(185)---MAX4466声音模块图2
该模块在 Vcc 和接地引线上都包含铁氧体,以最大限度地减少电源噪声。如果与 MCU 一起使用,最好使用 2.4V – 5.5V 范围内可用的最安静的电源。在 Arduino 上,这通常是 3.3V 电源。
输出是直流耦合的。当输出信号处于静止状态时,它将位于 Vcc/2。如果 Vcc 为 5V,则输出将为 2.5V。如果输出需要交流耦合,可以在输出引脚和它驱动的电路的输入之间增加一个100uF的电容。
背面的小型单圈电位器可让您将增益从 25x 调整到 125x。逆时针旋转电位器会增加增益,而逆时针旋转会降低增益。



回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2021-8-8 09:49:08

本帖最后由 驴友花雕 于 2021-8-8 09:53 编辑

【Arduino】168种传感器系列实验(185)---MAX4466声音模块图1

使用它很简单:
OUT接A0,GND 接地,VCC 接 2.4-5VDC。
为了获得最佳性能,请使用可用的“最安静”电源(在 Arduino 上,这将是 3.3V 电源)。音频波形将从 OUT 引脚输出。输出将具有 VCC/2 的直流偏置,因此当它完全安静时,电压将是稳定的 VCC/2 伏(它是直流耦合的)。如果您使用的音频设备需要交流耦合音频,请在输出引脚和设备输入之间放置一个 100uF 电容器。如果您连接到具有差分输入或包含去耦电容器的音频放大器,则不需要 100uF 电容。

输出引脚并非设计用于驱动扬声器或任何东西,而是用于驱动最小的入耳式耳机——如果您想将放大器直接连接到扬声器,则需要一个音频放大器(例如 3.7W 立体声放大器)。如果您连接到微控制器引脚,则不需要放大器或去耦电容器 - 将 OUT 引脚直接连接到微控制器 ADC 引脚。

对于音频反应项目,我们建议使用 FFT 驱动程序库,它可以获取音频输入并将其“转换”为频率。

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2021-8-8 10:56:37

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验一百八十五:MAX4466声音传感器 低功耗驻极体话筒放大器 麦克风可调功放模块 microphone
项目之一:串口输出人声波形

实验开源代码

  1. /*
  2. 【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  3. 实验一百八十五:MAX4466声音传感器 低功耗驻极体话筒放大器 麦克风可调功放模块 microphone
  4. 项目之一:串口输出人声波形
  5. 模块接线:
  6. MAX4466  Arduino
  7. VCC        5V
  8. GND        GND
  9. OUT         A0
  10. */
  11. void setup()
  12. {
  13.   Serial.begin(9600);
  14.   pinMode(A0,INPUT);
  15. }
  16. void loop()
  17. {
  18.   Serial.println(analogRead(A0));
  19.   delay(100);
  20. }
复制代码


回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2021-8-8 11:12:32

实验串口返回情况

【Arduino】168种传感器系列实验(185)---MAX4466声音模块图1
回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2021-8-8 11:15:08

打开IDE——工具——串口绘图器,查看环境噪音与人声的实际波形

【Arduino】168种传感器系列实验(185)---MAX4466声音模块图1





回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2021-8-8 11:17:25

实验串口绘图器返回情况

【Arduino】168种传感器系列实验(185)---MAX4466声音模块图1
回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2021-8-8 11:22:48

将调节电阻逆时针旋转,加大运放增益,顺时针则减少增益。
图为调高一些运放增益的人讲话声音的波形


【Arduino】168种传感器系列实验(185)---MAX4466声音模块图1
回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2021-8-8 11:25:21

房间里面背景噪音的波形


【Arduino】168种传感器系列实验(185)---MAX4466声音模块图1
回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2021-8-8 11:32:51

实验场景图

【Arduino】168种传感器系列实验(185)---MAX4466声音模块图1
回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2021-8-8 13:21:36

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  实验一百八十五:MAX4466声音传感器 低功耗驻极体话筒放大器 麦克风可调功放模块 microphone
  项目之二:设定声音强度阙值的声控开关(这里控制LED灯的亮灭)

实验开源代码

  1. /*
  2.   【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  3.   实验一百八十五:MAX4466声音传感器 低功耗驻极体话筒放大器 麦克风可调功放模块 microphone
  4.   项目之二:设定声音强度阙值的声控开关(这里控制LED灯的亮灭)
  5.   模块接线:LED接D13
  6.   MAX4466  Arduino
  7.   VCC        5V
  8.   GND        GND
  9.   OUT         A0
  10. */
  11. const int SOUND_PIN = A0;
  12. const int LED_PIN = 13;
  13. void setup() {
  14.   pinMode(LED_PIN, OUTPUT);
  15.   Serial.begin(9600);
  16. }
  17. void loop() {
  18.   // 读取A0模拟信号
  19.   int value = analogRead(SOUND_PIN);
  20.   // 输出信号值
  21.   Serial.println(value);
  22.   if (value > 353) {
  23.     // 大于阈值,引脚13输出高电平,LED点亮
  24.     digitalWrite(LED_PIN, HIGH);
  25.     Serial.println("LED亮");
  26.     delay(200);
  27.   } else {
  28.     // 小于阈值,引脚13输出低电平,LED熄灭
  29.     digitalWrite(LED_PIN, LOW);
  30.     delay(100);
  31.   }
  32. }
复制代码


回复

使用道具 举报

123下一页
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail