Índice:

Dome LED interativo com Fadecandy, Processing e Kinect: 24 etapas (com fotos)
Dome LED interativo com Fadecandy, Processing e Kinect: 24 etapas (com fotos)

Vídeo: Dome LED interativo com Fadecandy, Processing e Kinect: 24 etapas (com fotos)

Vídeo: Dome LED interativo com Fadecandy, Processing e Kinect: 24 etapas (com fotos)
Vídeo: When in Dome - Interactive LED Dome With Fadecandy, Processing and Kinect 2024, Julho
Anonim
Image
Image
Dome LED interativo com Fadecandy, Processing e Kinect
Dome LED interativo com Fadecandy, Processing e Kinect
Dome LED interativo com Fadecandy, Processing e Kinect
Dome LED interativo com Fadecandy, Processing e Kinect
Dome LED interativo com Fadecandy, Processing e Kinect
Dome LED interativo com Fadecandy, Processing e Kinect

O que

When in Dome é uma cúpula geodésica de 4,2 m coberta com 4378 LEDs. Os LEDs são todos mapeados individualmente e endereçáveis. Eles são controlados pelo Fadecandy and Processing em uma área de trabalho do Windows. Um Kinect é conectado a um dos suportes da cúpula, de forma que o movimento dentro da cúpula possa ser rastreado e as pessoas possam interagir com as luzes.

Por que

Estou explorando a experiência do grupo por meio da interação compartilhada. Gosto de fazer interfaces que muitas pessoas possam usar ao mesmo tempo. A superfície de LED da cúpula é uma saída adequada para uma interface multiusuário porque é enorme, então muitas pessoas podem vê-la. A cúpula também cria um espaço aconchegante e esférico, que incentiva as pessoas a se voltarem umas para as outras. O Kinect funciona muito bem como uma entrada multiusuário porque as pessoas podem se mover e afetar o campo de profundidade ao mesmo tempo, o único limite é quantas pessoas podem caber no espaço juntas.

Estou continuamente desenvolvendo novos métodos de interação para When in Dome, para ver o efeito que diferentes métodos de entrada têm e o que funciona bem para diferentes grupos de pessoas. Estou particularmente interessado em ver quais interfaces encorajam a conexão entre amigos e estranhos dentro da cúpula, e o que torna a experiência compartilhada significativa e valiosa.

Onde

Eu projetei e construí o When in Dome como o projeto final do meu mestrado, que foi Design for Performance and Interaction no Interactive Architecture Lab, The Bartlett, UCL.

Quão

Algumas das tecnologias e ferramentas utilizadas:

  • Fadecandy
  • Em processamento
  • Kinect (comprei o meu no eBay)
  • Serra de esquadria
  • Serra de esteira
  • Máquina de costura
  • Ferro de solda
  • Pistola de calor
  • Pistola de cola quente
  • Cortador a laser
  • Furar

Alguns dos equipamentos usados:

  • Buildwithhubs hub kit
  • Madeira serrada tratada para escoras de cúpula
  • Contraplacado de choupo 4mm
  • Tecido difusor branco
  • Tecido preto
  • Barra plana de alumínio
  • Conectores Wago
  • Cabo 12awg e 24awg
  • Fontes de alimentação 5v 30A
  • Piso de espuma
  • Conectores Jst
  • Capacitores

Vamos lá

Existem muitos componentes para este projeto sobre os quais irei falar, espero que você encontre algo útil e interessante dentro!

Etapa 1: The Dome

The Dome
The Dome
The Dome
The Dome

Kit Hub

Decidi construir minha cúpula com um kit da buildwithhubs e definitivamente os recomendaria.

Eles vendem kits de conectores e aconselham sobre quais materiais comprar para os suportes. A maioria de suas cúpulas é usada no próprio jardim das pessoas, enquanto a minha fica em público, então também comprei seu kit de tampas extra seguras, que evitam que as escoras saltem se alguém se apoiar na cúpula.

Tamanho

