Оглавление:

Низкополигональный железный человек с управляемыми Wi-Fi светодиодными полосами: 8 шагов (с изображениями)
Низкополигональный железный человек с управляемыми Wi-Fi светодиодными полосами: 8 шагов (с изображениями)

Видео: Низкополигональный железный человек с управляемыми Wi-Fi светодиодными полосами: 8 шагов (с изображениями)

Видео: Низкополигональный железный человек с управляемыми Wi-Fi светодиодными полосами: 8 шагов (с изображениями)
Видео: Водородные искусственные мышцы для экзоскелета Железного Человека (работают без компрессора!) 2024, Июль
Anonim
Низкополигональный железный человек со светодиодными лентами, управляемыми Wi-Fi
Низкополигональный железный человек со светодиодными лентами, управляемыми Wi-Fi
Низкополигональный железный человек со светодиодными лентами, управляемыми Wi-Fi
Низкополигональный железный человек со светодиодными лентами, управляемыми Wi-Fi
Низкополигональный железный человек со светодиодными лентами, управляемыми Wi-Fi
Низкополигональный железный человек со светодиодными лентами, управляемыми Wi-Fi
Низкополигональный железный человек со светодиодными лентами, управляемыми Wi-Fi
Низкополигональный железный человек со светодиодными лентами, управляемыми Wi-Fi

Это интерактивное настенное произведение искусства составляет приблизительно 39 дюймов в высоту и 24 дюйма в ширину. Я вырезал дерево лазером в Студенческой мастерской Университета Клемсона, затем вручную нарисовал все треугольники и установил фонари на обратной стороне. В этом руководстве будет рассказано, как я сделал это точное произведение, надеюсь, его концепция вдохновит кого-то еще на создание своего собственного уникального произведения искусства. Он использует микроконтроллер ESP8266 с адресными светодиодными лентами WS2812B и обычными светодиодными лентами RGB.

Детали и материалы

  • 1/4 дюйма древесины - 40 дюймов на 28 дюймов (максимальные размеры для нашего лазерного резака)
  • 1/8 "непрозрачный акрил - TAPPlastics (я использую Lighting White, 69%)
  • Аккумулятор - аккумулятор TalentCell 12 В / 5 В (я использовал аккумулятор на 12 В / 6000 мАч)
  • Светодиодная лента RGB - 6 футов (Стандартные 4 провода, версия 5050, где свет RGB находится в одном модуле)
  • Транзистор TIP122 для ШИМ-управления многими источниками света
  • Светодиодная лента WS2812B - 2 фута (я использовал версию со 144 светодиодами на метр)
  • Микроконтроллер ESP8266 NodeMCU
  • Сплошной провод соединителя калибра 22 (link1 - link2 - link3 - link4)
  • Некоторые резисторы на 300 Ом
  • Кисти для рисования
  • Краска - в основном я использовал краску Крафт Премиум. Детали на этапе покраски

Инструменты

  • Доступ к лазерному резаку (я использовал один в Клемсоне)
  • Паяльник
  • Пистолет для горячего клея (обязательно)
  • Кусачки / стрипперы
  • Adobe Illustrator
  • Терпение

Шаг 1. Дизайн в Illustrator

Дизайн в Illustrator
Дизайн в Illustrator
Дизайн в Illustrator
Дизайн в Illustrator

Исходное изображение является иллюстрацией Уильяма Тила, пожалуйста, посмотрите в его портфолио другие замечательные работы, написанные им: https://www.behance.net/tealeo93 (я думаю, что это его - я следил за кроличьей ноской в GoogleImages, Pinterest, GraphicDesignJunction, Behance)

Я нашел исходное изображение в поисковике Google по запросу «Low-Poly Iron Man» или «Geometric Iron Man Wallpaper». Я скачал картинку и открыл ее в Adobe Illustrator.

Затем я использовал инструмент «Перо» в Illustrator, чтобы вручную нарисовать каждую линию на изображении. Я сделал это для того, чтобы лазерный резак мог вытравить все внутренние линии как векторную резку с низким энергопотреблением, вместо того, чтобы растрировать по всему изображению. На это ушло несколько часов (или около 3 уроков в школе)

