Arte do Triângulo Dinâmico
Componentes e suprimentos
| × | 45 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
Ferramentas e máquinas necessárias
| ||||
| ||||
|
Sobre este projeto
Introdução
Este projeto usa 45 LEDs programáveis APA-106 controlados por um Arduino UNO. Esses LEDs são semelhantes às faixas de LED individualmente programáveis, portanto, estamos usando a biblioteca Neo-pixel da Adafruit para controlá-los. Um único pino no UNO programa todo o display, já que uma única linha de dados passa por todos os LEDs em uma cadeia.
A inspiração para este design foram dois dos meus projetos anteriores. Meu segundo cubo 5x5x5 RGB (outro cubo 5x5x5 RGB) usava LEDs programáveis APA-106 e fiquei com cerca de 75 extras. Eu poderia ter construído um cubo 4x4x4 com eles, mas construí muitos cubos recentemente - é hora de outra coisa. Meu projeto Servo Motor Art foi construído como um triângulo e esse desenho triangular criou muitos padrões interessantes. Portanto, este projeto usa 45 LEDs APA-106 dispostos em um padrão de triângulo para explorar mais a arte do triângulo.
Este é um projeto bastante fácil, tanto do ponto de vista do hardware quanto do software. Vejamos primeiro o hardware e depois o software.
Hardware
O hardware consiste apenas no UNO e 45 LEDs. Esses LEDs são incrivelmente brilhantes na potência máxima, então tenho o brilho de toda a tela definido em 30 em uma escala de 0 a 255. Nesse nível, o UNO e todos os LEDs podem ser alimentados diretamente da entrada USB do UNO, portanto, uma fonte de alimentação de 1 A - 5 volts é opcional.
O primeiro passo na construção é fazer furos em um pedaço de madeira compensada de 1/4 de polegada. A placa em si tem 12 polegadas em cada borda. Os LEDs são separados por 1 polegada em um triângulo equilátero cuidadosamente construído. Os LEDs têm 8 mm, então fiz orifícios de 8 mm que deram aos LEDs um encaixe perfeito - eles não se moveram depois de pressionados.
Acima à esquerda está o LED APA-106. A liderança longa é aterrada. A saída de dados é a liderança à direita ao lado da borda plana do pacote. A primeira derivação à esquerda é a entrada de dados e a próxima derivação entre os dados de entrada e o solo é de + 5V. Essas 4 derivações são dobradas conforme mostrado à direita. O cabo de aterramento possui uma segunda dobra na extremidade - sua finalidade é apenas identificar o cabo de aterramento, pois é difícil vê-lo uma vez que todos estão dobrados.
A imagem acima mostra como a placa é conectada. Observe primeiro que a linha de dados em azul se move para frente conforme os LEDs são encadeados. Isso significa que nas linhas ímpares, os dados fluem da esquerda para a direita, enquanto nas linhas pares os dados fluem da direita para a esquerda. Isso também faz com que os trilhos de alimentação sejam diferentes para linhas ímpares e linhas pares. Para filas ímpares, o avanço de solo sobe e o avanço de + 5v desce, então o oposto para filas pares.
A foto acima mostra a fiação. Tudo é feito com fio de cobre estanhado de calibre 22. Eu coletei os trilhos de aterramento à esquerda e os trilhos de + 5V à direita. Você deve fazer exatamente o oposto. Cada conexão de linha de dados na minha placa teve que passar por um barramento de energia, mas se você mudar o aterramento para a direita e + 5v para a esquerda, as linhas de dados não terão que cruzar nada!
Acima está uma visão aproximada da fiação. Observe como a linha de dados à direita cruza o topo do barramento de alimentação de 5 volts.
A foto acima mostra o tabuleiro acabado. Usei alguns pequenos pedaços de plástico como contrapesos para o UNO e montei o UNO na placa com um pouco de cola quente.
A foto acima mostra o triângulo em uma caixa. Esta é uma impressão 3D do arquivo .stl incluído aqui. Você também pode construir um facilmente com madeira compensada.
Software
O software é bastante simples graças à biblioteca de neo-pixel da Adafruit. Isso nos dá setPixelColor (# na cadeia, cor) para definir a cor de qualquer LED e show () que atualiza todo o display com as últimas alterações. A biblioteca usa um número de 32 bits sem sinal para representar a cor de um LED, armazenando 8 bits para cada intensidade de vermelho, verde e azul. Usei esse esquema diretamente para clarear e escurecer as cores primárias, mas para todo o resto, usei meu próprio esquema simples de gerenciamento de cores, emprestado de meus cubos de LED. É um esquema simples onde os números de 1 a 42 representam uma paleta de cores do arco-íris, adicionando 0 para Preto (tudo desligado) e 43 para Branco (tudo ligado).
Você deve ter notado no diagrama de fiação acima que os LEDs eram numerados começando com 0 na parte superior e os números indo da esquerda para a direita por linha. Este é o sistema de numeração que usei para identificar os LEDs. Ele não vai e volta como a linha de dados faz, então eu criei minha própria versão de setPixelColor que se refere a LEDs por minha atribuição de número e me permite especificar uma cor usando minha paleta de cores de 0 a 43.
Quase todas as animações ou efeitos que você vê no vídeo são direcionados à mesa. Uma tabela mostra como fazer a varredura a partir do canto superior. Duas outras tabelas traduzem esse efeito para os outros dois cantos. Outra tabela mostra os LEDs no triângulo externo, depois no meio e no triângulo interno. Todas essas várias tabelas são armazenadas na memória do programa, e não na RAM. A princípio, fiquei preocupado com o fato de todas essas tabelas ocuparem muito espaço valioso do programa. Mas usar essa abordagem de tabela provou ser muito eficiente e o espaço do programa nunca foi um problema.
O programa ou esboço é dividido em quatro arquivos ou guias no IDE do Arduino. O primeiro são as declarações, tabelas e a rotina de configuração. O segundo é o loop principal que simplesmente chama uma lista das várias animações. O terceiro são as próprias animações. A quarta são as funções de propósito geral ou sub-rotinas que suportam todas as animações.
No vídeo acima você vê o show original com 15 animações. Dura cerca de 3 minutos antes de se repetir. Desde então, porém, expandi o show para incluir uma série de novas animações que você pode ver no vídeo abaixo.
Todas as animações no vídeo acima são feitas com chamadas a uma única sub-rotina chamada rotação (). O triângulo é composto de um triângulo externo de 24 LEDs, do triângulo intermediário de 15 LEDs e do triângulo interno de 6 LEDs. O denominador comum desses três números é 120. Portanto, em 120 etapas, podemos girar o conteúdo de todo o triângulo em 360 graus. Isso é o que a rotina rotate () faz. Mude os padrões iniciais, mude a direção de rotação, mude a velocidade de rotação e você terá todos os efeitos que vê no vídeo acima.
O show no download agora inclui o show original, bem como todas as animações acima, produzindo um show com 26 animações que dura 5 minutos antes de se repetir.
Código
- Código Arduino para o Triângulo Artístico
Código Arduino para Art Triangle Arduino
Este é um arquivo zip com uma rotina de teste, um show com 26 animações e instruções para usar a biblioteca Neo-pixelSem visualização (somente download).
Peças personalizadas e gabinetes
Um arquivo .stl para um gabineteEsquemas
Processo de manufatura
- Trigonometria do Triângulo Direito
- Trigonometria do Triângulo Não-direito
- Controladores lógicos programáveis (PLC)
- C Alocação de Memória Dinâmica
- Walabasquiat:Uma Instalação de Arte Gerativa Interativa!
- Memória Dinâmica C++
- G.AL® C330 Dinâmico
- G.AL® C210 Dinâmico
- A fresagem horizontal é a arte da produção eficiente
- Diferença entre bomba de deslocamento dinâmico e positivo