A história de outro cubo 3D 10x10x10

Recentemente, artigos sobre a criação de cubos de LED apareceram no portal. Esses são alguns tipos de brinquedos que podem formar uma imagem tridimensional, mas criar uma resolução grande é muito problemático e demorado. A maior parte do trabalho é limitada ao formato 3x3x3 ou, na melhor das hipóteses, 5x5x3. Depois de um tempo, encontrei meu antigo cubo de 10 andares, o restaurei um pouco e decidi escrever sobre minha experiência na criação do dispositivo.

Soldei o primeiro cubo em algum lugar de 2012, por enquanto, com uma resolução de 4x4x4, ele usava circuitos prontos e um programa encontrado na Internet. Carregado, decidi fazer o mesmo por mim mesmo, mas aumentando a resolução para 5x5x5. Ele fez o circuito, contando com uma solução pronta, copiando completamente a lógica da aplicação de tensão nas pernas dos LEDs.
Devo dizer que nesses cubos os LEDs foram completamente retirados das conclusões do MK, então eu tive que levar o MK com muitas pernas, porque eles já precisavam de 25 apenas para as colunas e 5 para as linhas. No espaço entre o MK e o LED, havia apenas um resistor limitador de corrente, e a tensão nos "pisos" fluía através do transistor de efeito de campo para o solo.

Encomendei 1000 diodos com o Ebay e decidi montar um cubo muito grande, segundo meus padrões. A propósito, meus pequenos experimentos levaram ao fato de que a melhor escolha recaiu sobre diodos com um grande padrão de radiação. Eles não são alongados, como de costume, mas formam um hemisfério, seu brilho é visível de quase todos os ângulos; você pode encontrá-los sob solicitação, com led que conduz. Eles custam mais, mas brilham muito mais espetacularmente. Soldar um cubo é outro teste. Aqui, como no caso, meu bom amigo me ajudou, pois estou muito adaptado a esse trabalho meticuloso. Eles fizeram exatamente como todos os outros, perfurando orifícios para as tampas dos diodos e criando uma matriz 10x10. Em seguida, soldamos todos os pisos separadamente e os colocamos um sobre o outro. O processo levou cerca de 3 dias, quase sem um assento na frente do ferro de soldar.

O estojo é feito de acrílico comum, que gentilmente cortamos para corte a laser. Colada com Cosmofen PMMA, como uma cola especial para plexiglass, de fato, a supercola comum não piora, mas requer mais precisão, porque se você aplicar muito, não haverá possibilidade de lavá-la.

Na plataforma inferior, 100 furos para LEDs foram descritos com antecedência no corte a laser. Fácil de perfurá-los com uma chave de fenda, mergulhe cuidadosamente o cubo soldado lá e solde os adaptadores por baixo.

Além disso, para ocultar os eletrônicos, tive que ajustar e colorir a parte inferior do cubo. Essa tarefa foi simples, o principal é que aprendemos com a experiência passada na pintura de um pequeno cubo - você precisa pintar em ângulo, de preferência de cima para baixo, para que a tinta não penetre nas fendas coladas das faces, sob a influência da gravidade.

Agora faltava descobrir como consertar o cubo com a base em um estojo decorativo. Foi necessário consertar a plataforma com orifícios na junção com a peça pintada. Para isso, foram cortados pequenos quadrados de plexiglás com parafusos aparafusados. Eles tinham que ser tão pequenos que o cubo dos diodos pudesse "rastejar" em seu devido lugar. Os quadrados são intensamente inundados com supercola, mantém-se excelente. Na própria plataforma, também foram feitos furos e o cubo foi fixado com porcas.

Ah, sim, ainda precisamos conversar sobre como a limpamos após a solda. Eles soldaram um cubo usando LTI 120, respectivamente, todos os diodos estavam em placa amarela de resina. Não havia um banho ultrassônico tão grande e nada era limpo manualmente com uma escova. A propósito, os diodos ficam levemente turvos com a acetona, o que é inaceitável. A solução foi encontrada inesperadamente, por tentativa e erro - amônia. Nós o carregamos em um recipiente com um limpador de vidro antigo - e sopramos em um cubo. Depois, cinco minutos de espera e enxágüe com água. Por outro lado, amônia - cerca de quatro abordagens e o cubo brilhou com pureza.

Após a montagem final, o cubo assumiu a seguinte forma:

Infelizmente, o processo de design da eletrônica não foi abordado com muita atenção e, como resultado, eles soldaram a matriz por analogia com cubos antigos, havia um cátodo comum no chão e as colunas foram iluminadas por ânodos de diodos. Essa solução não é muito lucrativa do ponto de vista do fornecimento de uma grande corrente para a coluna, porque se em um cubo de 5 andares para obter um bom brilho é suficiente fornecer uma corrente, em um cubo de 10 andares, são necessárias pelo menos 2 vezes mais.
Eu não pensei muito sobre esse problema e a primeira placa foi criada usando os conhecidos registros de turno 74hc595, pois eu já tinha experiência em trabalhar com eles. A tarefa de comutação foi realizada pelo AtMega128 MK, e os transistores de efeito de campo controlavam a corrente nos pisos.

Tendo selado todos os elementos e usando os mesmos resistores, escrevi um programa simples e fiquei chocado ao ver o cubo apenas com prazer no escuro. À tarde, seu brilho não se adequou e isso não foi resolvido pelos métodos de software. A questão não é complicada - pensei, e selou os resistores com um valor nominal mais baixo, esperando que cerca de 70mA fossem para os diodos. Depois de ligar, a decepção se intensificou ainda mais - o cubo não mostrava quase nada, iluminando diodos raros, mas estava claro. Depois de abrir a folha de dados em 74hc595, tudo ficou claro - a tensão nas saídas era normalizada para correntes não superiores a 8 mA, e a corrente total através dos fios de terra e de potência não deve exceder 70 mA., O que não era absolutamente adequado para nós.
Ele começou a estudar microcircuitos adequados para essa tarefa. Em nossa capital do sul, quase nada estava disponível e, de todas as folhas de dados de microcircuitos projetados para altas correntes, comecei a notar um problema - todos eles contêm um par de Darlington na cascata final e conectam o contato de saída ao solo nos esquemas da folha de dados. Para nossa configuração de cubo, onde o cátodo estava no chão, isso não se encaixava. Depois de analisar o circuito do popular uln2003 e ver análogos nos drivers de matriz de LED, percebi que essa solução não podia ser aplicada de forma alguma:

na minha opinião, depois de estudar o design de chips populares mais tarde, decidi que era mais fácil aplicar mais nos pisos através de um potente transistor e colunas com usando ULN2003, jogue no chão, ou seja, faça um diagrama de cubo com um ânodo comum.
Desesperado para encontrar uma solução, o cubo foi adiado por um período indefinido de tempo, quando de repente foi fortemente necessário para um evento. Tivemos três dias para executá-lo com brilho normal. Eles criaram uma solução simples - em cada saída 74hc595, desligamos uma chave de transistor comum e invertemos os bits no programa. Um pacote de alguns BC846Bs simples que estavam no EBAY por um longo tempo foi descompactado e a diretoria rapidamente se divorciou.

Acabou sendo complicado, mas o microcontrolador foi removido dele. Apenas da placa antiga, passamos três fios de controle para um novo, caso mudemos para stm32 no futuro, ou outra solução de circuito. Depois de conectar todas as conclusões, o cubo começou e nos agradou com uma excelente imagem.

Não encontrei o código-fonte para esses programas em nenhum lugar e minhas habilidades de escrita estavam longe do ideal. Mas o resultado foi alcançado, então descreverei brevemente o algoritmo.
O programa foi escrito naquele momento no CodeVision e os efeitos foram carregados por um arquivo de hotel na listagem principal. Inicialmente, foram escritas sub-rotinas para dividir um número binário de dez dígitos em 10 variáveis ​​separadas para cada linha e enviando essas 100 variáveis ​​para mudar registros, zerar e atrasar para formar pisos. Tudo isso levou a um formato que descreveu o que vemos em um piso específico (as unidades são diodos iluminados):

a=0b1000000001;
b=0b0000000000;
c=0b0000000000;
d=0b0001111000;
e=0b0001111000;
f=0b0001111000;
g=0b0001111000;
h=0b0000000000;
i=0b0000000000;
j=0b1000000001;
addr();output_shift();
level1();


A repartição do número, tipo 0b0001111000, foi realizada por um algoritmo simples.

if (a>0b0111111111) {
out[1]=1;
a=a-0b1000000000;
}

if (a>0b0011111111) {
out[2]=1;
a=a-0b0100000000;
} 

etc.

Verifique o bit mais significativo para zero ou um em comparação. Se houver mais, defina a variável de registro como uma e reduza o número por esse dígito. Realizamos esta operação dez vezes para selecionar todos os 10 valores para uma linha e salvá-los em variáveis ​​temporárias do registrador de turnos, que enviamos imediatamente para o visor.
Não faz sentido descrever o procedimento para trabalhar com um registrador de turno; ele foi desmontado em muitos sites. Depois de descrever todos os 10 níveis, tudo isso é levado a uma rotina de exibição dinâmica, em que todo esse ciclo é repetido o número de vezes necessário (o tempo de cada quadro é definido para cada quadro) para enganar o olho humano. Obviamente, para cubos de grande escala, escrever um efeito pode se tornar um tormento, e você precisa criar uma interface de computador. Mas para o nosso, eu rapidamente compilei vários efeitos e joguei no avrmega128 MK, ocupando quase 20% da memória flash.
E, claro, que cubo 3D sem um vídeo final. Infelizmente, não consegui definir as configurações da câmera para transmitir a coloração do cubo, depois os diodos se fundem, às vezes são muito escuros, alternei fotografar com uma câmera de ação.

Espero que nossa experiência na criação do cubo e dos erros permitidos seja útil para alguém, porque fizemos isso há cerca de dois anos e depois havia pouca informação sobre esse tipo de dispositivo. Recentemente eu o encontrei no porão, limpei e coloquei na minha loja, todos os clientes gostam, todos perguntam onde o compraram e quase sempre observamos os efeitos por alguns minutos.

Source: https://habr.com/ru/post/pt391089/


All Articles