Оглавление:

Интерактивный светодиодный купол с Fadecandy, Processing и Kinect: 24 шага (с изображениями)
Интерактивный светодиодный купол с Fadecandy, Processing и Kinect: 24 шага (с изображениями)

Видео: Интерактивный светодиодный купол с Fadecandy, Processing и Kinect: 24 шага (с изображениями)

Видео: Интерактивный светодиодный купол с Fadecandy, Processing и Kinect: 24 шага (с изображениями)
Видео: Обновление Создателя: Когда в Куполе 2024, Июль
Anonim
Image
Image
Интерактивный светодиодный купол с Fadecandy, Processing и Kinect
Интерактивный светодиодный купол с Fadecandy, Processing и Kinect
Интерактивный светодиодный купол с Fadecandy, Processing и Kinect
Интерактивный светодиодный купол с Fadecandy, Processing и Kinect
Интерактивный светодиодный купол с Fadecandy, Processing и Kinect
Интерактивный светодиодный купол с Fadecandy, Processing и Kinect

Какие

Когда в Куполе - это геодезический купол длиной 4,2 м, покрытый 4378 светодиодами. Все светодиоды имеют индивидуальное отображение и адресацию. Они контролируются Fadecandy и Processing на рабочем столе Windows. Kinect прикреплен к одной из стоек купола, поэтому движение внутри купола можно отслеживать, и люди могут взаимодействовать с источниками света.

Почему

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

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

Где

Я спроектировал и построил «Когда в куполе» в качестве финального проекта для моей магистерской программы «Дизайн для производительности и взаимодействия» в Лаборатории интерактивной архитектуры, Бартлетт, Калифорнийский университет.

Как

Некоторые из используемых технологий и инструментов:

  • Fadecandy
  • Обработка
  • Kinect (я получил свой на eBay)
  • Митра пила
  • Гусеничная пила
  • Швейная машина
  • Паяльник
  • Тепловая пушка
  • Пистолет для горячего клея
  • Лазерный резак
  • Дрель

Некоторое из используемого оборудования:

  • Комплект концентратора buildwithhubs
  • Пиломатериалы обработанные для подкосов купола
  • Фанера из тополя 4мм
  • Белая диффузная ткань
  • Черная ткань
  • Плоский пруток из алюминия
  • Разъемы Wago
  • Кабель 12AWG и 24AWG
  • Источники питания 5в 30А
  • Пенопласт
  • JST разъемы
  • Конденсаторы

Пойдем

В этом проекте много компонентов, о которых я расскажу, надеюсь, вы найдете что-то полезное и интересное внутри!

Шаг 1: Купол

Купол
Купол
Купол
Купол

Комплект ступицы

Я решил построить свой купол с помощью набора buildwithhubs, и я определенно рекомендую их.

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

Размер

Диаметр моего купола 4,2 метра. Я выбрал этот размер, потому что это означало, что самая длинная сторона треугольников, составляющих купол, будет 1,2 м, и это прекрасно вписывалось в фанерные листы, когда я приходил делать панели для размещения светодиодов.

Шаг 2: сделайте распорки

Image
Image

Длина

Я использовал калькулятор распорки buildwithhubs, чтобы рассчитать длину, необходимую для изготовления купола 4,2 м. 30 "коротких" на 1059 мм и 35 "длинных" на 1209 мм.

Материал

Для одного купола достаточно 2 упаковок по 24 пиломатериалов 19 мм x 38 мм x 2400 мм от B&Q (как рекомендовано на сайте buildwithubs). Это работает достаточно хорошо, но если бы я делал это снова, я бы получил что-то с большей боковой силой.

Процесс

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

Затем я связал их в пакеты по 6 штук за раз и прикрутил соединительные элементы к концам.

Шаг 3: Постройте купол

После того, как стойки будут сделаны, построить купол будет очень просто. Я не буду подробно рассказывать об этом процессе, так как на сайте buildwithhubs есть инструкции, а также буклет.

Шаг 4: Поднимите

Спланируйте, как должны выглядеть светодиоды
Спланируйте, как должны выглядеть светодиоды

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

Ноги

Я сделал ножки высотой 50 см из 2х4 и прикрутил к ним те же разъемы, что и стойки.

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

Дверь

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

Шаг 5: спланируйте, как должны выглядеть светодиоды

Программное обеспечение

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

Сколько светодиодов?