Как только картина была полностью обрисована, я сгруппировал все эти линии вместе, а затем нарисовал формы для рук, груди и глаз. Я собрал их все в группу и установил для них синий цвет заливки, чтобы я мог легко их различить. Я скопировал их в отдельный файл для акриловой резки.

Что касается акриловой части, я хотел максимизировать эффективность моей акриловой детали, поэтому я загрузил ее на этот веб-сайт https://svgnest.com/ и загрузил файл только с акриловыми вырезанными частями и позволил ему «вложить» части. При этом используются несколько итераций и крутые алгоритмы для определения наиболее эффективного макета ваших деталей на листе, чтобы минимизировать отходы. Он выводит конфигурацию из файла IronManAcrylic.ai.

Шаг 2: лазерная резка

Image
Image

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

Когда я прорезал контур полностью по дереву, я использовал 100% мощность и скорость 6% (я думаю) на нашем 60 Вт Epilog Fusion M2 40 в Clemson Makerspace. Это сработало для большей части этого, но дерево было очень деформировано в углу, поэтому мне фактически пришлось перефокусировать лазер для этого угла и снова выполнить эту часть разреза.

Поскольку я также нарисовал линии для всех внутренних треугольников, я также смог использовать векторный вырез, чтобы быстро вытравить все эти линии, как показано на видео выше. Это было значительно быстрее, чем растровое травление файла. Я думаю, что использовал 70% скорости и 50% мощности - вам просто нужно поэкспериментировать.

Акрил размером 1/8 дюйма я сначала резал на 100% мощности и скорости 8%, что было немного слишком мощно и оставляло некоторые следы ожога на незащищенном акриле, поэтому я сделал это на скорости 14%, и это сработало как шарм.

Шаг 3: Покраска

Рисование
Рисование
Рисование
Рисование
Рисование
Рисование

Так. Много. Рисование. Я прикинул, что на рисование ушло около 20 часов.

Если вы думаете о создании проекта с таким количеством треугольников, как этот, пожалуйста, не раскрашивайте его самостоятельно. Просто заплатите, чтобы изображение было напечатано на металле или дереве, а затем вырежьте его, или напечатайте его на чем-нибудь другом и приклейте этот кусок к чему-нибудь твердому. Только не раскрашивайте его самостоятельно, если вы не любите рисовать.

Я использовал малярную ленту FrogTape, чтобы очертить каждый треугольник на детали, когда рисовал это. Это дало мне гораздо более последовательные результаты, чем мои ранние попытки заполнить каждый треугольник вручную без каких-либо границ ленты.

Лента FrogTape дает гораздо более четкие линии, чем белая или синяя малярная лента. Ваше время и рассудок полностью стоят дополнительных 2 долларов за рулон ленты. Если вы хотите, чтобы он был более тонким, вы можете использовать точильный нож, чтобы разрезать несколько верхних слоев ленты на еще более мелкие полоски, чтобы, когда вы намечаете один треугольник, он не покрывает столько соседних треугольников.

Я дешев и не имею большого опыта рисования, поэтому я использовал бутылки с краской на 2 унции из «Michael's» или «Hobby Lobby». Я обнаружил, что линия Craft Smart Premium покрывается довольно хорошо, и в итоге использовал краску CraftSmart Premium Metallic Festive Red, смешанную с белым или черным, чтобы получить 95% моих красных оттенков. Желтый был просто премиальным желтым цветом Craft Smart, с добавлением небольшого количества золота в попытке сделать его немного блестящим.

Если вы знаете о дешевой краске, которая лучше укрывается - дайте мне знать в комментариях !! Мне часто приходилось наносить два слоя краски, чтобы ни один белый цвет внизу не просвечивался, и я бы хотел иметь более красивую краску, которая бы этого не делала.