Minha cúpula tem 4,2 m de diâmetro. Escolhi esse tamanho porque significava que o lado mais comprido dos triângulos que formavam a cúpula seria de 1,2 m, e isso se encaixou perfeitamente em folhas de compensado quando comecei a fazer os painéis para segurar os LEDs.

Etapa 2: Faça os Struts

Image
Image

Comprimentos

Usei a calculadora de suporte do buildwithhubs para calcular os comprimentos necessários para fazer uma cúpula de 4,2 m. 30 "shorts" em 1059 mm e 35 "longos" em 1209 mm.

Material

2 pacotes de 24 madeira serrada de 19 mm x 38 mm x 2400 mm da B&Q (conforme recomendado no site buildwithhubs) são suficientes para uma cúpula. Isso funciona bem o suficiente, mas se eu estivesse fazendo isso de novo, eu obteria algo que tem mais força lateral.

Processo

As escoras foram cortadas no comprimento certo com uma serra de esquadria e, em seguida, pintei-as colocando-as todas sobre uma folha de proteção e rolando sobre elas. Isso criou um lapso de tempo divertido!

Em seguida, agrupei-os em lotes de 6 de cada vez e aparafusei as peças do conector nas extremidades.

Etapa 3: construir a cúpula

Depois de feitas as escoras, construir a cúpula é muito fácil. Não vou falar sobre o processo em detalhes, pois há instruções no site buildwithhubs e eles também fornecem um livreto.

Etapa 4: Levante

Planeje como os LEDs devem ser
Planeje como os LEDs devem ser

Eu não queria que os painéis de LED ficassem bem no chão, pois isso significaria que muitos deles seriam bloqueados por pessoas na cúpula. Eu também queria tornar a cúpula mais alta para que parecesse mais espaçosa e acolhedora.

Pernas

Eu fiz pernas de 50 cm de altura com 2x4s e aparafusei nelas os mesmos conectores que os suportes.

Então, para aumentar a resistência e integridade estrutural da base, usei uma barra chata de alumínio para criar X entre cada seção da perna.

A porta

Tirei uma das escoras horizontais para fazer uma porta e substituí-a por um pedaço de madeira compensada no chão para manter as pernas no espaçamento correto.

Etapa 5: Planeje como os LEDs devem se parecer

Programas

Usei o SketchUp para meu trabalho de planejamento 3D porque ele está disponível para uso gratuito em um aplicativo no navegador. Felizmente (como não sou um especialista em modelagem 3D), encontrei um modelo de cúpula geodésica disponível no armazém 3D, onde há vários modelos de graça.

Quantos LEDs?

O layout teve que levar em consideração a estética, mas também o poder e a distribuição de dados. Decidi usar 11 Fadecandys (e 11 fontes de alimentação) para cobrir 33 dos triângulos da cúpula. Isso significaria que os Fadecandys (e as fontes de alimentação) conduziriam 3 triângulos cada, e que um lado da cúpula poderia ser aberto para que as pessoas pudessem ver de fora.

Isso me deu um máximo de 512 LEDs por 3 triângulos, pois cada Fadecandy pode acionar 8 tiras de até 64 cada.

Decidir sobre um layout

Nem todos os triângulos são criados iguais! Minha cúpula é do tipo 2V, o que significa que tem dois tipos de triângulos, equiláteros e isósceles.

Eu criei quatro layouts diferentes para os LEDs e usei o Instagram para perguntar às pessoas de qual elas gostaram mais. O estilo 1 e o estilo 3 pareceram sair por cima. O estilo 3 era meu favorito, mas os triângulos concêntricos no estilo 3 realmente exigem muito mais faixa de LED do que o layout listrado, então decidi pelo estilo 1. Isso significa que há 8 triângulos equiláteros com layout de LED de triângulo concêntrico e 25 triângulos isósceles com LED listrado layout.

Como os triângulos equiláteros são maiores e contêm o layout concêntrico, eles usam muito mais LEDs cada um do que os triângulos isósceles. Portanto, eu tive que dividir os equiláteros entre os Fadecandys.

8 dos Fadecandys controlam 1 triângulos equilátero e 2 isósceles cada.3 dos Fadecandys controlam 3 triângulos isósceles cada.

