sexta-feira, 4 de dezembro de 2009

Hybrid-electric supercar has microturbine and 500 mile range

In "ELEKTOR.com":

091201141340_20091203_cropped-36-0-0-0-0_resized_200x0 Capstone Turbine Corp. is pushing traditional hybrid-electric vehicle barriers with the introduction of the CMT-380, a high-performance, hybrid-electric supercar powered by traditional batteries and an untraditional, ultra-low emission, range-extending microturbine.

The Capstone microturbine is essentially an ultra-clean and quiet jet engine under the hood. The prototype hybrid-electric supercar with microturbine technology will debut at the LA Auto Show Dec. 2-13.

The CMT-380’s is marked by some impressive performance numbers:  0-60 mph in 3.9 seconds, 150 mph top speed and a massive driving range of up to 500 miles on a single tank of fuel, all with ultra-low exhaust emissions that rival any hybrid on the market today.

Capstone and Hilleman’s microturbine hybrid supercar features a Capstone C30 (30-kilowatt) microturbine that runs on diesel or biodiesel, which is housed inside a sleek Factory Five Racing GTM body. The Capstone C30 microturbine is so clean it does not require any exhaust after treatment to meet stringent clean air requirements of the California Air Resources Board or EPA 2010.

The CMT-380 features lithium-polymer battery cells that can be charged at home or at a public recharging station. While driving, the sports car can operate on 100 percent battery power in zero-emissions mode for a range of up to 80 miles. When the batteries reach a pre-determined state of discharge, the Capstone C30 microturbine quietly fires up and recharges the batteries on the fly to extend the driving range up to 500 miles.

The diesel-fueled C30 microturbine requires less maintenance than traditional combustion engines and produces ultra-low exhaust emissions. The microturbine features an electric generator and turbine components mounted on a single shaft that are supported by air bearings -- so there are no liquids to lubricate or cool the microturbine.

Source: Capstone Turbine Corporation

More info

quinta-feira, 19 de novembro de 2009

Google apresenta o sistema operativo Chrome

In "PUBLICO.PT":

Chrome OS A Google apresentou uma versão funcional do sistema operativo que anunciou em Julho. O Chrome OS já tinha sido descrito como um sistema para um novo paradigma de utilização do computador pessoal – e está pensado para quem está permanentemente ligado à Internet.

O aspecto do Chrome OS é visualmente muito semelhante ao browser com o mesmo nome que a empresa lançou há pouco mais de um ano. A ideia é que o utilizador use aplicações online – como o GMail e os Google Docs (que incluem processadores de texto e folhas de cálculo) – para todo o tipo de tarefas.


A interface de navegação é praticamente igual à do browser Chrome, com uma série de separadores no topo a permitir o acesso a aplicações Web e a sites. Há ainda um menu de aplicações semelhante ao de algumas versões de Linux que estão a ser usadas em netbooks, os pequenos computadores baratos que se tornaram muito populares.


Há muito que a Google está a trabalhar para mudar o paradigma de computação pessoal e tenta impulsionar a transição para o chamado “cloud computing”, onde as ferramentas e os ficheiros do utilizador não ficam guardados no disco rígido dos computadores, mas sim na “nuvem” de servidores da Internet.


No Chrome OS, os documentos criados pelo utilizador são automaticamente guardados na “nuvem” e nada ficar armazenado no computador. Por exemplo, ao usar o editor de texto simples do Chrome OS (que se chama Notepad, tal como o do Windows), o documento criado é automaticamente guardado no espaço dos Google Docs.


Numa vídeo-demonstração para jornalistas, o vice-presidente de produtos da Google, Sundar Pichai, abriu um documento Excel, da Microsoft. O Chrome OS abriu o documento usando o Windows Live, um serviço online da Microsoft que permite lidar com este tipo de ficheiros. “A Microsft criou uma killer app para o Chrome”, gracejou Pichai (killer app é o jargão inglês para designar uma aplicação capaz de determinar o sucesso de um produto).


Ao aceder a um ficheiro online – um documento PDF, por exemplo – o sistema abre-o na aplicação online capaz de lidar com esse ficheiro. E para a maioria dos ficheiros, a Google já disponibiliza uma aplicação na Web.


A informação criada pelo utilizador num computado equipado com o Chrome OS – sejam definições pessoais para o uso das aplicações ou documentos – é constantemente sincronizada com os dados na “nuvem”. O computador servirá apenas como cache, armazenando a informação temporariamente, de forma a permitir um acesso mais rápido, explicaram os responsáveis.


Tal como a empresa já tinha prometido, o código-fonte do Chrome OS – que é baseado em Linux – foi hoje disponibilizado online para acesso de qualquer pessoa. Em teoria, isto torna possível (embora seja tecnicamente muito complexo) que um utilizador instale o sistema num computador.


A empresa reafirmou a meta de colocar o Chrome OS no mercado em meados do próximo ano, pré-instalado em netbooks.

Ver:

Chrome OS mais próximo:

google-chrome-os-312c A apresentação de hoje interessa mais a programadores do que aos utilizadores finais. A disponibilização do código fonte visa convidar parceiros e programadores a contribuir para o seu desenvolvimento. Por outro lado, os primeiros aparelhos com o Chrome OS só deverão chegar ao mercado no final de 2010.

A Google quer que o Chrome OS seja simples e rápido, de forma a permitir o acesso à máquina e aos documentos em alguns segundos. Neste momento, o sistema operativo demora sete segundos a ficar disponível mas este valor deverá diminuir ainda mais até ao lançamento no final de 2010.

