Новогодняя-2

Долгое время я считал Arduino бесполезной забавой для детей, которые не умеют мигать светодиодом через транзисторный мультивибратор или NE555 — ни на что другое, по моему мнению, эти платы не годились. Признаю ошибку — коллеги по инженерству часто используют именно эту платформу для проектов, где задействованы датчики температуры, символьные дисплеи, кнопки и электромоторы. Да, это я писал когда-то:

«Транзистор. Покажите мне, чего нельзя сделать на транзисторе, и я скажу, что вы просто мало их взяли».

Но сколько же вёдер их понадобится даже для простого измерителя температуры?

В общем, убедив себя в мысли «тыжпрограммист», я купил плату Arduino Nano. Как и все школьники из кружка робототехники, пару вечеров мигал светодиодами и пробовал один стандартный скетч за другим. В итоге пришёл к трём выводам:

1) будущее — за микроконтроллерами;

2) университету спасибо за основы языка «Си» на втором курсе;

3) для закрепления знаний надо срочно собрать светодиодную ёлку.

while (day <= 364) make_christmas_tree();

TL; DR

У желающих есть ещё целый месяц, чтобы запилить такие же.

Из истории отечественного ёлкостроения


2013-й год лично для меня кончился под моргание этого картонного чуда на КТ315. Это «альфа-ёлка», экземпляр номер ноль, музейная ценность и источник вдохновения. До сих пор работает.

 
Мои более-менее постоянные читатели помнят конец 2015-го по этой «Радиотехнике» и ёлке на транзисторах BC547. Как они теперь — не знаю, потому что усилитель продал, а ёлку подарил.


В 2016-м была экспериментальная ёлка без электроники вообще. Настолько экспериментальная, что спустя два года даже фотографировать её пришлось нарочно — так незаметно она появилась в моём доме. Тоже работает, потому что портиться в ней нечему.


В 2017-м году необычайно ровные пацаны Максим и Вова попробовали скормить 3D-принтеру мой чертёж. Вова в точности вычертил коробку, а Максим нарисовал ёлку по-своему. Напечатать успели только его вариант. Классическая коробка не получилась, а потом закончился пластик, а потом и новый год прошел.

Два изделия — партия небольшая, но статистика уже понятна: работать с фанерой долго и сложно. Дольше и сложнее, чем с электроникой. Поэтому мысль такова: раз уж светодиодами заправляет микроконтроллер, то и фанеру надо резать лазером. Как тебе такое, Илон Маск?


На Днепропетровском Заводе Сувенирных Изделий в моём подчинении случайно оказался лазерный гравёр, так что можно начать с макета из тонкого картона.


А когда всё сошлось — вырезать детали из четырёхмиллиметровой фанеры.

 
Конечно, совсем без участия наждачной бумаги ёлку не собрать — детали верхнего и нижнего ярусов надо подгонять по месту.


По-прежнему фанера склеена «Момент-Кристаллом». Места стыка деталей усилены спичками.

 
Подставка и пять струбцин. Нет, без мемасика здесь было никак.

Конечно, при участии лазерного гравёра можно было сделать и круглую подставку, как мне когда-то хотелось. Но ещё больше хотелось, чтобы ёлка была максимально похожа на ту самую, из 2015-го года.


Здесь уже всё склеено и готово к покраске.


Напомню: первая ёлка красилась прямо по дереву эмалью ПФ-115, вторая — точно так же, но краской из баллона. Проблемы и сложности были что там, что там, поэтому теперь я решил загрунтовать поверхность. Благо, существует грунтовка в баллонах для максимально простых пацанов.


Цвет подобрал намного удачнее, чем на второй ёлке.


Касаемо электричества: схема, на которой я отрабатывал все рисунки мигания. Резисторы в катоде подбираются по желаемой яркости свечения, но не выходя за предел 20 мА через светодиод. Суммарный ток через микроконтроллер не должен превышать 200 мА. Светодиоды — матовые пятимиллиметровые.


Сама Arduino Nano — механик-водитель этой дискотеки, и две вспомогательных платы. С «Наны» убрал лишние индикаторы, а на «катодной» плате распаял все резисторы (SMD 0805). Вторая плата, «анодная», будет распределять сигналы от Arduino к светодиодам.


Так подключены светодиоды к выходам Arduino.

 
Обе этих платы помогут упростить монтаж проводов. Поверьте: первой ёлки мне хватило за глаза!