Макет должен был учитывать не только эстетику, но и распределение мощности и данных. Я решил использовать 11 Fadecandys (и 11 блоков питания), чтобы покрыть 33 треугольника купола. Это означало бы, что Fadecandys (и блоки питания) будут управлять 3 треугольниками каждый, и что одна сторона купола может быть открыта, чтобы люди могли видеть снаружи.

Это дало мне максимум 512 светодиодов на 3 треугольника, так как каждый Fadecandy может управлять 8 полосами до 64 штук в каждой.

Выбор макета

Не все треугольники одинаковы! Мой купол выполнен в стиле 2V, что означает, что он имеет два типа треугольников: равносторонние и равнобедренные.

Я придумал четыре различных возможных варианта размещения светодиодов и отправился в Instagram, чтобы спросить людей, какой из них нравится больше всего. Стиль 1 и стиль 3, казалось, вышли на первое место. Стиль 3 был моим любимым, но для концентрических треугольников в стиле 3 на самом деле требуется намного больше светодиодной ленты, чем для полосатой схемы, поэтому я выбрал стиль 1. Это означает, что есть 8 равносторонних треугольников с концентрическим треугольным расположением светодиодов и 25 равнобедренных треугольников с полосатыми светодиодами. макет.

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

8 из Fadecandys контролируют 1 равносторонний и 2 равнобедренных треугольника каждый, 3 из Fadecandys контролируют 3 равнобедренных треугольника каждый.

Шаг 6: Подробнее о компоновке светодиодов

Подробнее о расположении светодиодов
Подробнее о расположении светодиодов
Подробнее о расположении светодиодов
Подробнее о расположении светодиодов

Определив общий план, мне нужно было точно определить, сколько светодиодов я поставлю на каждую панель. Я сделал это, используя комбинацию электронной таблицы, чтобы найти лучший способ максимизировать возможности Fadecandy, и масштабировать чертежи в Illustrator, чтобы я мог видеть, как будет выглядеть макет.

Максимизация возможностей Fadecandy: линии и полосы

Я упоминал ранее, что каждый Fadecandy может обрабатывать до 8 полос по 64 пикселя каждая. Мои треугольники содержат много линий разной длины в пикселях, некоторые из них содержат очень мало пикселей.

Если бы я рассматривал каждую из этих линий как полосу, я бы потерял МНОГО возможностей Fadecandy.

И наоборот, если бы я хотел полностью максимизировать возможности Fadecandy и иметь 64 светодиода на каждой полосе, мне нужно было бы иметь несколько полос, которые начинались в середине строки, и которые будут сбивать с толку при сопоставлении позже.

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

В конце концов…

Равносторонние панели состоят из четырех полос:

  • 30, 30 (всего 60 - красный на прикрепленном изображении)
  • 30, 22 (всего 52 - оранжевый на прикрепленном изображении)
  • 22, 22, 14 (всего 58 - желтые на прикрепленном изображении)
  • 14, 14, 6, 6, 6 (всего 46 - зеленый на прикрепленном изображении)

Равнобедренные панели состоят из двух полос:

  • 23, 28 (всего 51 - синий на прикрепленном изображении)
  • 3, 7, 11, 15, 19 (всего 55 - фиолетовый на прикрепленном изображении)

Шаг 7: Разложите Fadecandys и блоки питания

Разложите Fadecandys и блоки питания
Разложите Fadecandys и блоки питания

На этом изображении показан плоский вид поверхности купола.

Светодиодные панели

Каждая треугольная панель помечена цифрой 1-11, которая относится к Fadecandy, которая ее контролирует. Каждый Fadecandy состоит из трех треугольников, поэтому у треугольников также есть буквы A-C.

Прочие элементы

Зеленые прямоугольники показывают расположение Fadecandys. Каждый Fadecandy установлен на небольшой панели, которая также распределяет мощность, я покажу это подробно через несколько шагов.

Фиолетовые прямоугольники показывают концентраторы USB. Fadecandys подключаются к рабочему столу Windows через эти концентраторы.

Синие прямоугольники показывают расположение источников питания в трех сухих боксах на полу вокруг купола.

Просто чтобы немного усложнить

Если вы сравните расположение FC10 и FC11, вы заметите, что FC10 находится ближе всего к самой длинной линии своих равнобедренных панелей, а FC11 - к самой короткой линии.

Кроме того, если вы посмотрите на 10C, вы увидите, что Fadecandy находится справа от него, а 10A - слева.

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