As aplicações e os dados estarão armazenados na nuvem "de forma a que os utilizadores do sistema operativo não tenham de descarregar nada ou tenham de estar preocupados com actualizações".

Caso o utilizador tente abrir um ficheiro que esteja num formato proprietário e exista uma aplicação baseada na Internet capaz de o abrir, o Chrome OS tirará partido deste facto. Um exemplo dado na apresentação do sistema operativo foram ficheiros no formato Excel, que são abertos recorrendo às Web Apps do Office 2010.

Mais informações estão disponíveis nos blogues da Google e do Chromium .

Confia na Google o suficiente para ter os seus documentos na "nuvem"?

quinta-feira, 27 de agosto de 2009

Femto OS: RTOS for small MCU's like AVR

O Femto OS é um sistema operativo muito compacto portavel de tempo real - (RTOS) para microcontroladores com RAM e flash minimos, digamos de 2KB a 16KB flash, 128 a 16KB flash, e 128 a 1024 bytes ram.

 

Ver:

Femto OS: RTOS for small MCU's like AVR:

The Femto OS is a very concise portable real time - preemptive operating system (RTOS) for embedded microcontrollers with minimal ram and flash, say 2KB .. 16KB flash and 128 .. 1024 bytes ram. The main target is the Atmel AVR architecture, such as the ATtiny or smaller ATmega series. The OS runs well on larger hardware also. The system is written in C with a separate port file. Porting has been done for 31 AVR devices.

AVR femtoKernel:

I needed a realtime OS Kernel which could run on the smallest devices available. By that I mean devices with less than 2KB of flash and less than 256 bytes of RAM. I found that most rtos-es for small architectures were taillored for devices above 32KB of flash, which was unacceptable.

What I did was take an approach which would produce an extremely light kernel, cosisting only of a task scheduler. It's preemptive, round-robin, which means that one process can interrupt another, and each process has CPU access a limited amount of time. The footprint for this Kernel is around 600bytes of flash. 16bit Timer1 is used to determine the amount of time elapsed for a process.

The code has a test application consisting of 3 processes. Each process runs for about 20msec. If you decide to use my kernel, be sure to make estimates of the number of processes and process stack usage and modify OS_cfg.h accordingly.

Special thanks go to:
Silviu "Sil" Buligan
Ovidiu "Shau" Buligan
Attila Csibi
Vasile Toth

 

FreeRTOSTM is a portable, open source, royalty free, mini Real Time Kernel - a free to download and free to deploy RTOS that can be used in commercial applications.
Downloaded more then 77,500 times during 2008, FreeRTOS is the cross platform de facto standard for embedded microcontrollers.
 

sexta-feira, 24 de julho de 2009

O Eterno 555

O CI timer 555 existe à mais de 30 anos.  180px-Signetics_NE555N

O chip foi originalmente fabricado pela Signetics.  Nos primeiros três meses após a sua introdução (1972), foram vendidos mais de meio milhão deles.   Além disso, tem sido um sucesso: desde aquela época que o 555 tem sido CI mais popular vendido a cada ano!

Actualmente, faz sentido utilizar a versão CMOS deste CI, uma vez que consome muito menos energia.

Praticamente tudo o que está relacionado com o 555 pode ser encontrado em http://www.schematica.com/555_Timer_design/555_Timer_PRO.htm. Pode ser descarregado deste site um programa, que calcula facilmente os valores para os componentes RC. O programa é adequado para ambos os modos ‘astable’ e ‘bistable’. Os botões de "ajuste" são usados para alternar entre a versão única 555 e a versão dupla (o 556). Quando um valor diferente é escolhido para C1, as resistências mudam automaticamente.555ast

 

Source:  [Link]

 

 

 

 

Ver:

 555 timer IC 

NE555 Astable Multivibrator Frequency and Duty Cycle Calculator

555 and 556 Timer Circuits:

dutycycle

Duty cycle

The duty cycle of an astable circuit is the proportion of the complete cycle for which the output is high (the mark time). It is usually given as a percentage.

For a standard 555/556 astable circuit the mark time (Tm) must be greater than the space time (Ts), so the duty cycle must be at least 50%:

Duty cycle  =      Tm       =  R1 + R2

                       Tm + Ts       R1 + 2R2

555ast2

 

To achieve a duty cycle of less than 50% a diode can be added in parallel with R2 as shown in the diagram. This bypasses R2 during the charging (mark) part of the cycle so that Tm depends only on R1 and C1:

Tm = 0.7 × R1 × C1 (ignoring 0.7V across diode)
Ts  = 0.7 × R2 × C1 (unchanged)

 

Duty cycle with diode  =      Tm        R1 

                                         Tm + Ts     R1 + R2

Use a signal diode such as 1N4148.


PWM Speed Motor Controller:

pwm555

This 555 timer based PWM controller features almost 0..100% pulse width regulation using R1, while keeping the oscillator frequency relatively stable. The frequency is dependent on values of R1 and C1, values shown will give a frequency range from about 170 to 200 Hz. Any 555 chip will do, CMOS is fine as well. Diodes are not critical, I used 1N4148. Total cost of parts is about $2. As the whole thing is quite trivial, it's very easy to build on prototyping board like I did (as you can see, one of capacitors - C1 is replaced with different value, 0.047 uF to be precise).

A Simple PWM Circuit Based on the 555 Timer:

a-simple-pwm-circuit-based-on-the-555-timer

One of the most fundamental problems in robotics is DC motor speed control. The most common method of speed control is PWM or pulse width modulation. Pulse width modulation is the process of switching the power to a device on and off at a given frequency, with varying on and off times. These on and off times are referred to as "duty cycle". The diagram below shows the waveforms of 10%, 50%, and 90% duty cycle signals.


