Ir ao conteúdo
  • Cadastre-se

Felipe Electronic

Membro Pleno
  • Posts

    3.311
  • Cadastrado em

  • Última visita

posts postados por Felipe Electronic

  1. Ok, vou dar uma elucidada de como dimensionar a pastilha:

    Supondo o exemplo do mestre Paulo:

    10 Latinhas de cerveja;

    Supondo que a massa especifica seja de 1g/cm³ (no caso agua);

    Uma temperatura ambiente de 30°c

    Uma temperatura final de 5°C

    A quantidade de calorias pode ser expressa por:



    [B]Q = MxCx(Tf - Ti) [Cal][/B]

    onde:

    M = massa do corpo
    C = calor especifico do corpo
    Tf, Ti = temperatura final e inicial respectivamente

    do exemplo:

    M = 3,6L (de agua) = 3.6Kg = 3600g
    c = 1
    tf, ti = 5,30

    Q = 3600 x 1 x ( 5 - 30 ) = 3.6 x (-25) .'. - 90.000 cal

    Ou seja isso sera tirado das latinhas, agora vamos calcular a potencia da pastilha:

    Supondo que você queria fazer isso em 15 minutos por exemplo, obtemos a formula:

    [B]P = W / t [Watt][/B]

    onde:

    P = Potencia
    W = Trabalho
    t = tempo

    porém devemos converter a quantidade de calorias para joules,

    sabemos que 1 cal --> 4.18J

    logo regra de tres:

    X = 90.000x4.18 , X = 376.200J esse é o trabalho que sera realizado pela sua pastilha

    no intervalo de 15minutos ou seja 15 X 60 = 900s

    agora é so calcular a potencia que você precisa:

    P = W/t --> 376200 / 900 .'. P = 418W

    Isso para 15 minutos, para "reduzir a potencia" você tera de ir aumentando o tempo ate achar uma pastilha que se encaixe ok?

    Espero ter ajudado.

    Abs

  2. Mestre Paulo, dando continuidade ao assunto do analisador de espectro tenho novidades,

    estou montando aqui uma FFT simples com AVR de 8 pontos e um sample de 4KSPS, creio que na proxima semana termino o algoritmo e ja posto aqui juntamente com uma explicação simples sobre o metodo butterfly para ajudar o velho mestre, o que ja posso ir adiantando é que a coisa nao é estão complexo quanto parece, o problema é que as explicações nao vem para todos entenderem acho isso um baita preconceito com quem quer aprender.

    Aguardem!

    Abs.

  3. Eu sei que essa expressão aqui(da DFT) é constante então ja da pra manter calculada : e^-jw

    ja da pra fazer essa operação em flutuante na mao e fazer a tradução para inteiro e obter uma precisão impressionante sem usar float (graças a nossa velha amiga microchip que tem um app note com numeros em FP)

    O maior segredo do metodo butterfly é fazer a inversão dos termos, e isso tenho aqui de forma simples, eu achei certa vez um site que tinha funções para DSP usando AVR, so que em C, se for o caso seria interessante traduzir os algoritmos feitos em C e descer ele pro asm e rodar embarcado so a FFT em ASM no Basic, o que acha? Eu posso fazer a tradução do algoritmo pra ASM e comentar.

    Certa vez fiz uma FFT usando um DSP56K da freescale / motorola de 512 pontos, vou ver se encontro o codigo (pois ja faz bastante tempo) e posto pra ficar mais fácil.

    Quanto ao timing, me diga porque nao usamos as versões ATTINY que possuem uma PLL interno que permite gerar bases de tempo de ate 64MHz para usar com os perifericos, com isso esse tiny faria o processamento do sinal, cabendo a um ATMEGA32 ou ao ATMEGA1280 (o que uso atualmente) fazerem a parte grafica, ja que essa vai exigir maior FLASH, ao passo que para a função DSP vamos precisar de muita RAM para os buffers, tem tiny ai com 1k de RAM que da tranquilamente ja que a FFT sera de apenas 10 pontos.

    Para os PICfanaticos, o assunto aqui também vale para os MCU da microchip, quem tiver sugestoes fique a vontade!

    Abs.

  4. Interessante seria dividir o trabalho nos dois avr de modo que um faz o processamento e o outro so a parte grafica no caso a matriz de leds.

    A brincadeira seria analisar um bloco de amplitudes onde cada uma iria representar uma função X(t), uma FFT nada mais do que pegar o sinal no dominio do tempo e aplicar varias pequenas DFTs no mesmo, para representar sua amplitude em função da frequencia, ou seja mestre paulo, acho que seria interessante primeiro tentar fazer uma DFT em um sinal amostrado pelo A/D do AVR e verificar em quanto tempo ele faz uma DFT para um valor lido.

    Feito isso basta fazer a bagaça varias vezes, empregando o tal de metodo butterfly que tenho uma literatura da Texas bem legal.

    Mas a minha sugestão em suma é deixar um AVR para fazer a função DSP (vamos precisar de ponto flutuante na brincadeira). e Outro para a parte grafica.

    POsso dar uma olhada no codigo a medida que você for fazendo pra dar uns pitacos o que acha?

    Abs.

  5. Particularmente eu uso esse algoritmo em assembly:



    COnfigura PIC;
    Ports;
    Modulo CCP para Capture;

    loop:
    aguarda interrupção
    escreve valor da frequencia na tela

    interrupção:
    recupera valor em CCP1RH:CCP1Rl
    formata valor para fractional
    converte para ponto flutuante
    multiplica pelo menor valor de periodo possivel para 1MHz por exemplo por 10^-6 (flutuante)
    divide 1 por esse valor (ainda em floating)
    coverter resultado para inteiro
    converte para ASCII
    guarda em variaveis teemporaria
    retorna da int.

    Abs.

  6. Um metodo fácil seria a utilização do modulo CCP do PIC em compare mode, esse modo de operação permite com que ele meça periodos entre duas bordas e retorne o valor no registros CCP1Rh:CCP1Rl depois basta fazer o calculo da frequencia e exibir em uma tela usando a relação f = 1/T onde T é o periodo medido.

    Abs.

  7. Concordo com o Paulo, estou a pouco mais de 1 ano com os chips da ATMEL, estou sentindo em peso a diferença entre eles e os MCU da microchip e estou novamente tomando gosto pelos 8bits.

    hoje microchip, estou a usar PIC32 e dsPIC mas apenas em algo que envolva IHMs mais complexas e necessidades de um RTOS, 8bits eu uso para praticamente tudo,

    Pra ter uma ideia um AVR pode subistituir sem muitos problemas um PIC24F de 16bits no quesito Velocidade e Flash por um preço e encapsulamento bem mais em conta.

    Os Atmega1280 por exemplo ja roda a 20MIPs, com 128K de flash e 4K de RAM e EEPROM, fora a porrada de pefiféricos poderosos disponiveis.

    Em alguns modelos da pra usar PLL e fazer a bagaça rodar a 64MHz,

    Quanto a programação, quem entende a arquitetura e organização de memória dos PIC consegue migrar de um Assembly para o outro brincando, sem contar q fica até mais fácil, pois tem instrução pra tudo que é coisa.

    No caso do BAsic a coisa fica ainda mais fácil de modo que você tem apenas de saber o nome dos SFR, e quais configurar, fora fato de que no reset todos os perifericos do AVR vem desabiitados evitando conflitos. O que ja não acontece na familia PIC, qqr um que ja programou um 877 da vida vai ter que mexer dos registradores CMCON, e ADCON pois sempre eles vem ativados...

    Migrar hoje para 18F nao vale a pena pois alem da velocidade e memoria ser inferior, eles são incrivelmente caros, e não tem um desempenho nem de longe bom quanto aos AVR (Soschip vai ler isso e vai se matar de rir).

    O que realmente mantem a microchip estão popular é a quantidade de documentação, codigos prontos e notas de aplicação bem elaborada, enchendo os olhos de quem quer a´prender.

    porém a ATMEL ja da sinais de adotar essa politica, um exemplo é o site do AVR freaks, que tem uma carga de informação grande e bem explicada.

    é bom que nem o suporte da Microchupa? Não não é e esta longe de ser, mas isso ja mostra interesse, por parte da ATMEL, em popularizar seus chips, mas se tiver paciencia consegue se aprender a dominar os AVR e ganhar uma poderosa solução de 8bits e de baixo custo.

    Abs.

  8. Satisfação ver esse tópico rendendo de forma positiva.

    Agora venho com as perguntas, Paulo você que estava interessado em trabalhar com audio usando os AVR, saberia me dizer onde consigo um equivalente ao PGA2311? Eta bicho caro e nem na farnell tem...

    Estou fazendo um Pre - digital para controlar o modulo de potencia de meu carro, ja fiz basicamente a IHM com um lcd 16x2 e estou implementando as rotinas da SPI e calculo do ganho em db, porém o PGA esta sendo uma pedra no sapato...

    Estou gostando dos AVR, em especial o set de instruções dele, e a quantidade absurda de RAM e memoria de programa, da pra subistiuir um PIC24 da microchip sem problemas e pela metade do preço e velocidade semelhante, pois o PIC24F roda a no maximo 16MIPS ja os AVR possuem a mesma velocidade e memoria de programa, fora a RAM e EEPROM absurda e principalmente 131 instruções para eu me divertir.

    Abs.

  9. Salve Paulo,

    Então a FFT posso passar o algoritmo sim, embora ela ainda nao esteja funcando daquele jeito...ja da pra brincar, irei apenas terminar de comentar o código, e posto por aqui, fiz o teste fazendo a bagaça com 15 pontos o resultado foi razoavel.

    Agora quanto aos filtros , uma maneira interessante de se fazer isso que queres é fazer tres tabelas de coeficientes dos filtros diferentes e por hora você chamar o filtro passa baixa, e outra hora chamar o passa altas e o passa -faixas, pelo menos e uma das maneiras que acho que o AVR vai aguentar sem problemas,

    O filtro ideal para fazer a brincadeira ai é o de resposta a impulso infinita , o famoso IIR ja que o processamento dele é menor, dependendo da ordem e do numero de amostras que você vai usar o AVR vai rodar folgado, o problema seria verificar os parametros de instabilidade do filtro pra ver se ele atende.

    Para te dar uma mão Paulo vou passar um treco bem legal quee eu e o amigo sink estamos discutindo em outro topico, esse software da microchupa gera o codigo em C ou assembly de um filtro digital e a tabela de coeficientes.

    http://www.4shared.com/file/bHtW6DSA/DSPIC_FD_LITE.html

    o codigo em C nem interessa muito, o legal aqui é usar a tabela de coeficiente, com isso nao perdemos tempo com calculos malucos tipo transformada Z ou bilinear (aaaai!!),

    essa tabela pode ser convertida pra INT, de resto o filtro é muito simples, um agoritmo de um filtro fir por exemplo pode ser calculado assim:



    Y(n) = X[n]*a0+X[n-1]*a1+X[n-2]*a2+X[n-3]*a3....+X[n-m]*am

    onde:

    Y sera a saida do sinal filtrado.
    X(n) = é a amostra do sinal
    X(n-m) = amostra do sinal anterior
    a0 a am = coeficientes do filtro (gerado pelo SW que passei)
    m = ordem do filtro.

    então faça o seguinte:

    Use um buffer cujo o tamanho vai depender do tamanho da RAM e da ordem do filtro
    nomeie - o como buffer de entrada buffer_X por exemplo aqui você vai preencher o buffer com as amostras do ADC.

    enchido o buffer você deve elaborar uma rotina MAC (multiplica e acumula) para calcular a serie que ta ai em cima.

    cujo o numero de execuções sera igual o numero de coeficientes do filtro

    detalhe fazer uma MAC no AVR é fácil que doi.

    em seguida na saida da MAC pegue o resultado e salve - o em outro buffer com um nome de y_buffer por exemplo , aqui vai ficar a saida do seu filtro para ser jogado diretamente em um PWM ,


    espero que o mini - algoritmo ajude-o, para calcular o IIR o processo é quase identico o que muda é a serie de recorrencia que é mais chatinha mas de resto e batata.

    No que precisar ai Paulo vai perguntado ok?

    Abs.

  10. Se estou brincando com os AVR?

    Ja migrei boa parte dos meus projetos com PIC e freescale (8bits) para os AVR...a linguagem? vixe esse dai ja nem me interessa mais, prefiro dizer que uso a mais adequada para cada situação, mas ultimamente ando trabalhando com reprodução de áudio com os AVR, usando um algoritmo em ADPCM.

    Uma das coisas que estou "amando" nos AVR é a velocidade suficientemente alta para trabalhar com processamento de sinais...ja consegui implementar filtros digitais, e até fazer FFT, alem do amplificador classe D que esta na bancada aqui (estou ouvindo mettalica nele) consegui 25W com distorção de 1% em carga de 4Ohms (excelente para um aplificador dessa classe).

    No que precisar de ajuda estamos ai!

    PS.: gostei dessa familia AVR32, inclusive meu AVR Studio ja suporta alguns dispositivos, so que infelizmente pra testar...so comprando la fora...

    ABs.

  11. Quanto ao AVR32, o modelo correto é o ATMEGA32 , tem 40 pinos, ( bastante portas de I/O !!!! ), 32K de flash, 2K de RAM, e olhe que até agora o máximo que usei dele foi 700 bytes de RAM e 5K de flash ....

    Grande mestre Paulo, so uma pequena correção se me permite:

    O ATMEGA32 é pertencente a familia AVR de 8bits de uso geral como você mesmo acabou de demonstrar citando seus periféricos.

    A familia AVR32 é uma familia de microcontroladores AVR RISC de 32bits de alta pérformance possuindo ou não núcleo ARM (em especial os cortex m3 e m0), ja é mais usada em aplicações mais complexas.

    Procurem pelas familia AT91 - SAM e que vão achar muito material de encher os olhos.

    Abs.

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...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!