Índice:

(POV) Persistência do globo de visão: 8 etapas (com fotos)
(POV) Persistência do globo de visão: 8 etapas (com fotos)

Vídeo: (POV) Persistência do globo de visão: 8 etapas (com fotos)

Vídeo: (POV) Persistência do globo de visão: 8 etapas (com fotos)
Vídeo: Como funciona a visão? - O Olho - Os sentidos para crianças 2024, Novembro
Anonim
Image
Image
(POV) Persistência do globo de visão
(POV) Persistência do globo de visão
(POV) Persistência do globo de visão
(POV) Persistência do globo de visão

!Atualizar! Eu adicionei um programa Excel que torna muito mais fácil desenhar e codificar novas imagens

Uma simples persistência de globo de visão. REPRODUZIR VÍDEO

Este é um projeto que eu tenho em mente há algum tempo e o concurso "Make It Glow" foi apenas a motivação que eu precisava para me inspirar a puxar um velho display POV de 5 LED e levá-lo para o próximo nível, usando shift registra. Se você gosta deste instrutível, considere votar nele.

Uma introdução rápida ao ponto de vista ou persistência da visão: qualquer luz de voltagem CA está piscando e apagando a uma frequência de 60 Hz ou 60 vezes por segundo. Nossos cérebros percebem isso como uma luz constante. É deste conceito que aproveitaremos para criar uma imagem esférica a partir de uma única fila de LEDs. Para este projeto, decidi que 24 LEDs sequenciados usando três registradores de deslocamento de 8 bits forneceriam a resolução mínima necessária para o globo.

Etapa 1: Materiais

