Новый Год, гирлянда, arduino

Начал изучать тему умных домов, пришел к Arduino и возникла необходимость потренироваться на кошках. А тут как раз Новый Год наступает… Дело ясное, будем делать десятиканальную гирлянду. С паяльником с детских цветомузыкальных времен, в принципе, дружен, но последние 20 лет занимался все больше программированием.

В основном, комплектующие покупались на ebay. Некоторые, в местном радиомагазине, но в магазине они в 2-3 раза дороже. Китайцы рулят.

Начал с рисования схемы и трассировки платы. Посмотрел несколько программ, остановился на CadSoft Eagle. Если разобраться с управлением, все что надо делает. Автотрассировка проявила себя никак — совершенно нелогичное размещение деталей и бесчисленные переходы между слоями. В итоге нарисовал схему в Eagle Schematic, трассировку делал вручную в Eagle Board — все детали уже были соединены линиями, оставалось только разместить куда надо и нарисовать дорожки. После небольшей практики все достаточно удобно.

Изучил как сейчас травят платы, метод принтера — утюга не впечатлил вообще.
Купил в магазине текстолит с позитивным фоторезистом, напечатал плату на пленке (без инверсии), наложил пленку на текстолит, проэкспонировал две с половиной минуты в солярии, проявил в 1,5% растворе гидроксида натрия(NaOH) и протравил в 30% растворе хлорного железа (FeCl3).

Результат — сказка! Все очень четкое, мелкие буквы остались на своих местах. Далее лудим, паяем.



Как уже писалось на Хабре, чтоб программировать Arduino Pro Mini без танцев с бубном, надо покупать правильный USB to TTL UART модуль с пином DTR.

Логика программы: одна ветка гирлянды(24 диода) — один бит, т.е. состояние десяти веток задается десятью битами числа (0 — все выключено, 2^10-1 — все включено).
Есть некоторое количество шаблонов переключения. При подаче питания программа начинает перебирать шаблоны в случайном порядке.

— При коротком нажатии кнопки происходит переключение на полностю случайное включение каждой ветви.
— Среднее нажатие кнопки меняет в цикле кратность задержки, т.е. базовая задержка 500мс умножается на 1-3.
— Длинное нажатие кнопки переводит девайс в сервисный режим. Сначала загораются все ветви, потом при коротком нажатии кнопки последовательно загорается каждая.

Долго тупил в стандартную функцию возведения в степень pow() — возвращала совсем не то, что ожидалось. Пока не открыл документацию и не обнаружил, что в pow() аргументы float, результат double, а непонятки возникают при приведении в int. В итоге пришлось пользоваться самописной рекурсивной int power(int, int).

Потом наступил адский ад — распайка 240 диодов. И у каждого, заметьте, две ноги. Всего получается 480. Определенно, не самое эффективно проведенное время жизни. Еще наступил на грабли с термопистолетом. Он отлично усаживает термоусадку, но при этом жилы витой пары сплавляюся в единое целое. Выглядит без повреждений, но все провода закорочены. Одну ветку полностью переделывал.

В итоге получилось замечательная гирлянда:



Всех с наступающим Новым Годом, счастья и здоровья!

Список использованных деталей:
1. Arduino Pro Mini, 5V, 16M
2. Резисторы R1-R10 — 220 кОм, все остальные, в том числе и токоорганичивающие на LEDы, 220 Ом
3. N-канальный полевой транзистор Q1-Q10 — IRFZ44N. В принципе, ток в LED цепях течет небольшей, транзисторы или сборку можно взять и менее мощные. На 20V питания и цепи из 24 LED, ток порядка 20 мА
4. Блок питания от ноутбука Dell. Выдает +20V
5. Линейный стабилизатор напряжения 5V для питания Arduino — ST78S05. Сильно греется, пришлось ставить на радиатор.
6. Конденсаторы к стабилизатору 220u/35V, 47u/16V
7. 240х LED 5мм + 11х LED 3мм для индикации
8. Кнопка
9. 10м UTP кабеля, который был разрезан и на его жилы паялись диоды.

Исходники в архиве:
— схема EAGLE v7.2.0 *.sch файл
— экспорт схемы *.png
— плата для печати на пленку *.pdf
— processing *.ino исходник для Arduino IDE
Поделиться публикацией
Ой, у вас баннер убежал!

