Всем мозгочинам здравствуйте! Для недорогого костюма на Хеллоуин мне понадобился простенький реактор Старка, который я недолго думая сделал из светодиодов в бумажной коробке. Но дальше этот простенький реактор вылился в программируемую поделку на микрочипе, о которой и расскажу в этом мозгоруководстве.
Создавая первый непритязательный реактор, собранный по самой заурядной схеме и упакованный в картонную коробочку, я не представлял как этот мир адресных светодиодов и микроконтроллеров заворожит меня. Поделка из этого мастер-класса хотя и программируемая, но все же довольно простая и может быть с успехом вами доработана, или даже вдохновит вас на собственные мозгоизобретения!
Шаг 1: Компоненты
• 8-контактный микроконтроллер Attiny 85
• RGB светодиоды WS2812B (NeoPixels от Adafruit)
• электролитический конденсатор на 10 мкФ
• резистор с номиналом в пределах от 300 до 500 Ом
• резистор 10K Ом
• провода, желательно 3 цветов
• печатная плата, моя круглая диаметром 6 см
• кнопка
• LiPo батарея на 3.7В
• разъем для подключения батарейки
• контактный разъем (опционально), позволяет быстро перепрограммировать реактор
• полупрозрачная пленка для окон
• черный картон
• паяльник и аксессуары
• кусачки
Батарея: свою самоделку я хотел сделать автономной и не громоздкой, для того чтобы она была незаметной под одеждой, поэтому выбрал 3.7В батарейку, которая с успехом питает и светодиоды и микропроцессор. Можно выбирать батарею с номиналом от 3.5В до 5.5В, от большего напряжения светодиоды сгорят. Три батарейки по 1.5В тоже подойдут, но они занимают много места, что делает реактор громоздким, хотя можно их поместить отдельно в другом месте и подсоединить проводами.
Светодиоды: светодиоды в ленте я предпочитаю обычным, так как они уже готовы к применению без дополнительной пайки.
Шаг 2: Макет
На макетной плате собираем электроцепь и проверяем работоспособность компонентов. При этом я полагаю, что вы умеете запрограммировать Arduino и протестировать его, да и все компоненты. Сначала цепь собираем с Arduino, в последствии заменяем его Attiny, подключаем питание и проводим окончательную настройку. При макетировании, да и при пайке электроцепи я предпочитаю использовать стандартную цветовую маркировку проводов: красный – «плюсовой» провод, черный – «земля», зеленый – «данные».
На представленном рисунке не обращайте внимания на распайку светодиода, она не для версии WS2812B. Мы понимаем, что 5В идет к «5V», первый контакт на «GND», данные идут от 4 контакта Arduino (или 4 Attiny85) через резистор (от 300 до 500 Ом) на контакт «Di». Конденсатор, подключенный параллельно светодиоду, сглаживает скачки напряжения при мигании светодиодов. Светодиоды максимальной яркости взяты в количестве 11 штук, потому Arduino может выдать 500мА через USB, как раз для этого количества. Если вы хотите использовать большее количество светодиодов в своей самоделке, то вам придется найти другой источник питания. Полезная информация по NeoPixels здесь.
Когда цепь на макетной плате собрана, подключаем Arduino к компьютеру через USB, и если ничего не задымилось, значит все отлично и переходим к следующему мозгошагу.
Шаг 3: Код
Если вы сделали все правильно, то просто скопируйте и вставьте приложенный кодреактора в Arduino IDE, а потом его загрузите на Arduino. Свой код я писал несколько месяцев, но для тех, кто умнее меня он может показаться простеньким, что же, можете написать свой, это только улучшит мозгоподелку. Библиотека для Adafruit Neopixel здесь.
Программа написана для нескольких режимов свечения LED. Далее описаны несколько переменных этого кода, которые регулируют яркость, задержку, мерцание и т.п.
Void setup() определяет кнопку PIN как вход, а strip.begin и strip.show объявленными. Это инициализирует светодиодные полосы и очищает их. Поделка переведена в рабочий режим.
Void loop() - chkBtn вызывает функцию, которая выбирает номер шаблона свечения (ее я опишу после), если количество исчерпано, то счетчик сбрасывается на первый номер. Затем назначается pickPattern, описанный ниже.
void pickPattern() – просто запоминает номер выбранного с помощью chkBtn шаблона и назначает функцию для отдельных шаблонов.
boolean chkBtn() - эта функция проверяет нажатие кнопки, если это так, то она добавляет 1 к номеру шаблона и вызывает программу, чтобы выбрать следующий шаблон.
Шаблоны:
SteadyLights - все огни включаются и светятся постоянно в постоянном уровне. Это шаблон # 1, автоматически назначается при включении самоделки.
PropSpin - создает эффект пропеллера, крутящегося свечения.
Glow – все диоды светятся, а затем затухают, и обратно.
Smile – высвечивается смайлик.
Heartbeat – пульсирование красным светом, имитирующее биение сердца Старка
Spinwheel – один светодиод «бегает» по круг, имитация загрузки.
Idle – выключенные светодиоды, режим ожидания, экономии энергии батареи.
Шаг 4: Программинг
Этот шаг я делал (и вам рекомендую) по методу описанному#Use-a-1-ATTiny-to-drive-addressable-RGB-LEDs/"> здесь, который подробно описывает способ программинга Attyny85 для работы со светодиодами. Сам метод основан на работе данной команды.
Основной момент этого шага, это быть уверенным в том загрузчик устанавливается на 8МГц. Если вы сожжете предохранители, то естественно работать он не будет. После установки загрузчика просто загружаем код на Attiny и приступаем к тестированию электроники реактора!
Шаг 5: Макет с запрограммированным Attiny
Обращаем внимание на распиновку!
Pin 1 на Attiny 85 отмечен небольшой мозготочкой, ориентируемся на нее и определяемся с остальными контактами. Сверху вниз 1, 2, 3, 4, затем снизу вверх 5, 6, 7, 8 – но это только физические контакты, распиновка контактов при программировании для этой поделки такова:
«земля-Ground» -4 физический контакт
"Плюс Vcc» - 8 физический контакт.
I / O 1: цифровой контакт 1 – 6 физический контакт, используется как входной контакт кнопки.
I / O 4: цифровой контакт 4 – 3 физический контакт, используется как дата-выход для диодов.
Собираем цепь по схеме, и в принципе, все должно работать. Тестируем электронику на работоспособность и если все в порядке, переходим к следующему шагу.
Шаг 6: Монтаж светодиодов
Ориентируясь на конечную круглую форму поделки, располагаем светодиоды на плате: 10 LED по кругу и один в центре. Ножницами аккуратно разрезаем светодиодную ленту в предназначенных для этого местах, а затем припаиваем их по кругу монтажной платы, обязательно соблюдая полярность светодиодов. В моей самоделке они выстроены против часовой стрелки, можно смонтировать их и по, но тогда придется переписать и код. Светодиод в центре припаиваем стрелкой вверх.
К самой плате светодиодные модули крепятся контактами заземления, а для «плюсовых» и «дата» контактов удобно использовать ножки от резисторов. Следует заметить, что контакты «земля» замкнуты в контур, а контакты «дата» имеют разрыв, контакты «плюс» также замкнуты в контур.
Шаг 7: Монтаж компонентов
Теперь впаиваем оставшиеся компоненты, при этом стараемся их скомпоновать, не увеличивая габариты мозгореактора. Повозится, возможно, придется с батареей и контактным разъемом для перепрограммирования, который можно немного сточить, но если вы не планируете перепрограммировать чип, то разъем можно не устанавливать. Ориентируйтесь при пайке на фото и макет 5го шага.
При впайке Attiny выберите наилучшее положение согласно распиновке, а чтобы уменьшить толщину можно впаять его без колодки, так же не перегревайте его и не коротите контакты лишним припоем. Для еще более тонкого дизайна батарейку можно вынести за пределы реактора, соединив его с ним длинными проводами.
Кнопку впаиваем в том месте, которое будет непрозрачным и в котором крышка реактора будет достаточна гибкая для нажатия. На задней части платы распаиваем провода, которые идут к контактному разъему.
Шаг 8: Тестирование
Когда схема распаяна, подключаем источник питания и запускаем мозгоподелку. Сначала реактор должен просто светиться, а после нажатия кнопки меняться режимы свечения. Если же поделка только нагревается и/или дымиться, то значит что-то вы сделали неправильно и придется исправлять.
Шаг 9: Корпус реактора
Приступаем к созданию корпуса по предложенным мной эскизам. шаблонкорпуса
Корпус имеет диаметр 8.9 см и 1см в толщину, что позволяет поделке быть незаметной под одеждой. Сам корпус выполнен из черного картона, с которым легко обращаться, и он достаточно прочен для данной мозгосамоделки. Из картона острым ножом вырезаем элементы корпуса, а затем склеиваем их скотчем. Внутреннюю часть задней крышки можно обклеить фольгой для лучшего отражения света. Все просто и экономно!
Шаг 10: Рассеиватель
По внутреннему диаметру корпуса из полупрозрачной пленки для окон вырезаем рассеиватель света, а затем устанавливаем его в сам корпус. Мне понадобилось установить два слоя рассеивателя, чтобы получить необходимое свечение диодов. Можно вместо пленки использовать салфетку или ткань, что тоже дает нужный мозгоэффект.
Шаг 11: Сборка
Заднюю стороны платы обклеиваем скотчем, чтобы избежать замыкания от фольги, подсоединяем батарейку и устанавливаем плату в корпус. На грудь мозгоподелку можно крепить как я, с помощью лейкопластыря, или другим подходящим вам способом: ремешком или резинкой вокруг груди, с помощью цепочки на шею и т.п.
http://www.youtube.com/watch?feature=player_embedded&v=J7zOICl3Dr8
В дальнейшем я планирую сделать корпус из пластика, вывести разъем для зарядки аккумулятора, чтобы не вынимать ее, и еще добавить схему защиты от ненужной разрядки.
Реактор Старка готов! Удачи вам в мозготворчестве!
( Специально для МозгоЧинов #Programmable-Wearable-Arc-Reactor