小智AI聊天机器人面包板DIY硬件清单与接线教程

    1. DIY 所需硬件

    • 开发板:ESP32-S3-DevKitC-1(选择 WROOM N16R8 模组)
    • 数字麦克风:INMP441
    • 功放:MAX98357A
    • 腔体喇叭:8Ω 2~3W 或 4Ω 2~3W
    • 导线:跳线一盒,杜邦线若干
    • 400 孔面包板 2 块
    • 128×32 I2C(IIC) 液晶显示屏,SSD1306 驱动(推荐)
    • ML307R Cat.1 4G 模组,AT固件版(可选)
    • 6*6mm 立式 轻触开关(可选)
    除此之外,你可能还需要用到万用表,电烙铁套件,钳子三件套,Type-C数据线,用于烧录固件的PC。

    1.1 开发板(ESP32-S3-DevKitC-1)

    尽量要选择 N16R8,即 16 MB Flash 和 8 MB PSRAM 的配置。
    因为 N8R2 需要把 PSRAM 的工作模式从 OCTAL 改为 QUAD,Flash大小改为 8MB,自定义分区表改为 partitions_8M.csv,重新编译固件。
    部分开发板的 RGB 灯是没有接通的,需要焊接灯座旁边的两个小焊点才能使用,参见下图位置2。建议在购买的时选择已经接通RGB灯的,查看商品详情图或者咨询卖家。

    1.2 MEMS 数字麦克风(INMP441)

    这个电子元件最小,焊接难度较大,新手建议买焊接好的。自行焊接要注意一定不可以让引脚和半环形金属线接通。
    INMP441 很脆弱,如果使用杜邦线接线,要注意不能把 VDD 和 GND 反接,否则容易烧坏(可以多买一个备用)。

    1.3 数字功放(MAX98357A)

    使用面包板连接,建议购买已经焊接排针的配件。

    1.4 腔体喇叭(8Ω 3W)/ (4Ω 3W)

    端子可自行选择或不要

    1.5 导线(跳线一盒,杜邦线若干)

    • 注意:如果你使用杜邦线连接(不使用面包板),请在购买杜邦线加上几条1分2的分叉线(母线)用于麦克风和数字功放的短接,以解决开发板的电源3V3和接地GND的排针接口不够用的问题。

    1.6 面包板(2 块 可拼 400 孔,可选,推荐)

    如果没有面包板,我们在开发板上接的电子元件越来越多后,很容易就会乱成一团糟。
    面包板400孔外观图
    面包板内部结构图,分区横向连通,竖条为正负极
    如图,两块 400 孔的面包板拼成一块,把开发板装在中间,可使面包板的利用率最大化。
    面包板基础知识:面包板是分区块的,中间两个区块相同数字横向的每行是连通的(中间隔断除外),正负红蓝线是竖向每列连通的(如有隔断除外)。

    1.7 OLED 显示屏(IIC 接口,推荐,可选)

    购买时需要确认是使用 SSD 1306 驱动的,建议买GND开头的新版OLED屏幕。

    1.8 Cat. 1 4G 模块(ML307R,可选)

    ML307R 是中移物联推出的 Cat. 1 物联网模块,DC 版比 DL 版增加了 OpenCPU SDK 二次开发的支持。
    购买时需要确认是 AT 固件版本。
    注:此模块用来连接国内的 4G 移动数据网络,实现AI联网对话聊天。(不能打电话和发短信,使用该模块后可以不用连接WIFI,适合到户外等无WIFI网络的环境下使用。当然没有WIFI时也可以使用手机热点,具体请自己视情况考虑是否选择配备。)
    注:建议4G模组选择可插拔卡的,如果经常使用可以使用自己的手机号码副卡,4G模块自带的流量卡每月流量可能不够(一般不能充值流量),或者需要另选流量套餐比较多的流量卡。

    1.9 微动开关/按钮

    使用尺寸6*6MM微动开关/轻触开关,在面包板上请岔开横行按示意图插到面包板,按钮如下图示:
    注意:为防止新手短接引脚,虾哥推荐2脚的直插按钮,替代4脚的(老手忽略)。
    购买链接:https://item.taobao.com/item.htm?id=42823169259
    1. 便捷购买地址

    2.1 淘宝快速下单渠道

    非带货!!
    注意:部分电子元件未焊接引脚,可与商家沟通进行焊接或选择焊接好的商品。
    注意:由于商家产品存在差异,请尽量选择信誉高销量高评价好的店铺购买,购买咨询和售后质量问题请自行和商家协商,不归本项目负责。

    2.2 电烙铁入门必看

    小白可以选择购买焊接好的版本,或者先观看电烙铁入门教程再进行焊接,避免损坏电子元件。
    【小白的电烙铁使用入门】 https://www.bilibili.com/video/BV1qr4y1J7bW/?share_source=copy_web&vd_source=ee1aafe19d6e60cf22e60a93881faeba
    1. 新版接线方案

    3.1 ESP32-S3-DevKitC-1开发板版本1(乐鑫标准版 44 IO引脚)接线图

    新版/第二版接线方案适用于小智AI聊天机器人固件版本 >=V0.3.0,为了方便快速上手和演示,均使用了飞线(跳线)进行连接,具体引脚对接参考如下表格:
    注意:如果你使用杜邦线连接(不使用面包板),请在购买杜邦线可以买几条1分2的分叉线(母线)用于麦克风和数字功放的短接,以解决开发板的电源3V3和接地GND的排针接口不够用的问题。
    • 开发板为 44 引脚标准版请参考下图接线,无ML307R-4G模块不用连接4G模块接线:
    注意如果用户使用的MAX98357数字功放是 BGA 封装的(芯片比较上图中的小)可以不GAIN_GND 这根短线(上图左边绿色短线),如用户接线正常工作则不用管
    麦克风焊接反了解决方案
    如果用户的麦克风焊接反了(进声孔和麦克风图标丝印朝下,排针朝上),如下图示。
    1)请参考麦克风反接图乐鑫标准版44引脚接线(点击图片放大),也可在群文件里参考麦克风和对应开发板的反接图接线,其他模块参考上图接线不变。
    2)如果有电烙铁和风枪等工具,动手能力强的可以自己改过来,新手不建议自己改焊接。
    • 最简单直白的理解就是把下方表格中的 ESP32S3开发板加粗的数字/字母引脚,和 麦克风、数字功放、显示屏、4G模块加粗的英文字母引脚用导线连接起来,短接的意思就是也连导线在一起
    ESP32S3开发板
    麦克风 INMP441(I2S接口)
    GPIO4
    WS 数据选择
    GPIO5
    SCK 数据时钟
    GPIO6
    SD 数据输出
    3V3
    VDD 电源正 3.3V
    GND
    GND 接地 短接 L/R 左/右声道
    数字功放 MAX98357A
    GPIO7
    DIN 数字信号
    GPIO15
    BCLK 位时钟
    GPIO16
    LRC 左/右时钟
    3V3 /3.3V
    Vin(或VCC)电源输入 短接 SD 关机频道
    GND
    GND 接地 短接 GAIN 增益和频道(BGA封装麦克风不用短接
    音频+喇叭正极一般红线,不清楚问卖家、或用万用表测或其他方法)
    音频-喇叭负极
    显示屏(IIC / I2C接口,可选)
    GPIO41
    SDA 数据线
    GPIO42
    SCK 时钟线
    3V3 /3.3V
    VCC 电源正
    GND
    GND 接地
    4G 模块(ML307R,可选)
    LDO 正极(4.7V)3个脚最右边那个
    BAT(3.7~4.5V) 或者 +5V 短接 EN 使能(电压>4.7V)
    GND
    GND 接地
    GPIO11
    TXD 发送数据
    GPIO12
    RXD 接收数据
    按钮(0.4.1版本及以上)
    GPIO39
    接音量减-短触按钮(另一头接地 GND),短按减小音量,长按静音(音量0)
    **请注意四角按钮的同向是连通的。
    GPIO40
    接音量加+短触按钮(另一头接地 GND),短按加大音量。
    **请注意四角按钮的同向是连通的
    • 开发板引脚接线请以表格对照为准!!!预览图只作外观样式参考!!!
    • 接线请按照表格的引脚进行接线,接线完成后大致预览效果如下图:
    • 关于ML307R 4G模块接线说明示例如下:
    注意:如果开发板上LDO是AMS1117,LDO正极对应位置如上图。如果不是最好用万用表测试一下电压确认
    使用短线尽可能减少信号干扰。
    目前两个版本接线方案的固件互不兼容,烧录固件时,要留意是哪个版本(固件版本在 0.3 之前的都是采用第一版接线方案),如果是自己编译固件,可以自行配置 GPIO。

    3.2 ESP32-S3-DevKitC-1 开发板版本2(GOOUUU 果云版 42 IO引脚)接线图

    如果你买到的开发板相关引脚与下图示一致,为ESP32S3开发板版本2,相对于开发板版本1,主要区别是少几个引脚,多了个4个固定开孔(支持铜柱等固定),接口方面版本1左上方3V3供电口调整到左下方,版本2左边增加了GPIO19、GPIO20,版本1左边的GPIO13、GPIO14、5VIN对应调整到了版本2的右下方,版本2少了左右最下方的两个GND,版面元件布局等其他调整,参考下方图示。
    ESP32S3开发板版本2接线图与版本1与外部模块 麦克风、数字功放,OLED屏幕、4G模块等导线接线图GPIO接口一样,使用同样的程序固件,见下方接线表格,实物对接请参考下方图例。
    注意:如果你使用杜邦线连接(不使用面包板),请在购买杜邦线可以买几条1分2的分叉线(母线3条)用于麦克风和数字功放的短接,以解决开发板的电源3V3和接地GND的排针接口不够用的问题。
    • 开发板为 42 引脚果云版参考下图接线,无ML307R-4G模块不用连接4G模块接线:
    注意:如果用户使用的MAX98357数字功放是 BGA封装的(芯片比较上图中的小)可以不接 GAIN_GND 这根短线(上图左边绿色短线),如果接了正常工作就继续使用
    麦克风焊接反了解决方案
    如果用户的麦克风焊接反了(进声孔和麦克风图标丝印朝下,排针朝上),如下图示。
    1)请参考麦克风反接图果云版42引脚接线(点击图片放大),也可在群文件里参考麦克风和对应开发板的反接图接线,其他模块参考上图接线不变。
    2)如果有电烙铁和风枪等工具,动手能力强的可以自己改过来,新手不建议自己改焊接。
    • 最简单直白的理解就是把下方表格中的 ESP32S3开发板加粗的数字/字母引脚,和 麦克风、数字功放、显示屏、4G模块加粗的英文字母引脚用导线连接起来,短接的意思就是也连导线在一起
    ESP32S3开发板
    麦克风 INMP441(I2S接口)
    GPIO4
    WS 数据选择
    GPIO5
    SCK 数据时钟
    GPIO6
    SD 数据输出
    3V3
    VDD 电源正 3.3V
    GND
    GND 接地 短接 L/R 左/右声道
    数字功放 MAX98357A
    GPIO7
    DIN 数字信号
    GPIO15
    BCLK 位时钟
    GPIO16
    LRC 左/右时钟
    3V3 /3.3V
    Vin(或VCC)电源输入 短接 SD 关机频道
    GND
    GND 接地 短接 GAIN 增益和频道
    BGA封装麦克风不用短接
    音频+喇叭正极(一般红线,不清楚问卖家、或用万用表测或其他方法)
    音频-喇叭负极
    显示屏(IIC/I2C 接口,可选)
    GPIO41
    SDA 数据线
    GPIO42
    SCK 时钟线
    3V3 3.3V
    VCC 电源正
    GND
    GND 接地
    4G 模块(ML307R,可选)
    LDO 正极(4.7V)
    3个脚最右边那个,如右图红色箭头
    BAT(3.7~4.5V)
    +5V 短接 EN 使能(电压>4.7V)
    GND
    GND 接地
    GPIO11
    TXD 发送数据
    GPIO12
    RXD 接收数据
    按钮(0.4.1版本及以上)
    GPIO39
    接音量减-短触按钮(另一头接地 GND),短按减小音量,长按静音(音量0)
    **请注意四角按钮的同向是连通的。
    GPIO40
    接音量加+短触按钮(另一头接地 GND),短按加大音量。
    **请注意四角按钮的同向是连通的
    注意:如果开发板上LDO是AMS1117,LDO正极对应位置如上图。如果不是最好用万用表测试一下电压确认
    • 开发板引脚接线请以表格对照为准!!!预览图只作外观样式参考!!!

    3.3 外接按键及注意事项

    3.3.1 按键外接(可选)
    1. 音量调节
    固件版本0.3.3新增了音量调节按钮,触控按钮对应 GPIO40引脚,另一端接地GND,按下按钮进行声音增加,长按静音。0.4.1版本增加音量减少按钮,对应 GPIO39,长按静音,之前的音量按钮长按操作变为最大音量。
    1. 唤醒/中断
    固件版本0.3.1以上支持按键唤醒和中断对话,可使用开发板上的 Boot按钮,或者对接 GPIO0引脚,另一端接地GND,在进行对话时,按下按钮可以打断对话,再次按下按钮即可唤醒恢复对话。
    注意事项:在外接按钮时,请不要直接在开发板上单行连接四脚开关,请错开成两行来插接。因为面包板中间区块的横向数字行是直接连通的(中间隔断了除外)。单行插接连接会造成引脚短接,相当于按钮为常按状态,按钮无法使用。
    3.3.2 跳线颜色方案
    在跳线款式有限的情况下,尽最大可能统一配色方案。
    统一的配色也方便其他人读懂。
    比如 VCC 使用红色和棕色,GND 使用灰色和黑色,数字信号使用了咖啡色和橙色,这样可以避免正负极反接的情况。
    也有例外的情况,比如上图中使用了黄色线短接麦克风的 L/R 和 GND,使用了蓝色线从开发板的 LDO 引脚引出 USB 的 5V 电压。

    3.4 基础版硬件模块

    能够实现语音对话的最简单方案,面包板上只需要放置麦克风和功放,通过 ESP32 的 I2S(集成电路内置音频总线) 控制器进行通信。
    ESP32 S3 一共有两个 I2S 控制器(ESP32 C3 只有一个)。如果需要输入和输出支持不同的采样率,就需要用到两个 I2S 控制器。
    3.4.1 Duplex 模式
    使用一个 I2S 控制器连接麦克风和功放。Duplex 模式适合 GPIO 数量不多的开发板。
    开发板
    INMP441
    MAX98357A
    GND
    GND, L/R
    GND, GAIN
    3.3V
    VDD
    SD, VIN
    GPIO4
    WS
    LRC
    GPIO5
    SCK
    BCLK
    GPIO6
    SD
    GPIO7
    DIN
    3.4.2 Simplex 模式
    使用 I2S 0 连接麦克风,使用 I2S 1 连接功放。比 Duplex 模式多使用两个 GPIO。
    开发板
    INMP441
    MAX98357A
    GND
    GND, L/R
    GND, GAIN
    3.3V
    VDD
    SD, VIN
    GPIO4
    WS
    GPIO5
    SCK
    GPIO6
    SD
    GPIO7
    DIN
    GPIO15
    BCLK
    GPIO16
    LRC
    如下图所示,默认配置使用的是 Simplex 模式,GPIO 与电子元件引脚一对一关系,没有共用,接线相对容易一些。
    MAX98357A 的 VIN 引脚可以接 3.3V,也可以接 5V,后面的 4G 扩展版接了 5V。
    MAX98357 和 INMP441 底部均有隐藏接线,如下图:
    接完线后,把万用表调到那个短路红黑表笔蜂鸣器会响起的那个模式,可以用检查开发板和已安装的电子元件上的 GND 与 VCC(3.3V)之间是否有短路情况。确认没有短路情况下,给开发板接入 USB 电源进行下一步测试。
    (PS,我因为买到一块面板包,左侧的供电孔的正负极是短路的,最终导致两块开发板的 USB 口烧坏)
    1. 液晶屏幕扩展版

    增加了一个液晶屏幕,使用 4 线 I2C 接口,可以用来显示 WiFi 或 4G 信号强度,网络信号弱会影响使用体验。
    如图所示,由于开发板右侧缺少 3.3V 引脚,所以在面包板顶部中间用红线引过来。液晶屏幕底部预留了一个孔可以把 3.3V 继续往右引至正极红线处。
    开发板
    SSD1306
    GND
    GND
    3.3V
    VCC
    GPIO41
    SDA
    GPIO42
    SCK
    1. 4G 扩展版

    面包板左下角增加了一个 4G 模块,4G 天线藏到了面包板背后。天线不能离麦克风太近,距离 3cm 以内会听到明显信号干扰。最简单的处理方案是把天线粘贴在喇叭的模拟信号线上,并且远离麦克风。
    开发板
    ML307R
    GND
    GND
    GPIO11
    TXD
    GPIO12
    RXD
    LDO 正极(4.7V)
    3个脚最右边,如下图示蓝色导线
    BAT(3.7~4.5V)
    +5V 短接 EN 使能(电压>4.7V)
    4G 模块需要 5V 电压供电,因为开发板只有 5V VIN 输入引脚,没有 5V 输出引脚,所以我们在 LDO (稳压器)的近似 5V (大约4.7-4.8V)引脚上引电出来,如图所示。
    外围电子元件拿开后,可以看到完整的接线图。
    1. 常见接线问题 FAQ

    1. 烧录固件后,RGB 灯不亮。 需要检查 RGB 灯旁边的两个焊点是否已经接上,如果没有焊接,可以先用导线接通,重启查看是否会亮。
    2. 如何检查电路故障?
      1. 在没有接电源的情况下,用万用表测试导线是否导通,比如距离相远的两个 GND 引脚,或者两个 3.3V 引脚。
      2. 接电源后,检查 GND 与其他引脚电压是否在正常值。

    社区与交流

    QQ 群

    群友经验丰富,有不懂的可以在群里提问交流。
    欢迎参与完善本文档。