站内搜索
发作品签到
专业版

只能使用5次的“修罗圣火”,AI语音控制

工程标签

870
0
0
0

简介

主题:点燃玄骨的“火”;原理:单管自激振荡电路产生高压电弧,简单硅麦LMD4030T261-OY2S语音解析采用ESP32S3进行AI语音控制的学习之路

简介:主题:点燃玄骨的“火”;原理:单管自激振荡电路产生高压电弧,简单硅麦LMD4030T261-OY2S语音解析采用ESP32S3进行AI语音控制的学习之路
彩色丝印征集令
复刻成本:15

开源协议

GPL 3.0

创建时间:2024-11-02 16:01:39更新时间:2025-03-24 13:51:25

描述

首条声明:本项目带有亿点点火属性和高压电属性,18岁以下小伙伴禁止复刻!图片来源于动漫-“凡人修仙传”和“斗破苍穹”

一:实物展示

做了双面设计,焊背面器件,用正面图;焊正面器件用背面图。这样就可以获得两样图片的板子了,实物图如下:

微信图片_202411221432151.jpg
微信图片_20241122143206.jpg
微信图片_20241122143215.jpg
微信图片_20241123194632.jpg

二:设计原理

1.使用单管自激振荡电路产生高压电弧,点燃圣火--

2.使用硫粉产生蓝色火焰(想要用异型盲槽引导火形,但是盲槽工艺太复杂=太贵)

3.使用篝火粉产生彩色火焰

4.使用语音识别芯片进行控制按钮:

图片.png

**4.1使用集成的语音识别芯片模块**(可以买还可以用在别的项目上比如平衡小车)-大概9元-25元:

    1. Ai-Thinker(安信可)的VC-02模组,参考开源链接https://oshwhub.com/wuzhouli/yu-yin-shi-bie
    2. 使用云知声蜂鸟B模块设计的测试开发板(要用杰理专用下载器),参考开源链接https://oshwhub.com/shanshan0815/yun-zhi-sheng-feng-niao-b-li-xian-yu-yin-shi-bie-kai-fa-ban-dai-jie-li-lan-ya-zi-ding-yi-huan-xing-ci-1
    3. 某宝的SU-03T模块
    4. 好好嗒嗒ASRPRO4M芯片设计---立创泰山派语音识别扩展板https://oshwhub.com/kalilovelinux/LCTSPI_speech_recognition 
    5. 基于海凌科HLK-V20语音模块 https://oshwhub.com/Kirito/yu-yin-zhu-shou
    6. 基于启英泰伦离线语音模组CI-C22GS02S的凉习智能风扇LX02,参考链接https://oshwhub.com/Red_mt/li-xian-yu

**4.2使用STC单片机(我手里有芯片)自己做语音分析,太复杂**:
     比如这个嘉友做的简单语音识别开关灯https://oshwhub.com/vizeee/jian-dan-yu-yin-shi-bie-kai-guan。我自己之前买的这个TEA1062NG-S16-R不知道和嘉友的LM224是不是同类的。

**4.3使用开发板(我手里有开发板)做语音分析:**
    采用ESP32S3读取硅麦MSM261S4030H0R(立创停售了)的信号,参考链接https://oshwhub.com/jun_1234/esp32-voice-night-light

**4.4基于以上搜索,得知单向麦克风和全向麦克风:**
        一般咪头再加运放再传给处理芯片,组成语音识别模块。这个部分有能力的可以自己拼,或者按4.2自己解简单的ADC信号。没能力的按4.1买模块。

4.4.1全向麦克风又细分成了以下两个知识点。
全向麦克风相对电路部分器件不多,直接用ESP32S3解。但是全麦也有区别,一种是输出PDM数据,一种是输出I2S接口的.

I2S接口的芯片INMP441是一款高性能,低功耗,数字输出,带底部端口的全向MEMS麦克风。该完整的INMP441解决方案由一个MEMS传感器,信号组成调节,模数转换器,抗混叠滤波器,电源管理和行业标准的24位I²S接口。I²S接口允许INMP441直接连接到数字处理器,如DSP和微控制器,无需使用用于系统中的音频编解码器。INMP441具有高信噪比,是一款出色的选择近场应用。 INMP441具有扁平宽带频率响应,导致自然声音高清晰度。
I2S接口的芯片MSM261S4030H0是由苏州敏芯公司生产的一款MEMS麦克风。这款麦克风的特点包括: 高性价比:设计考虑了成本效益,有助于降低整体系统成本。低功耗模式:在保持性能的同时,实现了低功率运行,有利于延长电池寿命。I2S数字输出:采用I2S接口,提供高质量、无噪声的数字音频信号,适合高保真应用场景。兼容多种焊接工艺:适应Sn/Pb和无铅焊接工艺,扩大了其在不同制造环境中的应用范围。灵敏度匹配:确保麦克风间的音量一致性,提高音频系统的整体性能。
I2S引脚接口图片.png
PDM接口的麦克风芯片立创商城的硅麦基本是PDM数据输出硅麦,如下图只有以下两个输出接口。
---图片.png

而我用券嫖到的是PDM输出的硅麦,然后就产生了用芯片ADAU7002ACBZ-R7转成I2S数据这个方案,参考我的开源项目链接

