Nfc-визитка, которая светится без батарейки
Знаете, что бесит в обычных визитках? Они застревают в карточках лояльности, мнутся, и единственное, что они умеют — лежать. А теперь представьте визитку, которая светится. Без батарейки. Без проводов. Просто подносишь к телефону — и 21 светодиод запускает анимацию.
Как это работает: nfc как беспроводное питание
Автор этого проекта — Wilson Harper — сделал именно такую штуку. Это PCB (печатная плата), которая одновременно работает как визитка и как электронное устройство. Питание она получает от NFC-поля телефона, а внутри стоит микроконтроллер ATtiny816, который управляет светодиодами.
Большинство людей знает NFC (Near Field Communication — связь ближнего радиуса) как способ бесконтактной оплаты или передачи данных. Но NFC можно использовать и как источник энергии. Телефон несколько раз в секунду испускает слабое магнитное поле. NFC-чип внутри визитки улавливает это поле и преобразует его в электричество.
ПРИНЦИП NFC-ПИТАНИЯ
────────────────────
ТЕЛЕФОН ВИЗИТКА
┌─────────┐ ┌─────────┐
│ ▓▓▓▓▓▓▓ │ ~13 │ ┌─────┐ │
│ ▓ NFC ▓│───МГц───▶│ │NTAG │ │
│ ▓▓▓▓▓▓▓ │ поле │ │I2C+ │ │
│ ▓▓▓▓▓▓▓ │ │ └─────┘ │
└─────────┘ │ ▼ VCC │
│ ┌─────┐ │
│ │MCU │ │
│ └─────┘ │
└─────────┘
Автор выбрал чип NXP NTAG I2C Plus — NFC-чип от NXP, специально разработанный для передачи энергии на внешние компоненты. Он умеет не только обмениваться данными, но и отдавать лишнее напряжение периферии.
Почему микроконтроллер, а не просто мигалка
Без MCU можно обойтись: повесить светодиоды на NFC-чип напрямую, и они будут мигать в такт. Но тогда никакой анимации не получится. MCU (микроконтроллер — маленький компьютер на одном чипе) позволяет запускать сложные последовательности свечения, управлять 21 светодиодом, используя всего 6 пинов, и добавлять логику: разные режимы, паузы, эффекты.
Изначально автор хотел использовать ATtiny412, но столкнулся с ограничениями: всего 5 GPIO и корпус с ножками, который торчит выше. Для профессиональной сборки на JLCPCB это неудобно. Поэтому выбрали ATtiny816 — с 17 GPIO и компактным корпусом 3×3 мм.
Charlieplexing: магия управления светодиодами
Вот где начинается магия. У ATtiny816 17 пинов, но для 21 светодиода использовать их напрямую не получится — не хватит. На помощь приходит техника Charlieplexing.
Идея в том, что светодиоды проводят ток только в одну сторону. Если подать напряжение между двумя пинами в разной полярности, загорится один светодиод. Поменять полярность — другой. Всего 6 пинов позволяют управлять 20 светодиодами.
CHARLIEPLEXING: 6 ПИНОВ → 20 СВЕТОДИОДОВ
─────────────────────────────────────────
GPIO_A ──┬───[LED1]───GPIO_B
│
└───[LED2]───GPIO_C
│
GPIO_B ──┬───[LED3]───GPIO_C
│
└───[LED4]───GPIO_D
│
GPIO_C ──┬───[LED5]───GPIO_D ... и так далее
│
└───[LED6]───GPIO_E
Формула: 6 × (6-1) = 30 → можно до 20 LED
Минус: зажечь два светодиода одновременно нельзя. Решение — PWM (широтно-импульсная модуляция): быстро переключать светодиоды, создавая иллюзию одновременного свечения.
Антенна и ловушки datasheet
Антенна — отдельная история. NFC работает на частоте 13,56 МГц, и антенна должна иметь строго определённую индуктивность — свойство катушки сопротивляться изменениям тока. Автор использовал калькулятор от STMicroelectronics, чтобы подобрать количество витков, ширину и расстояние между дорожками.
Вручную рисовать такую антенну в KiCad — боль. KiCad не предлагает встроенного инструмента для спиральных катушек. Автор попросил LLM написать Python-скрипт, который генерирует прямоугольную спираль с нужными параметрами.
Ещё один подвох спрятан в datasheet. NTAG I2C Plus указывает: на линии питания VOUT не должно быть больше 220 нФ ёмкости. Иначе при запуске конденсатор просадит напряжение, чип не запустится, напряжение упадёт ещё сильнее — и так по кругу.
Автор хотел поставить конденсатор на 10 мкФ для стабильности. Решение — добавить резистор, ограничивающий пусковой ток, и MOSFET как ключ. Через 120 мс конденсатор заряжен, MCU открывает транзистор — и дальше конденсатор работает без ограничителя.
Дизайн платы: эстетика и инженерия
Визитка сделана в формате кредитной карты (85,6 × 54 мм). Все микросхемы и компоненты размещены в левой четверти — автор хотел оставить пространство для воздуха и не перегружать лицо платы.
На обратной стороне выведены все дорожки. Выглядит как произведение искусства для гиков, но это не только красота. Автор намеренно избегал сплошного слоя массы: иначе магнитное поле не проникло бы в антенну, и NFC перестал бы работать.
Три маленьких контактных площадки на обратной стороне позволяют программировать MCU через интерфейс UPDI. Расстояние между ними — 2,54 мм, так что можно использовать pogo pin клипсу.
Практические выводы
Это не первая NFC-визитка в интернете. Многие ограничиваются QR-кодом и дизайном на шелкографии. Немногие делают что-то активное, но с батарейкой — дорого и толсто. Здесь автор нашёл баланс: эффектно, но без батареи, тонко и относительно дёшево.
- Энергия NFC ограничена. Не получится запитать что-то сложнее светодиодов и простого MCU.
- Компромиссы везде. ATtiny412 → ATtiny816, прототип → серия, красота → электромагнитная совместимость.
- LLM ускоряет рутину. Генерация скрипта заняла минуты.
- Datasheet — не совет, а инструкция. Игнорировать ограничения по ёмкости нельзя.
Моя оценка
Проект — отличная демонстрация того, как далеко зашли инструменты для гаражной электроники. Заказать 30 штук собственных плат, спроектированных в KiCad, запрограммировать и собрать — это было безумством пять лет назад и рутиной сейчас.
Но главное не в этом. Главное — в понимании физики: как работает беспроводная передача энергии, почему нельзя просто добавить большой конденсатор, как антенна взаимодействует с полем. Это не магия, это схемотехника, и она красива, если уметь её читать.
Если хотите сделать что-то подобное — начните с NXP NTAG I2C Plus, почитайте его datasheet внимательно, и не пропускайте раздел про ограничения. А скрипт для антенны можно взять из репозитория автора на GitHub.
Ссылки
- Оригинальный проект Wilson Harper — описание и детали проекта
- Репозиторий проекта на GitHub — исходники и скрипт антенны
- NXP NTAG I2C Plus — документация — чип NFC с передачей энергии
- ATtiny816 — документация Microchip — микроконтроллер для проекта
Дмитрий Полухин — продуктовый дизайнер. Пишу про разработку, AI и дизайн интерфейсов. Обо мне, контакты и профили.