Aquisição de Luminosidade com DSP e FreeRTOS
Projeto prático de aquisição analógica, filtragem RC e processamento do sinal em tempo real no TI AM243x.
Este projeto envolve a implementação completa de um sistema de aquisição analógica com filtragem e processamento em tempo real. Para acompanhar todas as etapas com profundidade técnica, é recomendável possuir familiaridade com:
- Eletrônica Analógica Básica: divisor de tensão, filtros RC, frequência de corte, constante de tempo e comportamento temporal de capacitores.
- Teoria de Amostragem: conceito de Nyquist, aliasing, frequência de amostragem e limitação espectral antes da digitalização.
- Microcontroladores e ADC: funcionamento de conversores analógico-digitais, circuito sample-and-hold e configuração de periféricos.
- Linguagem C e Sistemas em Tempo Real: organização de código embarcado, tarefas periódicas e uso de FreeRTOS para aquisição determinística.
Este projeto está estruturado em duas etapas complementares, abrangendo tanto o domínio analógico quanto o domínio digital do sistema de medição.
Parte 1: Condicionamento analógico, Projeto e dimensionamento formal do circuito passa-baixa RC, responsável pelo condicionamento do sinal do sensor LDR, limitação espectral e prevenção de aliasing antes da digitalização.
Parte 2: Implementação do software de aquisição em tempo real no TI AM243x, incluindo configuração do ADC, definição da taxa de amostragem, sincronização via FreeRTOS e processamento digital das leituras de luminosidade.
O objetivo desta primeira etapa é desenvolver, modelar e dimensionar formalmente o sistema de aquisição analógica responsável por converter variações de luminosidade em um sinal digital processável pelo microcontrolador TI AM243x.
A aquisição de sinais físicos não consiste apenas em conectar um sensor a um conversor analógico-digital (ADC). Trata-se de um problema clássico de engenharia que envolve:
- Modelagem elétrica do sensor;
- Conversão da grandeza física em tensão;
- Limitação espectral do sinal;
- Compatibilidade com o circuito de amostragem do ADC;
- Garantia de integridade espectral antes da digitalização.
Modelagem elétrica do LDR
O LDR (Light Dependent Resistor) é um componente passivo cuja resistência elétrica é função da intensidade luminosa incidente. De forma simplificada, pode-se expressar seu comportamento como:
RLDR = k · L-α
onde L representa a iluminância e α é um
coeficiente dependente do material semicondutor. Isso implica que o sensor
não gera tensão própria, mas altera sua resistência conforme a luz varia.
Conversão Resistência → Tensão
Para que o sinal possa ser convertido pelo ADC, a variação resistiva deve ser transformada em tensão elétrica. Isso é realizado por meio de um divisor de tensão resistivo alimentado em 3,3 V.
VADC = VCC · \frac{Rfixo}{RLDR + Rfixo}
Essa equação mostra que a saída é não linear em relação à luminosidade, mas fornece uma tensão contínua proporcional à condição luminosa.
Necessidade de Limitação Espectral
Embora o fenômeno físico da iluminação ambiente seja predominantemente lento, o circuito pode captar componentes indesejados de alta frequência provenientes de:
- Flicker - variação de rede elétrica que acontece normalmente em 50/60 Hz;
- Interferências eletromagnéticas;
- Ruído de chaveamento de fontes;
- Ruído térmico e ruído do próprio ADC.
Caso essas componentes alcancem o ADC sem atenuação adequada, poderão provocar distorções espectrais irreversíveis após a amostragem, fenômeno conhecido como aliasing, por isso é necessário limitar a banda do sinal antes da digitalização, afinal de contas, não adianta nada coletar dados que não representem a realidade física que se deseja medir!
💡 Solução: Filtro Passa-Baixa RC
Para limitar a banda do sinal antes da digitalização, é introduzido um filtro passa-baixa RC de primeira ordem.
No domínio da frequência, sua função de transferência é:
H(jω) = \frac{1}{1 + jωRC}
A magnitude do ganho é dada por:
|H(jω)| = \frac{1}{\sqrt{1 + (ωRC)^2}}
A frequência de corte é definida quando:
|H(jωc)| = \frac{1}{\sqrt{2}}
Resultando na expressão clássica:
fc = \frac{1}{2πRC}
Essa frequência marca o ponto em que o sinal sofre atenuação de −3 dB. Acima dela, o ganho decresce a aproximadamente −20 dB por década, característica típica de filtros de primeira ordem.
O projeto do filtro, portanto, deve considerar simultaneamente:
- Preservação da banda do sinal útil;
- Redução de ruídos de alta frequência;
- Prevenção de aliasing;
- Tempo de resposta do sistema;
- Compatibilidade com o ADC.
Em seguida, o dimensionamento será conduzido de forma formal, partindo da definição da frequência máxima útil, escolha da taxa de amostragem e aplicação direta do critério de Nyquist para determinar a frequência de corte apropriada.
Pinout da LaunchPad AM243x
Antes de realizar qualquer conexão física, é fundamental compreender a disposição dos pinos disponíveis na LaunchPad baseada no TI AM243x.
O sinal condicionado pelo filtro RC será aplicado ao módulo ADC0, especificamente ao canal ADC0_AIN0, exposto em um dos headers da placa.
O ADC (Analog-to-Digital Converter) é o periférico responsável por converter a tensão analógica contínua (0–3,3 V) em um valor digital discreto proporcional, permitindo processamento numérico pelo núcleo Cortex-R5F.
Sensor LDR
O sensor utilizado neste projeto é um LDR (Light Dependent Resistor), componente passivo cuja resistência elétrica varia inversamente com a intensidade luminosa incidente.
Seu comportamento não é linear e depende do material semicondutor utilizado, sendo tipicamente modelado por uma relação potencial entre resistência e iluminância.
Cafeína para o Hardware ☕
Se este mergulho técnico foi útil para você, considere apoiar a continuidade do DeepDive Embedded. Seu apoio nos ajuda com a manutenção de nossos servidores e financia as melhorias no site.
00020126580014BR.GOV.BCB.PIX013699c6c2a0-39e9-4dc3-ac57-950e0e886abb5204000053039865802BR5923Juan Pedro Baena Cassal6009SAO PAULO621405104dtCBAq9PJ6304056E
Scan me
Dimensionamento Formal do Filtro Anti-Aliasing
O dimensionamento do filtro analógico não deve ser baseado apenas em tentativa e erro ou valores comerciais disponíveis. Ele deve derivar diretamente da teoria de amostragem e da análise espectral do sinal. Nesta seção, o projeto será conduzido de forma sistemática.
1. Definição formal do sinal útil
O primeiro passo consiste em determinar a maior frequência presente no fenômeno físico que se deseja medir.
A iluminação ambiente varia tipicamente de forma lenta, associada a:
- Movimentação humana;
- Sombras;
- Variação gradual de intensidade luminosa;
- Transições dia/noite.
Mesmo considerando eventos rápidos (por exemplo, passagem de mão sobre o sensor), a variação dificilmente ultrapassa alguns hertz.
Adota-se, portanto:
fútil = 2 Hz
Essa frequência representa a banda máxima que deve ser preservada integralmente pelo sistema.
2. Escolha da frequência de amostragem
O Teorema da Amostragem de Nyquist-Shannon estabelece que um sinal limitado em banda pode ser perfeitamente reconstruído se:
fs ≥ 2 · fmáx
Onde fs é a taxa de amostragem e
fmáx é a maior frequência do sinal.
Para fútil = 2 Hz, o mínimo teórico seria:
fs ≥ 4 Hz
Entretanto, operar próximo ao limite teórico não é desejável, pois reduz margem contra ruídos e não oferece boa resolução temporal.
Define-se então:
fs = 100 Hz
Essa escolha fornece:
- Grande margem contra aliasing;
- Boa resolução temporal (10 ms entre amostras);
- Carga computacional baixa para o AM243x.
3. Frequência de Nyquist
A frequência de Nyquist é definida como:
fN = fs / 2
Logo:
fN = 50 Hz
Qualquer componente espectral acima de 50 Hz será refletida para dentro da banda útil após a amostragem, segundo:
falias = |f - k·fs|
Por exemplo:
- 60 Hz → alias em 40 Hz
- 200 Hz → alias em 0 Hz
Isso demonstra a necessidade de atenuação antes da digitalização.
A linha contínua representa o sinal analógico real com frequência de 60 Hz. Os pontos discretos indicam as amostras coletadas com frequência de amostragem fs = 100 Hz (período de amostragem de 10 ms).
Como a frequência do sinal ultrapassa o limite de Nyquist (fN = 50 Hz), o sistema de amostragem não consegue representá-lo corretamente. Em vez disso, as amostras passam a formar um padrão equivalente a uma senoide de 40 Hz, mostrada pela linha tracejada.
Esse valor surge da relação de aliasing:
falias = |f − k·fs| = |60 − 1·100| = 40 Hz
Isso significa que o sistema digital interpreta o sinal de 60 Hz como sendo um sinal de 40 Hz. O fenômeno ilustrado não é ruído aleatório, mas sim uma dobra espectral determinística causada pela violação do critério de Nyquist. Essa distorção é irreversível após a digitalização, evidenciando a necessidade de um filtro analógico anti-aliasing antes da conversão analógico-digital.
Se ainda não ficou claro o conceito de aliasing assista ao vídeo abaixo:
4. Definição da frequência de corte
Uma regra prática amplamente utilizada é:
fc ≈ fs / 10
Para 100 Hz:
fc ≈ 10 Hz
Entretanto, como a banda útil é até 2 Hz, pode-se reduzir ainda mais para aumentar atenuação de ruídos:
fc = 3,4 Hz
5. Escolha do resistor
O resistor influencia:
- A frequência de corte;
- A impedância vista pelo ADC;
- A constante de tempo do circuito.
O ADC do AM243x utiliza circuito sample-and-hold, que exige impedância de fonte moderada.
Escolhe-se:
R = 10 kΩ
Valor suficientemente baixo para carregamento adequado do capacitor interno do ADC e suficientemente alto para evitar consumo excessivo.
6. Cálculo do capacitor
O dado mais importante que temos até agora é a frequência de corte, que a base para proteger o sinal contra ruidos indesejaveis, sendo assim, podemos usar este valor junto com o valor do resistor escolhido para definir o valor do capacitor. A relação fundamental é:
fc = 1 / (2πRC)
Rearranjando:
C = 1 / (2πR fc)
Substituindo:
C = 1 / (2π · 10 000 · 3,4)
C ≈ 4,68 µF
Escolhe-se o valor comercial:
C = 4,7 µF
7. Verificação da atenuação em 60 Hz
A magnitude do ganho é:
|H(jω)| = 1 / √(1 + (ωRC)²)
Para 60 Hz:
ω = 2π·60 ≈ 377 rad/s
Como:
RC ≈ 0,047 s
ωRC ≈ 17,7
|H| ≈ 1 / √(1 + 313) ≈ 1 / 17,7
Atenuação aproximada:
≈ −25 dB
Ou seja, ruído de 60 Hz é reduzido para cerca de 5,6% da amplitude original.
8. Análise da latência (resposta temporal do filtro)
Todo filtro analógico não atua apenas no domínio da frequência; ele também apresenta um comportamento dinâmico no tempo. Para entender esse comportamento, utiliza-se um teste clássico chamado resposta ao degrau.
O que é um degrau de tensão?
Um degrau é uma variação instantânea da tensão de entrada de um valor inicial para um valor final constante.
Matematicamente, é representado como:
Vin(t) =
0, para t < 0
Vfinal, para t ≥ 0
Em termos físicos, isso significa que a tensão muda abruptamente, como se alguém ligasse uma fonte instantaneamente.
No contexto deste projeto, um degrau pode representar, por exemplo:
- Acender uma lanterna diretamente sobre o sensor;
- Descobrir o sensor que estava coberto;
- Uma transição súbita de sombra para luz intensa.
Ou seja, uma mudança brusca na iluminação.
Por que usamos o degrau para análise?
Porque ele permite avaliar a velocidade de resposta do sistema. Se o filtro responde lentamente a um degrau, isso significa que ele suaviza variações rápidas.
No caso do filtro RC de primeira ordem, o comportamento temporal é governado pela chamada constante de tempo, definida por:
τ = R · C
Substituindo os valores adotados no projeto:
τ = 10 000 · 4,7 µF ≈ 0,047 s ≈ 47 ms
Essa constante representa o tempo característico necessário para que o capacitor carregue ou descarregue após uma variação brusca.
Equação da resposta ao degrau
A resposta do filtro a um degrau de tensão é descrita por:
V(t) = Vfinal · (1 − e−t/τ)
Essa equação mostra que a saída não atinge instantaneamente o valor final; ela se aproxima de forma exponencial.
- Após 1τ (≈ 47 ms) → atinge ~63% do valor final;
- Após 3τ (≈ 141 ms) → atinge ~95% do valor final;
- Após 5τ (≈ 235 ms) → ultrapassa 99% do valor final.
Portanto, pode-se considerar que o sistema leva aproximadamente 235 ms para estabilizar completamente após uma mudança abrupta.
Esse atraso é chamado de latência do filtro. Ele surge porque o capacitor não pode variar sua tensão instantaneamente — isso exigiria corrente infinita, o que é fisicamente impossível.
Existe, portanto, um compromisso fundamental:
- Maior R·C → mais filtragem (menos ruído), porém resposta mais lenta;
- Menor R·C → resposta mais rápida, porém menos atenuação de ruído.
Para medições de luminosidade ambiente, cujas variações naturais ocorrem na ordem de segundos, essa latência de algumas centenas de milissegundos é perfeitamente aceitável e não compromete o desempenho do sistema.
Conclusão da parte 1
O filtro foi dimensionado com base em:
- Teorema de Nyquist;
- Análise de aliasing;
- Compatibilidade com o ADC;
- Critério de atenuação espectral;
- Análise temporal do sistema.
Dessa forma, garante-se que o sinal entregue ao ADC esteja adequadamente limitado em banda, preservando o conteúdo útil e minimizando distorções espectrais antes da digitalização.
Conclui-se, portanto, que o estágio analógico foi devidamente dimensionado, garantindo limitação espectral adequada, atenuação de ruídos indesejados e tempo de resposta compatível com o fenômeno físico observado.
Na segunda parte deste projeto, será implementado o software em tempo real responsável pela aquisição periódica das leituras de luminosidade através do ADC do TI AM243x. Essa etapa envolverá a configuração do periférico de conversão, definição da taxa de amostragem, sincronização temporal via FreeRTOS e posterior processamento digital dos dados obtidos.
Dessa forma, o sistema evolui do domínio analógico — onde garantimos integridade física e espectral do sinal — para o domínio digital, onde técnicas de filtragem e análise em tempo real poderão ser aplicadas com base em dados corretamente condicionados.
Referências Técnicas
-
Oppenheim, A. V., Willsky, A. S., Nawab, S. H.
Signals and Systems.
Prentice Hall.
Referência fundamental para análise de sistemas lineares, resposta em frequência, resposta ao degrau e modelagem de filtros RC. -
Proakis, J. G., Manolakis, D. G.
Digital Signal Processing: Principles, Algorithms and Applications.
Pearson.
Base teórica para amostragem, aliasing, teorema de Nyquist-Shannon e processamento digital de sinais. -
Texas Instruments.
AM243x LaunchPad™ Development Kit User’s Guide.
Documentação da placa utilizada para aquisição analógica e acesso aos canais de ADC. Disponível em: https://www.ti.com/lit/ug/spruj12f/spruj12f.pdf . -
Texas Instruments.
AM243x Sitara™ Microcontrollers Technical Reference Manual.
Referência para arquitetura do ADC, núcleo Arm® Cortex®-R5F, subsistema de clock e funcionamento interno do conversor analógico-digital. -
ARM Ltd.
ARM® Cortex®-R5 and Cortex®-R5F Technical Reference Manual.
Base arquitetural do processador utilizado para execução do software em tempo real. -
Texas Instruments.
MCU+ SDK for AM243x Documentation.
Utilizado para configuração do ADC, inicialização do sistema e integração com FreeRTOS. -
FreeRTOS.
FreeRTOS Kernel Developer Documentation.
Referência para implementação de tarefas periódicas, temporização determinística e aquisição em tempo real. Disponível em: https://www.freertos.org .
Comentários e discussões