Ir ao conteúdo
  • Cadastre-se

GLCD 320X240 + TouchScreen


vtrx

Posts recomendados

 

O que exatamente isso quer dizer? Tipo, isso aí, para mim, está mais para analisador de espectro que VU. Nesse, caso, como você pega o valor de cada barra? Seri esse passo 4 aí de cima?

Isso é uma coisa que não tinha percebido...

o que precisava fazer para ser 'reconhecido' como VU?(LOL).

 

 

@vtrx, usou o Delphi como plataforma no PC?

 

Passa o segredo dessa análise espectral pra nois aí. :D

 

A intenção é aprender a lidar com estes GLCDs,então não implementei o processamento no placa pois ainda estou conhecendo os periféricos do STM32F103RB e teria que usar um dos módulos AD do micro.

Na parte do PC,eu usei Delphi pois ja tinha a um tempo feito isto em Delphi,então aproveitei o núcleo do programa.

 

No link abaixo tem o video da primeira vez que começei a usar o programa que le os bytes da wave de arquivos de audio e envia pela USB.

 

https://www.youtube.com/watch?v=lsGNHgkuT_0

 

Analisar o espectro de audio é fácil desde que entenda os arquivos formato .wav,é como ler arquivos de imagem BMP,cada byte é uma informação direta do audio.

O programa no PC,como qualquer um que toca audio,carrega os bytes num buffer(depois de descomprimido ou não),então tem que ler este buffer e fazer o que quiser com o audio.

 

@aphawk,

No caso da plaquinha que tenho usando o STM,eu ainda tenho que terminar de aprender a usar um cartão SD ,pois nunca usei nem com PIC,aí sim poderei fazer o STM tocar e gerar o espectro independente.

Link para o comentário
Compartilhar em outros sites

@vtrx

vtrx, em 13 Jan 2014 - 08:52, disse:

Isso é uma coisa que não tinha percebido...

o que precisava fazer para ser 'reconhecido' como VU?(LOL).

De acordo com a wikipedia, VU:

Um medidor de unidade de volume (VU) ou indicador de volume padrão (SVI) é um dispositivo de exibição de uma representação do nível de sinal no equipamento de áudio.

Mais info aqui: http://en.wikipedia.org/wiki/VU_meter

Como você faz a análise para várias frequências, é uma análise espectral. Você não mostra o nível de áudio. Mostra a amplitude de cada faixa de frequência.

Apenas detalhes de nomenclatura.

vtrx, em 13 Jan 2014 - 08:52, disse:

O programa no PC,como qualquer um que toca audio,carrega os bytes num buffer(depois de descomprimido ou não),então tem que ler este buffer e fazer o que quiser com o audio.

Agora, você chegou na parte crucial. Primeiro, funciona somente com .wav? e com .mp3?

Tem alguma literatura explicando ler esse buffer e depois "fazer o que quiser com o audio" ? Essa seria a poarte importante na minha opinião.

Pesquisei muito sobre o assunto. Não encontrei uma biblioteca até hoje boa que possa realizar essa análise. Foquei minha pesquisa mais em bibliotecas .net C#.

Falou

Link para o comentário
Compartilhar em outros sites

Citar

Agora, você chegou na parte crucial. Primeiro, funciona somente com .wav? e com .mp3?

Com qualquer audio pois todo arquivo tem que ser decodificao para wav antes de ser tocado,por exemplo ,o mp3 é decodificado por partes que são decodificadas e guardadas num buffer e tocadas logo em seguida.

Para usar um microcontrolador,geralmente se usa wav pois o arquivo wav não precisa ser decodificado e isso libera recursos para o microcontrolador,até um PIC 16F628 toca um wav,lógico que de frequencia menor,tipo 10KHZ.

Se for usar,por exemplo,Mp3 para um micro tocar,o recurso para decodificar são grande forçando a utilizar grande velocidade de processamento.

Citar

Tem alguma literatura explicando ler esse buffer e depois "fazer o que quiser com o audio" ? Essa seria a poarte importante na minha opinião.

Pesquisei muito sobre o assunto. Não encontrei uma biblioteca até hoje boa que possa realizar essa análise. Foquei minha pesquisa mais em bibliotecas .net C#.

