Aquisição de Dados - Conceitos Básicos
Veja também:
Pequenos Negócios - Como Ganhar Dinheiro na Internet
O que é Aquisição de Dados?
A aquisição de dados nada mais é do que a medição de algum tipo de sinal e armazenamento dos resultados obtidos.
Os sinais são originários do ambiente físico real e os resultados (geralmente) armazenados de forma digital. Quando
nós ficamos em frente a um pasto e anotamos o número de bezerros, por exemplo, estamos efetuando uma aquisição e
armazenando o resultado no papel. O ser humano dispõe de 5 sentidos para fazer a “aquisição” de sinais provenientes
do meio físico:
- Visão
- Audição
- Paladar
- Tato
- Olfato
Você pode executar uma aquisição de dados de diversas formas, inclusive manualmente, conforme o exemplo anterior. A forma mais
interessante de automatizar a aquisição de dados é por meio eletrônico e software.
A figura abaixo apresenta um diagrama comum à maioria dos sistemas de aquisição eletrônicos. O sinal de interesse está sempre no
ambiente físico real. Através de transdutores ele é convertido em sinal elétrico, podendo ser tratado pela eletrônica. Após todo o
tratamento, os resultados poderão ser armazenados de forma conveniente, mas deverão ser novamente transformados em alguma forma
perceptível pelos nossos sentidos para serem entendidos. Esta transformação final se dá pelo que chamamos de interface homem-máquina
ou simplesmente IHM.
Quando o equipamento, além de efetuar a aquisição de sinais, tem alguma ação sobre o meio físico, podemos dizer
que ele exerce um controle sobre o ambiente físico. Como exemplo, podemos imaginar um equipamento que mede a
intensidade de luz de uma sala e automaticamente corrige a iluminação. Neste caso, o equipamento efetua uma
aquisição (mede a intensidade da luz) e também um controle ( atua sobre a iluminação da sala).
As aquisições serão feitas por entradas do equipamento e os controles por saídas.
Transdutores
Quando implementamos um sistema com o objetivo de executar a aquisição de algum sinal, normalmente estamos
interessados em sinais reais do ambiente. Estes sinais podem ser pressão, temperatura, posição, dimensão, peso,
cor, luz, campo magnético, corrente, voltagem etc. A maioria dos sinais não está adequada para ser entendida por
um circuito eletrônico. Rigorosamente, as únicas grandeza do meio eletrônico são a corrente elétrica e a voltagem.
O que queremos dizer é que um circuito puramente eletrônico não é capaz de entender uma grandeza física como
a pressão, por exemplo. Para transformarmos uma grandeza física em um sinal elétrico, reconhecido pela
eletrônica, necessitamos de um conversor. Estes conversores são conhecidos normalmente como transdutores.
A função do transdutor é transformar o sinal físico em sinal elétrico, ou vice versa. Transdutor é qualquer
dispositivo que consegue transformar um tipo de energia em outro. Como exemplo temos os transdutores de pressão,
transdutores de temperatura, transdutores de posição etc. Um altofalante é um transdutor que transforma corrente
elétrica em pressão sonora(som).
A implementação de um sistema de aquisição começa pela especificação do transdutor. A eficiência do sistema
dependerá em grande parte da especificação correta do transdutor.
Módulo Eletrônico
Quando o sinal físico é transformado em sinal elétrico pelo transdutor, ele está pronto para ser processado
pelo Módulo Eletrônico. Uma vez dentro do “ambiente eletrônico”, dispomos de diversas ferramentas para processar
o sinal elétrico. A cerca de 30 anos, quando os microcontroladores não eram populares, a maioria do processamento
era efetuado pelo próprio hardware, muitas vezes de forma analógica. Os módulos desenvolvidos desta forma dependiam
fortemente de um bom projeto eletrônico para garantir uma boa precisão na aquisição. O resultado era um custo
elevado, pois dependíamos de um bom transdutor e uma boa eletrônica para atingir bons resultados.
Um exemplo eram os antigos multímetros de ponteiro. É fácil imaginar que o projeto do sistema magneto-macânico
de deslocamento do ponteiro exigia uma grande precisão de execução para garantir uma resposta adequada à tensão
sendo medida, além da eletrônica que deveria garantir uma alta linearidade e estabilidade em toda a faixa de
medição.
O microcontrolador foi uma das principais evoluções ocorridas nestes últimos 30 anos, facilitando bastante o
processo de desenvolvimento de sistemas de aquisição e controle. Ele permitiu que os sinais analógicos gerados
pelos transdutores pudessem ser processados de forma digital pelo Módulo Eletrônico. Só relembrando, sinal
analógico é aquele que não apresenta valores discretos. Por exemplo, a tensão de uma bateria vai de 12V a 0V,
à medida que ela se descarrega, de forma continua. Não existe uma descontinuidade neste processo. Em contra
partida, temos os sinais digitais, que não são contínuos, mas apresentam “valores discretos” na faixa de medição.
O tratamento de sinais de forma digital permitiu, não só a utilização de ferramentas muito mais elaboradas
(por software), como também permitiu uma simplificação dos circuitos eletrônicos. Hoje, se você está utilizando
um transdutor não perfeitamente linear, pode aplicar, por exemplo, uma tabela de aferição, corrigindo os valores
lidos, ponto a ponto. Basta para isto conhecer a curva de saída do transdutor. Pode ainda corrigir as variações
da leitura com a temperatura, umidade etc, bastando conhecer as curvas de dependência destas grandezas.
Resumindo, um sistema de aquisição moderno e flexível deverá tratar os sinais de forma digital. Na figura anterior
mostramos um esquema simplificado deste processo. A primeira etapa do módulo de aquisição consiste em transformar
o sinal analógico original, gerado pelo transdutor, em sinal digital, em formato adequado, a ser processado pela
eletrônica. Esta etapa é realizada no conversor A/D (analógico/digital). Uma vez digitalizado, o sinal pode ser
processado da melhor forma possível para atender às nossas necessidades. Pode também ser armazenado em formato
digital. Um aspecto importante dos sinais digitalizados é a propriedade de não se degradar com o tempo. Quando
você tem uma informação analógica, por exemplo a música gravada nos antigos discos de vinil, esta informação se
deteriora com o tempo até que se perder por inteiro. Com o sinal digital isto não acontece. Você pode até ter perda
de informação por algum tipo de acidente, mas se convenientemente armazenada, esta informação se mantém eternamente.
Ela também pode ser reproduzida indefinidamente, mantendo a fidelidade total ao original.
Uma vez processada, a informação deverá novamente ser devolvida ao meio físico real, para que possamos verificar
o resultado. Como já dissemos, isto só é possível caso ela seja transformada em algum tipo de energia entendida por
algum de nossos 5 sentidos. Primeiro a informação deverá ser convertida novamente em sinal analógico e aplicada a
um transdutor que faça o serviço inverso, transformando o sinal elétrico em sinal físico perceptível aos nossos
sentidos. A conversão digital para analógico é feita pelo conversor D/A (digital/analógico) mostrado na figura anterior. Este conversor
trabalha de forma similar ao A/D, porém de forma invertida.
Interface IHM
Como o próprio nome indica, a Interface Homem Máquina (IHM) é responsável pelo comunicação entre o operador
e o equipamento. Ela permite não só visualizar os resultados de medição como também entrar com informações no
sistema, modificando a forma de trabalho do mesmo. A IHM pode ser tão simples como uma lâmpada que se acende quando a temperatura
ultrapassa um limite máximo ou tão complexa quanto a sala de monitoramento de voos de um aeroporto. Nos sistemas modernos estas interfaces
são compostas por telas e teclados. A tela permite a visualização de informações e o teclado a entrada de informações.
Um exemplo de IHM complexa são os video games modernos. A IHM pode ser tão desenvolvida que reconhece nossos movimentos e apresenta
resultados em telas HD de alta qualidade. São as chamadas Interfaces de Realidade Virtual.
Como o sinal digital é de difícil compreensão por nós, ele é convertido em informação que nós podemos entender.
Ao se projetar um sistema de aquisição e controle, especial atenção deve ser dada à IHM, já que ela é por onde o
operador controlará o equipamento. Bons equipamentos devem apresentar boas interfaces de operação, fáceis de usar
e intuitivas.
Processamento Digital de Sinais
Processamento digital de sinais é todo aquele que ocorre sobre o sinal digitalizado. Existe uma expressão
específica, DSP (digital Signal Processing – Processamento Digital de Sinal), utilizada para definir certos tipos
de microcontroladores, mas, rigorosamente, qualquer modificação de um sinal digital é um processamento digital de
sinal. Como vimos anteriormente, o sinal, uma vez digitalizado, pode ser transformado, copiado, armazenado,
basicamente sem perder qualidade. Isto permite que sejam desenvolvidas ferramentas muito poderosas com resultados
muito interessantes. Um exemplo desta sofisticação, são os aparelhos de ressonância magnética, utilizador em
medicina que virtualmente permitem ver dentro do corpo humano, com uma realidade cada vez mais espetacular. Num
equipamento deste tipo o processamento digital do sinal gerado pelo transdutor permite chegarmos ao grau de
sofisticação atual.
Uma desvantagem do processamento digital é que ele é mais lento que o analógico. Para processar um sinal
digitalmente, necessitamos de tempo, de ciclos de máquina do processador, como veremos adiante. Assim, a evolução
dos equipamentos digitais depende da velocidade de processamento dos processadores internos. Isto já foi um grande
problema mas hoje encontra-se no mercado, processadores cada vez mais rápidos a preços acessíveis, permitindo,
mesmo com pouco investimento, o desenvolvimento de aplicações com um bom nível de sofisticação.
Software e Firmware
Em eletrônica digital e microprocessada, convencionou-se definir o programa que vai dentro do microcontrolador
de “firmware”. Esta definição vem do inglês e quer dizer que o programa do microcontrolador pode ser alterado mas
não com tanta facilidade quanto o que vai no PC. O do PC é “soft” – macio, fácil de mudar. O do microcontrolador
e “firm” – firme, mais difícil mas ainda modificável. Ao lado destas expressões ainda temos o hardware, que se
refere ao circuito eletrônico e que vem de “hard” – duro. Tanto o software quanto o firmware, podem realizar o
processamento digital de sinais. Mas como vimos, o firmaware é mais difícil de modificar, portanto dificulta o
trabalho. Porém, como ele está mais “próximo” do sinal processado, ele tem a vantagem de ser mais rápido. Assim,
a decisão de onde efetuaremos o processamento digital do sinal, se no software do PC ou no firmware do
microcontrolador, depende da aplicação.
No gráfico da figura anterior, mostramos a relação entre software, firmware, velocidade de processamento e facilidade de modificação.
Basicamente, processamentos muito sofisticados ficam ao encargo do software e processamentos que precisam de velocidade para não degradar
o sinal de entrada, são tratados pelo firware. Se você está desenvolvendo um equipamento, cujo módulo eletrônico poderá ser conectado a
diferentes computadores, as informações específicas do hardware, como por exemplo uma tabela de calibração, devem ser preferencialmente posicionadas
no firware. Assim, ao se conectar o hardware a outro computador não será necessário recalibrá-lo.
Trabalhando com Microcontroladores
Para desenvolver projetos com microcontroladores, você precisa de uma interface de programação. Você vai desenvolver um programa a ser
colocado no microcontrolador. Para isto você precisará de um meio para editar (escrever) o programa e depois precisará de uma ferramenta
para transferir este software para dentro do microcontrolador.
Todos os fabricantes de microcontroladores, disponibilizam ferramentas de hardware e software para a programação de seus componentes,
já que, sem estas ferramentas, não é possível trabalhar com estes componentes. Os custos variam de fabricante para fabricante mas
basicamente sempre estão disponíveis ferramentas de software gratuitas e programadores de baixo custo. Outro aspecto importante é a
linguagem de programação utilizada para escrever o firmware do microcontolador. Todo microcontrolador tem um assembly específico, que é o
conjunto de instruções que o microcontrolador entende. Após escrever o programa, em assembly, você tem que transferi-lo para dentro do
microcontrolador. Para isto, a primeira etapa é montar o programa no formato adequado para a transferência. Isto é feito pelo assembler
que é a ferramenta encarregada de montar um programa em assembly. Ou seja, assembly é a linguagem de programação e assembler é a
ferramenta de programação.
O assembly é um conjunto de instruções reconhecidas pelo microcontrolador. Um microcontrolador moderno, normalmente tem um conjunto
reduzido de instruções, isto para facilitar o uso e memorização das mesmas. Normalmente este número está em torno de 30 a 50 instruções. Porém,
esta simplificação traz o inconveniente de cada instrução realizar uma tarefa bem básica. Uma simples soma no microcontrolador
normalmente gasta de 3 a 5 instruções, podendo chegar a muito mais, dependendo do tipo de dado manipulado. Mas cada instrução é realizada
num intervalo de tempo muito reduzido, da ordem de centenas de nano segundos, (10-9 do segundo) para microcontroladores de baixo custo.
Programar em assembly traz a vantagem de aprender em detalhes como o microcontrolador funciona. Este conhecimento é fundamental para
você dominar o componente. Só trabalhando com as instruções de baixo nível (linguagem de máquina) do assembly temos condições de conhecer
a fundo as particularidades do componente. Porém a programação é demorada e complexa, já que você tem que definir cada operação básica
que o microcontrolador tem de executar. Programar em assembly traz uma outra desvantagem, a falta de portabilidade.
Portabilidade é a capacidade de um firmware migrar de um componente para outro, de família diferente ou mesmo de outro fabricante, sem a
necessidade de grandes alterações ou adaptações. Se você está, por exemplo, utilizando um microcontrolador de 8 bits da Microchip e precisa mudar
o microcontrolador por um motivo qualquer, pode encontrar duas situações diferentes: se você continuar utilizado outro componente de 8 bits da
própria Microchip, muito provavelmente você conseguirá migrar para o novo componente com algumas alterações no firmware. Neste caso seu firmware
apresenta uma boa portabilidade. Mas se a alteração de componente implica em utilizar outra família completamente diferente (16 bits por exemplo)
ou de outro fabricante, ai muito provavelmente você terá que re escrever seu firmware completamente. Ou seja, neste caso, a portabilidade de seu
firmware é nula.
Este problema de portabilidade pode ser resolvido adotando linguagens de alta portabilidade e padronização. A mais popular para
microcontroladores é a linguagem C e C++. Um programa escrito em C para um determinado microcontrolador, basicamente é o mesmo para
outro microcontrolador, mesmo de outro fabricante. Isto porque ao se desenvolver um programa em C você estará utilizando uma linguagem
que é independente do componente. Após terminar de escrever o programa ele deverá ser compilado. O processo de compilação, este sim
dependente do componente, gera o programa em assembly na linguagem do microcontrolador que você está utilizando. Normalmente são
necessárias poucas alterações ou até nenhuma para seu firmware funcionar no novo microcontrolador.
Outra vantagem da programação em C é a menor preocupação com características específicas do componente. Cada microcontrolador tem
aspectos específicos que devem ser levados em conta durante a programação. Uma destas características, por exemplo, é a paginação da
memória de programa. A paginação de memória é a separação da memória de programa em blocos que compartilham os mesmos endereços entre
si. Assim, para seu programa apontar para uma posição de memória, ele tem que anteriormente, indicar em que página de memória está
localizada a posição que você quer endereçar. Se ao desenvolver um programa em assembly você não ficar atento à paginação de memória,
seu programa pode não funcionar e a busca da falha pode ser bastante trabalhosa, pois pode estar em um pequeno detalhe. Se, por outro
lado, o programa for escrito em C, ao ser compilado, o compilador já se encarrega de tratar o problema de paginação de forma automática,
tirando esta responsabilidade do programador. Mas mesmo em C vão acontecer problemas decorrentes de características específicas do
componente. E neste caso, conhecer o microcontrolador em detalhes vai auxiliá-lo a encontrar o problema.