Шаг 8: превращение линий в полосы

Превращение линий в полосы
Превращение линий в полосы

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

Сколько нужно кабеля?

Некоторые строки помечены как "jst", что означает, что они являются началом полосы, и для них нужен только JST-коннектор.

У некоторых полосок есть "jst" и длина, что означает, что полоса начинается на некотором расстоянии от Fadecandy (как мы видели в схеме на предыдущем шаге), и для того, чтобы до нее добраться до подключения JST-коннектора, необходим кабель этой длины.

У некоторых полосок просто длина, а это значит, что они должны быть соединены с участком полосы перед ними этой длиной кабеля.

Шаг 9: Подготовка светодиодной ленты

Подготовка светодиодной ленты
Подготовка светодиодной ленты
Подготовка светодиодной ленты
Подготовка светодиодной ленты

Светодиодная лента

Я использую светодиодную ленту в стиле ws2812b, которая имеет три входа, питание 5 В, землю и данные. Использование 3-контактных гнездовых разъемов JST позволяет мне подключаться к каждому из этих контактов по отдельности. Ответные части разъемов JST будут обеспечивать питание и данные.

Пайка

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

Уплотнение

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

Шаг 10: сделайте панели

Сделайте панели
Сделайте панели

Материал

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

Крепление светодиодной ленты

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

Вырезание панелей

Всего 33 треугольника, и они умещаются в 9 листов фанеры 2440 x 1220 мм, как показано на прилагаемом изображении.

В идеальном мире я бы вставил каждый из 9 листов пленки прямо в лазерный резак и одновременно вырезал треугольники и отверстия для кабельных стяжек. К сожалению, мы живем в мире, где лазерные резаки 2440 x 1220 мм встречаются редко, поэтому треугольники приходилось вырезать с помощью гусеничной пилы.

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

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

Шаг 11: привяжите светодиодную ленту к панелям кабелем

Кабель привяжите светодиодную ленту к панелям
Кабель привяжите светодиодную ленту к панелям
Кабель привяжите светодиодную ленту к панелям
Кабель привяжите светодиодную ленту к панелям

Это было много связывания кабеля! К счастью, у меня были друзья, которым я мог помочь.

Этикетки для кабелей

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

  • Полоса 1- красная
  • Полоса 2 - Оранжевый
  • Полоса 3 - Желтый
  • Полоса 4 - Зеленая
  • Полоса 5 - Синий
  • Полоса 6 - Пурпурный
  • Полоса 7 - Серый
  • Полоса 8 - Белый

Не совсем радуга, но это те цвета, в которых были этикетки, и это работает!

(Некоторые из Fadecandys, те, которые управляют только 3 равнобедренными панелями, а не 1 равносторонними и 2 равнобедренными, используют только 6 полос.)

Шаг 12: повесьте панели в купол

Повесьте панели на купол
Повесьте панели на купол
Повесьте панели на купол
Повесьте панели на купол
Повесьте панели на купол
Повесьте панели на купол

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

Метод подвешивания

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

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

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

Шаг 13: Сделайте панели распределения питания и данных

Сделайте панели распределения питания и данных
Сделайте панели распределения питания и данных
Сделайте панели распределения питания и данных
Сделайте панели распределения питания и данных

Итак, мы припаяли множество разъемов JST к множеству светодиодных лент, но к чему они подключаются?

Каждая полоса должна быть подключена к источнику питания, заземлению и данным от Fadecandy. Есть 11 коммутационных панелей, которые удерживают 11 Fadecandys и распределяют питание от 11 источников питания. Я вырезал эти панели лазером из оставшегося 4-миллиметрового слоя тополя. Сбоку есть прорези для кусочков липучки, которые аккуратно прикрепляют панели к стойкам купола.

Власть

Каждый светодиод потребляет 0,06 А. при полной яркости. Это означает, что общая мощность, необходимая для работы 4378 пикселей на полную мощность, составляет ~ 1,3 кВт.

Однако у меня есть по сути 11 полностью отдельных цепей питания. (Они подключаются только через -ve через Fadecandy. Не подключайте + ve к отдельным источникам питания, так как это опасно.) Каждая цепь питает не более 428 пикселей, всего 128 Вт, поэтому ток равен гораздо более безопасный уровень.

Мои блоки питания способны обеспечить 150 Вт каждый (30 А при 5 В).

На коммутационной панели питание и земля поступают от источника питания внизу, затем он подключается к разъемам WAGO, который распределяет их по 8 разъемам JST типа «папа».