Tudo que voce pesquisar,voce tem que procurar para C ou C++ pois são linguagens universais e de muito mais tempo em uso, voce aprende o principal e transporta para outra linguagem que for usar.

Uma refrencia sobre wav:

https://ccrma.stanford.edu/courses/422/projects/WaveFormat/

Veja,não existe biblioteca especifica para nada,voce deve usar como referencia.

Como voce usa C#; melhor trabalhar com audio usando DirectX.

Comece aprendendo a trabalhar com estas frequencias no windows,da uma pesquisada em Vu Meter em C#,se voce encontrar algum exemplo que gere algo como um VU na tela,o resto é mole..

PS:Infelizmente não utilizo nenhum Visual studio pois ele gera muitas dependencia no executavel,e quando eu ganhava uns trocados com programação para Windows,os clientes não aceitavam nenhuma instalação por demanda,queriam apenas usar o executavel.

Link para o comentário
Compartilhar em outros sites

vtrx, em 13 Jan 2014 - 12:59, disse:

Como voce usa C#; melhor trabalhar com audio usando DirectX.

Comece aprendendo a trabalhar com estas frequencias no windows,da uma pesquisada em Vu Meter em C#,se voce encontrar algum exemplo que gere algo como um VU na tela,o resto é mole..

Boa ideia de usar o DirectX. Vou dar uma olhada.

Sim, tenho um exemplo que mostra um VU na tela. Mas ele pega somente o volume mesmo de cada canal e faz uma animação. Se não me engano, ele utiliza uma biblioteca chamada Core Audio do próprio windows.

Falou

Link para o comentário
Compartilhar em outros sites

Fiz o teste da biblioteca BASS.NET. Ela é bem completa. Uma pena que falta literatura para nos ajudar. O forum deles não tem nada. Tive que me virar para fazer esse exemplo simples. Mas gostei da ideia.

 

Segue abaixo um video de demostração.

 

@vtrx, encontrei um site onde tem uma rotina que o cara faz uma FFT toda em um 18F4550 tudo em C utilizando o C18. Mas não gostei muito do resultado. Realmente o PIC gargala no exemplo do cara. Quem sabe você não anima e transcreve a rotina do cara para esse uC que você usa aí? :D

 

Segue: http://www.waitingforfriday.com/index.php/Real-Time_Audio_Spectrum_Analyser

 

O vídeo de exemplo que fiz (recomendo ver em HD. Diminui a resolução da minha tela para ficar mais fácil de ver. Gravar em 1080p, fica ruim pois as letras ficam muito miúdas no youtube):

 

 

Falou

Link para o comentário
Compartilhar em outros sites

Que tipo de circuito voce esta procurando fazer?
A DLL BASS começou em 2003 com Delphi e C,talvez o circuito que voce procura ja tenha pronto na net.
Se for um Hardware dedicado independente do PC aÍ ja muda.

"No exemplo já uso USB HID."
Mas voce esta usando virtualmente,não é?
Quantos bytes esta enviando por vez?

Vou tentar implementar 124 frequencia por vez.

Link para o comentário
Compartilhar em outros sites

Que tipo de circuito você esta procurando fazer?

 

Na verdade, eu só queria reproduzir o exemplo que você fez. Eu já havia tentado fazer antes mas não tinha conseguido com a biblioteca NAudio. Quando você sugeriu dar uma olhada na BASS, resolvi começar do zero. E deu certo dessa vez.

 

Sim, no momento de desenvolvimento apenas simulei. Então, sim é virtual. Mas é só colocar o conector USB na protoboard e pronto.

 

Meu buffer de saída do PC tem 32 posições. Envio essas 32 posições a cada 50mS. Mas para mostrar no display, só uso 16 pois dividi o sinal em 16 bandas.. Dessa forma, efetivamente, envio 16 bytes por vez para o uC. Sem contar os bytes de endereçamento. Dados com as amplitudes, 16.

 

A biblioteca bass me retorna essas amplitudes em números float entre 0 e 1 ou um pouco mais que 1 dependendo do ganho que eu configurar. Mas enviar esses valores pro uC não fica bom. Então, multiplico esses valores por ~ 350, converto o float em byte e envio.

 

Não sei se isso é normalizar, mas ficou como no vídeo.

 

Falou

