Один уже готов к приключениям, а второй всё ещё в процессе сборки.
Меня зовут Артём, и я занимаюсь созданием или адаптацией различных технологичных (и не очень) устройств. Это моя первая статья, и я долго шёл к её написанию, преодолевая неуверенность. Желание поделиться опытом и, возможно, помочь кому-то в реализации своих проектов оказалось сильнее сомнений. Итак, вот моя история.
Однажды я наткнулся на ролик от @AlexGyver на YouTube, где он создавал интернет-радио в виде головы Бендера. В тот момент меня застала моя девушка, которой так понравилась идея, что она попросила сделать нечто подобное для её старшего брата.
Мне эта затея тоже показалась интересной, и я сразу приступил к работе. Мы решили, что устройство будет Bluetooth-колонкой: слушать музыку с телефона, на мой взгляд, гораздо удобнее, чем через интернет-радио. Тем более, модуль ESP32, использованный в проекте, уже поддерживал Bluetooth. Оставалось лишь немного доработать прошивку.
Я подумал, что кто-то мог уже решить эту задачу. Как говорил Исаак Ньютон: "Если я видел дальше других, то потому, что стоял на плечах гигантов" И действительно, я нашёл готовое решение, которое смог адаптировать под свои задачи. Однако это было лишь начало: впереди меня ждала долгая, но увлекательная работа.
Этап первый. Печать корпуса
Первым шагом стало создание корпуса головы Бендера. Для этого я использовал свой проверенный 3D-принтер Ender 3 Pro, модернизированный экструдером Creality Sprite Pro и датчиком автоуровня Creality CR Touch.
Перед началом печати я быстро прикинул, какие компоненты буду использовать, как организую питание и насколько сильно придётся модифицировать корпус. Решение запитать устройство через USB Type-C оказалось удачным: корпус не пришлось дорабатывать, так как удалось найти разъёмы, которые идеально подошли к готовым отверстиям.
Для подготовки моделей я использовал PrusaSlicer, хотя в последнее время присматриваюсь к OrcaSlicer. Главное — не забыть про поддержки: однажды я это упустил, и деталь получилась далёкой от задуманного.
Для печати я выбрал недорогой серый PLA-пластик от HI-Tech-Plast. Несмотря на противоречивые отзывы, материал полностью справился с задачей. В других проектах я также использовал филамент этой фирмы и лишь однажды столкнулся с проблемой — пластик оказался перепутанным, из-за чего пришлось начинать печать заново.
• Температура сопла: 210°C.
Печать всех деталей, включая антенны, визор и подставки, заняла около 20 часов.
После печати начался этап постобработки, включавший:
2. Шлифовку наждачной бумагой для устранения неровностей.
3. Финальную обработку для придания поверхности гладкости и блеска.
С обработкой дихлорэтаном нужно быть очень осторожным: вещество токсично, поэтому работать следует в хорошо проветриваемом помещении, используя респиратор с фильтром марки В1 и полипропиленовые перчатки.
Я наношу дихлорэтан кисточкой или обрабатываю поверхность пропитанной тряпочкой. Иногда использую метод "дихлорэтановой бани" для равномерной обработки сложных деталей.
Корпус был полностью готов. Теперь можно переходить к подбору электронных компонентов и созданию печатной платы.
Этап второй. Подбор и заказ компонентов
Вот список всех компонентов и их примерная стоимость на конец 2024 года, включая печать корпуса:
Компонент ---------- | Количество | ---------- Стоимость (руб.)
ESP32 TYPE-C ---------- | 1 | ---------- 214
Rotary Encoder Module ---------- | 1 | ---------- 109
PCM5102A DAC ---------- | 1 | ---------- 336
PAM8403 ---------- | 1 | ---------- 78
AIYIMA 2Pcs 40MM ---------- | 1 | ---------- 884
Logic Level Shifter ----------| 1 | ---------- 24
Display Control Module ----------| 5 | ---------- 685
LED Matrix (white) ---------- | 2 | ---------- 753
LED Matrix (yellow) ----------| 3 | ---------- 646
Type-C разъём ---------- | 1 | ---------- 32
Печать корпуса ---------- | — | ---------- 623
Итоговая стоимость: 4384 руб.
Сложно найти — легко потерять: матрицы для глаз и рта, которые определяют характер проекта.
Самой сложной задачей оказалось найти подходящие матрицы для глаз и рта. Мне хотелось использовать матрицы с квадратными светодиодами и общим катодом, чтобы Бендер выглядел максимально аутентично.
На подбор матриц я потратил больше времени, чем ожидал. Оказалось, что такие компоненты редкость, а их стоимость существенно выше стандартных красных матриц с платами контроллерами. Например, две белые матрицы обошлись в 753 рубля, а пять красных с контроллерами — всего 685 рублей. Однако я решил не экономить, ведь итоговый результат того стоил.
С остальными компонентами проблем не возникло. Их список был представлен на странице проекта AlexGyver, что значительно облегчило поиск.
• ESP32 с USB Type-C стал идеальным решением благодаря удобству подключения к компьютеру для прошивки. Кабели с microUSB у меня постоянно теряются, а Type-C давно стал стандартом.
• AIYIMA 40MM (динамики) — отличный выбор для проекта. Их компактный размер идеально вписался в конструкцию корпуса, а качество звука оказалось выше моих ожиданий.
Компоненты я искал на популярном китайском маркетплейсе, учитывая соотношение цены, времени и стоимости доставки. Когда я собирал первого Бендера, мне удалось найти динамики всего за 400 рублей. Всего я собрал три такие колонки, но, к сожалению, выгодную цену больше найти не удалось.
Планирование следующего этапа
Я давно решил отказаться от навесного монтажа и горячего клея, так как работа с печатными платами удобнее, аккуратнее и быстрее.
Для разработки электрических схем и печатных плат я использую KiCad. Это открытое и удобное программное обеспечение, которое идеально подошло для моих задач. Основной операционной системой у меня является Ubuntu, и KiCad прекрасно работает в этой среде.
Пока все компоненты едут из Китая, самое время переключиться на проектирование печатной платы. Это важный этап, который позволит собрать все элементы воедино и создать надёжное устройство.
Этап третий. Проектирование печатной платы
На распутьи ста дорог: поиск оптимальной компоновки для печатной платы.
Итак, начался этап проектирования печатной платы. Работа оказалась непростой: с самого начала я столкнулся с проблемой отсутствия готовых посадочных мест для модулей. Готовых решений я не нашёл, поэтому пришлось создавать их вручную. Это создавало некоторые трудности, особенно для модуля PCM5102. У него боковые ножки не совпадают с шагом сетки 2,54 мм, а точных размеров модуля в интернете не оказалось — были только габариты самой платы. В итоге мне пришлось несколько раз распечатывать разводку платы на бумаге и подгонять её вручную, проверяя, как компоненты ложатся на свои места.
Для изготовления печатной платы в домашних условиях я использовал фоторезист (негативный пленочный) и односторонний фольгированный стеклотекстолит. Процесс выглядел следующим образом:
1. Подготовка текстолита.
Сначала я разрезал текстолит до нужных размеров, сделав надпилы острым ножом и аккуратно обломив заготовку по линиям надреза. Затем поверхность протиралась спиртом, чтобы удалить грязь и жир.
2. Нанесение фоторезиста.
На чистую поверхность текстолита я наносил фоторезист, после чего прокатывал плату через ламинатор для плотного приклеивания.
3. Засветка ультрафиолетом.
На подготовленную плату с фоторезистом я накладывал заранее распечатанный на прозрачной пленке негативный шаблон платы. Для засветки использовал самодельную ультрафиолетовую лампу, собранную из светодиодов и управляемую микроконтроллером ATTiny13A. Засветка занимала около 200 секунд при расстоянии 10 см между лампой и платой.
После засветки плата погружалась в раствор кальцинированной соды. Для этого я разводил пол чайной ложки соды на 500 мл воды. Точное количество соды не критично — главное, чтобы фоторезист начал проявляться.
Травление проводилось в растворе хлорного железа (200–300 г на 1 литр воды). На травление обычно уходит 40–60 минут, в зависимости от температуры раствора и толщины слоя меди.
После травления я смывал остатки фоторезиста ацетоном, оставляя чистые дорожки меди.
После всех этих этапов плата была готова для пайки компонентов и последующей сборки устройства.
Этап четвёртый. Тестирование компонентов в полусобранном виде
Обычно тестирование компонентов проводится до производства печатной платы и корпуса, чтобы избежать лишних затрат на переделку. Однако в этом проекте я был уверен, что все компоненты совместимы и не собирался вносить изменения. Оставалось лишь убедиться, что всё работает так, как задумано: устройство воспроизводит музыку с телефона и синхронно двигает глазами в такт.
Конечно, когда я собрал все на макетной плате, прошил микроконтроллер и включил питание, ничего не заработало. Основные проблемы оказались связаны с матрицами. Они создавали сильные помехи, были чувствительны к питанию и наводкам на провода. В результате матрицы начинали «жить своей жизнью»: произвольно включаться и выключаться.
Я думаю, многие, кто пытался собрать Бендера, сталкивались с подобными трудностями. Вот шаги, которые помогли мне справиться с этим:
1. Хорошая пайка контактов.
Все соединения должны быть надёжными, без «холодной пайки».
2. Минимизация длины проводов.
Длина проводов, соединяющих матрицы с платой управления, должна быть минимальной. У меня это расстояние составило всего 4–5 см. На этапе тестирования длина проводов была больше, что приводило к сбоям в работе.
Для подавления шумов в цепи питания звукового тракта я добавил два конденсатора по 3300 µF на 6,3 В:
◦ Первый конденсатор установил на плату управления, куда подключалось питание.
◦ Второй напаял на контакты питания второй матрицы рта.
Эти конденсаторы полностью устранили шипение в звуке.
Конденсаторы были подобраны экспериментальным путем и у вас они могут отличатся.
Кроме того, я разделил питание следующим образом:
• ESP32 питалась через встроенный стабилизатор.
• PCM5102 подключил отдельно через стабилизатор AM1117-3.3.
Честно говоря, сейчас я уже не помню, зачем решил разделить питание, а в документации этот момент не зафиксировал.
Ещё одна проблема была связана с PCM5102: его режимы работы настраиваются с помощью джамперов, которые иногда приходят не распаянными. Первый модуль, который я использовал, был готов к работе, но во втором случае я не проверил джамперы заранее. В результате пришлось разбирать собранную плату и паять джамперы вручную.
Теперь немного о прошивке.
Я использовал прошивку от BendeRadioBt, не внося в неё изменений. Компиляцию проводил в среде Arduino IDE версии 2.1.1. Единственное уточнение: для успешной компиляции нужно установить версию платформы в Boards Manager не выше ESP32 by Espressif 2.0.17. Это связано с особенностями библиотеки btAudio.
На этом этапе серьёзных проблем больше не возникло. Всё заработало как задумано, и я с нетерпением приступил к следующему этапу.
Этап V. Империя наносит ответный удар: сборка
Первым делом нужно установить Rotary Encoder Module. Провода к этому модулю я сделал чуть длиннее, чтобы они выходили за пределы корпуса головы.
Затем приступаем к установке динамиков. Их нужно аккуратно приклеить на посадочные места клеем Момент Кристалл и дополнительно слегка зафиксировать термоклеем. На этом этапе важно проявлять осторожность, чтобы клей не попал в неподходящие места.
Основная плата с компонентами была установлена вертикально в специально напечатанный держатель, который я закрепил термоклеем. Сам держатель платы приклеил к держателю матриц рта с помощью суперклея. Да, я мог бы уменьшить размер платы и разместить её горизонтально прямо на держателе матриц, но так получилось, что я изначально выбрал вертикальное расположение.
Особое внимание следует уделить верхним уголкам платы — их нужно срезать. После этого плата идеально становится на место, а разъём ESP32 оказывается на уровне глаз. Это удобное решение: через визор, убрав глаза, можно обновлять прошивку или регулировать уровень звука на PAM8403. Для дополнительной фиксации все элементы закрепляются двумя болтами.
На следующем этапе я установил разъём питания USB Type-C на корпус. В завершение приклеил заглушку внизу головы Бендера с помощью клея Момент Кристалл. Это крепление достаточно надёжное, но при необходимости позволяет снять заглушку.
Колонка получилась не только функциональной, но и стильной. Она стала прекрасным подарком, и после первого экземпляра я сделал ещё несколько штук. Благодаря необычному дизайну и качественному звучанию колонка отлично смотрится в интерьере и вызывает интерес.
Этот проект оказался для меня невероятно увлекательным. Хочу выразить огромную благодарность AlexGyver за возможность создать подобное устройство, а также автору прошивки для Bluetooth. Благодаря его работе мне удалось сэкономить несколько дней.
На этом моя история о колонке-голове Бендера завершена, но у меня в запасе ещё много интересных проектов, которыми я хотел бы поделиться. Спасибо всем, кто дочитал до конца!
В завершение: демонстрация рабочего экземпляра