Etapa 6: Mais sobre o layout de LED

Mais sobre o layout de LED
Mais sobre o layout de LED
Mais sobre o layout de LED
Mais sobre o layout de LED

Com o layout geral decidido, eu precisava descobrir exatamente quantos LEDs colocaria em cada painel. Fiz isso usando uma combinação de uma planilha para descobrir a melhor maneira de maximizar os recursos do Fadecandy e dimensionar os desenhos no Illustrator, para que pudesse ver como ficaria o layout.

Maximizando a capacidade do Fadecandy: linhas e tiras

Mencionei anteriormente que cada Fadecandy pode conduzir até 8 tiras de 64 pixels cada. Meus triângulos contêm muitas linhas de vários comprimentos de pixel, algumas linhas com poucos pixels.

Se eu tratasse cada uma dessas linhas como uma tira, estaria perdendo MUITO da capacidade do Fadecandy.

Por outro lado, se eu quisesse maximizar completamente a capacidade do Fadecandy e ter 64 LEDs em cada faixa, precisaria de algumas faixas que começassem no meio de uma linha e que seriam confusas para mapear mais tarde.

Tive que descobrir a melhor forma de unir as linhas em tiras para maximizar a capacidade de tiras o máximo possível, sem dividir as linhas.

No fim…

Os painéis equilaterais têm quatro tiras, compostas por:

  • 30, 30 (60 no total - vermelho na imagem anexada)
  • 30, 22 (52 no total - laranja na imagem anexada)
  • 22, 22, 14 (58 no total - amarelo na imagem anexada)
  • 14, 14, 6, 6, 6 (46 no total - verde na imagem anexada)

Os painéis isósceles possuem duas tiras, compostas por:

  • 23, 28 (51 no total - azul na imagem anexada)
  • 3, 7, 11, 15, 19 (55 no total - roxo na imagem anexada)

Etapa 7: Organize os Fadecandys e as fontes de alimentação

Esquematize os Fadecandys e as fontes de alimentação
Esquematize os Fadecandys e as fontes de alimentação

Esta imagem mostra uma visão plana da superfície da cúpula.

Os painéis de LED

Cada painel triangular foi rotulado com um número de 1 a 11, que se refere ao Fadecandy que o controla. Cada Fadecandy tem três triângulos, então os triângulos também têm uma letra, A-C.

Outros elementos

As caixas verdes mostram a localização dos Fadecandys. Cada Fadecandy é montado em um pequeno painel que também distribui a potência, irei mostrar isso em detalhes em alguns passos de tempo.

As caixas roxas mostram os hubs USB. Os Fadecandys são conectados a uma área de trabalho do Windows, por meio desses hubs.

As caixas azuis mostram a localização das fontes de alimentação, que ficam em 3 caixas secas, no chão ao redor da cúpula.

Só para tornar um pouco mais complicado

Se você comparar a localização de FC10 e FC11, notará que FC10 está mais próximo da linha mais longa de seus painéis isósceles, enquanto FC11 está mais próximo da linha mais curta.

Além disso, se você olhar para 10C, verá que o Fadecandy está à direita dele, enquanto 10A está à esquerda.

Tive que levar essas variações em consideração ao considerar quanto cabo cada tira de led precisava no início e ao mapeá-los.

Etapa 8: Transformando linhas em tiras

Transformando linhas em tiras
Transformando linhas em tiras

Essa planilha tinha como objetivo descobrir quanto cabo precisava passar no início de cada seção da faixa de LED.

Quanto cabo é necessário?

Algumas linhas são rotuladas "jst", o que significa que são o início da faixa e só precisam de um conector JST.

Algumas tiras têm "jst" e um comprimento, o que significa que a tira começa a alguma distância do Fadecandy (como vimos no layout na etapa anterior) e precisa desse comprimento de cabo para alcançá-lo antes de adicionar o conector JST.

Algumas tiras têm apenas um comprimento, o que significa que precisam ser unidas à seção da tira antes delas por aquele comprimento de cabo.

Etapa 9: Preparando a Faixa de LED

Preparando a Faixa de LED
Preparando a Faixa de LED
Preparando a Faixa de LED
Preparando a Faixa de LED

