Оглавление:
- Шаг 1: Необходимые инструменты и детали…
- Шаг 2: Первые шаги к созданию…
- Шаг 3: Вырежьте куб лазером и раскрасьте
- Шаг 4: Склейте кубик…
- Шаг 5: Вставляем линзу и электронику в отверстие…
- Шаг 6. Приклейте глаз…
- Шаг 7: Мини-программирование D1
- Шаг 8: Эскизы MQTT…
- Шаг 9: Google Home, IFTTT и Dweet.io Sketches…
- Шаг 10: Заключительные мысли и еще несколько картинок
Видео: Супервайзер Эрик Вдохновленный LED Cube (Люди Земли): 10 шагов (с изображениями)
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:51
Кто или что такое Супервайзер Эрик - и зачем вам это строить.
Супервайзер Эрик - КОРОБКА, или Куб, или что-то из шоу TBS «Люди Земли».
Это забавное маленькое шоу о людях, похищенных инопланетянами - по большей части инопланетяне в значительной степени идиоты. Я думаю, что в начале второго сезона летающий куб по имени Эрик взял на себя миссию пришельцев - он известен как Супервайзер Эрик. Не совсем ясно, является ли он существом внутри куба, ИИ или просто кем-то. У Эрика есть свои планы и он даже «промывает мозги» члену группы поддержки похищений, но это уже отдельная история.
Я увидел Эрика и подумал, что это отчасти изящно - и его было бы очень просто сделать - Так что я сделал такой.
К сожалению, информации о нем не так много - так что я вынужден согласиться с этим вдохновленным фанатами "Супервайзером Эриком" - Мой не летает и никогда не будет летать (я почти уверен, что это были просто спецэффекты в шоу в любом случае.)
Кроме того, я действительно не знаю, насколько он большой - я предполагаю, что это примерно 7-дюймовый куб с примерно 3-дюймовым глазом. Моя сборка оказалась примерно 5-дюймовым кубом с примерно 2-дюймовым глазом.
Я использовал WeMos D1 Mini в качестве контроллера со светодиодом WS2812 - это дает мне возможность изменять цвет глаз.
В шоу я пока видел три глаза разного цвета: синий, который кажется его нормальным цветом, красный, который появляется, когда он что-то замышляет, злится или злится, и зеленый, когда он выполняет предварительное сканирование чего-либо.
Для одного из набросков, которые я сделал - у меня есть его выражение лица, для другого наброска я использую MQTT и получаю цвет черлипа из твиттера. Я также сделал апплет IFTTT, который позволяет мне использовать Google Home / Google Assistant для изменения его настроения - используя dweet.io - подробнее об этом ниже.
Шаг 1: Необходимые инструменты и детали…
Аппаратное обеспечение для этого проекта очень простое - для электроники потребуются некоторые базовые навыки пайки.
1 компл. 44 мм стеклянный отражатель для линз и фиксированная рамка для светодиодных линз 20–100 Вт Горячий $ 2,60
WS2812B RGB Shield для WeMos D1 Mini $ 1,75
WeMos D1 Mini ModeMCU 4M WiFi Плата для разработки ESP8266 $ 3,40
Нам нужен куб 5 дюймов (12,7 см) - толщина примерно 1/8 дюйма. (около 3,175 мм).
Сначала я попробовал 7-дюймовую картонную коробку, но в итоге лазер вырезал какую-то плату из МДФ. Файл dfx включен в мой репозиторий на github.
Я также использовал тонкую бумагу, чтобы покрыть экран WS2812.
Немного по магазинам, это могут быть лучшие цены, а могут и не быть, eBay, Aliexpress и даже Amazon имеют одни из лучших цен.
Некоторые другие вещи могут вам понадобиться -
Плоская черная аэрозольная краска, столярный клей, наждачная бумага и небольшой напильник.
Вам также понадобятся небольшие шурупы для дерева.
Необходимые инструменты - паяльник, отвертка, напильник, плоскогубцы.
Доступ к небольшому сверлильному станку (или небольшому сверлу), лазерному резаку или станку с ЧПУ значительно упростит выполнение этого проекта.
Для власти
Моя первоначальная идея заключалась в том, чтобы использовать небольшой батарейный блок - он не подошел, поэтому в итоге я проделал небольшое отверстие в задней части и использовал старое зарядное устройство для сотового телефона для питания.
Небольшой батарейный блок (возможно, 18650) может работать, D1 mini - это контроллер на 3 вольта, поэтому вам нужно смотреть, какие контакты вы используете для питания. На разъеме USB есть регулятор, так что это, безусловно, самый простой способ его запитать.
Шаг 2: Первые шаги к созданию…
Я считаю, что линза используется для автомобилей, может быть, для домашнего освещения. Я не уверен, но в нем нет светодиода. Поэтому одним из первых шагов, которые я сделал, было убедиться, что экран WS2812 будет работать с ним - я использовал резиновую ленту, чтобы скрепить все части вместе - это сработало, но не очень хорошо. Мне удалось запустить тестовый код и произвести несколько разных эффектов.
Позже я решил добавить зеркало - оно мне нравится, но в конечном итоге это все еще не совсем то, что я искал, и было трудно удержать зеркало от скольжения.
Как вы также можете видеть, в какой-то момент я просто собирался использовать картонную коробку - мне действительно не понравилось, как это выглядело. он не был чистым, но в нем говорилось, что мне действительно нужно что-то вырезать лазером.
По большей части я только начинал понимать, что моя первоначальная идея о том, что нужно что-то вырезать, была правильной!
Шаг 3: Вырежьте куб лазером и раскрасьте
Спасибо моим друзьям из Rabbit Laser, США - мне удалось вырезать куб. Все это заняло менее 5 минут. Я считаю, что мы использовали 60-ваттный лазер при 60% мощности, и я считаю, что мы его замедлили, чтобы он мог немного лучше обрезать края.
Если у вас нет друзей с лазерными резчиками, попробуйте поискать в мастерских или даже в публичных библиотеках. У многих есть лазерные машины. Библиотеки здесь берут плату только за использованный материал. Некоторые библиотеки можно использовать совершенно бесплатно, если вы принесете свой собственный материал. Это отличный ресурс для производителей с ограниченным бюджетом. Однако получение лазерного времени - это совсем другая история, и иногда вам приходится стоять в списке ожидания.
Мне не нужно было особо много очищать острые углы или что-то в этом роде. Я, наверное, мог / должен был немного отшлифовать детали, но не стал.
Я сделал грубую примерку, чтобы убедиться, что все детали подходят. и выложил их на больший кусок картона.
Я пронумеровал внутренности, чтобы потом собрать кубик обратно - на самом деле 4 части одинаковые, а 2 разные (верхняя и нижняя), четыре одинаковых образуют стороны - из этих четырех. в одном вырезано 2-дюймовое отверстие для объектива. Я считаю, что после того, как я пронумеровал части, их было легче собрать - это не на 100%.
Я перевернул части и нанес на них слой плоской черной краски.
Я повторил раскрашивание деталей еще три раза, каждый раз дожидаясь высыхания слоя.
Шаг 4: Склейте кубик…
После нескольких часов высыхания краски я склеил нижнюю часть и три стороны вместе.
Я не использовал для этого какие-либо зажимы - просто скреплял части вручную, пока клей не высох достаточно, чтобы удерживать их - это не заняло много времени, может быть, 5 или 6 минут. Я думаю, было бы лучше использовать зажимы, но у меня не было достаточно больших для этого проекта. Так что было приятно узнать, что удержание сработало.
Мне было проще просто нанести клей на внутреннюю часть коробки по швам, я пальцем протолкнул клей туда, где он должен был быть.
Я отложил эти детали в сторону, чтобы клей высох …
Шаг 5: Вставляем линзу и электронику в отверстие…
Пока я ждал, пока высохнет половина моего куба, Я просверлил несколько небольших отверстий в четырех угловых частях лицевой панели объектива, в которых не было отверстий. Почему вы можете спросить - отверстия в лицевой панели большие, на самом деле слишком большие. Мне нужно было использовать очень маленькие винты, чтобы они не проходили сквозь дерево (не выходили с другой стороны). Так что было почти легче просто проделывать дырки. Безель из довольно тонкого металла, и его не нужно было много сверлить.
Также в этот момент я выгнул пару больших отверстий - я буду использовать их, чтобы более или менее удерживать электронику на месте.
Я пошел дальше и поставил лицевую панель объектива на место. И прикрутил его очень маленькими винтами - пока что.
Я нашел пару стяжек для хлеба / проволоки и надел их на одно из отверстий, которое я согнул. Я поместил линзы на лицевую панель и накрыл линзу задней крышкой. Я положил небольшой кусок папиросной бумаги (найденный в коробке с новой парой обуви) на заднюю крышку - и положил на него плату WS2812. Используя проволочные стяжки, чтобы удерживать его на месте. Затем я поставил D1 mini на WS2812.
Через некоторое время, к моему большому удовольствию, WS2812 и папиросная бумага проникли в заднюю крышку - WS2812 действительно немного мал для отверстия на задней крышке, так что это неудивительно.
Что было сюрпризом, так это то, насколько хорошо он выглядел с папиросной бумагой внутри. Я был очень доволен этим сюрпризом.
Я отложил это в сторону и подождал, пока высохнут другие мои изделия - это не заняло много времени, может полчаса, может быть, час.
Шаг 6. Приклейте глаз…
Я не фотографировал эту часть - (Плохо)
В любом случае, когда клей почти высох, я поставил переднюю часть (проушину) на место (с уже вставленной электроникой).
Поскольку все стороны были на коробке, было немного сложнее нанести клей, но это было неплохо. Опять же, я пальцами набирал клей в нужном месте и наносил его на стыки.
На этот раз мне пришлось держать его на месте немного дольше - я не совсем уверен, почему, может быть, 10 или 15 минут клей застыл достаточно, чтобы положить коробку и дать ей закончить высыхание.
* Возможно, вы спрашиваете о вершине
Поэтому я оставил верхнюю часть (и отклеил), чтобы, если мне нужно было изменить или добавить, или поместить другую электронику в коробку, я мог сделать это легко. Верх просто отрывается, и там все красиво.
Новый / лучший дизайн может быть для откидного верха или откидной стороны, но я доволен тем, как получился куб.
Шаг 7: Мини-программирование D1
Прежде чем мы сможем начать программировать D1 Mini, необходимо выполнить несколько требований.
Ни один из этих шагов не является сложным… но их нужно сделать.
Сначала нам нужно установить платы ESP8266 в диспетчер плат Arduino. Для этого следуйте инструкциям, приведенным здесь:
Если вы уже установили платы ESP8266, вы можете пропустить этот шаг.
Теперь нам нужно установить библиотеку Adafruit_Neopixel
Вероятно, самый простой способ сделать это - использовать диспетчер библиотек в среде IDE Arduino 1.6.5 и более поздних версий.
Откройте менеджер библиотеки и в блоке поиска введите adafruit и neopixel.
Опять же, если у вас есть возможность сделать это, вы можете пропустить это.
Вышесказанное является общим для набросков, которые я сделал для этого.
В зависимости от того, что и как вы хотите использовать, ваш «Эрик» будет зависеть от того, что нужно установить сейчас.
(Вероятно, вам следует установить обе эти библиотеки только потому, что, но….)
Если вы хотите использовать версию MQTT (эта версия подписывается на поток MQTT Cheerlights) - она изменит цвет светодиода WS2812 в соответствии с Cheerlight. * Cheerlights - это проект Интернета вещей, созданный Хансом Шарлером, который позволяет людям по всему миру синхронизировать освещение с одним цветом, публикуя твиты #cheerlights *
Я использовал Cheerlights в ряде своих проектов. Благодаря потоку MQTT создавать проекты стало проще.
Для этой версии вам понадобится библиотека PubSubClient.
Я почти уверен, что эта библиотека также находится в диспетчере библиотек.
В других моих набросках используются IFTTT и Dweet.io - они немного отличаются в том, что я прошу Google Home изменить настроения или режимы Эрика.
Чтобы использовать эскизы dweet, вам понадобится библиотека arduino-dweet.io - https://github.com/quentinpigne/arduino-dweet.io Это более старая библиотека (2015 г.), и почти наверняка НЕТ в диспетчере библиотек. Так что вам придется устанавливать его вручную. Есть несколько способов сделать это - я предпочитаю загрузить файлы, разархивировать и переименовать (удалить -master), перетащив папку в папку с моими библиотеками. Возможно, вам придется перезапустить среду IDE таким образом.
Я знаю, что это много шагов, и есть более простой способ - в среде IDE вы можете щелкнуть вкладку «Эскиз», перейти вниз, чтобы включить библиотеку, и нажать «Добавить библиотеку. ZIP» - найдите загруженный файл, и это должно быть все.
Не знаю, почему мне никогда не нравилось устанавливать такие библиотеки, но это просто.
Теперь, когда у вас есть необходимые библиотеки, мы можем запрограммировать наш D1 mini.
Наконец, мой код можно найти здесь:
Шаг 8: Эскизы MQTT…
Что такое MQTT? MQTT расшифровывается как MQ Telemetry Transport. Это чрезвычайно простой и легкий протокол обмена сообщениями для публикации / подписки, разработанный для устройств с ограниченными возможностями и сетей с низкой пропускной способностью, высокой задержкой или ненадежностью. Принципы проектирования состоят в том, чтобы минимизировать требования к пропускной способности сети и ресурсам устройства, одновременно пытаясь обеспечить надежность и некоторую степень уверенности в доставке. Эти принципы также делают протокол идеальным для развивающегося мира подключенных устройств «машина-машина» (M2M) или «Интернета вещей», а также для мобильных приложений, где пропускная способность и мощность аккумулятора имеют первостепенное значение.
mqtt.org/faq
Другими словами, мое устройство подписывается или слушает то, что публикует другое устройство.
Один фрагмент кода, который удобно использовать для MQTT, - это
uint32_t chipid = ESP.getChipId (); char clientid [25]; snprintf (clientid, 25, "EricBotAI-% 08X", chipid);
Это делает уникальное имя устройства для брокера MQTT, для этого он использует часть MAC-адреса ESP8266. Хотя это 100% гарантия уникальности, пока что, похоже, это сработало.
В противном случае остальная часть кода довольно проста, мы слушаем цвет от брокера MQTT, мы проверяем, является ли это допустимым цветом - мы устанавливаем неопиксель на этот цвет и начинаем процесс заново.
Для того, что мы делаем, используется публичный брокер и никакой тип безопасности - это нормально для того, что мы делаем, но может не подходить для некоторых проектов.
Включены три скетча MQTT, и все они делают примерно одно и то же - самая большая разница в том, как они отображают цвета из Cheerlights.
Один отображает цвет с быстрым миганием (см. Видео, опубликованное ранее). Это почти как стробоскоп (ericbotai_neopixel_mqtt) - я использовал тот же тип быстрого мигания для своих проектов на Хэллоуин в прошлом, и эффект очень хороший (для тех) - Однако это не так хорошо для этого проекта.
Один просто отображает сплошной цвет - и только изменяется (если он теряет MQTT) или если цвет изменился. (ericbotai_neopixel_mqtt_solid_color).
Наверное, мой любимый из трех - «Эффект дыхания» - он сводит цвет к нулю, затемняет его до нуля и медленно доводит до полной яркости, это аккуратный эффект, который действительно красиво смотрится внутри куба.
(ericbotai_neopixel_mqtt_breathe_effect)
Все три представляют собой один и тот же набросок с небольшими изменениями для каждого «эффекта».
Шаг 9: Google Home, IFTTT и Dweet.io Sketches…
Итак, во-первых, давайте начнем с того, что эти эскизы не так стабильны, как я бы хотел.
И даже если я включил функции времени сторожевого пса и функции yield, я все еще получаю случайные ошибки WDT - кажется, когда они сидят на одном цвете в любое время. Мне действительно не очень повезло ни с добавлением дополнительных функций WDT, ни с удалением тех, которые у меня есть.
При этом идея заключалась в том, чтобы сделать Эрика немного более интерактивным. Используя My Google Home / Google Assistant, я могу сказать «Окей, Google, Эрик, сердитый режим», и светодиод переключится с любого цвета на красный.
Dweet.io - это то, как мое сообщение передается Эрику - если вы не знаете, что такое Dweet.io, обязательно нажмите на ссылку и проверьте это. Проще говоря, это веб-API, который устройства могут публиковать или прослушивать. У каждого вызова есть собственное имя устройства. Его также можно использовать бесплатно, что является большим бонусом! Поскольку это веб-вызов, легко настроить IFTTT для его использования.
dweet.io/dweet/for/ericcube?mood={{TextFie…
Где {{TextField}} будет тем, что слышал Google Home.
Итак, если взять приведенный выше пример «Окей, Google, режим гнева Эрика» - веб-звонок будет выглядеть так:
dweet.io/dweet/for/ericcube?mood=angry
Вывод API будет выглядеть как эта строка JSON:
Скетч Arduino - получает всю строку JSON - но благодаря удобной функции под названием «удалить» мы можем просто удалить большую часть попрошайничества. А затем удалите окончание….. Вероятно, есть лучший способ удалить конец, потому что в конечном итоге произошло то, что я недостаточно внимательно прочитал справочную страницу для «удаления», и теперь все усечено до 6 символов. Так что если вы скажете "нормальный" режим - он станет "norma" - это нормально, это не имеет особого значения - программное обеспечение позаботится об этом …. Но это все равно неправильно:-)
Итак, я могу сказать - «Режим злости Эрика», и при этом светодиод станет КРАСНЫМ, «Режим счастья Эрика» или «Нормальный режим Эрика», и светодиод станет СИНИМ, «Режим сканера Эрика», а светодиод станет ЗЕЛЕНЫМ, и просто для удовольствия (И потому что в одном эпизоде Эрик действительно заряжался, и его светодиод погас) «Режим зарядки Эрика» или «Черный режим Эрика», и его светодиод погаснет.
И, наконец, для развлечения у нас есть «режим вечеринки Эрика».
Есть два скетча, в которых используется Dweet.io, оба скетча практически одинаковы. Просто светодиоды немного другие.
Однако я не очень доволен ни одним из светодиодных эффектов (за исключением, возможно, режима вечеринки).
ericbotai_neopixel_pulse_effect_dweet использует более или менее тот же код из скетча эффекта дыхания - с немного разными таймингами (как из-за изменений в скетче, так и из-за функций WDT) - эффект меньше дыхания и больше импульсный.
ericbotai_neopixel_solid_color_dweet в значительной степени, как говорится, отображает цвета (сплошной) - режим вечеринки - это эффект дискотеки.
Вы можете добавлять или изменять эффекты, просто помните, что ответы состоят всего из 6 символов.
В обоих эскизах - строка 64 - это место, где вы можете изменить имя «вещи», просто не забудьте также изменить веб-вызов на одно и то же «вещь» - если мы все будем использовать одно и то же имя, мы все сможем изменить друг друга «Эрик»
Шаг 10: Заключительные мысли и еще несколько картинок
Вот еще несколько фотографий из моей сборки, которые просто никуда не подходили…..
Одна вещь, которую я хотел бы сказать - в конце концов, я вырезал небольшую выемку на задней части моего куба и пропустил зарядное устройство / шнур в эту выемку для питания - в целом это не отвлекает от куба - но имел Я знал, что собираюсь сделать то, что хотел бы вырезать лазером.
Моя лицевая панель также немного отличается - моя лицевая панель оказалась заподлицо с коробкой - я не думаю, что это выглядит так плохо - и это хороший способ сказать - я был вдохновлен, но не являлся прямой копией «Эрика»
Я планирую добавить MP3-плеер с некоторыми из мудрых слов «Эрика»… это может произойти не очень быстро, ты - я не нашел ни одной записи «Эрика», поэтому мне придется сделать свою собственную.
Наконец, с использованием MQTT или Dweet появилась возможность сделать это системой уведомлений рабочего стола (например, цвет для твита или разные цвета для погоды по утрам и т. Д.). Не должно быть слишком сложно взять часть базового кода и смешать его, чтобы сделать всевозможные классные вещи.
И наконец, наконец - я вижу, возможно, сделать настенный дисплей HAL 9000, используя тот же ЛИНЗ и немного другое программирование.
Рекомендуемые:
Часы Земли: 9 шагов (с изображениями)
The Earth Clock: Earth Clock - это проект, который я сделал для того, чтобы визуализировать лицевую сторону Земли, подверженную воздействию солнца, в реальном времени! ≫ > Новая версия (напечатанная на 3D-принтере) < <
"Простейший в мире" нейрализатор-сборка (Люди в черном ластике памяти): 10 шагов (с изображениями)
"Самый простой в мире" Neuralizer-build (Men in Black Memory Eraser): Вы собираетесь на костюмированную вечеринку всего через несколько дней, но у вас все еще нет костюма? Тогда эта сборка для вас! Этот реквизит с солнцезащитными очками и черным костюмом завершит ваш костюм «Мужчины в черном». Он основан на простейшей из возможных электронных схем
Arduino - Вращающийся светодиод при движении - Носимый предмет (вдохновленный Chronal Accelerator Tracer Overwatch): 7 шагов (с изображениями)
Arduino - Вращающийся светодиод при движении - Носимый предмет (вдохновленный Chronal Accelerator Tracer Overwatch): это руководство поможет вам подключить акселерометр и светодиодное кольцо Neopixel. Я предоставлю код для считывания показаний акселерометра и получения этого эффекта с помощью вашего неопикселя. анимация. Для этого проекта я использовал кольцо Adafruit 24bit Neopixel, а MP
Взлом ТВ-тюнера для чтения фотографий Земли со спутников: 7 шагов (с изображениями)
Взлом ТВ-тюнера для чтения фотографий Земли со спутников: над нашими головами много спутников. Знаете ли вы, что используя только компьютер, ТВ-тюнер и простую самодельную антенну, вы можете получать передачи с них? Например, изображения земли в реальном времени. Я покажу Вам, как. Вам понадобится: - 2 Вт
Аркадный автомат "Люди Икс": 30 шагов (с изображениями)
Аркадная машина Людей Икс: Я построил этих "Людей Икс" аркадный автомат с моей дочерью в течение примерно двух лет (это не должно было занять так много времени). Это был действительно забавный проект, и мы очень довольны тем, как он получился. Несколько вещей об этом обучающем