5.替换按钮有两个方案,A.把线路拉低,B.控制继电器的开和关

  采用的固态继电器,参考https://oshwhub.com/muyan2020/nmos-shu-chu-kong-zhi

三:制作过程中的问题

20241108用8W的18650电池电流就可以产生电弧。--已验证;
20241120用大电流电池直接给硅麦供电了,不知道烧毁了没有,还在调试中.--没烧毁(待理论学习)。
20241213硅麦产生PDM数据,转换成PCM数据后不知道怎么解析成语音;
20241230目前在学习厚国兄的方案,总结的各种语音方案总体如下图;
20250131最近终于找到一个PDM转I2S的便宜芯片ADAU7002,但是网上相关开源资料太少了。以下这段是网上的算是比较易懂贴切的资料(点击展开详细信息)

MIC是PDM输出,所有选了一个PDM转I2S的芯片(ADAU7002),话说这个芯片是WLCSP封装,特别不好焊,我买了两个,焊废了一个。 单片机是STM32F302CBT6,选了半天就这个便宜还有I2S接口,而且自带FPU。原理图就是用的手册上的典型应用。打算实现的功能是这样的,单片机I2S采集1024个数据,然后对数据进行FFT,FFT的结果可以送到串口输出或做其他处理。I2S接收数据用的循环查询,没用中断和DMA,开始打算用DMA,跑起来的时候单片机会进硬件错误中断,没找到原因,就放下了,查询一遍的程序运行时间大概6.7us,算7us,两个声道就是14us,算15us,这样最大接收速率66K,满足一般音频48K采样率的要求。 存在一个大问题:由于我只有一个MIC,只有左声道或右声道,但是接收的数据里左右声道的数据虽然有差异,但很小,几乎可以忽略不计,一直找不到原因,怀疑是PDM转I2S这个过程的问题。 软件上,FFT用的官方库,就是Keil->Manage Run-Time Environment窗口->CMSIS->DSP勾选就OK了,程序要#include "arm_math.h"。I2S的初始化用CubeMx。 主要程序如下: #define ARM_MATH_CM4 //#include "core_cm3.h" #define __STATIC_INLINE static __inline #define __CLZ __clz #define __SSAT __ssat #include "stm32f302xc.h" #include "arm_math.h" #define NPT 1024 //1024点FFT #define Fs 8000 //音频采样率 #define PI2 6.28318530717959 float testOutput_f32[NPT]; float testOutput[NPT]; float testInput_f[NPT]; uint8_t I2S_DMA_CMPLX;
    short testInput_sl[NPT];
    short testInput_sr[NPT];

    void arm_rfft_fast_f32_app(float32_t *testInput_f);
    extern I2S_HandleTypeDef hi2s2;
    extern DMA_HandleTypeDef hdma_spi2_rx;

    void FFTThread (void const *argument) {
            I2S_DMA_CMPLX=0;
            uint16_t data;
            uint16_t lc=0,rc=0;
    //hi2s2.Instance->CR2|= 0x00020;//CR2->RXDMAEN=1;
    //hi2s2.Instance->CR2 |= 0x0040;//CR2->RXNEIE=1;
    //hi2s2.Instance->I2SCFGR&= 0xFBFF;// I2SCFGR->I2SE=0;
                    hi2s2.Instance->I2SCFGR|= 0x0400;// I2SCFGR->I2SE=1;
            while(1){
                    while(1)
                    {
                                    while(!(hi2s2.Instance->SR & 0x01));
                                    data = hi2s2.Instance->DR;

                                    if(!(hi2s2.Instance->SR & 0x04))
                                    {    
                                            testInput_sr[rc++] = data;
                                    }
                                    else
                                    {
                                            testInput_sl[lc++] = data;
                                    }
                                    if((lc>=NPT)||(rc>=NPT))
                                    {
            ////				HAL_UART_Transmit( &huart1, (unsigned char*)&testInput_f32.c, 1024*4,60000);
                                            lc=0;rc=0;
                                            break;
                                    }
            //		osDelay(1);
            //		}
            //		for(i=0;i<512;i++)
            //		{
            //			HAL_UART_Transmit( &huart1, (unsigned char*)&testInput_f32.c[i*8+4], 4,60000);
            //		}
            //		i=0;
                    }
            //	HAL_I2S_Receive_DMA(&hi2s2,(uint16_t*)&testInput_f32.s,NPT*2);
                    for(data=0;data

四:相关知识参考链接

1.基于Qualcomm QCC3040双Mic cVc通话降噪+ANC主动降噪TWS Mirroring耳机方案https://www.wpgdadatong.com.cn/solution/detail/35870
2.淘宝有个PDM转I2S模块用的高通QC3040
3.厚国兄https://gitee.com/chging/esp32s3-ai-chat, (这个教程讲的还挺细节的)(20250131记录:和立创实战派的桌面对话助手一样调用服务器处理语音能力实现语音功能)

图片.png

设计图

未生成预览图,请在编辑器重新保存一次

BOM

暂无BOM

3D模型

序号文件名称下载次数
暂无数据

附件

序号文件名称下载次数
1
地心火展示.mp4
0
克隆工程
添加到专辑
0
0
分享
侵权投诉
知识产权声明&复刻说明

本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。

请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。

评论

全部评论(1
按时间排序|按热度排序
粉丝0|获赞0
相关工程
暂无相关工程

底部导航