A faixa de LED

Estou usando fita LED estilo ws2812b, que tem três entradas, alimentação de 5 V, aterramento e dados. O uso de conectores JST fêmea de 3 pinos me permite conectar a cada um desses pinos individualmente. As contrapartes macho dos conectores JST fornecerão a energia e os dados.

De solda

Usando minha planilha da etapa anterior, cortei toda a faixa de LED nos comprimentos necessários, soldada nos comprimentos necessários de cabo e conectores JST. Também coloquei um capacitor no início de cada faixa, para evitar que picos na corrente inicial estraguem o primeiro pixel da faixa. (Eu já vi isso acontecer antes em projetos anteriores em que não adicionei o capacitor, então definitivamente vale a pena fazer).

Selagem

Eu adicionei um pouco de silicone RTV à parte exposta da tira, cobri com termorretrátil transparente e explodi com uma pistola de ar quente para selar novamente a impermeabilidade.

Etapa 10: faça os painéis

Faça os Painéis
Faça os Painéis

Material

Decidi usar compensado de choupo de 4 mm para fazer os painéis. Eu o mantive fino para reduzir o peso. Calculei o peso total da madeira compensada e entrei em contato com o buildwithhubs para verificar se estava dentro do peso permitido para pendurar coisas na estrutura da cúpula. Como o peso é distribuído de maneira bastante uniforme pela cúpula, não há problema. Eu adoraria usar acrílico, mas infelizmente estava fora do meu orçamento para este projeto.

Fixação de tira de LED

Eu não queria colar a faixa de LED diretamente nos painéis, pois gostaria de poder substituir as seções da faixa com defeito e, potencialmente, reutilizar toda a faixa em algum ponto, então decidi fazer orifícios nos painéis para usar abraçadeiras. Os pontos na imagem anexada mostram o layout dos orifícios da braçadeira de cabos.

Cortando os painéis

Existem 33 triângulos no total, e eles cabem em 9 folhas de compensado de 2440 x 1220 mm pelo layout que você vê na imagem anexa.

Em um mundo ideal, eu teria colocado cada uma das 9 folhas de lona diretamente em um cortador a laser e cortado os triângulos e os orifícios da braçadeira ao mesmo tempo. Infelizmente, vivemos em um mundo onde os cortadores a laser de 2440 x 1220 mm são raros, então os triângulos tiveram que ser cortados com uma serra de esteira.

Mais triste ainda, também não vivemos em um mundo onde mesmo um único dos meus painéis triangulares caberia no cortador a laser na escola, então eu tive que cortar a laser um modelo da metade de cada um dos desenhos de triângulo e usá-lo para fazer os furos com a mão.

Também pintei a parte de trás dos triângulos, a maioria deles pretos e depois seis prateados aleatórios.

Etapa 11: Amarre o cabo da faixa de LED aos painéis

Amarre o cabo da faixa de LED aos painéis
Amarre o cabo da faixa de LED aos painéis
Amarre o cabo da faixa de LED aos painéis
Amarre o cabo da faixa de LED aos painéis

Isso foi muita amarração de cabos! Felizmente, eu tinha alguns amigos para ajudar.

Rótulos de cabos

Rotulei cada conector JST com uma etiqueta de cabo codificada por cores, para facilitar quando se trata de conectá-lo ao seu Fadecandy. Eles são ordenados em arco-íris, então para cada Fadecandy há:

  • Faixa 1- Vermelho
  • Tira 2 - Laranja
  • Faixa 3 - Amarelo
  • Faixa 4 - Verde
  • Faixa 5 - Azul
  • Tira 6 - Roxo
  • Tira 7 - Cinza
  • Tira 8 - Branco

Não é um arco-íris exato, mas essas são as cores dos rótulos e funciona!

(Alguns dos Fadecandys, aqueles que dirigem apenas 3 painéis isósceles, em vez de 1 equilátero e 2 isósceles, usam apenas 6 tiras.)

Etapa 12: Pendure os painéis na cúpula