После того, как все было окрашено (но перед приклеиванием акриловых деталей), я использовал глянцевый прозрачный спрей, чтобы защитить краску и сделать ее блестящей.

Шаг 4: акриловые детали и акриловая подсветка

Акриловые детали и акриловая подсветка
Акриловые детали и акриловая подсветка
Акриловые детали и акриловая подсветка
Акриловые детали и акриловая подсветка
Акриловые детали и акриловая подсветка
Акриловые детали и акриловая подсветка
Акриловые детали и акриловая подсветка
Акриловые детали и акриловая подсветка

Прикрепить акриловые детали было непросто, потому что мой верстак / стол и деревянная деталь были слегка деформированы, поэтому я не мог гарантировать, что все они останутся плоскими достаточно долго, чтобы моя эпоксидная смола застыла. В качестве обходного пути я прижал древесину к столу рядом с акриловой деталью, которую приклеивал, и сначала использовал горячий клей, чтобы удерживать каждую акриловую деталь на месте. Горячий клей виден с лицевой стороны акрила, поэтому я затем использовал двухкомпонентную эпоксидную смолу Gorilla Glue, нанесенную зубочисткой, чтобы надолго удержать акриловые детали на месте. Я вернулся с помощью маленьких плоскогубцев и извлек оригинальные кусочки горячего клея.

Я сделал отдельный световой модуль для каждой акриловой детали. Сначала я вырезал кусок черного пенопласта толщиной 1/4 дюйма на размер немного больше, чем необходимо, и нарисовал на нем контур акрилового элемента. Затем я вырезал и приклеил светодиодные ленты для этого элемента таким образом, чтобы он в основном покрыл акрил. площадь.

Этот шаг лучше было бы сделать с макетной платой и несколькими винтовыми клеммами, но у меня не было их под рукой, когда я был готов приступить к подключению. В качестве обходного пути я отрезал несколько штырьков с гнездовыми штырями до 4 входов - заземление, вход 5 В, вход данных, выход данных. Я приклеил внутреннюю полоску заголовка к пенопласту и начал спаять все светильники вместе.

Пайка была действительно сложной задачей из-за того, что контактные площадки были маленькими. К счастью, у меня было два шанса для всех контактных площадок питания и заземления, потому что на каждую полоску можно подавать питание на любой конец. Я разложил полоски так, чтобы провод данных шел по серпантину. Я использую паяльник с регулируемой температурой, и я обнаружил, что мне нравится, чтобы температура была в верхней части диапазона, окрашенного в зеленый цвет - мне, вероятно, нравится горячий, потому что паяльник, который я использовал в течение многих лет, был дешевым и не имел регуляторов температуры и разгорячился.

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

Шаг 5: остальная электроника

Остальная электроника
Остальная электроника
Остальная электроника
Остальная электроника
Остальная электроника
Остальная электроника

Я всегда пытаюсь подключить свои проекты, сначала подключив силовые входы, затем контроллер, а затем другие элементы платы и периферийные устройства. Я приклеил аккумулятор на место горячим клеем, а затем проложил разъемный кабель постоянного тока так, чтобы вход для зарядки был легко доступен с краю проекта для легкой зарядки. Батарейный блок поставлялся с разъемным кабелем, и в инструкции говорилось, что его можно заряжать, пока он используется.

Я съел дешевый кабель micro-USB и заменил конец micro-USB на цилиндрический разъем постоянного тока, чтобы я мог просто использовать вход 5 В. Я кладу 5 В на одну шину напряжения макета и на вывод Vin ESP8266, затем заземляю на шину заземления и вывод заземления ESP8266 (все заземления должны быть соединены вместе внутри контроллера, поэтому не имеет значения, какой из них)