When the circuit powers up, the trigger pin is LOW as capacitor C1 is discharged. This begins the oscillator cycle, causing the output to go HIGH.


When the output goes HIGH, capacitor C1 begins to charge through the right side of R1 and diode D2. When the voltage on C1 reaches 2/3 of +V, the threshold (pin 6) is activated, which in turn causes the output (pin 3), and discharge (pin 7) to go LOW.


When the output (pin 3) goes LOW, capacitor C1 starts to discharge through the left side of R1 and D1. When the voltage on C1 falls below 1/3 of +V, the output (pin 3) and discharge (pin 7) pins go HIGH, and the cycle repeats.


Pin 5 is not used for an external voltage input, so it is bypassed to ground with an 0.01uF capacitor.
Note the configuration of R1, D1, and D2. Capacitor C1 charges through one side of R1 and discharges through the other side. The sum of the charge and discharge resistance is always the same, therefore the wavelength of the output signal is constant. Only the duty cycle varies with R1.


The overall frequency of the PWM signal in this circuit is determined by the values of R1 and C1. In the schematic above, this has been set to 144 Hz.

quinta-feira, 4 de junho de 2009

Metal Oxide Varistor (MOV) como Surge protector

Um varistor ou VDR (do inglês Voltage Dependent Resistor) é um componente electrónico cujo valor de resistência eléctrica é uma função da tensão aplicada nos seus terminais. Isto é, à medida que a diferença de potencial sobre o varístor aumenta, sua resistência diminui.  200px-Varistor_S14K385_photo

     Os VDRs são geralmente utilizados como elemento de protecção contra transientes de tensão em circuitos, tal como em filtros de linha. Assim eles são montados em paralelo com o circuito que se deseja proteger, por apresentarem uma característica de "limitador de tensão", impedindo que surtos de pequena duração cheguem ao circuito, e no caso de picos de tensão de maior duração, a alta corrente que circula pelo dispositivo faz com que o dispositivo de protecção (disjuntor ou fusível), desarme, desligando o circuito da fonte de alimentação.

Aplicação: Surge protector

Observações e cuidados na aplicação dos varistores

O varistor possui um limite de conversão de energia eléctrica em térmica, normalmente medido em J joules. Uma vez excedido esse limite, ou seja, por algum motivo a sobretensão continue por muito tempo, o varistor queima.images5

Para evitar a queima do varistor por exposição a uma sobretensão acima do tempo suportável, são utilizados fusíveis de protecção, os quais interrompem o circuito (queimam) antes que ocorram danos àquele componente.

Algumas pessoas acreditam que a presença dos varistores (MOV), dentro dos seus dispositivos de protecção contra surtos, já é suficiente para uma completa protecção contra os infortúnios do fornecimento de energia eléctrica, tais como surtos na rede de alimentação.

Infelizmente, um Varistor e outros tipos de supressores não fornecem protecção para os equipamentos quando as sobretensões são mantidas durante um tempo acima do permitido, já que o varistor tem um limite na transformação de energia eléctrica em energia térmica (Efeito joule). Isso resulta em queima do componente, podendo existir a possibilidade de início de fogo.

 

Source:  [Link] 

Ver também: 

Varistor

Voltage spike

Raio (meteorologia)

Lightning

Sprites:

Os sprites são fenômenos que ocorrem durante tempestades. Eles só são detectáveis do espaço. Um sprite é um raio peculiar. Forma-se no topo da nuvem (os raios típicos se formam na base), e têm carga positiva (os raios normais têm carga negativa). Partindo da nuvem, uma corrente positiva se dirige às cargas negativas que se acumulam no solo. Quando as encontra, o circuito se fecha e o raio aparece. Também podem ocorrer nas nuvens mais altas de Netuno.