Pendure os painéis na cúpula
Pendure os painéis na cúpula
Pendure os painéis na cúpula
Pendure os painéis na cúpula
Pendure os painéis na cúpula
Pendure os painéis na cúpula

Meus painéis triangulares são ligeiramente menores do que a lacuna entre as escoras, eu queria que eles ficassem pendurados livremente no espaço em vez de prendê-los solidamente às escoras.

Método de enforcamento

Cada nó da cúpula tem um parafuso de olhal - eles não vêm como padrão, mas Buildwithhubs os vende em um pacote. Esses olhais são perfeitos para pendurar coisas (embora tenha cuidado para não pendurar muito peso em um nó).

Decidi usar paracord e pequenos mosquetões. O cabo passa por dois orifícios em cada canto do painel. O mosquetão prende o cabo ao parafuso com olhal. Para esticar o cabo e garantir que o painel esteja posicionado corretamente no espaço, também adicionei uma alavanca de plástico em cada um. Isso significa que eles podem ser facilmente presos enquanto estão soltos e, em seguida, apertados para posicioná-los no centro do espaço.

Estou muito feliz com o resultado do método mosquetão. É muito satisfatório prender os painéis na cúpula, clique, clique, clique. Também é rápido e fácil removê-los.

Etapa 13: Faça Painéis de Distribuição de Energia e Dados

Faça painéis de distribuição de energia e dados
Faça painéis de distribuição de energia e dados
Faça painéis de distribuição de energia e dados
Faça painéis de distribuição de energia e dados

Então, nós soldamos muitos conectores JST a muitas faixas de LED, mas a que eles se conectam?

Cada faixa precisa se conectar à energia, aterramento e dados do Fadecandy. Existem 11 painéis de conexão que mantêm os 11 Fadecandys e distribuem a energia das 11 fontes de alimentação. Cortei esses painéis a laser de sobras de folha de choupo de 4 mm. Ao lado, há ranhuras para peças de velcro, que prendem os painéis perfeitamente às escoras da cúpula.

Poder

Cada LED usa um 0,06A com brilho total. Isso significa que a potência total necessária para 4378 pixels para funcionar com potência total é de ~ 1,3 kW.

No entanto, tenho essencialmente 11 circuitos de alimentação completamente separados. (Eles são conectados apenas via -ve via Fadecandy. Não conecte o + ve de fontes de alimentação separadas, pois isso é perigoso.) Cada circuito está alimentando no máximo 428 pixels, um total de 128W, então a corrente está em um nível muito mais seguro.

Minhas fontes de alimentação são capazes de fornecer 150 W cada (30 A a 5 V).

No painel de conexão, a alimentação e o aterramento vêm da fonte de alimentação na parte inferior e, em seguida, são conectados aos conectores wago, que os distribuem por 8 conectores JST machos.

Dados

O Fadecandy é conectado à esquerda do painel e o cabo USB vem pela parte inferior da mesma forma que os cabos de alimentação.

O cabo de dados do conector JST é soldado a uma tira de pinos fêmea de cabeçalho único que se conecta aos pinos do Fadecandy. Um dos pinos de aterramento no Fadecandy é conectado ao circuito de aterramento. (Os pinos de aterramento estão todos conectados uns aos outros, portanto, não é necessário conectá-los todos)

Etapa 14: Cobertura de tecido

Cobertura de Tecido
Cobertura de Tecido
Cobertura de Tecido
Cobertura de Tecido
Cobertura de Tecido
Cobertura de Tecido

Costurar a cobertura de tecido foi inesperadamente uma das partes mais difíceis e demoradas deste projeto. Felizmente, eu tinha um amigo para ajudar!

Layout

No diagrama achatado da cúpula, você pode ver que a cobertura consiste em 5 pentágonos que são compostos de 5 triângulos isósceles cada, mais 8 triângulos equiláteros. Fizemos a capa nesta ordem - costuramos os 5 pentágonos primeiro e depois os unimos com os triângulos equiláteros.

(As seções pretas nesse diagrama estão abertas e descobertas.)

Medindo