Стандартные светодиодные ленты RGB управляются ШИМ-сигналом от контроллера. Однако микроконтроллеры могут подавать только 20-50 мА тока на вывод в зависимости от контроллера. Для каждого светодиода в полосе требуется примерно столько же энергии, поэтому для управления полосами приходится использовать какой-то транзистор. Несколько мест, которые всплыли в поисках Google, предложили транзистор TIP122, который может переключать мощность 5 ампер или 40 Вт - более чем достаточно для нашего приложения. На самом деле они не предназначены для размещения в макетной плате, но если вы повернете каждый провод боком на 90 °, он войдет в слоты макетной платы. Изначально я планировал прикрутить к каждому из них небольшой радиатор, но после некоторого тестирования я определил, что они недостаточно нагреваются, чтобы это было необходимо. Я подключил каждый транзисторный вход к контакту на ESP8266, предназначенному для выхода ШИМ.

Светодиодные ленты RGB, которые мне довелось иметь «водостойкое» резиновое покрытие, в результате не остаются приклеенными к дереву так, как хотелось бы. В качестве обходного пути я вырезал небольшие кусочки пенопласта и приклеил кусок пенопласта к дереву, а затем приклеил к ним светодиодную ленту.

Шаг 6: Обзор программирования

В этом проекте используются различные библиотеки, поэтому им можно управлять из телефонного приложения под названием Blynk, включать / выключать с помощью Amazon Echo, а код можно обновлять через Wi-Fi. Некоторые из используемых библиотек приведены ниже

Блинк -

Blynk - это сервис, который позволяет просто управлять микроконтроллером ESP8266 и настраиваемым телефонным приложением. Телефонное приложение позволяет создавать приложения с кнопками, ползунками, палитрами цветов RGB и многим другим. Каждый «виджет» изменяет значение, которое может быть получено из приложения Blynk всякий раз, когда вы запускаете определенную функцию.

Обновление OTA (по воздуху) - библиотека по умолчанию, включенная в ESP8266

Эмулятор Alexa Wemo -

Заставляет Amazon Echo думать, что ваш проект - это выключатель света Wemo. Код позволяет вам определить функцию, которая будет запускаться, когда Alexa отправит сигнал включения, и отдельную функцию для сигнала выключения. Вы можете эмулировать несколько устройств (до 10) с помощью одного контроллера, что обеспечивает еще большую гибкость. Мой код настроен так, что Echo находит два устройства с именами «Железный человек» и «Ночной свет». Это и этот проект, и этот контроллер, но если я включу «Night Light», он запустит функцию с тусклым белым светом, где при включении «Iron Man» внешние светодиодные полосы становятся красными, а акриловые части - белыми..

Редактирование Arduino в Visual Studio с помощью vMicro

Я использую Visual Studio на работе уже несколько месяцев, и мне нравятся все встроенные в нее инструменты автозаполнения, поэтому после некоторых поисков я обнаружил, что действительно могу использовать Visual Studio вместо обычной Arduino IDE. Лицензия vMicro для одного компьютера стоит 15 долларов для студентов, что, на мой взгляд, того стоит, если вы собираетесь потратить более нескольких часов на программирование кода Arduino.

FastLED против Neopixel

Я использую FastLED в своих проектах просто потому, что я нашел в Интернете больше функций, уже созданных для него, и на данный момент я сделал много проектов с его использованием, поэтому у меня есть много кода для повторного использования. Я уверен, что библиотека Neopixel будет работать так же хорошо, если вы достаточно поработаете над ней. Я планирую разместить все свои пользовательские функции на GitHub, чтобы их могли использовать другие люди, я просто еще не дошел до этого.

Шаг 7: Советы по программированию

Общая структура

Я на своей работе инженер по системам управления, и мы часто используем стиль программирования, называемый программированием ПЛК. Этот тип похож на Arduino в том, что у него есть цикл, который выполняется постоянно каждые несколько миллисекунд и имеет дело с входами / выходами, переходя между различными «состояниями» в коде. Например, код может попасть на шаг, связанный с конвейером, где, если на конвейере есть лоток, он перейдет в состояние 45, но если лотка нет, он перейдет в состояние 100. Этот стиль программирования вдохновил мой код, хотя Я внес некоторые изменения, чтобы я мог просто читать строку вместо номера состояния.

