![картинка для статьи](https://habrastorage.org/webt/se/zc/-q/sezc-qwyue7fombvw83ok34mchm.jpeg)
Однажды в своих запасах я наткнулся на пакет с микроконтроллерами ATtiny2313A, которые были куплены по акции лет шесть назад на всем известном китайском маркетплейсе и успешно заброшены в дальний угол. Эта неожиданная находка побудила меня создать простое и компактное устройство, которое имеет важное значение для производства прототипов печатных плат в домашних условиях. И что из этого получилось — об этом далее.
❯ Цели, мотивации, причины
В первую очередь, мне хотелось вспомнить прошлое и поработать с ATtiny2313 — одним из моих любимых микроконтроллеров в доардуиновскую эпоху. Во вторых, собрать компактное устройство для засветки фоторезиста. В третьих, Just For Fun еще никто не отменял).
Функционал устройства
Функционал устройства примитивный, нам необходим таймер экспозиции, соответственно нужно реализовать элементы управления в виде кнопок пуск/стоп и установки времени таймера. Для взаимодействия с пользователем будет использоваться дешевый четырехразрядный семисегментный индикатор с общим катодом, а питание устройства будет выполняться от стандартного USB порта с напряжением питания 5 В. В качестве источника UV излучения будет использоваться массив светодиодов.
Что там по компонентам?
Для реализации задуманного, нам необходимы следующие компоненты:
- Сердце нашего проекта ATTINY2313A-SU(SOP-20) — 1 шт ($4)
- Цифровой индикатор красный, KEM-5461AR — 1 шт ($2)
- Светодиод Galaxy light 5MM UV (395 ~ 400 нм) — 63 шт ($0,6 за 100 шт)
- Транзистор AOD208 — 1 шт ($0,8)
Стоимость SMD резисторов и конденсаторов я не учитывал, мосфет можно взять из VRM системы, например, старой материнской платы.
Принципиальная схема и печатная плата
Для разработки принципиальной схемы и печатной платы я использовал кроссплатформенную САПР KiCad EDA, ниже приведены результаты проектирования.
- Принципиальная схема устройства
![Приципиальная схема устройство](https://habrastorage.org/webt/z_/xf/ue/z_xfueqw3r0fxjtvf18qje884e4.png)
- Рендер печатных плат
![Рендер платы](https://habrastorage.org/webt/q3/mf/kj/q3mfkjgqk9v8fvkddfnga4-phra.png)
![Рендер платы с навесными компонентами](https://habrastorage.org/webt/0q/iv/tt/0qivttzkw2lvimu8etuhycrretq.png)
Изготовление печатной платы
Печатная плата изготавливалась в домашних условиях, с применением фоторезиста и фотошаблона. Ниже результат изготовления платы.
- Плата блока управления после травления
![Плата блока управления](https://habrastorage.org/webt/1w/ew/sg/1wewsg1xshnpalr8_4__rbroifs.jpeg)
Микро ПО устройства, оно же прошивка
Чтобы не пугать начинающих инженеров и для упрощения реализации, разработка микро ПО велась в среде Arduino IDE с применением ядра ATTinyCore. Прошивка микроконтроллера выполняется по SPI интерфейсу с помощью специализированных программаторов, но, к счастью, в качестве программатора можно использовать платы Arduino. Заострять внимание на процедуре прошивки по SPI в этой статье не будем, в интернете достаточно доступной информации по данному вопросу. Исходный код прошивки будет размещен в конце статьи. Так как у нас задействованы все пины микроконтроллера и нет возможности использовать внешний кварцевый резонатор для тактирования, то нам необходимо задействовать внутренний тактовый генератор для работы ATtiny2313. В Arduino IDE конфигурация выполняется следующим образом:
![Конфигурация микроконтроллера](https://habrastorage.org/webt/dz/1g/nz/dz1gnzgy8mf0j3bn2wkgale3j5o.png)
После выбора конфигурации нам необходимо нажать на пункт «Записать загрузчик», данная операция запишет в память микроконтроллера конфигурационные FUSE биты.
Корпус устройства
Корпус устройства довольно простой и компактный, который разрабатывался в соответствии с размерами печатных плат. Разработка корпуса выполнялась в САПР FreeCAD, далее элементы корпуса были распечатаны на 3D принтере.
- Рендер корпуса
![Корпус устройства](https://habrastorage.org/webt/y7/cf/zo/y7cfzonarcupqtvpzf8yok0r5h4.png)
Сборка устройства и тест
- Тестовое включение
![Тест работы устройства](https://habrastorage.org/webt/c8/dz/ty/c8dzty8yi-zbd62xnva5yy9_i8m.jpeg)
- Так выглядит массив светодиодов устройства
![Вид на массив светодиодов](https://habrastorage.org/webt/a9/qr/z_/a9qrz_xxnz7a3ve9d5cap81m-qm.jpeg)
- Массив светодиодов при работе
![Свечение матрицы](https://habrastorage.org/webt/5m/gu/eo/5mgueo6pr8oekwq1rthpvavyez8.jpeg)
- Устройство в собранном виде
![Готовое устройство в работе](https://habrastorage.org/webt/65/ys/qn/65ysqneb0_zu-oso9dzeyjgiaiq.jpeg)
Как можно видеть на изображении, время на индикаторе разделяется точкой на минуты и секунды. Для установки времени экспозиции используются две правые кнопки "-" и "+". Для запуска таймера и активации светодиодов используется крайняя левая кнопка, если нажать на эту кнопку при нулевом значении таймера, то она будет просто выполнять функцию включения / выключения массива светодиодов.
❯ Итоги
В результате у нас получилось простое и компактное устройство с равномерным световым потоком для активации фотополимеров в домашнем производстве печатных плат и не только. Надеюсь мой опыт будет вам полезен. Спасибо за уделенное время! Ниже представлено видео демонстрации работы.
Бонусный контент: Изготовление платы с помощью описанного устройства
Ниже приведен пример изготовления звуковой платы из моего проекта «Моя б̶е̶з̶умная колонка или бюджетный DIY голосового ассистента для умного дома».
![Изготовление платы](https://habrastorage.org/r/w1560/webt/0x/wo/ay/0xwoay0vlknzj6onqcqdrk6kjei.png)
На фото процесс облучения, проявления и травления платы. Для проявления фоторезиста я использую десятипроцентный раствор гидроксида натрия, хардкорно но эффективно. :). Для травления платы я использую трехкомпонентный раствор из насыщенной алифатической трёхосновной гидроксикислоты, пероксида водорода и хлористого натрия.
![Изготовление платы](https://habrastorage.org/r/w1560/webt/pe/qx/5k/peqx5kxn2e2oy5sm2ajkn2hotp4.png)
На изображении показана плата после травления, минимальная толщина дорожки 0,25 мм. Для лужения платы я применил химический метод осаждения оловянного покрытия, погрузив плату, предварительно очистив медную поверхность с помощью чистящего средства Comet, в раствор двухлористого олова и выдержал пару минут (рекомендуется 15 мин). После химического лужения, с помощью термофена припаял элементы к плате, но для более «чистого» монтажа рекомендую применять термостол. Как можно видеть, я ошибся с размером контактных площадок под сверление, поэтому часть площадки было утрачено. А если нанести маску, то плата заиграет новыми красками.
![Платы с маской](https://habrastorage.org/r/w780q1/webt/bt/tv/di/bttvdidn7jmjstjtmx_h4gbavha.jpeg)
![Изготовление платы](https://habrastorage.org/webt/0x/wo/ay/0xwoay0vlknzj6onqcqdrk6kjei.png)
На фото процесс облучения, проявления и травления платы. Для проявления фоторезиста я использую десятипроцентный раствор гидроксида натрия, хардкорно но эффективно. :). Для травления платы я использую трехкомпонентный раствор из насыщенной алифатической трёхосновной гидроксикислоты, пероксида водорода и хлористого натрия.
![Изготовление платы](https://habrastorage.org/webt/pe/qx/5k/peqx5kxn2e2oy5sm2ajkn2hotp4.png)
На изображении показана плата после травления, минимальная толщина дорожки 0,25 мм. Для лужения платы я применил химический метод осаждения оловянного покрытия, погрузив плату, предварительно очистив медную поверхность с помощью чистящего средства Comet, в раствор двухлористого олова и выдержал пару минут (рекомендуется 15 мин). После химического лужения, с помощью термофена припаял элементы к плате, но для более «чистого» монтажа рекомендую применять термостол. Как можно видеть, я ошибся с размером контактных площадок под сверление, поэтому часть площадки было утрачено. А если нанести маску, то плата заиграет новыми красками.
![Платы с маской](https://habrastorage.org/webt/bt/tv/di/bttvdidn7jmjstjtmx_h4gbavha.jpeg)
Полезные ссылки к статье
ПО для разработки:
- САПР для разработки корпуса FreeCAD
- САПР для разработки печатных плат KiCad EDA
- Среда разработки Arduino IDE
- Ядро ATTinyCore
Исходные файлы проекта:
![](https://habrastorage.org/webt/b5/pj/of/b5pjofdoxth14ro-rjsrn7sbmiy.png)