Tentamos descobrir as medidas dos triângulos usando matemática como pessoas normais, mas por algum motivo continuou saindo errado e não se encaixando bem na cúpula, então, no final, usamos um pedaço de polycord através dos olhais dos nós para meça o tamanho e, em seguida, use este triângulo poligonal como modelo. Eu não sei por que usar as medidas conhecidas de struts + node gaps continuou dando errado, triângulos 3D são confusos.

Pentágonos

À medida que fazíamos os triângulos isósceles e os costurávamos em pentágonos, frequentemente os pendurávamos na cúpula para verificar se tudo estava alinhado. Ele é preso à cúpula com pequenos pedaços de elástico que são costurados nos pontos de encontro dos triângulos.

Juntando isso juntos

Depois de fazer os cinco pentágonos, começamos a cortar os triângulos equiláteros usando o mesmo método - polycord através dos parafusos com olhal. Assim que costuramos dois pentágonos juntos dessa maneira, percebemos que não estava alinhado de forma alguma. Então, em vez disso, decidimos pendurar todos os pentágonos na cúpula e prender os triângulos equiláteros a eles no lugar. Então, uma vez que estava tudo preso, nós o retiramos e meu amigo costurou em uma peça sólida.

Fixar dessa forma foi muito trabalhoso, muito com meus braços diretamente acima da minha cabeça, muitas vezes enquanto tentava prender o tecido do lado de fora da cúpula, enquanto estava de pé do lado de dentro. Diversão!

Marcação

Ao longo do caminho, etiquetamos as peças com uma caneta de tecido solúvel em água … essas coisas são ótimas porque você pode escrever diretamente no tecido e borrifá-lo com água e a tinta irá desaparecer (às vezes demora um pouco, mas funciona)

Etapa 15: pendurar o tecido

Image
Image

O tecido é pendurado na cúpula por pedaços de elástico que são costurados em cada ponto, que se prendem aos olhais nos nós da cúpula.

Amarrar e desamarrar os elásticos não é tão rápido quanto prender nos painéis, então eu gostaria de substituir esse método por mosquetões ou algum outro clipe em algum momento.

Etapa 16: Anexando o Kinect

Piso
Piso

Em uma demonstração ousada de confiança no universo, em nenhum momento eu medi a lacuna entre os painéis para ter certeza de que um Kinect realmente caberia. (Por favor, não diga aos meus tutores)

Você pode imaginar minha alegria quando coube assim.

Esta imagem mostra um Kinect v2, mas acabei usando um Kinect v1 por motivos que abordarei mais tarde.

É apenas preso ao suporte com fita velcro dupla face.

Etapa 17: Andar

O piso é feito de tapetes de espuma EVA intertravados que comprei na B&Q. Eu usei isso para dois projetos agora e é ótimo para interiores. É muito confortável para sentar.

Ao ar livre, em festivais com muito vento, como o Burning Man, ele precisa ser todo seguro porque o vento vai ficar bem embaixo dele e erguer tudo.

Etapa 18: Essa é a compilação feita … No código

Obrigado por ficar comigo até agora. Isso é tudo da construção física FEITO. Agora vamos discutir o software.

Etapa 19: Servidor Fadecandy

Servidor Fadecandy
Servidor Fadecandy
Servidor Fadecandy
Servidor Fadecandy

Baixe o software

O software Fadecandy está disponível aqui.

Baixe todo o github e descompacte-o.

Execute o servidor

Navegue até a pasta 'bin' dentro das coisas fadecandy que você acabou de baixar.

Clique em fcserver.exe.

Isso irá carregar uma janela cmd que mostra todos os dispositivos Fadecandy conectados. Nesse caso, são 11.

Teste os LEDs

Navegue para https://127.0.0.1:7890/ para ver a IU do servidor Fadecandy. Isso mostra todos os dispositivos conectados novamente e permite um pequeno controle.

Clicar no menu suspenso de padrão de teste permite definir todos os pixels desse Fadecandy para brilho total ou meio. Também é possível fazer o minúsculo LED verde no próprio fadecandy piscar clicando em "identificar".

Etapa 20: Configurar o servidor Fadecandy

Configure o servidor Fadecandy
Configure o servidor Fadecandy

