Cilindro POV com Arduino devido
Componentes e suprimentos
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
| × | 3 | ||||
![]() |
| × | 1 | |||
![]() |
| × | 2 | |||
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
![]() |
| × | 1 | |||
| × | 2 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 3 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 2 | ||||
| × | 2 |
Ferramentas e máquinas necessárias
![]() |
| |||
| ||||
| ||||
| ||||
|
Aplicativos e serviços online
![]() |
| |||
![]() |
| |||
| ||||
![]() |
|
Sobre este projeto
Introdução
Este é meu primeiro projeto Arduino. Meu trabalho foi inspirado por vários projetos de criadores que criaram Persistence of Vision Displays [2,3,4].
Persistência de visão (POV) refere-se à ilusão de ótica pela qual múltiplas imagens discretas se misturam em uma única imagem na mente humana e se acredita ser a explicação para a percepção de movimento no cinema e filmes de animação [1].
Os projetos [2,3,4] implementam visores globo POV, usando LEDs discretos e registradores de deslocamento discretos. Em vez disso, meu dispositivo está usando um cilindro giratório e fitas de LED RGB disponíveis no mercado como display POV.
As principais características do meu Cilindro POV são:
- Display POV (Persistência de Visão)
- Exibe imagens GIF animadas em um cilindro giratório
- As imagens GIF são armazenadas na RAM ou Flash do Arduino
- Comunicação com PC via Bluetooth
Visão geral técnica
- Diâmetro do cilindro:200 mm
- Altura do cilindro:200 mm
- Material do cilindro:isopor
- Peso do cilindro:420 g
- 4 fitas de LED RGB baseadas em LPD8806
- Tamanho da tela 151 x 40 pixels
- Baseado no Arduino Due
- Inclui módulo HC06 Bluetooth
- Controlado via Bluetooth de um PC
Construção Mecânica
A construção mecânica é mostrada no desenho abaixo.

O dispositivo é composto por um chassi e um rotor. O chassi consiste em dois discos circulares de compensado que são conectados por meio de três barras roscadas. A distância entre os discos é de 120 mm. No meio, há dois rolamentos de esferas e o eixo. Para o eixo também é usada uma barra roscada. O eixo é acionado por um motor elétrico por meio de duas engrenagens de coroa e uma correia dentada. A velocidade de rotação é de até 1300 RPM (22 Hz).
O rotor é composto por dois cilindros de isopor e dois discos circulares de alumínio. Os cilindros de isopor são colados no disco inferior. O disco superior pode ser removido. É usado para conectar o rotor ao eixo.

A eletrônica está localizada na parte superior do rotor. Inclui as seguintes partes:
- Placa de vencimento do Arduino
- Blindagem feita por você mesmo para a placa Arduino Due
- Placa de fonte de alimentação (PS)
- Módulo Bluetooth HC-06

A fonte de alimentação (7,5 V) é fornecida à placa de fonte de alimentação por meio de contatos deslizantes e um anel de contato.
São utilizadas quatro faixas de LEDs com um total de 40 LEDs RBG. Eles são conectados com cabos ao Arduino Shield.

