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.