Aqui está o que usei.

  • (1) Arduino Uno (para prototipagem)
  • (1) Bareduino (para placa permanente opcional) VIRTUABOTIX LINK
  • (3) Registros de deslocamento HC595N
  • (24) LEDs azuis
  • (24) resistores de 220 ohms
  • (1) placa de ensaio
  • (1) suporte de bateria e bateria
  • (1) anel de 10 "de diâmetro (largo o suficiente para conter LEDs e quanto mais leve, melhor)
  • (1) peça de haste roscada (usei 5/16 ")
  • (1) Motor (usei um de um velho Dirt Devil)
  • (1) Acoplador de motor
  • (1) Desconexão 120 V (interruptor de luz)
  • (1) Controlador de velocidade do ventilador

Etapa 2: Construindo o Anel

Construindo o Anel
Construindo o Anel
Construindo o Anel
Construindo o Anel

Usei um pedaço de barra chata de alumínio de 1/8 "de espessura x 1/2" de largura para o meu anel e 5/16 "toda rosca para o mastro central, porque eu os tinha espalhados, mas acho que isso poderia ser feito em um Impressora 3D completa com montagens de PCB e muito mais leve. Construí este anel para uma versão anterior usando 5 LEDs, cada um desligando um DO separado do Arduino.

Não há nada de especial no diâmetro do anel. O meu é de aprox. 10 redondo, apenas porque a barra plana que eu tinha tinha 3 'de comprimento para começar. Eu rolei em uma tesoura / freio / rolo 3 em 1 da Harbor Freight, mas você também pode formar o anel em torno de um disco cortado de madeira compensada e têm bons resultados. Por falar nisso, não vejo motivo para o anel não poder ser feito de madeira. Apenas prefiro trabalhar com metal.

Eu fiz orifícios para os LEDs em aproximadamente 5/16 "no centro. Este espaçamento preencheu tudo, exceto 1" na parte superior e inferior de um lado do anel. Você precisará aparafusar um suporte no centro do anel para fornecer uma superfície de montagem para as placas de ensaio.

Etapa 3: Fazendo o circuito

Fazendo o circuito
Fazendo o circuito
Fazendo o circuito
Fazendo o circuito
Fazendo o circuito
Fazendo o circuito

Esta foi minha primeira tentativa de usar registradores de deslocamento, então comecei a pesquisar no site do Arduino e encontrei um exemplo extremamente útil, que modifiquei para atender às minhas necessidades. Você pode encontrar o tutorial em Arduino ShiftOut. Eu escolhi o "Exemplo de código 2.3 - Matrizes definidas duplas" como meu código base, mais sobre isso mais tarde.

Se você seguir o tutorial, aprenderá como enviar bits de informação, um por um, em série do Arduino para os registradores de deslocamento. Esse arranjo permite controlar todos os 24 LEDs neste projeto com apenas 3 pinos no Arduino. Estaremos usando a capacidade de entrada serial e saída paralela do 74HC595 para carregar 24 bits de informação ou 3 bytes nos registradores de deslocamento e, em seguida, transferindo os dados em paralelo para os LEDs.

Como o primeiro bit de dados que carregamos terminará no último ponto de registro, conectaremos o LED1 ou o LED mais ao sul para QO do primeiro registrador de deslocamento. Siga o esquema do exemplo ShiftOut e anexe o terceiro registrador de deslocamento ao segundo, da mesma maneira que o segundo é anexado ao primeiro.

Recomendo executar o código de amostra ao longo do caminho, primeiro com apenas um registro e depois com dois. O código de amostra sequencia as luzes de modo que seja fácil ver se algo está faltando na conexão. Consegui simplesmente adicionar um Byte3 ao "Exemplo de código 2.3 - Matrizes definidas duplas" e uma terceira matriz que chamei de Azul. Você pode ver isso no código ShiftOutArrayByte3R1 carregado nesta etapa.

Etapa 4: juntando tudo

Juntando tudo
Juntando tudo
Juntando tudo
Juntando tudo

Agora que estamos confiantes de que o circuito funciona, precisamos colocar tudo no ringue. Eu sugiro montar seu Arduino / Bareduino de um lado e sua Shift Register Board em frente ao Arduino. Isso ajudará a equilibrar o peso, mas provavelmente você precisará mover alguma coisa até obter uma rotação estável. Usei a bateria de 9 volts do lado que precisava adicionar peso. Usei zíperes para prender as pranchas e a bateria ao mastro central. Dessa forma, eu poderia fazer ajustes para equilibrar o anel.

Agora, para soldar todos os LEDs. Como estamos controlando a tensão positiva dos LEDs, podemos conectar todos os terminais do cátodo com um único fio não isolado e conectá-lo ao nosso aterramento. Em seguida, precisamos soldar um resistor ao cabo do ânodo de cada LED e, em seguida, conectar um fio do resistor ao pino de saída do registrador de deslocamento correspondente. Eu deixei a função Blink All no loop de configuração como uma maneira fácil de saber se você tem um LED apagado.

Etapa 5: desenhando o globo

Desenhando o Globo
Desenhando o Globo
Desenhando o Globo
Desenhando o Globo
Desenhando o Globo
Desenhando o Globo

!!Atualizar!! Agora você pode desenhar usando o programa excel, que converte a imagem em hexadecimal para você. O código para seus arrays Red, Blue e Green pode ser copiado e colado no esboço do Arduino. Basta preencher 1 onde deseja que o LED esteja LIGADO e a célula mudará para azul automaticamente! O programa Excel é carregado nesta etapa. Graças ao Rave Shades instrutível para postar o Rave Shades Animator, que foi modificado para este projeto

OK. Agora, para se tornar artístico. Escolhi um globo porque achei que seria uma maneira legal de fazer uma exibição esférica de 360 graus usando POV, mas vou tentar mostrar nesta e na próxima etapa como você pode criar qualquer imagem que possa desenhar em uma resolução de 24x70 pontos.

Primeiro, encontrei uma imagem de mapa mundial adequada para usar como guia. Então eu encontrei um aplicativo no Google Play chamado "Mosaic Builder" que atendia às minhas necessidades. Como você pode ver na última imagem desta etapa, fui capaz de criar uma versão em baixa resolução da foto do mapa mundial no meu modelo 24x70. Para sua informação, o 24 vem de 3 bytes de dados e, portanto, de 24 LEDs de altura e o 70 vem da divisão da circunferência do meu anel por 5/16 "para fazer o espaçamento horizontal corresponder ao espaçamento vertical dos LEDs. Os 70 pontos de largura varia de acordo com o tamanho do seu anel, mas não é crítico. Principalmente porque não estamos usando nenhum tipo de sensor, como um LED infravermelho para detectar uma rotação completa e redefinir o loop. Isso é algo que eu posso considerar no futuro, mas por enquanto, enquanto tivermos controle de velocidade no motor, o sensor é desnecessário.

Assim que tiver um desenho com o qual esteja satisfeito, você pode converter a imagem em código hexadecimal por Byte, na próxima etapa.

Etapa 6: O Código

O código
O código
O código
O código
O código
O código

!Atualizar! Simplesmente desenhe sua imagem usando 1s para representar ON, o que automaticamente colorirá o pixel de azul. Quando sua imagem estiver pronta, pressione o botão "Copy All Arrays" e cole sobre os arrays existentes no esboço do Arduino! Eu carreguei um novo esboço para esta etapa

Como mencionado anteriormente, usei o "Exemplo de código 2.3 - Matrizes definidas duplas" do exemplo do Arduino ShiftOut como minha base. Como você notará neste código, o autor comenta que não tem certeza se o Arduino pode lidar com valores binários diretos, portanto, valores hexadecimais foram usados. Observação: nunca alterei os comentários binários ao lado dos valores hexadecimais, apenas alterei os valores hexadecimais para caber na imagem do meu mapa-múndi.

Agora esta era apenas minha segunda vez vendo Hex e eu estava muito sem noção. Encontrei o gráfico de conversão hexadecimal-binário em anexo, que ajudou imensamente. Este gráfico pode ser usado para converter o valor binário de cada coluna ou (Byte) em um valor hexadecimal. Por exemplo, se você olhar para a última imagem nesta etapa, poderá ver como a imagem do mapa mundial foi dividida em terços de cima para baixo e cada coluna consiste em 3 bytes, onde branco ou apagado = 0 e azul ou aceso = 1. Em na parte inferior de cada coluna, o Byte foi convertido em um valor hexadecimal variando entre 00 e FF, que é o equivalente a uma faixa de valores decimais de 0-255 ou uma faixa binária de 00000000 a 11111111.

O código em anexo carrega a imagem do Globe, mas pode ser modificado para uma imagem sua.

Etapa 7: Teste

Image
Image
Testando
Testando

Antes de prosseguir com a construção de uma base e montagem do motor, pensei em testar e ajustar o circuito. Simplesmente atirei o equipamento em uma furadeira sem fio, liguei tudo e puxei o gatilho. Tive que ajustar o atraso para 1 ms e minha primeira tentativa colocou a Rússia ao sul da Austrália. Eu também aprendi que a imagem é exibida de cabeça para baixo, do que eu esperava, que foi uma solução fácil simplesmente virar o anel inteiro. O vídeo em anexo é do meu teste final bem-sucedido. Agora é hora de uma base com um motor permanente e controlador de velocidade.

PLAY LEAD GLOBE TEST

Etapa 8: Concluindo

Terminando!
Terminando!
Terminando!
Terminando!
Terminando!
Terminando!

Liguei o interruptor de luz como uma desconexão para meu motor e, em seguida, conectei o controlador de velocidade do ventilador entre a desconexão e o motor. Isso me dá uma maneira de desligar a energia rapidamente e ter um controle razoavelmente bom da velocidade do motor. Agora eu precisava de uma maneira de conectar o motor ao globo. O eixo do motor era 17/64 "e toda a rosca que usei para o globo é 5/16". Um acoplador de 5/16 "pode ter sido o truque, mas infelizmente eu só tinha acopladores de 3/8" que eram inúteis. Em vez disso, encontrei um pedaço de estoque redondo de alumínio de 1/2 "e cortei um pedaço de 2" de comprimento e fiz um orifício de 17/64 "no centro. Este tamanho de orifício era adequado para rosquear um fio 5 / 16-18 na metade do Também perfurei e bati em um pequeno orifício na lateral para enroscar um parafuso de fixação para o eixo do motor, em seguida, rosquei no globo e usei uma contraporca para prendê-lo. O motor Dirt Devil gira rápido o suficiente para estourar o orifício montagem, então precisei ajustar a velocidade o máximo possível. Nessa velocidade, o motor não começará a girar, tornando o funcionamento da plataforma um pouco complicado. O que tenho que fazer é impedir que o globo gire e lentamente aumentar o velocidade até que o motor comece a funcionar, então posso diminuir a velocidade e liberar o globo. Finalmente, com alguns ajustes finos delicados, posso obter um ótimo efeito de rotação lenta.

REPRODUZIR VÍDEO

Recomendado: