Всего неделю назад я впервые взялся за микроконтроллеры. С помощью Google Antigravity IDE, Arduino R4 WiFi и цветного e-ink дисплея мне удалось собрать электронную фоторамку всего за семь дней — быстрее, чем я сам ожидал.
Успех проекта зависит от правильных компонентов
Прежде чем браться за сборку, я внимательно изучал варианты — хотелось не переплатить и не прогадать с деталями. В итоге выбрал e-ink дисплей от Waveshare на семь цветов — идеальное решение для таких поделок. Конечно, картинка здесь не такая сочная, как у топового Waveshare E6, зато цена гораздо приятнее, а дисплей универсальный — подойдёт и для других моих будущих проектов.
Компанию дисплею составил Arduino UNO R4 WiFi. В мои руки попал стартовый набор, но если повезёт достать только плату — не беда, достаточно докупить несколько проводков. Я выбрал эту версию из-за новой ESP32-S3 mini — подключать Wi-Fi стало проще простого, особенно если хочется делать что-то “умное”.
Этот дуэт открывает море новых возможностей. Конечно, можно было бы взять Raspberry Pi Zero 2 W — в комплекте с этим дисплеем сразу идёт GPIO-модуль для “малины”. Но мне хотелось погрузиться именно в C/C++ и освоить Arduino, а не добиваться результата только ради галочки.
К тому же Waveshare отлично поддерживает Arduino, у них хорошие библиотеки — так что мучиться с подключением и настройкой не пришлось.
Для этого дисплея в интернете масса готовых STL-моделей подставок для 3D-принтера, но мой Bambu Lab A1 mini не дружит с крупными деталями, поэтому быстро смоделировал простую подставку — с вырезом под шлейф и легким наклоном для удобства и красоты.
Arduino UNO R4 WiFi
Arduino UNO R4 WiFi — это долгожданное обновление легендарной UNO R4. Новая версия наконец-то обзавелась встроенными модулями Wi-Fi и Bluetooth c базой на ESP32-S3 mini, 96 светодиодами на морде, современным USB-C, большей производительностью, расширенной памятью и кучей других приятных обновлений.
Цветной E-Ink дисплей Waveshare 7,3"
Этот цветной e-ink экран от Waveshare отлично подойдёт для любых проектов на Raspberry Pi — просто подключайте к GPIO и создавайте свои гаджеты без головной боли.
Для меня, новичка в Arduino, это стало настоящим челленджем
С Raspberry Pi я знаком давно, как и с одноплатниками и 3D-печатью. Но с микроконтроллерами, признаться, до последней недели дел не имел вообще.
Начал я традиционно: подключил светодиод, заставил его мигать, покрутил яркость с помощью потенциометра. Обычно следующим шагом идут сенсоры, серво или термометр — но я решил не мелочиться и сразу взяться за приложение для работы с цветным e-ink и ESP32-S3 mini. Вышло сложно, но это только раззадорило — пришлось прокачиваться в новых темах на ходу.
С помощью инструкции от Waveshare и пары проводков я быстро завёл дисплей — пример заработал с первой попытки. До этого пробовал оживить всё на “голом” ESP32-S3, но потерял там 3-4 часа безрезультатно.
А вот с Arduino всё встало на место буквально за пару минут. Вот он, главный плюс Arduino: разжёванные инструкции и понятная документация для чайников и не только.
Когда точно знаешь “куда какой провод вставить” по картинке — можешь не тратить время на пляски с проводами и заняться самым интересным — кодом.
Google Antigravity взяла на себя всю грязную работу
Платы приехали ко мне 18 и 20 ноября, а сейчас уже 24-е — сижу и пишу этот текст. В момент, когда я только начал с проектом, как раз вышел Google Antigravity IDE — ощущение, что всё сложилось специально для меня!
Освоившись с основами, я запустил Antigravity и начал писать код. Если честно, основную часть работы выполнил как раз дуэт Antigravity + Gemini 3.0 Pro. Мне оставалось лишь вносить мелкие правки своими силами на C/C++ и, при необходимости, давать промпты AI. Вся рутинная тяжесть легла на плечи Google Antigravity.
И я был приятно удивлён, насколько быстро шёл процесс. Для прошивки использовал привычную Arduino IDE, весь основной код и доработки делал уже в Antigravity.
Почему на отладку ушло не пару часов, а несколько дней
Честно говоря, даже не думал, что на отладку уйдёт столько времени. Казалось бы — приложение простое, что могло пойти не так? Но я сильно заблуждался.
Черновой вариант заработал уже через час-два, а вот когда решил расширить функционал — вот тут всё и началось.
Сначала все картинки просто растягивались на экран 800×480 без обрезки, из-за чего фотографии выглядели несуразно. Попробовал добавить YOLO — локальную AI-модель для умного автокадрирования. Стало лучше, но иногда портретные фото слишком обрезались по бокам.
В итоге я отказался от автокадрирования и стал показывать фото в их “нативном” соотношении сторон — так изображения выглядят гораздо гармоничнее.
Следующая задача — перенести серверную часть проекта в Docker-контейнер, чтобы можно было запускать фоторамку где угодно, не плясать с systemd. Собрал отдельный Docker-образ — пришлось повозиться, но всё получилось.
В первой версии кода IP-адрес сервера и пароль от Wi-Fi были жёстко зашиты. Привести контейнер к “человеческому” виду заняло ещё четыре часа: теперь все переменные тянутся из конфигов или задаются на ходу.
На весь проект — от первых идей до финальных тестов — ушло около 18-20 часов за пару вечеров и выходных. Отладка заняла гораздо больше, чем я рассчитывал, но если бы не Antigravity, пришлось бы неделями разбираться в Python и C/C++. А так — быстро допилил, проверил и собрал всё в рабочий проект. Теперь точно знаю: для новых идей Antigravity — мой must-have.
Этот проект в считанные дни научил меня большему, чем год туториалов
Пусть большую часть кода сделал Antigravity, но параллельно я постепенно стал понимать и сам Python, и основы C/C++. Да, прогресс не молниеносный, но после ещё пары проектов смогу сам программировать под микроконтроллеры без постоянной подсказки AI.
Главное, что за несколько дней я разобрался в куче базовых вещей. Объяснить всё “от и до” пока ещё не могу, но разбираюсь в Python и C/C++ явно увереннее, чем неделю назад. Для меня это — настоящий скачок вперёд.
Даже если код писала нейросеть, я специально разбирался в каждом баге. Если появлялась ошибка — сначала пробовал докопаться сам, только потом обращался к AI. Такой подход реально помогает понять, что, где и почему ломается.
Когда нейросеть предлагала решение, я сравнивал исправленный вариант с ошибочным — и именно благодаря этой разнице начинал реально понимать, как всё устроено.
Так я впервые стал находить и исправлять баги своими силами, без обращения к AI и долгих поисков в Google. Например, заметил дублирование кода в месте, где его совсем быть не должно.
Этот проект дал мне отличную базу по работе с микроконтроллерами. Я начинал с ESP32-S3, но пока с ним тяжеловато — проще и логичнее стартовать на Arduino, а дальше разберёмся.
Как собрать свою e-ink фоторамку без программирования — мой рецепт и инструкция
Хотите быстро сделать свою e-ink фоторамку и не тратить недели на отладку? Решение уже готово! Я выложил полный исходник на GitHub с пошаговой инструкцией для всех.
Всё просто: запускаете Docker-контейнер у себя на компьютере, пробрасываете порт 80 и подключаете локальную папку к /srv/frame/gallery — это и будет ваша “фотогалерея”.
В исходниках (ссылка на GitHub) ищите файл firmware_arduino.ino и открывайте его в Arduino IDE — и весь проект окажется у вас под рукой.
Остался буквально последний штрих — вручную вписать свои Wi-Fi логин, пароль и IP-адрес сервера в файл secrets.h.
Дисплей и Arduino подключаются обычными проводками — всё предельно просто и описано в инструкции от Waveshare.
Дальше — копируете фотографии (JPEG, JPG, PNG) в синхронизируемую папку с Docker-контейнером. Контейнер автоматически переводит их в .bin-файлы, которые сразу видны Arduino и e-ink экрану. Всё! На этом настройка заканчивается.
Сервер сам обновляет JSON-файл: добавили или удалили фото — и на фоторамке тут же обновился список, последние 10 снимков показываются по кругу. Код специально написан так, чтобы не было повторов и “залипаний”.
Если возникнут вопросы — пишите issue на GitHub, всегда рад помочь! Идей по развитию проекта хватает — уже хочу добавить пару новых фишек и уверен, что это далеко не последнее обновление.
Мир микроконтроллеров оказался захватывающим хобби, о котором я раньше и не думал. Теперь хочу воплотить море идей: от простых гаджетов вроде этой фоторамки — до собственного квадрокоптера с деталями из CAD. Всё только начинается!
Если вам понравилась эта статья, подпишитесь, чтобы не пропустить еще много полезных статей!
Премиум подписка - это доступ к эксклюзивным материалам, чтение канала без рекламы, возможность предлагать темы для статей и даже заказывать индивидуальные обзоры/исследования по своим запросам!Подробнее о том, какие преимущества вы получите с премиум подпиской, можно узнать здесь
Также подписывайтесь на нас в:
- Telegram: https://t.me/gergenshin
- Youtube: https://www.youtube.com/@gergenshin
- Яндекс Дзен: https://dzen.ru/gergen
- Официальный сайт: https://www-genshin.ru