No momento, os Fadecandys estão todos carregados em uma ordem aleatória. Anteriormente, rotulei meus triângulos de 1 a 11, mas não há como o computador saber qual é qual no momento. Para fazer isso, precisamos criar um arquivo de configuração.

Qual Fadecandy é qual

Antes que possamos dizer ao computador em que ordem os Fadecandys estão, precisamos descobrir quais são nós mesmos. Fiz isso usando a interface do usuário do navegador para tornar cada seção iluminada e, em seguida, anotando qual era e qual era o seu número de série.

O arquivo de configuração

No arquivo de configuração, listamos todos os números de série, o pixel de índice em que eles começam e quantos pixels eles controlam teoricamente. Digo teoricamente porque mapearei os pixels como se fossem 512 por Fadecandy, embora na verdade sejam menos. Isso só torna mais fácil, pois sabemos que o primeiro pixel de qualquer Fadecandy é sempre [número de Fadecandy * 512].

O Fadecandy não liga que na verdade cada um tenha menos pixels do que o máximo, e cuidaremos disso no código de processamento também.

Carregando o arquivo de configuração

Agora, para iniciar o servidor Fadecandy, em vez de apenas clicar em fcserver.exe, precisamos passar este arquivo de configuração para ele.

Fazemos isso abrindo um prompt de cmd dentro da pasta bin e digitando

fcserver config.json

Isso agora carregará todos os Fadecandys nos endereços corretos.

Etapa 21: Mapeando os Pixels

Image
Image
Integração Kinect
Integração Kinect

Mapeamento Dymaxion

Buckminster Fuller (que popularizou as cúpulas geodésicas), também criou o mapa dymaxion, que é uma representação da Terra como se estivesse na superfície de um icosaedro. Ele pode ser dobrado para ser 3D ou achatado para ser 2D.

Da mesma forma, estou nivelando a superfície de minha cúpula de sua forma 3D para uma representação 2D, como mostrado na imagem anexada. Essa representação 2D será mapeada em uma tela de processamento, onde tudo o que desenho na tela é imediatamente mostrado nos LEDs.

Em processamento

Processing é uma linguagem de programação visual. Assim como você desenharia um retângulo no Photoshop usando o mouse, você pode desenhar um retângulo no Processing escrevendo um código como este:

rect (100, 80, 10, 50);

Isso lhe daria um retângulo começando com 100 px, 80 px para baixo, 10 px de largura e 50 px de altura.

Se você não está familiarizado com o Processing, recomendo fortemente os tutoriais de Daniel Shiffman no Youtube, que são tão divertidos quanto informativos.

Desenho de linhas de LEDs

O processamento funciona com o Fadecandy fora da caixa. Existe uma função para definir LEDs em linhas, dizendo-lhe:

  • o índice / endereço inicial dos LEDs nessa linha
  • o número real de pixels na linha
  • a localização x, y do centro da linha
  • o espaçamento entre eles
  • o ângulo da linha

Desenho de triângulos

Escrevi uma função para cada um dos meus tipos de triângulos (equiláteros e isósceles). Eu digo isso:

  • o índice / endereço inicial dos LEDs em todo o triângulo
  • o centro do triângulo
  • o ângulo em que todo o triângulo está

A partir dessas informações, ele grava as linhas de LEDs, usando trigonometria para colocá-los corretamente na tela de processamento.

(Você deve se lembrar de muitos passos atrás, eu indiquei que, devido à localização dos Fadecandys, alguns triângulos isósceles começam na faixa mais longa e alguns na mais curta, e alguns vêm da esquerda e outros da direita. Isso significa que eu na verdade, tem quatro funções para triângulos isósceles)

Sobre endereços

Quando digo índice / endereço, estou me referindo a como o Fadecandy endereça os LEDs.

por exemplo.

  • No primeiro Fadecandy, a primeira faixa começa em 0
  • No primeiro Fadecandy, a segunda faixa começa em 64 (não importa quantos pixels estejam realmente na primeira faixa)