Ну. И что?
Реклама
Комментарии 43
  • +2
    Зря вы про метод принтера и утюга. Я с первого раза достиг отличного результата при помощи ЛУТ (расстояние между дорожками 1мм) даже используя Canon 2900 и обыкновенный глянцевый журнал вместо рекомендуемой фотобумаги.
    • +2
      проектирование происходило в офисе, а там все принтеры большие A3 МФУ — стремно их глянцевыми журналами кормить. Да и утюгом офис не оборудован.
      Пленка же была и у принтера были для печати на ней настройки.
      Вообще, IMHO фоторезист — более технологичный метод.
      • 0
        Существует ещё специальная бумага-термотрансфер, с помощью которой платы по ЛУТ-технологии получаются почти как промышленные. Можете попробовать достать её и сделать плату.

        Я, к сожалению, так и не освоил ЛУТ. Раньше для личного пользования ПП я делал при помощи ножа, а затем стали доступны китайские сервисы по изготовлению ПП.
        • 0
          китайские сервисы по изготовлению ПП???
          речь о неких сложных многослойных платах, ведь верно?

          нашу простую самому потравить/ посверлить в кайф
          • +1
            Нет, они делают и обычные двухсторонние. Берут примерно 20$ за 5 плат с маской, шелкографией и прочими радостями. Здесь на хабре и на easyelectronics.ru было про них несколько статей.
        • +1
          Я с первой попытки вообще умудрился качественно сделать дорожки 0,2 мм с шагом 0,2 мм. Использовал глянцевую фотобумагу и ламинатор вместо утюга. Я не очень верил в успех, так как обычно в случае ЛУТ о таких размерах говорят как о предельных, а у меня опыта было ноль. Но все получилось замечательно.
        • 0
          Аккуратненько. Гифка с монтажом понравилась. Я б еще схему девайса картинкой выложил.
          Понятно, что линейный стабилизатор греться будет, если ему с 20 до 5 вольт напряжение уронить надо.
          • 0
            добавил в пост схему, картинку схемы, layout платы и processing исходник
          • 0
            Ну и, витуха для такой задачи — так себе выбор. Изоляция слабая, жила ломкая.
            Да, и что там насчет предохранителей?
            • 0
              предохранители отсутствуют :)
              Ни на одной схеме не видел, ну и не ставил.
              На самом деле цель проекта выяснить как долго проживет Arduino под нагрузкой в реальной жизни.

              Про провод долго искал что-нибудь недорогое, тонкое и многожильное — не нашел. UTP оказалось самым простым вариантом. Изоляция, да — никакая. Чуть передержал термопистолет и привет.
              • 0
                Ардуина сама по себе проживет долго. А вот при козе в нагрузке могут быть неприятные сюрпризы. В блоке питания, скорее всего, есть предохранитель на плате, но я себе за правило взял — во всех самоделках хотя бы один предохранитель на вход ставить.
            • –1
              Да уж. трассировку надо уметь автоматом делать, если не задавать никаких ограничений то именно так и будет — АД и УЖАС. Нужен опыт, чтобы знать что где задать и как лучше зафиксировать положение некоторых объектов чтобы трассировщику было проще.

              Вот, кстати сам задумался над такой нужной в хозяйстве вещью. Но, использовать буду НЕ ардуину, и светодиоды уже готовые есть — от двух 5-метровых 4-х канальных гирлянд, получается 8 каналов 4 разных цвета адаптированных под 220В, тиристоры тоже с готовых коробочек взять и реализовать плавное изменение яркости. Плюс выводов хватило под WiFi-модуль ESP8266, реально попытаться устроить новогоднюю цветомузыку под управлением компьютера. К сожалению, до НГ не успею скорей всего, может чуть позже заработает.
              • +2
                Единого мнения по автоматической трассировке нет. Спецы по печатным платам, с которыми мне приходилось работать, всегда предпочитали ручную трассировку. Встроенный автотрассировщик Eagle автоматическую трассировку делает плохо. С ним проще сделать трассировку вручную.
                Я бы советовал лучше изучить принципы разводки печатных плат и делать ручную трассировку.
                • 0
                  поддерживаю.
                  Плюс автотрассировщик не знает куда какие детали надо размещать из-за логики корпуса — навесных элементов. Т.е. если детали таки расставлять руками, то провести руками дорожки уже вообще не вопрос.
                  На моей простой схемке получилось именно так.
                  • 0
                    Это все потому что не придумали еще алгоритмов трассировки обладающих достаточной разумностью… они действуют методом перебора.
                    Введение искусственных ограничений по определенным критериям повышает шансы на успех. Из таких критериев могут быть минимальная толщина дорожки, группировка дорожек по функциональному признаку(дифференциальная пара, шина и т.д.) которые трассировщик будет всегда проводить вместе и при необходимости выравнивать электрическую длину линии, и множество ньюансов которые очень нудно соблюдать при трассировке вручную.
                    Зафиксировав положение некоторых крупных компонентов можно очень сильно облегчить работу трассировщика и повысить шансы на успех, или по крайней мере промежуточный вариант нуждающийся в минимальных правках.
                    Большинство людей наверняка просто не знают о таких возможностях трассировщиков, или попросту считают это чрезвычайно заумным и трудным делом что «проще вручную развести».
                  • 0
                    юзай wavvy audio jvlns.org/wavvyaudio, как раз есть serial port и все дела
                  • +1
                    Делал в прошлом году, видео к сожалению не осталось, устройства тоже: обычная цветная светодиодная лента упрощённо состоит из секций по 4 диода каждого цвета в которых «плюс» общий. Вот в ленте изолируем «плюсы» секций, «минусы» оставляем. В результате можем зажигать каждую секцию с разным цветом (различно шим-ля «минусы») и яркостью (шим-ля плюсы). При должной смекалке, сноровке, времени и наличии сдвиговых регистров можно на ёлке устраивать приличное шоу.
                    • +1
                      А почему остановили выбор именно на Arduino? Вы выбрали про мини, значит без USB. Поставили бы сразу 2313 тиньку или 48 мегу и было бы дешево, просто, компактно и прекрасная IDE Atmel Studio 6.2. И практический опыт значительно ценнее был бы.
                      • +1
                        купил детям UNO R3 Starter Kit, поигрался и практически сразу купил несколько Pro Mini.
                        Они, вроде, не особо дорогие — на ebay были по $4.66.
                        Уже потом прочитал про другие чипы… Будем разбираться что к чему.
                        В итоге нужны максимально надежные и с максимально большим community
                        • +2
                          Pro mini (и Nano) по причине своей цеы — вообще отличный выбор для мелкого самопала, поддерживаю.
                          • 0
                            Посмотрел историю покупок в ebay.
                            $4.66 — это за две штуки Pro Mini atmega328 5V 16M
                            т.е. одна стоит $2.33
                        • +1
                          У arduino есть несколько проблем — первая это ее IDE, лучше поставьте плагин на VS 2010, если хотите работать именно с Arduino
                          Второе — работа с Arduino слишком сильно отличается от работы с реальным микроконтроллером. Перейти на более сложный уровень, чем мигание светодиодами на макетке становится даже сложнее, чем начинать сразу с нуля (особенно если вы программист). Честь вам и хвала, что вы аккуратно оформили свой проект на плате и в корпусе — для ардуино это невероятная редкость.
                          Со своей колокольни я бы посоветовал вам поиграться с Atmega48-328 в DIPe, китайской платой под нее — «mini development board», UspAsp программатором и Atmel Studio 6. По факту получается почти тоже самое, что и Arduino, но возможности почти безграничны и позволяют реализовать любую задумку хоть в промышленых масштабах.
                          P.S. А чуть позже взять еще одну отладочную платку с поддержкой JTAG и Atmega32…
                          Документации и библиотек под AVR тоже полно.
                          • 0
                            ничто не мешает использовать ардуино в роли «ПЛИС», извините за слоупочность ;) чтобы велосипедов несколько не реализовывать, когда уже все там реализовано. есть такие случаи.
                      • 0
                        А что у Вас на 6-7 ролике за коллизия с расположением элементов на плате?
                        • 0
                          не знаю
                          как делалось, так и фотографировалось — никакого фотошопа :)
                        • 0
                          какой смысл в r1-r10? они и жрут ток но они бессмысленны
                          1) вы ими перегружаете ардуину (она дубовая конечно, переживет, но формально плохо)
                          2) они греют воздух и греют стабилизатор 7805 (ага тот самый, что питает ардуину)
                          3) они просто не нужны в этой схеме

                          набрал и зачеркнул

                          У вас в схеме и в статье перепутаны номиналы 220к и 220ом. Советую ставить на светодиоды резисторы по паре килоом все-таки. Тогда и греться ниче не будет. А пока вы дико перегружаете ардуину (сам контроллер) по току. r1-r10 можно выкинуть, он не обязательны.
                          • 0
                            черт, а ведь и верно!
                            На транзисторах 220K, все остальные — 220R.
                            Поменял везде, спасибо.

                            ОК. Разберем и померяем токи. Спасибо
                          • 0
                            По поводу витухи — можно было использовать многожилку, для патч-кордов. Я такой удлинял гирлянду покупную: на ней от контроллера до самой гирлянды было сантиметров тридцать, то есть при размещении гирлянды над окном контроллер оказывался примерно там-же. Взял патч-корд двухметровый, использовал пять жил — там четыре канала всего. Получилось вполне удобно и гибко. По поводу изоляции — я бы не сказал, что там плохая.

                            Патч-корд Brandrex, если что.
                            • 0
                              Да, раз уж дело про провода пошло… Я б взял много тонкого МГШВ, и из него свил бы «витуху». Двойная изоляция (внутренняя термостойкая), мягкий, да и вообще надежный.
                              • 0
                                Я бы тоже взял бы… но где? Нигде особо провода не продают… да еще по приемлемой цене!
                                • 0
                                  Я обитаю в областном центре, 200 км от Москвы. Провод купить можно, но не шибко экзотический. Что-то посерьезнее приходится заказывать с доставкой транспортной компанией, тут возникает другая проблема — приходиться брать бухту, для дорогого кабеля, которого надо немного, это финиш. Тогда приходится напрягать знакомых, чтобы купили, а потом с оказией переправили. Все, в принципе, решаемо, но иногда очень геморройно.
                              • 0
                                1) гирлянду можно не паять, а делать более технологичным образом: нужно взять шлейф «лапшу», и далее в нем шилом делаются отверстия и вставляется диод, контакты загибаются. В конце 90-х с отцом так делали гирлянды на продажу — 5-жильный шлейф для 4 каналов, простенькая схемка из 4 транзисторов, микросхемы ROM (c эффектами) и счетчика. Технология с шилом показала свою живучесть — до сих пор работают гирлянды.
                                2) на Ардуине можно реализовать более сложные эффекты с разной яркостью — с помощью ШИМа
                                • +2
                                  Потом наступил адский ад — распайка 240 диодов
                                  Сочувствую. Я поступил проще. Приобрел гирлянду на чипах WS2811 и подключил ее непосредственно к Arduino. Библитотека FastLed. Все больше ничего не надо, дальше только полет фантизии программиста. Можно зажигать любым цветом любой светодиод.
                                  • +1
                                    А я из ардуины, L293D и шагового мотора от старого дисковода 5" собрал привод вращения диско-шара для новогодней ночи.
                                    • 0
                                      Драйвер сильно греется?
                                      • 0
                                        Приемлемо. Пальцу не горячо.
                                    • 0
                                      Разбирая как-то завалы, нашел гирлянду, сделанную из светодиодов на шлейфе многожильном. Светодиоды вставлялись в розеточку с двумя контактами с шагом 2.54, а с другой стороны — две прорези с ножевыми контактами. От шлейфа отделялась нужная пара и в нее врезалась розеточка. Просто и технологично, но черт, понятия не имею, где такие взять…

                                      А 240 светодиодов? Ща займемся ф-метрией — сердце и аббревиатура из 357 светодиодов, 357 резисторов, 357 отверстий в дорожном знаке — полуподарок другу на их годовщину с девушкой. А недавно делал анимированную инсталляцию с эффектом включения неоновых вывесок на дросселях (когда в случайном порядке включаются лампы, как люминесцентные в светильнике) фразу из 16 букв и двух знаков препинания высотой в полметра, из светодиодной модульной (по три светодиода) ленты, прифигаченной по периметру вырезанных из ПВХ букв на каркасе на отверстие со стяжкой (рассчитывалось на демонстрацию на морозе, с питанием от автоаккумулятора, получилось ярко и эффектно). Насчитал 930 модулей!
                                      Эффект, кстати, офигенно смотрелся — каждая буква отдельно же управлялась. Управление — ардуинка на самодельной макетке со сдвиговыми регистрами и два модуля реле по 8 каналов (прикольно щелкает и не было времени на транзисторы..).
                                      • 0
                                        А почему не сделать на ленте WS2812? Никаких силовых элементов не нужно и возможностей по управлению гораздо больше :)
                                        • +2
                                          Кошелёк только шире открывай…
                                          • 0
                                            Действительно, посмотрел цены на ebay перебор как для новогоднего украшения :)
                                        • 0
                                          впечатлило! спасибо!
                                          • 0
                                            А как же мягкий и нежный ШИМ? ;-)

                                            Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                            Самое читаемое