Провод питания раньше был несъёмным. Здесь я решил установить micro-USB гнездо: компактно и доступно, да ещё можно обновить прошивку. На другом конце шнура распаян mini-USB штекер для Arduino.

Гнездо пингуется на «Алиэкспрессе» как «micro-USB PCB». Винты — М2,5 x 8.


Обратную сторону передней панели покрыл одним слоем краски — чтобы после сборки на стыках корпуса не проглядывало голое дерево. Это лучше сделать перед тем, как приклеивать платы.


Вклеил крепёжную плиту разъёма, начал коммутировать светодиоды, ощетинил «Нану» проводом МГТФ-0,07. Светодиоды лучше тоже вклеивать «Моментом», а термоклеем залить только места пайки проводов.


Красным обозначены выходы Arduino, зелёным — аноды светодиодов, жёлтым — соединение катодов с резисторами, голубое — общий провод.

 
Не претендую на рубрику «когда электрик — перфекционист», но прогресс налицо.

 
Я немного перемешал светодиоды — так ёлка стала выглядеть лучше, но при этом перестала быть похожей на схему, что приводилась выше. От этого в подпрограмму, которая должна включать определённый цвет, стали вклиниваться одна-две точки другого цвета. Мне было лениво вызванивать мультиметром, куда и какой светодиод подключён, поэтому я написал утилиту: ты ей в терминале отсылаешь номер вывода Arduino (2…13), а она в течение секунды выдаёт на него логическую единицу. И сразу видно, где ошибка.

Например, отсылаешь «2», и видишь красный светодиод, подключённый к выводу D2, хотя на пробной схеме он был зелёным. Меняешь значение в подпрограмме. PROFIT!

 
Поэтому итоговая схема выглядит так, а изменения коснулись только секции, отвечающей за мигание светодиодов одного цвета.


---БЫЛО---
int green[4]  =  {2, 5, 8, 11};
int yellow[4] =  {3, 6, 9, 12};
int red[4]    =  {4, 7, 10, 13};

---СТАЛО---
int green[4]  =  {4, 6, 10, 11};
int yellow[4] =  {3, 5, 9, 12};
int red[4]    =  {2, 7, 8, 13};

Можно размещать светодиоды по-своему — просто потом уточните через утилиту, какой цвет к какому выводу подключён, и внесите значения в массивы.


Micro-USB интерфейс — просто и аккуратно.


Подставка с черновой стороны покрыта лаком почти так же хорошо, как и с чистовой. Никакого секрета нет:

  1. Покупаешь любой более-менее нормальный лак (но не Lider).
  2. Подготавливаешь поверхность наждачной бумагой зернистостью 600, а потом 1500.
  3. Обезжириваешь рабочее поле ацетоном или изопропиловым спиртом.
  4. Наносишь лак — два тонких слоя с промежуточной сушкой 3…5 минут.
  5. Оставляешь сушиться на сутки.
  6. Наносишь лак — два тонких слоя с промежуточной сушкой 3…5 минут.
  7. Оставляешь сушиться на сутки.
  8. Матируешь поверхность наждачной бумагой с зерном 1500.
  9. Наносишь финальный слой или два.

Единственная сложность — наносить именно тонкий слой, а не поливать щедрой рукой изделие.

Четырёхцветная ёлка


Схема неканоничной четырёхцветной ёлки. Потому что я могу.


И немного фотографий с нею.

Файлы

Корпус в формате .cdr

Первая страница — виды изделия в сборе, вторая — порезка фанеры. Проконсультируйтесь со своим оператором ЧПУ, как сделать так, чтобы гравировка оказалась в нужных местах — у нас это решается установкой дополнительной опорной точки в одном из углов рисунка.

Печатные платы в формате .lay6

Программа для прозвонки светодиодов

Программа трёхцветной ёлки

Программа четырёхцветной ёлки

Запись опубликована в рубрике Arduino, Печатные платы, Электроника, Handjob с метками . Добавьте в закладки постоянную ссылку.

4 отзыва на “Новогодняя-2

  1. Пишите почаще что нибудь, интересная подача. Может есть смысл канал открыть.

  2. Daria Davidenko:

    елочка целая и радует глаз) а соседки завидуют

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход /  Изменить )

Google photo

Для комментария используется ваша учётная запись Google. Выход /  Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход /  Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход /  Изменить )

Connecting to %s