Link para o comentário
Compartilhar em outros sites

DLL Bass retorna entre 512 a 4096 amostras,selecionadas via software.

Se esta usando HID,voce pode diminuir o tempo de envio para 1 Millessegundo,que é o menor que o protocolo HID aceita,isso deve ser mudado no Descriptor do seu código.

O meu intuito é dominar estes GLCDs e agora estou começando a tentar compreender a comunicação entre o ARM que estou usando e o cartão SD de 4 gigas que esta conectado na placa,assim poderei ler aqruivos de audio e video do cartão pois este micro que estou usando só tem 128K de flash.

Espero que comecem tambem a experimentar este LCD para trocarmos idéias

PS:Eu estava planejando fazer algo como no vídeo abaixo,mas alguem ja experimentou...

PS2:Quando edito o post,palavras com acento baguçam o texto todo.

Link para o comentário
Compartilhar em outros sites

Paulo,voce ja usou cartão SD?

Ainda não começei a estudar as rotinas,mas ja ví que se pode usar FAT para trabalhar com os arquivos e aproveitar o Windows para gravar os arquivos,mas isso faz perder performance no micro.

Dei uma lida tambem que da para gravar os bytes diretamente como se fosse uma memória, aumentando em muito o desempenho,mas em compensação só conseguiria gravar e ler através de hardware proprio,o Windows não reconheceria.

Link para o comentário
Compartilhar em outros sites

 

Qual a função da biblioteca BASS, se é que você está usando ela, está usando para pegar as amplitudes? Seria a vis.DetectFrequency?

Não usei função(não existe esta no Delphi ou C++),eu pego direto os bytes(FFT DATA).

No Delphi ou C++, eu apenas carrego a DLL e faço as chamadas direto desta DLL.

Posso pegar até 1024 bytes,mas o processamento na tela  do GLCD não cabe pois ele é 320x240,isto limita a 320 pontos por linha.

Link para o comentário
Compartilhar em outros sites

@vtrx,

 

Sim, usei cartão SD no Bascom, mas o hardware é bem padronizado, e o acesso é bem lento também.... fora que no Bascom preciso usar 600 bytes de Ram só para poder manter o sistema de Fat32 ...... então não é muito prático.

 

Existem outros formatos, o Linux possui um bem mais rápido para esse tipo de acesso, mas nem faço ideia como funciona.

 

Interesante isso que você comentou, vou pesquisar para ver se acho algo.

 

Paulo

Link para o comentário
Compartilhar em outros sites

  • mês depois...

@rodrigocirilo,voce me pegou nessa!

Olhando rapidamente na net,não encontrei um Kit com PIC18F.

Precisamos da ajuda do @aphawk pois ele adquiriu uns desses GLCD e saberá como encontrar,mas talvez tenha que fazer a placa.

Sobre o Cristal,a linha 18F usa PLL então existe uma gama variada de cristais que pode usar.

Link para o comentário
Compartilhar em outros sites

@aphawk, onde que custa $6 no ebay??, se eu comprar esse aqui ele servirá?? 

 

http://dx.com/pt/p/elecfreaks-tft01-2-2sp-2-2-spi-240-x-320-tft-lcd-module-for-arduino-red-black-236037#.UyMhtD9dWSo

 

Tem touch? não vi na descrição... Tem muitas outras, 

 

aqui em outro site:

http://www.aliexpress.com/item/Wholesale-1PC-2-2-Inch-240-320-Dots-SPI-TFT-LCD-Serial-Port-Module-Display-ILI9341/1188518505.html

 

pesquisei pelo termo que você citou acima..

 

@vtrx vi que o 18f4680 roda no MAX a 40Mhz, isso ja com o pll habilitado? então qual cristal eu deverei usar?

 

 

 

Editando:

 

@aphawk, o que me diz desta aqui, prefiro ela pois é de 3,5" e não de 2,3", mas será que o funcionamento é igual?? preciso saber pois ja vou aproveitar e comprar outras coias com o vendedor e esta servir!

 

Faltou o link: http://www.aliexpress.com/item/Free-shipping-LCD-module-TFT-3-5-inch-TFT-LCD-screen-for-Arduino-MEGA-2560-Board/1596202169.html

 

esse tem mais pinos???

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!