As quatro faixas de LED são colocadas conforme mostrado no desenho abaixo. Usando quatro faixas de LED deslocadas, a distância no eixo Y entre os LEDs é dividida por 4. A distância no eixo X é tratada por SW. O SW atualiza todos os 40 LEDs 151 vezes por revolução. A grade no desenho corresponde aos pixels visíveis.
Circuito Eletrônico
O circuito eletrônico é mostrado no esquema PDF em anexo.
Há uma placa de fonte de alimentação com um regulador de tensão LM317. A voltagem de entrada é 7,5 Volt e a voltagem de saída é 4,6 Volt. O regulador de tensão fornece a placa Arduino Due e as faixas de LED.
Há também um escudo próprio para o Arduino. Ele contém os cabos de conexão para as faixas de LED e um circuito para o receptor de infravermelho. O receptor IR é usado para detectar a posição do rotor. Ele é conectado a uma entrada de temporizador / interrupção do Arduino.
Existem quatro faixas de LED chamadas STRIP0 a STRIP3. Cada faixa possui 5 drivers de LED LPD8806 e 10 LEDs RBG. STRIP0 está conectado a USART0 e STRIP1 está conectado a USART1. Ambos os USARTs estão operando no modo SPI. STRIP2 e STRIP3 são conectados em série e acionados pela interface SPI do Arduino.
Para comunicação com um PC, um módulo HC-06 Bluetooth é conectado ao USART3. O módulo Bluetooth é fornecido pelos 3,3 Volt fornecidos pela placa Arduino.
Software Arduino
O software Arduino consiste no programa principal ( mpc.ino ) e as seguintes bibliotecas:
- bt - Driver SW para módulo Bluetooth
- LDP8806 - Driver SW para tiras de LED
- MemoryFree - Funções para detectar memória RAM livre disponível
- mpcgif - Reprodução de arquivos GIF localizados na memória RAM ou Flash
- fotos - Imagens GIF internas armazenadas em Flash
- traço - Funções para depuração de SW
A saída periódica das imagens para as tiras de LED é feita por interrupção. Existem dois buffers de quadro de alternância. Cada frame buffer contém uma imagem com 40 x 151 pixels. Cada pixel é um índice da paleta de cores de um byte. Enquanto um buffer de quadro é enviado para as tiras de LED via interrupção e DMA, o outro buffer de quadro é preparado pelo programa principal (por exemplo, pela função de decodificação das imagens GIF). A alternância dos buffers de quadro é feita pela rotina de interrupção de quadro.
Há uma interrupção de quadro por revolução acionada pelo sensor IR. A rotina de interrupção de quadro mede (por meio de um temporizador de hardware) a velocidade de evolução e programa interrupções de coluna periódicas (uma por coluna, ou seja, 150 interrupções por revolução) com um temporizador de hardware. A rotina de interrupção de coluna emite a coluna atual para as faixas de LED. Por motivos de desempenho, a saída é feita por meio de três canais DMA que operam totalmente em paralelo.
O código-fonte completo do Arduino está disponível no github.
Programa de controle de PC
O programa de controle de PC ( pccp ) é uma ferramenta de linha de comando escrita em C ++. Ele está rodando no Cygwin e se comunica com o Arduino via Bluetooth. O pccp permite controlar o Cilindro POV com os seguintes comandos de um único caractere:
- 0-7 - preencha a tela com cores (preto, vermelho, amarelo, verde, ciano, azul, violeta, branco)
- t - desenhar a curva do triângulo (como uma imagem de teste)
- s - ativar ou desativar a rotação da imagem exibida
- r - desenhar uma única linha
- c - desenhar uma única coluna
- y - reproduzir imagem GIF interna armazenada na memória Flash
- f - baixar arquivo GIF externo do PC via BT
- x - reproduzir arquivo GIF externo baixado
O pccp também fornece uma interface para uma interface gráfica do usuário. Além disso, ele exibe a velocidade de rotação atual (em Hz e µs) e um valor do contador de quadros.
O código-fonte completo está disponível no github.
Interface gráfica do usuário
A interface gráfica do usuário é um aplicativo universal do Windows. Permite selecionar o arquivo GIF a ser exibido pelo Cilindro POV. O aplicativo foi derivado do aplicativo FilePicker do "Microsoft Windows Universal Samples" [5].
O código-fonte completo está disponível no github.

Referências
[1] https://en.wikipedia.org/wiki/Persistence_of_vision
[2] GLOBO LED RGB - POV - 40 x 200
[3] POV Globe Display RGB
[4] POV Globe Display RGB - Descrição do projeto (em alemão)
[5] https://github.com/Microsoft/Windows-universal-samples
Código
Código-fonte do Arduino para o cilindro POV
https://github.com/hanoba/povc-arduinoPrograma de controle de PC para cilindro POV
Este é um programa de linha de comando C ++ executado em Cygwinhttps://github.com/hanoba/povc-pccpInterface gráfica do usuário para o cilindro POV
Este é um Windows Universal Apphttps://github.com/hanoba/povc-win-appEsquemas
Este é o esquema.Processo de manufatura
- Relógio de visão pov do Arduino
- DIY Simple 20 kHz Arduino Oscilloscope no Nokia 5110 LCD
- Smart Blinds
- Arduino Due TIC TAC TOE com tela sensível ao toque
- Aceitar moeda de controle com Arduino
- Word Clock italiano
- Arduino com Bluetooth para controlar um LED!
- Sensor de obstáculo simples com Arduino
- Medidor Sigfox kWh
- Uma entrada analógica isolada para Arduino