Данные

Fadecandy крепится слева от панели, а кабель USB входит снизу, как и кабели питания.

Кабель передачи данных разъема JST припаян к полосе гнездовых контактов с одним разъемом, которые вставляются в контакты Fadecandy. Один из выводов заземления на Fadecandy подключен к цепи заземления. (Контакты заземления все подключены друг к другу, поэтому нет необходимости соединять их все)

Шаг 14: тканевое покрытие

Покрытие ткани
Покрытие ткани
Покрытие ткани
Покрытие ткани
Покрытие ткани
Покрытие ткани

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

Макет

На плоской схеме купола видно, что крышка состоит из 5 пятиугольников, каждый из которых состоит из 5 равнобедренных треугольников плюс 8 равносторонних треугольников. Мы сделали обложку в таком порядке - сначала сшили вместе 5 пятиугольников, а затем соединили их вместе равносторонними треугольниками.

(Черные участки на этой диаграмме открыты и не закрыты.)

Измерение

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

Пятиугольники

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

Соединив это вместе

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

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

Маркировка

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

Шаг 15: развешивание ткани

Image
Image

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

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

Шаг 16: Присоединение Kinect

Пол
Пол

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

Вы можете представить себе мою радость, когда он вот так подошел.

На этом рисунке показан Kinect v2, но в итоге я использовал Kinect v1 по причинам, о которых я расскажу позже.

Он просто прикреплен к стойке с помощью двусторонней липкой ленты.

Шаг 17: пол

Пол сделан из переплетенных матов из пеноматериала EVA, которые я получил от B&Q. Я использовал их для двух проектов, и они отлично подходят для помещений. Сидеть очень удобно.

На открытом воздухе во время фестивалей с ветром, таких как Burning Man, он должен быть полностью закреплен, потому что ветер будет проходить прямо под ним и поднимать все это вверх.

Шаг 18: Сборка сделана … на код

Спасибо, что оставались со мной до сих пор. Вот и вся физическая сборка СДЕЛАНА. Теперь давайте обсудим программное обеспечение.

Шаг 19: сервер Fadecandy

Сервер Fadecandy
Сервер Fadecandy
Сервер Fadecandy
Сервер Fadecandy

Загрузите программное обеспечение

Программное обеспечение Fadecandy доступно здесь.

Скачайте весь гитхаб и разархивируйте его.

Запускаем сервер

Перейдите в папку «bin» внутри только что загруженного материала fadecandy.

Щелкните fcserver.exe.

Это загрузит окно cmd, в котором будут показаны все подключенные устройства Fadecandy. В данном случае их 11.

Проверьте светодиоды

Перейдите на https://127.0.0.1:7890/, чтобы увидеть пользовательский интерфейс сервера Fadecandy. Это снова показывает все подключенные устройства и позволяет немного контролировать.

Щелкнув раскрывающееся меню тестового шаблона, вы можете установить для всех пикселей Fadecandy полную или половинную яркость. Также можно заставить мигать крошечный зеленый светодиод на самой фадекэнди, нажав «идентифицировать».

Шаг 20: Настройте сервер Fadecandy

Настроить сервер Fadecandy
Настроить сервер Fadecandy

Сейчас все Fadecandys загружаются в случайном порядке. Раньше я помечал свои треугольники 1-11, но компьютер не может узнать, какой из них какой в данный момент. Для этого нам нужно создать файл конфигурации.

Что такое Fadecandy?

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

Конфигурационный файл

В файле конфигурации мы перечисляем все серийные номера, индексный пиксель, с которого они начинаются, и сколько пикселей они теоретически контролируют. Я говорю теоретически, потому что я сопоставлю пиксели так, как будто их 512 на Fadecandy, хотя на самом деле их меньше. Это просто упрощает задачу, поскольку мы знаем, что первым пикселем любого Fadecandy всегда является [число Fadecandy * 512].

Fadecandy не заботится о том, что на самом деле у каждого пикселя меньше максимального, и мы также позаботимся об этом в коде обработки.

Загрузка файла конфигурации

Теперь, чтобы запустить сервер Fadecandy, вместо того, чтобы просто щелкнуть fcserver.exe, нам нужно передать ему этот файл конфигурации.

Мы делаем это, открыв командную строку внутри папки bin и набрав

fcserver config.json

Теперь это загрузит все Fadecandys по правильным адресам.

Шаг 21: нанесение на карту пикселей

Image
Image
Интеграция Kinect
Интеграция Kinect

Димаксионное картирование

Бакминстер Фуллер (который популяризировал геодезические купола) также создал карту dymaxion, которая представляет собой изображение земли, как если бы она находилась на поверхности икосаэдра. Его можно сложить в 3D или развернуть в 2D.

Во многом таким же образом я сглаживаю поверхность моего купола, превращая ее в 3D-форму в 2D-представление, как показано на прилагаемом изображении. Это 2D-представление будет отображено на холсте обработки, где все, что я рисую на холсте, сразу же отображается через светодиоды.

Обработка

Обработка - это язык визуального программирования. Так же, как вы рисуете прямоугольник в Photoshop с помощью мыши, вы можете нарисовать прямоугольник в Processing, написав такой код:

прямоугольник (100, 80, 10, 50);

Это даст вам прямоугольник, начинающийся 100 пикселей в ширину, 80 пикселей вниз, 10 пикселей в ширину и 50 пикселей в высоту.

Если вы не знакомы с обработкой, я настоятельно рекомендую учебники Дэниела Шиффмана на Youtube, которые столь же интересны, как и информативны.

Рисование линий светодиодов

Обработка работает с Fadecandy из коробки. Есть функция для размещения светодиодов в линии, сообщая ей:

  • начальный индекс / адрес светодиодов в этой строке
  • фактическое количество пикселей в строке
  • координаты x, y центра линии
  • расстояние между ними
  • угол линии

Рисование треугольников

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

  • начальный индекс / адрес светодиодов во всем треугольнике
  • центр треугольника
  • угол, под которым находится весь треугольник

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

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

Об адресах

Когда я говорю индекс / адрес, я имею в виду то, как Fadecandy обращается к светодиодам.

например

  • На первом Fadecandy первая полоса начинается с 0
  • На первом Fadecandy вторая полоса начинается с 64 (независимо от того, сколько пикселей фактически находится на первой полосе).

На первом Fadecandy третья полоса начинается со 128 (независимо от того, сколько пикселей фактически находится на первых двух полосах)

  • На втором Fadecandy первая полоса начинается с 512 (независимо от того, сколько пикселей на самом деле находится в первом Fadecandy
  • На втором Fadecandy вторая полоса начинается с 576 (… вы поняли)

Код

«Пустая» версия моего кода купола доступна на github здесь.

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

n.b Пиксели будут отображаться в этом коде, только если у вас запущен сервер Fadecandy.

Шаг 22: интеграция Kinect

Kinect 1 или 2?

Есть две версии Kinect. Kinect v1 работал с Xbox 360, а Kinect v2 работал с Xbox One (смутно).

Я использую Kinect v1. Частично это связано с тем, что очень сложно увеличить длину USB-кабеля на Kinect v2 из-за большого количества отправляемых данных. Требуется дорогой и труднодоступный удлинительный кабель. Поскольку мой Kinect установлен в верхней части купола, я не могу подключить Kinect v2 непосредственно к настольному компьютеру на полу. Нелепая проблема, но вот и мы.

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

Установка

Я не собираюсь рассказывать об установке SDK и получении правильных кабелей для Kinect, поскольку существует множество руководств о том, как это сделать. У меня установлен SDK v1.8, а внутри Processing я использую библиотеку OpenKinect.

Шаг 23. Отслеживание глубины Kinect

Код

Мой код доступен на github здесь. Это довольно хорошо прокомментировано, так что просмотрите!

Это обзор того, что делает код:

Подача камеры глубины Kinect отображается в цвете (например, далеко = красный, близко = зеленый) и отображается непосредственно над светодиодами. Но это еще не все.

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

Во-вторых, при запуске эскиза щелчок мышью приведет к фоновому считыванию, тогда будут отображаться только пиксели, расположенные ближе, чем это фоновое считывание. Это предотвращает появление пола / любых подушек / конструкции купола.

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

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

Шаг 24: Купол готов

Image
Image
Купол готов!
Купол готов!
Купол готов!
Купол готов!

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

Я также включил сюда для развлечения несколько фотографий с длинной выдержкой, которые я сделал из «Когда в куполе». Наслаждаться!

Конкурс Make it Glow 2018
Конкурс Make it Glow 2018
Конкурс Make it Glow 2018
Конкурс Make it Glow 2018

Первый приз конкурса Make it Glow 2018

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