Бюджетная версия XiaoZhi AI — реализация на плате ESP32
«Бюджетная версия» — это сборка XiaoZhi AI на ранней плате ESP32 (не ESP32-S3 и не ESP32-C3). Обычно это плата с 4 МБ флеш-памяти и без внешней PSRAM, например NodeMCU-32S или ESP32-DevKitC. Ей соответствует семейство вариантов bread-compact-esp32 в прошивке upstream. Решение недорогое и подходит для первого знакомства, но возможностей у него немного меньше, чем у версии на ESP32-S3, см. ниже «1. Различия в возможностях».
1. Различия в возможностях
Upstream обрабатывает ESP32 иначе, чем S3, поэтому узнайте об этом заранее:
| Параметр | ESP32 (бюджетная) | ESP32-S3 |
|---|---|---|
| Движок аудиовхода | LiteAudioEngine, необработанный моно PCM | AfeAudioEngine, с эхоподавлением (AEC) и VAD |
| Локальное слово пробуждения | По умолчанию выключено; Wakenet model without AFE можно выбрать только при наличии PSRAM | При наличии PSRAM по умолчанию включено слово пробуждения AFE |
| Запуск диалога | Кнопка; можно также использовать внешний модуль пробуждения | Слово пробуждения или кнопка |
Источники: upstream main/audio/README.md и main/Kconfig.projbuild. Поэтому плата ESP32 без PSRAM по умолчанию запускает диалог кнопкой или через внешний модуль пробуждения на GPIO19.
2. Варианты прошивки
Имена вариантов готовой прошивки соответствуют каталогам в upstream main/boards/:
| Вариант | Экран |
|---|---|
bread-compact-esp32 | OLED SSD1306 128x64 |
bread-compact-esp32-128x32 | OLED SSD1306 128x32 |
bread-compact-esp32-lcd | LCD ST7789 (7-контактная конфигурация 240x240) |
Полный список см. в разделе Поддерживаемые платы, а загрузку и прошивку — в разделе Загрузка и установка прошивки.
3. Оборудование и подключение
Кроме платы нужны те же компоненты, что и в руководстве по сборке оборудования: микрофон INMP441, усилитель MAX98357A, динамик, макетная плата и соединительные провода; экран необязателен. Выводы ниже взяты из bread-compact-esp32/config.h.
Микрофон (INMP441)
| ESP32 | INMP441 |
|---|---|
| GPIO25 | WS |
| GPIO26 | SCK |
| GPIO32 | SD |
| 3V3 | VDD |
| GND | GND, а также соедините L/R |
Усилитель (MAX98357A)
| ESP32 | MAX98357A |
|---|---|
| GPIO33 | DIN |
| GPIO14 | BCLK |
| GPIO27 | LRC |
| 3V3 | VIN |
| GND | GND |
Выводы SD и GAIN обрабатываются так же, как в варианте на ESP32-S3, см. подключение усилителя в руководстве по сборке оборудования.
OLED (SSD1306, необязательно)
| ESP32 | OLED |
|---|---|
| GPIO4 | SDA |
| GPIO15 | SCL |
| 3V3 | VCC |
| GND | GND |
Кнопки и прочие выводы
| Вывод | Назначение (по esp32_bread_board.cc) |
|---|---|
| GPIO0 | Кнопка BOOT: одно нажатие переключает диалог; при запуске одно нажатие включает режим настройки Wi-Fi |
| GPIO5 | Сенсор/кнопка: удерживайте, чтобы говорить, и отпустите, чтобы закончить (соответствует StartListening / StopListening) |
| GPIO19 | Вход от внешнего модуля пробуждения: одно нажатие равносильно фразе «你好小智» |
| GPIO2 | Встроенный светодиод |
| GPIO18 | Тестовый вывод управления лампой через MCP (LAMP_GPIO) |
Вариант с LCD (bread-compact-esp32-lcd)
Экран переходит на интерфейс SPI с выводами MOSI GPIO4, CLK GPIO15, DC GPIO21 и RST GPIO18. У 7-контактного экрана нет вывода CS, подсветка подключается к GPIO22; у остальных моделей CS подключается к GPIO22, а подсветка — к GPIO23. Подключение аудио и кнопок такое же, как в таблицах выше.
4. Сборка и прошивка
Готовая прошивка: скачайте нужный вариант на странице Загрузка и установка прошивки и запишите его по адресу 0x0 так, как там описано. При прошивке подключайте плату к компьютеру отдельно, не оставляя её на уже собранной макетной плате, чтобы не мешать загрузке.
Самостоятельная сборка: подготовьте среду по разделу Настройка среды ESP-IDF, затем выполните команды из README платы в upstream:
idf.py set-target esp32
idf.py menuconfig
# Xiaozhi Assistant -> Board Type -> 面包板 ESP32 DevKit
idf.py buildЭтот пункт меню в upstream подписан по-китайски: «面包板 ESP32 DevKit» означает «ESP32 DevKit на макетной плате».
5. Частые вопросы
- Ошибка прошивки или стирания: снимите плату с макетной платы, подключите её к компьютеру отдельно и повторите; о других проблемах прошивки см. FAQ.
- Сеть и настройка: порядок такой же, как в версии на ESP32-S3, см. Первый запуск и Настройку сети.
- Нет слова пробуждения: это поведение ESP32 без PSRAM по умолчанию; используйте диалог по кнопке или подключите внешний модуль пробуждения.
Связанные материалы
- Руководство по сборке оборудования: вариант на ESP32-S3 с макетной платой
- Поддерживаемые платы: все варианты прошивки
- Руководство по пользовательским Assets: пользовательские шрифты, эмодзи и слова пробуждения
Источники: main/boards/bread-compact-esp32/ и main/boards/bread-compact-esp32-lcd/ в 78/xiaozhi-esp32 v2.5.2.