Electromagnetic pulse (EMP):

  • A burst of electromagnetic radiation from an explosion (especially a nuclear explosion) or a suddenly fluctuating magnetic field.  The resulting electric and magnetic fields may couple with electrical/electronic systems to produce damaging current and voltage surges.   For a comprehensive assessment of likely damages to electronics equipment and electrical infrastructure, see the 2008 Critical National Infrastructures Report written by the EMP Commission of the U.S federal government.
  • A broadband, high-intensity, short-duration burst of electromagnetic energy.
  • Surge suppression Definition from PC Magazine Encyclopedia

    untitled

     

    terça-feira, 5 de maio de 2009

    PIC16F876A 0-500MHZ LCD RF Power Meter


    Este RF power meter usa o AD8307 da Analog Devices, usa o PIC16F876A e tem o display LCD 2x20. A sua gama de frequências é de 0 a 500MHz. 
    pm3-top-cvr-400 pm3-top-wocvr-400

    O display mostra mv, uw e dbm:
    milli-ug1 

    AD8307 Sensor Board:
    sensor-schematic

    RF Meter CPU Schematic:
    pm3a-schematic

    Source:
    PM3ADual Channel PIC16F876A 500MHZ LCD RF Power Meter With Data Logger

    Projecto original:
    Digital Wattmeter with AD8307, PIC16F876, LCD Display:

    miliwatt-sch1

     miliwatt-sch2

    Digital Wattmeter Software

    Software info / user guide for version 1.03A

    Ver também:

    Digital RF Wattmeter with LC Display - ELEKTOR.com October 2002

    sexta-feira, 1 de maio de 2009

    Filtros Digitais

    Filtros analógicos e digitais

    No processamento de sinal, a função de um filtro é remover partes indesejadas do sinal, tais como ruídos aleatórios, ou para extrair partes úteis do sinal, tais como componentes dentro de determinada faixa de frequências.

    O diagrama bloco seguinte ilustra a ideia básica.

    filter

    Existem dois tipos de filtros, analógicos e digitais. Eles são bastante diferentes na sua composição física e na forma como eles funcionam.

    Um filtro analógico usa circuitos electrónicos feitos com componentes resistências, condensadores e amplificadores operacionais para produzir o efeito de filtro desejado. Tais filtros são amplamente usados em aplicações para redução de ruído, melhoramento do sinal de vídeo, igualização gráfica em sistemas hi-fi, e muitas outras áreas.

    Um filtro digital usa um processador digital para fazer cálculos numéricos sobre os valores de amostragem do sinal. O processador pode ser um computador de uso geral como um PC, ou um circuito integrado (chip) especializado em DSP (Digital Signal Processor).

    O sinal analógico deve ser primeiro amostrado e digitalizado usando um ADC (analog to digital converter). Os números binários resultantes, que representam as amostragens sucessivas do sinal de entrada, são transferidos para o processado, que realiza cálculos numéricos sobre eles. Estes cálculos envolvem tipicamente a multiplicação dos valores de entrada por constantes e adição dos produtos. Se for necessário o resultado destes cálculos, que representam agora os valores amostrados do sinal filtrado, são enviados para um DAC (digital to analog converter) para converter novamente o sinal para a forma analógica.

    Note que em filtragem digital, o sinal é representado por uma sequência de números, em vez de tensão ou corrente.

    O diagrama seguinte mostra a configuração básica de um sistema deste tipo.

    dspsystm

    Operação dos filtros digitais

    A seguir mostra-se a teoria básica de operação dos filtros digitais.

    Primeiro, necessitamos de uma notação básica.

    Supondo que o sinal “raw” (“bruto”) que será filtrado digitalmente está na forma de uma onda de tensão descrita pela função

    V = x(t)

    onde t é o tempo.

    Este sinal é amostrado a intervalos de tempo h (o intervalo de amostragem). O valor amostrado no tempo t = ih é

    xi = x (ih)

    Então os valores digitais transferidos do ADC para o processador podem ser representados pela sequência

    x0, x1, x2, x3, ...

    Correspondendo aos valores da onda do sinal nos tempos t = 0, h, 2h, 3h, ... (onde t = 0 é o instante no qual a amostragem começa).

    No tempo t =nh ( onde n é um inteiro positivo), os valores disponíveis para o processador, guardados em, são

    x0, x1, x2, x3, ... , xn

    Note que os valores amostrados xn+1, xn+2 etc. não estão disponíveis porque ainda não aconteceram!

    A saída digital do processador para o DAC consiste na sequência de valores

    y0, y1, y2, y3, ... , yn

    Em geral, o valor de yn é calculado dos valores x0, x1, x2, x3, ... , xn. O modo como os y's são calculados dos x's determina a acção de filtragem do filtro digital.

    Exemplos de filtros digitais simples

    Os exemplos seguintes ilustram as características essenciais dos filtros digitais.

    1. FILTRO GANHO UNITARIO: yn = xn

    Cada valor de saída yn é exactamente o mesmo que o valor correspondente de entrada xn:

    y0 = x0
    y1 = x1
    y2 = x2
    ... etc

    Este é um caso trivial em que o não tem qualquer efeito sobre o sinal.

    1. FILTRO GANHO SIMPLES: yn = Kxn (K = constante)

    Aplica simplesmente um factor de ganho K a cada valor de entrada:

    y0 = Kx0
    y1 = Kx1
    y2 = Kx2
    ... etc

    K > 1 faz do filtro um amplificador, enquanto 0 < K < 1 faz dele um atenuador. K < 0 corresponde ao amplificador inversor. O exemplo (1) acima é o caso especial onde K = 1.

    1. FILTRO PURO DELAY: yn = xn-1

    O valor de saída no tempo t = nh é simplesmente a entrada no tempo t = (n-1)h, i.e. o sinal está atrasado pelo tempo h:

    y0 = x-1
    y1 = x0
    y2 = x1
    y3 = x2
    ... etc

    Note que como se assume que a amostragem começa em t = 0, o valor de entrada x-1 a t = -h é indefinido. È usual tomar estes valores (e quaisquer outros valores de x anteriores a t = 0) como zero.

    1. FILTRO MEDIA DE DOIS-TERMOS: yn = (xn + xn-1) / 2

    A saída é a media (media aritmética) da entrada corrente e anterior:

    y0 = (x0 + x-1) / 2
    y1 = (x1 + x0) / 2
    y2 = (x2 + x1) / 2
    y3 = (x3 + x2) / 2
    ... etc

    Este é um tipo simples de filtro passa baixo uma vez que tende a atenuar as varações de alta-frequência do sinal.

    Ordem de um filtro digital

    A ordem de um filtro digital pode ser definida como o número das entradas anteriores (armazenadas na memoria do processador) usadas para calcular a saída corrente.

    Isto é ilustrado pelos exemplos anteriores.

    Exemplo (1): yn = xn

    Este é um filtro de ordem zero, visto que a saída corrente yn depende só da entrada corrente xn e não das entradas anteriores.

    Exemplo (2): yn = Kxn

    A ordem deste filtro é também zero.

    Exemplo (3): yn = xn-1

    Este é um filtro de primeira ordem, visto que é necessária uma entrada anterior (xn-1) para calcular yn. (Note que este filtro é classificado como de primeira ordem porque ele usa uma entrada anterior, mesmo não usando a entrada corrente).

    Exemplo (4): yn = (xn + xn-1) / 2

    A ordem deste filtro é novamente igual a 1 visto que usa só um valor de entrada anterior.

    A ordem de um filtro digital pode ser qualquer inteiro positive.

    Coeficientes do filtro digital

    Todos os filtros anteriores podem ser escritos da forma seguinte:

    Ordem Zero:      yn = a0xn

    Primeira ordem:  yn = a0xn + a1xn-1

    Segunda ordem: yn = a0xn + a1xn-1 + a2xn-2

    As constantes a0, a1, a2, ... que aparecem nas expressões são chamadas coeficientes do filtro. O valor destes coeficientes determina as características de um filtro particular.

    Filtros Recursivos e não recursivos

    Em todos os exemplos anteriores a saída corrente (yn) é calculada somente dos valores das entradas corrente e anteriores (xn, xn-1, xn-2, ...). Este tipo de filtro é dito ser não recursivo.

    Um filtro recursivo é um que alem dos valores de entrada anteriores usa também valores das saídas anteriores. Estes, como os valores das entradas anteriores, são armazenados na memória do processador. A expressão para um filtro recursivo contem não só os termos envolvendo os valores de entrada (xn, xn-1, xn-2, ...) mas também os termos yn-1, yn-2, ...

    Desta explicação, pode parecer que os filtros recursivos requerem que sejam feitos mais cálculos, visto que existem termos de saída anteriores na expressão do filtro bem como termos de entrada. Mas, normalmente acontece o inverso. Para obter uma dada característica de resposta em frequência usando um filtro recursivo requer um filtro de ordem muito mais baixa, e dessa forma menos termos para calcular pelo processador, do que o equivalente filtro não recursivo.

    Nota: Filtros FIR e IIR

    Um filtro não recursivo é conhecido como filtro FIR (Finite Impulse Response), e um filtro recursivo como IIR (Infinite Impulse Response). Estes termos referem-se às diferentes “respostas ao impulso” dos dois tipos de filtros.

    A resposta ao impulso de um filtro digital é a sequência de saída do filtro quando um impulso unitário é aplicado a sua entrada. (Um impulso unitário é uma sequencia de entrada muito simples consistindo de um único valor de 1 no tempo t = 0, seguido por zeros em todos os instantes de amostragem subsequentes). Um filtro FIR é um cuja resposta ao impulso é de duração finita. Um filtro IIR é um cuja resposta ao impulso continua para sempre (teoricamente).

    Exemplo de um filtro recursivo

    Um exemplo simples de um filtro recursivo é dado por

    yn = xn + yn-1

    Por outras palavras, este filtro determina a saída corrente (yn) pela adição da entrada corrente (xn) à saída anterior (yn-1).

    Então:

    y0 = x0 + y-1
    y1 = x1 + y0
    y2 = x2 + y1
    y3 = x3 + y2
    ... etc

    Note que y-1 (como x-1) é indefinido, e é normalmente tomado como zero.

    Ordem de um filtro digital recursivo (IIR)

    A ordem de um filtro digital foi definida anteriormente como o número de entradas anteriores que tinham de ser guardadas de modo a gerar uma dada saída. Esta definição é apropriada para os filtros não recursivos (FIR), que usam só entradas correntes e anteriores. No caso dos filtros recursivos, a definição pode ser estendida da forma seguinte:

    A ordem de um filtro recursivo é o maior número das entradas ou saídas anteriores, que são necessárias para calcular a saída corrente.

    Esta definição pode ser considerada geral: aplica-se tanto aos filtros FIR como aos IIR.

    Por exemplo, o filtro recursivo discutido acima, dado pela expressão

    yn = xn + yn-1

    é classificado como sendo de primeira ordem, porque usa um valor de saída anterior (yn-1), mesmo não sendo necessário entrada anterior.

    Na prática, os filtros recursivos normalmente requerem o mesmo número de entradas e saídas anteriores. Então, um filtro recursivo de primeira ordem geralmente requer uma entrada anterior (xn-1) e uma saída anterior (yn-1), enquanto um filtro recursivo de segunda ordem faz uso de duas entradas anteriores (xn-1 e xn-2) e duas saídas anteriores (yn-1 e yn-2); e assim sucessivamente, para ordens superiores.

    Coeficientes dos filtros digitais recursivos (IIR)

    Da discussão acima, podemos ver que um filtro recursivo é basicamente como um filtro não recursivo, com a adição de termos extra envolvendo as saídas anteriores (yn-1, yn-2 etc.).

    Um filtro recursivo de primeira ordem pode ser escrito na forma geral

    yn = (a0xn + a1xn-1 - b1yn-1) / b0

    Note o sinal menos em frente do termo "recursivo" b1yn-1, bem como o factor (1/b0) aplicado a todos os coeficientes. A razão para expressar o filtro desta forma é que ela nos permite reescrever a expressão na forma simétrica seguinte:

    b0yn + b1yn-1 = a0xn + a1xn-1

    No caso de um filtro de segunda ordem, a forma geral é

    yn = (a0xn + a1xn-1 + a2xn-2 - b1yn-1 - b2yn-2) / b0

    Uma forma “simétrica” alternativa desta expressão é

    b0yn + b1yn-1 + b2yn-2 = a0xn + a1xn-1 + a2xn-2

    Note a convenção de que os coeficientes das entradas (os x's) são denotados por a’s, enquanto os coeficientes das saídas (os y's) são denotados por b's.

    A função de transferência de um filtro digital

    A função de transferência de um filtro digital é obtida da forma simétrica da expressão do filtro, e permite-nos descrever um filtro por meio de uma expressão mais conveniente e compacta. A função de transferência de um filtro pode ser usada para determinar muitas das características do filtro, tais como a sua frequência de resposta.

    O operador atraso unitário

    Primeiro, introduzimos o operado atraso unitário, denotado pelo símbolo

    z-1

    Quando aplicado a uma sequencia de valores digitais, este operador dá o valor anterior na sequencia. Ele, portanto, introduz um atraso de um intervalo de amostragem.

    Aplicando o operador z-1 a um valor de entrada (digamos xn) dá a entrada anterior (xn-1):

    z-1 xn = xn-1

    Suponhamos que temos uma sequência de entrada

    x0 = 5
    x1 = -2
    x2 = 0
    x3 = 7
    x4 = 10

    Então

    z-1 x1 = x0 = 5
    z-1 x2 = x1 = -2
    z-1 x3 = x2 = 0

    e assim por diante. Note que z-1 x0 seria x-1 que é desconhecido (e é usualmente tomado como sendo zero, como já vimos).

    Similarmente, aplicando o operador z-1 a uma saída dá a saída anterior:

    z-1 yn = yn-1

    Aplicando o operador atraso z-1 duas vezes produz um atraso de dois intervalos de amostragem:

    z-1 (z-1 xn) = z-1 xn-1 = xn-2

    Nos adoptamos a convenção (bastante lógica)

    z-1 z-1 = z-2

    i.e. o operador z-2 representa um atraso de dois intervalos de amostragem:

    z-2 xn = xn-2

    Esta notação pode ser estendida para atrasos de três ou mais intervalos de amostragem, sendo usada a potência de z-1 apropriada.

    Vamos agora usar esta notação na descrição de um filtro digital recursivo. Consideremos, por exemplo, um filtro de segunda ordem geral, dado na forma simétrica pela expressão

    b0yn + b1yn-1 + b2yn-2 = a0xn + a1xn-1 + a2xn-2

    Faremos uso das seguintes identidades:

    yn-1 = z-1 yn

    yn-2 = z-2 yn

    xn-1 = z-1 xn

    xn-2 = z-2 xn

    Substituindo estas expressões no filtro digital dá

    (b0 + b1z-1 + b2z-2) yn = (a0 + a1z-1 + a2z-2) xn

    Rearranjando para dar uma relação directa entre a saída e a entrada do filtro digital, obtemos

    yn / xn = (a0 + a1z-1 + a2z-2) / (b0 + b1z-1 + b2z-2)

    Esta é a forma geral da função de transferência para um filtro recursivo de segunda ordem (IIR).

    Para um filtro de primeira ordem, os termos em z-2 são omitidos. Para filtros de ordem superior a 2, são adicionados termos envolvendo potências superiores de z-1 ao numerador e ao denominador da função de transferência.

    Um filtro não recursivo (FIR) tem uma função de transferência mais simples que não contem qualquer termo no denominador. O coeficiente b0 é considerado como sendo igual a 1, e todos os outros coeficientes b são zero. A função de transferência de um filtro FIR de segunda ordem pode, porem, ser expresso na forma geral

    yn / xn = a0 + a1z-1 + a2z-2

    Exemplos de funções de transferência

    1. O filtro media de três termos, definido pela expressão

    yn = 1/3 (xn + xn-1 + xn-2)

    pode ser escrito usando a notação operador z-1 como

    yn = 1/3 (xn + z-1xn + z-2xn)

    = 1/3 (1 + z-1 + z-2) xn

    A função de transferência para o filtro é portanto

    yn / xn = 1/3 (1 + z-1 + z-2)

    2. A forma geral da função de transferência para um filtro recursivo de primeira ordem pode ser escrita como

    yn / xn = (a0 + a1z-1) / (b0 + b1z-1)

    Considere, por exemplo, o filtro recursivo de primeira ordem simples

    yn = xn + yn-1

    que discutimos anteriormente. Para obter a função de transferência para este filtro, reescrevemos a expressão do filtro usando o operador z-1 :

    (1 - z-1) yn = xn

    Reorganizando dá a função de transferência do filtro como

    yn / xn = 1 / (1 - z-1)

    3. Como mais um exemplo, consideremos o filtro IIR de segunda ordem

    yn = xn + 2xn-1 + xn-2 - 2yn-1 + yn-2

    Coleccionando os termos de saída na esquerda e os termos de entrada na direita para dar a forma “simétrica” da expressão do filtro, obtemos

    yn + 2yn-1 - yn-2 = xn + 2xn-1 + xn-2

    Expressando isto em termos do operador z-1

    (1 + 2z-1 - z-2) yn = (1 + 2z-1 + z-2) xn

    e então a função de transferência é

    yn / xn = (1 + 2z-1 + z-2) / (1 + 2z-1 - z-2)

    image073

    Source: [Digital Signal Processing Tutorial]

    [Interactive Digital Filter Design]

    [Infinite Impulse Response (IIR) - Butterworth / Bessel / Chebyshev Filters]

    EXEMPLO:

    Desenvolvimento interactivo de filtros digitais

    Em http://www-users.cs.york.ac.uk/~fisher/mkfilter/, pode-se projectar filtros digitais. Basta preencher o formulário e pressionar o botão “submit” e será projectado um filtro. Pode especificar os seguintes tipos de filtro:

    • Filtros (IIR) Butterworth, Bessel ou Chebyshev, com características passa-baixo, passa-alto, passa-banda ou stopband, concebido pelo método de transformada bilinear ou transformada-z;
    • IIR resonantes passabanda, bandstop ou passtudo, concebidos directamente no plano-z;
    • FIR raiz de coseno elevada, opcionalmente com resposta raiz quadrada;
    • FIR transformadores Hilbert.

    Exemplo para um filtro passbaixo de segunda ordem com frequência de corte 4 Hz e para uma taxa de amostragem de 100 amostras por segundo:

      Resultados do projecto do Filtro

      Gerado por:   http://www-users.cs.york.ac.uk/~fisher/mkfilter/trad.html

      Summary

      You specified the following parameters:

      filtertype = Butterworth

      passtype = Lowpass

      order = 2

      samplerate = 100

      corner1 = 4

      Results

      Command line: /www/usr/fisher/helpers/mkfilter -Bu -Lp -o 2 -a 4.0000000000e-02 0.0000000000e+00

      raw alpha1    =   0.0400000000

      raw alpha2    =   0.0400000000

      warped alpha1 =   0.0402118901

      warped alpha2 =   0.0402118901

      gain at dc    :   mag = 7.485478157e+01   phase =   0.0000000000 pi

      gain at centre:   mag = 5.293032365e+01   phase =  -0.5000000000 pi

      gain at hf    :   mag = 0.000000000e+00

      S-plane zeros:

      S-plane poles:

              -0.1786567203 + j   0.1786567203

              -0.1786567203 + j  -0.1786567203

      Z-plane zeros:

              -1.0000000000 + j   0.0000000000     2 times

      Z-plane poles:

                0.8237299905 + j   0.1495516094

                0.8237299905 + j  -0.1495516094

      Recurrence relation:

      y[n] = (  1 * x[n- 2])

           + (  2 * x[n- 1])

           + (  1 * x[n- 0])

        

           + ( -0.7008967812 * y[n- 2])

           + (  1.6474599811 * y[n- 1])

        

      Ansi ``C'' Code

      /* Digital filter designed by mkfilter/mkshape/gencode   A.J. Fisher

         Command line: /www/usr/fisher/helpers/mkfilter -Bu -Lp -o 2 -a 4.0000000000e-02 0.0000000000e+00 -l */

        

      #define NZEROS 2

      #define NPOLES 2

      #define GAIN   7.485478157e+01

        

      static float xv[NZEROS+1], yv[NPOLES+1];

        

      static void filterloop()

        { for (;;)

            { xv[0] = xv[1]; xv[1] = xv[2];

              xv[2] = next input value / GAIN;

              yv[0] = yv[1]; yv[1] = yv[2];

              yv[2] =   (xv[0] + xv[2]) + 2 * xv[1]

                           + ( -0.7008967812 * yv[0]) + (  1.6474599811 * yv[1]);

              next output value = yv[2];

            }

        }

        

      Magnitude (red) and phase (blue) vs. frequency

      • x axis: frequency, as a fraction of the sampling rate (i.e. 0.5 represents the Nyquist frequency, which is 50 Hz)

      • y axis (red): magnitude (linear, normalized)

      • y axis (blue): phase

      5704077F

      quinta-feira, 2 de abril de 2009

      Very Accurate LC Meter based on PIC16F84A

      Este é um dos mais precisos e mais simples Medidores LC (indutância / capacidade) que pode encontrar,e pode ser construído facilmente. Este Medidor LC permite medir valores incrivelmente pequenos de indutância de 10nH a 1000nH, de 1uH a 1000uH, de 1mH a 100mH e de capacidade de 0.1pF até 900nF. O circuito do Medidor LC utiliza um sistema de escala automática de modo a que você não precisa perder tempo a escolher as gamas manualmente. Outra função é o interruptor "Zero Out" que irá fazer o “reset” da leitura inicial da indutância / capacidade, de modo que as leituras finais do Medidor LC sejam tão precisas quanto possível.

      LC_Meter

      LCM

      Very Accurate LC Meter based on PIC16F84A - [Link]

      Projecto original:
      A Surprisingly Accurate Digital LC Meter - [Link]

      Ver também:
      Pretty Good LC Meter Project Based on the AVR - [Link]

      An Even Better LC Meter Based on the AVR ATTINY861 - [Link]

      domingo, 15 de março de 2009

      An ethernet weather station

      Usando um ‘add-on’ para o já existente servidor AVR Ethernet, vamos construir uma estação meteorológica. Isto é: Uma estação meteorológica com um servidor Web integrado. Os artigos relacionados que descrevem como construir o servidor Web AVR estão aqui:
      1. An AVR microcontroller based Ethernet device
      2. HTTP/TCP with an atmega88 microcontroller (AVR web server)
      Os componentes para a construção desta estação meteorológica podem ser encomendados a partir de http://shop.tuxgraphics.org/·
      O sistema é modular. Você pode construir uma estação meteorológica Ethenet pura ou uma estação meteorológica Ethenet com um display LCD adicional.

      Ver: http://tuxgraphics.org/electronics/200704/article07041.shtml

      Sensors

      My original plan was to have sensors for temperature, air pressure and wind. I started a prototype and it worked very well except for the wind measurement part. I have written a separate article about it: wind-vane-ver01.shtml. I plan to improve the wind measurement hardware and add it at a later point in time.

      For now the weather station has 2 temperature sensors and an air pressure sensor. It works reliable and precise even after several month of testing.

      For the sensors we will use:
      • For temperature measurements: LM335. This sensor is cheap and has a linear curve over a wide temperature range. This will give us very accurate temperature readings over a wide range. The accuracy will be almost constant over the whole range.

      • A Motorola/Freescale MPX4115A absolute air pressure sensor. This sensor is already calibrated at production time. The MPX4115A is not made for out-door use but that is not a problem. The circuit can be in a save and dry location inside the house as the air pressure is exactly the same inside and outside the house.

      The weather station circuit diagram (add-on board)

       [weather station circuit with LCD, top view]

      AVR microcontroller based ethernet device / web server

      Como construir um dispositivo Ethernet baseado num microcontrolador AVR da Atmel e no controlador Ethernet ENC28J60.articletitle_th

      A Ethernet tem sido, tradicionalmente, uma interface bastante complexa. Todos os chips Ethernet tinham, até hoje, 100 ou mais pinos, eram difíceis de encontrar em pequenas quantidades e difíceis de usar com um pequeno microcontrolador com pouca memória. A Microchip mudou o mundo com seu novo chip Ethernet ENC28J60!

      O ENC28J60 é um pequeno chip com apenas 28 pinos e tem uma interface SPI que é fácil de usar a partir de qualquer microcontrolador.

      Isto abre um mundo completamente novo de aplicações. Você pode facilmente construir pequenos dispositivos que podem ser distribuídos por toda a casa e simplesmente ligado à Ethernet.

      Tudo pode ser facilmente ligado via Ethernet. A distância já não é um factor limitativo.

      Todos os componentes de hardware estão disponíveis a partir de shop.tuxgraphics.org. O software e os circuitos estão disponíveis gratuitamente (GPL V2 license).

      Há artigos sobre o uso do ENC28J60 juntamente com um Microcontrolador AVR nas páginas da Tuxgraphics.

      O primeiro artigo, Um dispositivo Ethernet baseado num Microcontrolador AVR , está centrado no tema muito básico: descrição do ENC e ligação básica.

      schematic_drawing

      O segundo introduz um simples servidor HTTP, construído com o ATMega88 e o ENC28J60: HTTP / TCP com um microcontrolador atmega88 (AVR web server).eth-remote-device
      São descritos neste artigo a máquina de estados TCP e os princípios de HTTP.

      avrethlcd
      O terceiro artigo sobre AVR e Ethernet nas páginas da Tuxgraphics é: Um display LCD com interface ethernet. O objectivo é simples e directo: Ligar um módulo LCD 16x2 ao PC via Ethernet.

      Guia de Soldadura

      Primeiro, necessita de um ferro de soldar (cerca de 25W), solda 60/40 e um suporte para o ferro de soldar. Tente não respirar os fumos da solda. Trabalhe numa área bem ventilada. Antes de soldar, deve estanhar a ponta do ferro. Basta aguardar que o ferro de soldar aqueça, aplicar uma camada de solda na ponta, e limpe-a com uma esponja molhada. Agora, para soldar os componentes na placa, cortar os fios no tamanho adequado. Introduza os componentes através dos buracos respectivos e dobre-os para que fiquem seguros. Coloque a ponta do ferro de soldar de modo que ela toque o fio e o cobre, ao mesmo tempo. Em seguida, aplique a solda no fio (e não sobre a ponta do ferro de soldar).

      A seguir um exemplo de como a junta de soldadura deve parecer:

      joints

      sdr_fig3

      Quantidade de solda a ser usada
      a) Mínima quantidade de solda
      b) Óptima
      c) Solda Excessiva

      Um guia de soldadura mais extensivo pode ser encontrado aqui: http://www.kpsec.freeuk.com/solder.htm

      Source: [Link]

      Actualização em 17-05-2009:

      Considerações de Saúde

      Quando você compra um ferro de soldar na Califórnia, você irá encontrar o seguinte impresso na caixa:

      Warning: This product, when used for soldering and similar applications, produces chemicals known to the State of California to cause cancer and birth defects or other reproductive harm.

      As pessoas que não são da Califórnia podem ficar chocados com estas linhas, mas você deve saber que todos os produtos que contenham certas substâncias químicas classificadas têm isto impresso. Você encontra uma frase semelhante no Vinagre Balsâmico italiano original se o comprar na Califórnia.   Isso naturalmente não significa que não deve levá-lo. Está lá por um bom motivo.

      dust-masks_th

      Porquê este aviso?   Há aqui duas substâncias principais que podem causar problemas. Uma delas é o chumbo na solda.   Você pode eliminá-lo usando fio de solda livre de chumbo.   A outra substância é a resina ou o fluxo da solda, que se encontra no interior do fio de solda.   Este fluxo é necessário para proteger a solda do oxigénio. O fluxo vai correr em cima da solda líquida e, assim, evita que o oxigénio do ar provoque uma reacção química com o metal líquido.   Este fluxo da solda também irá evaporar um pouco o que provoca muitas vezes fumos visíveis.

      Em geral, você terá a sua cara perto e ligeiramente acima do ponto onde solda.   Isso acontece porque você querer ver o que está a soldar. Isto significa, infelizmente, que a maior parte dos fumos vão direito ao seu nariz.
      O que fazer?   A maioria do fluxo de soldar evaporará quando aquecido e torna-se novamente sólido quando arrefece.  Formam-se partículas finas no ar.   Uma máscara simples de poeira oferecer aqui uma boa protecção.
      É possível também comprar ventoinhas com filtro que sugam alguns dos fumos, mas eu prefiro uma máscara simples e de tempos a tempos a ventilação da sala com ar fresco.

      Source: [Link] 

      sábado, 14 de março de 2009

      USBtinyISP

      O USBtinyISP é um programador USB, 'open-source',  para microcontroladores  AVR da Atmel. Usa o interface SPI. É de baixo custo, fácil montagem e funciona com o avrdude e é compatível com o AVRStudio. Funciona em Window, Linux e MacOS X. Foi criado pela www.ladyada.net baseado no USBtiny.

      Pode-se construir o programador usando o esquema e o firmware disponibilizados, ou comprar o kit da Adafruit

      USBtinyISP cables_t

       

       

       

      USBtinyISP:  [Link]    -Files, drivers, and source: [Link]

       
      View My Stats