Я использую глобальную переменную (commandString), чтобы отслеживать, в каком состоянии освещения находится проект. Кроме того, я использую логическое значение с именем «animate», чтобы определять, выйдет ли он из функции или нет. Поэтому, когда вы нажимаете кнопку «Классический режим» на Blynk, мой код устанавливает для анимации значение false (так что она прерывается из текущей функции) и устанавливает для commandString значение «RunClassic». Каждая функция постоянно проверяет входные данные от Blynk, Alexa и OTAUpdate, выполняя функцию «CheckInput».

Глобальные переменные

Я использую глобальные переменные, чтобы отслеживать некоторые настройки в моем проекте. Эти переменные инициализируются до моего установочного кода, что делает их доступными для любой функции в моем коде.

  • globalBrightness (0–255)
  • globalSpeed - скорость анимации любых анимированных функций. В этом проекте просто исчезающие радуги
  • globalDelayTime - FastLED требуется около 30 микросекунд для записи информации в каждый светодиод, поэтому я установил для этой переменной значение NUM_LEDS * 30/1000 + 1; затем добавьте задержку (globalDelayTime) в большинстве случаев, когда я использую FastLED.show (), чтобы команда не прерывалась.
  • _r, _g, _b - глобальные значения RGB. Таким образом, разные кнопки цветовой схемы могут просто изменять глобальные значения r / g / b и в конце вызывать одну и ту же функцию.

Именование контроллера обновления Arduino OTA

Мне потребовалось утомительное количество поисков, пока я не понял, как назвать контроллер с помощью функции обновления по воздуху. Буквально просто включите эту строку в раздел настройки вашего кода перед "ArduinoOTA.onStart (" -

ArduinoOTA.setHostname («Железный человек»);

vMicro с советами по Visual Studio

Иногда Visual Studio обнаруживает некоторые проблемы с глубокими файлами, такими как стандартные файлы C ++, и выдает некоторые ошибки. Попробуйте включать / выключать различные типы сообщений об ошибках, пока у вас не появятся ошибки только в открытом проекте, а не в каких-либо вспомогательных файлах. Вы также можете открыть код в среде Arduino IDE и посмотреть, будет ли он компилироваться там или выдаст более полезный код ошибки.

FastLED

Сообщите мне, если этот Instructable был выпущен более нескольких недель, а я до сих пор не понял, как разместить свои пользовательские функции на GitHub.

FastLED указан как совместимый с ESP8266, но определения контактов могут быть неправильными. В документации для FastLED говорится, что вы можете попробовать включить одну из следующих строк перед #include

  • // # определить FASTLED_ESP8266_RAW_PIN_ORDER
  • // # определить FASTLED_ESP8266_NODEMCU_PIN_ORDER
  • // # определить FASTLED_ESP8266_D1_PIN_ORDER

Тем не менее, я попробовал все три, и ни разу не совпали все мои булавки. В настоящее время я использую последнюю строку и просто согласен с тем, что когда я говорю FastLED использовать контакт D2, он фактически использует контакт D4 на моем контроллере.

Несмотря на то, что мои огни - это всего лишь дешевый китайский подделка неопикселей, я все же говорю FastLED, чтобы они относились к ним как к неопикселям в настройке.

  • FastLED.addLeds (светодиоды, NUM_LEDS);
  • FastLED.setCorrection (TypicalLEDStrip);
  • //FastLED.setMaxPowerInVoltsAndMilliamps(5, maxMilliamps); // Полезно для проектов с батарейным питанием
  • FastLED.setBrightness (globalBright);

Шаг 8: конечный продукт

Конечный продукт
Конечный продукт
Конечный продукт
Конечный продукт
Конечный продукт
Конечный продукт

Та-да!

Не стесняйтесь комментировать или отправлять мне вопросы по электронной почте - мне нравятся эти вещи, и я хотел бы помочь другим людям делать крутые проекты. Посетите мой веб-сайт, чтобы узнать о других проектах, которые я сделал, и о моих фотографиях: www.jacobathompson.com

Рекомендуемые: