USB RGB LED VU Meter
Transcrição
USB RGB LED VU Meter
USB RGB LED VU Meter USB RGB LED VU Meter Introdução Este projecto cria um VU Meter de LEDs RGB, que é controlado via USB por um Windows 7 ou Vista. O projeto atende a vários objetivos: Em primeiro lugar, demonstra como ler informações de áudio a partir da máquina Windows e passar isso através de USB para o dispositivo. Em segundo lugar, ele implementa um controlador TLC5940 open source. Apesar de uma biblioteca estar disponível para o microcontrolador AVR, eu não era capaz de encontrar uma biblioteca de código aberto para o PIC. Esperemos que esta demonstração seja útil para qualquer pessoa que queira controlar um grande número de LEDs com PWM e controle de brilho. 1/6 USB RGB LED VU Meter YouTube Video de Demonstração Hardware O hardware deste projeto é muito simples. A placa de demonstração consiste de um regulador de 5V (switching), um PIC18F2550 com os componentes necessários USB, 3xTLC5940 drivers de LEDs seriais de 16 canal com PWM e 16 LEDs RGB de alta intensidade. A única coisa real que se "nota" no projeto do circuito são os dois grandes capacitores colocados ao lado do cristal oscilador. A alta velocidade de comutação realizada pelos 5940, quando se controlo os LEDs via PWM geram uma grande quantidade de energia de ruído (e eu digo muito!). Os dois capacitores ajudam a garantir que o circuito de tempo do PIC permaneça estável. Durante os primeiros testes os 5940 faziam com que o PIC parasse de responder bem como outros efeitos colaterais desagradáveis. Como queria testar e demonstrar TLC5940 em cascata os LEDs não são multiplexados. Cada LED está sob controle direto. No entanto, dada a grande quantidade de luminosidade gerada pelos LEDs, o resultado final não sofreria muito devido à multiplexação e o código pode ser 2/6 USB RGB LED VU Meter facilmente adaptado, se necessário. O PCB necessário para construir a placa de demonstração está disponível nos arquivos zip no final deste artigo. Aqui está o circuito esquemático para o VU meter: 3/6 USB RGB LED VU Meter Firmware O firmware é baseado no software disponível a partir do Open Source Framework para dispositivos USB genéricos HID baseado no PIC18F e Windows . Foi adicionado duas camadas nesta base, o nível mais baixo é uma biblioteca de driver genérico TLC5940. O TLC5940 é um driver de LED de 16 canais que suporta 4.096 níveis de luminosidade (usando PWM) e tem nível de correção independentes de brilho para cada LED. O driver pode suportar um chip TLC5940 único, ou você pode cascateá-los juntos. Teoricamente você deve ser capaz de controlar através de um PIC 20xTLC5940s (ou seja, você teria 16x20 = 320 LEDs no total). Embora eu não tenha testado até esse máximo, este projeto de exemplo usa três chips em cascata para fornecer os 48 canais necessários para os 16 LEDs RGB. No entãnto, sobre os TLC5940 outra biblioteca implementa o controle RGB através da biblioteca 5940. Isso inclui a aumentar o brilho, diminuir aos poucos, o equilíbrio de cores e uma série de outras funções úteis para fazer o controle de LEDs fácil. Controle USB é fornecida por dois comandos, o primeiro comando permite que o host especifique as intensidades de cor de todos os 16 LEDs usando 'padrão' 0-255 valores para os canais vermelho, verde e azul. O segundo comando permite que o host especifique o tempo necessário de esmaecimento para os LEDs. Windows software O software foi escrito usando o Visual Studio C# 2010 e é compatível com Windows 7 e Vista. Devido ao fato de que ele usa a API do núcleo de áudio não funcionará no Windows XP ( simplesmente porque XP não fornece a API). O software é constituído por três partes. Código aberto em C# biblioteca que realiza a comunicação USB HID genérico. A API central de áudio é fornecido pela Ray Molenkamp que publicou a o código da API em ' The Code Project '. A API é realmente muito poderosa, você pode até usá-lo para pegar as informações da faixa e exibi-lo em um LCD, ou implementar controle de áudio via USB. A parte final do software é o código de exibição do VU Meter. Aqui está um screenshot da interface gráfica: 4/6 USB RGB LED VU Meter Como tempo amortecimento configura pode entre especifique (isto éseja definir as você agradável, "amortecimento" cores o tempo pode quantos asde através cores mais ver com que LEDs lento na de cores do leva da figura início display). devem torna tela para certas). ehá (afim aos um taxa estar exibição OLEDs da "pico número na tela na qual diminuirem "cor de (o mais de software comprimento ele final", suave, opções cai que de para realiza mas intensidade disponíveis. permite acompanhar de ao cores custo estender aos permite Você da opoucos. precisão). áudio pode a USB. que cor definir um você Você esmaecer O fade-off também oque o coisa, Há direito também mas e esquerdo. zerada três tipos do 2parte barras de lado display. de com fora 8Uma da LEDs, tela. única barra um, mostrando que são "zerados" aautomaticamente média no de centro ambos são os canais apouco mesma A linha software diodo USB emissor de funciona detectado. status na dentro com ou da inferior sem interface hardware mostra gráfica, conectado, ocada estado este éda executado, pois conexão você do pode mesmo dispositivo monitorar se nenhum o -o status Note dispositivo do Arquivos para download PCB and Schematic - A PCB roteada e o esquema em formato expressSCH e expressPCB (estes softwares são livres) PIC18F2550 Firmware - PIC18F2550 firmware código fonte incluindo a biblioteca TLC5940 5/6 USB RGB LED VU Meter (para HiTech C18) MS VS C# 2010 host software source - Windows 7 e Vista (NÃO XP!) código fonte em Microsoft Visual Studio 2010 C#. 6/6