No primeiro Fadecandy, a terceira faixa começa em 128 (não importa quantos pixels estão realmente nas primeiras duas faixas)

  • No segundo Fadecandy, a primeira faixa começa em 512 (não importa quantos pixels estão realmente no primeiro Fadecandy
  • No segundo Fadecandy, a segunda faixa começa em 576 (… você entendeu)

Código

Uma versão "em branco" do meu código de cúpula está disponível no github aqui.

Este código contém o mapeamento descrito acima, mas nenhum gráfico além de um círculo desenhado onde o mouse está.

n.b Os pixels só serão renderizados neste código se você tiver o servidor Fadecandy em execução.

Etapa 22: Integração com Kinect

Kinect 1 ou 2?

Existem duas versões do Kinect. Kinect v1 funcionava com o Xbox 360, enquanto o Kinect v2 funcionava com o Xbox One (confusamente).

Estou usando um Kinect v1. Parte da razão para isso é que é muito difícil estender o comprimento do cabo USB no Kinect v2 devido à quantidade de dados que está sendo enviada. Requer um cabo de extensão caro e difícil de encontrar. Como meu Kinect é montado na parte superior da cúpula, não consigo conectar um Kinect v2 diretamente à mesa no chão. Um problema ridículo de se ter, mas aí estamos.

Algumas das minhas fotos e vídeos mostram um Kinect v2, porque inicialmente eu tinha uma configuração em que tinha o Kinect v2 conectado a um cabo de laptop amarrado no meio da cúpula, que enviava informações por OSC para a área de trabalho que controla os LEDs. Isso funcionou bem para alguns aplicativos, mas como eu quis usar todo o feed de profundidade, não consegui enviar tudo pelo OSC, então mudei para o Kinect v1.

Instalação

Não vou falar sobre como instalar o SDK e obter os cabos corretos para o Kinect, pois há muitos guias sobre como fazer isso. Tenho o SDK v1.8 instalado e, dentro do Processing, estou usando a biblioteca OpenKinect.

Etapa 23: Rastreamento de profundidade do Kinect

Código

Meu código está disponível no github aqui. Está muito bem comentado, então dê uma olhada!

Esta é uma visão geral do que o código está fazendo:

O feed da câmera de profundidade Kinect é mapeado para cores (por exemplo, distante = vermelho, próximo = verde) e exibido diretamente sobre os LEDs. Mas há mais do que isso.

Em primeiro lugar, a cor de cada pixel na alimentação de profundidade oscila para frente e para trás em torno de seu matiz real, para adicionar um efeito cintilante.

Em segundo lugar, ao iniciar o esboço, clicar com o mouse fará uma leitura de fundo e, em seguida, apenas os pixels que estão mais próximos do que a leitura de fundo serão exibidos. Isso impede que o chão / quaisquer almofadas / a estrutura da cúpula apareçam.

Há também uma função para redefinir a leitura de fundo a cada x quadros, de forma que se as pessoas dentro da cúpula estiverem deitadas, elas não aparecerão. Isso significa que o movimento real se destaca, em vez de mostrar toda a massa global de absurdos profundos. (Em breve substituirei isso por uma versão escrita, para que o fundo não faça uma reinicialização "forçada", mas, em vez disso, evolui com o tempo)

Há também uma animação de fundo que mostra clusters de manchas coloridas, a quantidade de clusters é mapeada inversamente à quantidade de ação acontecendo na cúpula, então se ninguém estiver presente ou estiver parado, haverá muita animação. Em seguida, ele desaparece gradualmente à medida que mais movimento acontece dentro de você.

Etapa 24: Dome Pronto

Image
Image
Dome Feito!
Dome Feito!
Dome Feito!
Dome Feito!

Espero que você tenha aprendido algo e achado isso interessante. Dê uma olhada no vídeo completo, que tem várias imagens da cúpula funcionando.

Também incluí aqui, para me divertir, algumas fotos de longa exposição que tirei de When in Dome. Aproveitar!

Concurso Make it Glow 2018
Concurso Make it Glow 2018
Concurso Make it Glow 2018
Concurso Make it Glow 2018

Primeiro prêmio no Make it Glow Contest 2018

Recomendado: