Numa das minhas pesquisas nos últimos dias levou-me até este site:
Basicamente é um detector de veículos. Decidi colocar por aqui, porque muitos não sabem como realmente é detectado um veiculo em alguns semáforos, etc..
De forma resumida (no link em cima poderão ver com mais detalhe) é feito um rasgo no chão e é colocado dentro do mesmo um enrolamento com um determinado número de espiras. Nestes casos o núcleo é o ar, mas um carro passar por cima, a permeabilidade magnética do núcleo da bobina é alterado e por sua vez o seu valor de indutância também. Quer por isso dizer que a frequência de ressonância irá alterar.
Posto isto, basta simplesmente fazer um circuito capaz de medir o período da frequência de oscilação (ou contar quantas passagens por 0V ocorreram em t segundos, por ex.). Esse valor irá sofrer uma grande variação quando um carro estiver por cima.


Simples e eficaz.

O que é um controlador Proporcional Integral e Derivativo?
Um controlador PID, de um ponto de vista mais simplista, é um controlador que devido ás suas partes proporcional, integral e derivativa tem por objectivo actuar num sistema afim de anular um erro. Entenda-se por erro a diferença entre a posição onde actualmente nos encontramos e a posição que desejamos alcançar.

Na prática os PID são encontrados no interior de controladores electrónicos, muitas vezes com microprocessadores.
No controle dito proporcional, a acção do controlador, é proporcional ao erro, ou seja à diferença entre o valor ideal e o valor actual da variável controlada.
O controlo proporcional integral tem como objectivo anular por completo o erro.
O factor proporcional dá-lhe uma “acelaração” de aproximação ao valor desejado e o factor integral vem actuar com base nas acções passadas do controlador e anular o erro restante.
Por ultimo o PID, PI com uma acção derivativa, faz com que o sinal de erro seja minimizado pela acção proporcional, zerado pela acção integral e obtido com uma velocidade antecipativa pela acção derivativa.

A cada parte do controlador estarão associados ganhos, conhecidos como:

Ganho proporcional - Kp
Ganho integral        - Ki
Ganho derivativo     - Kd
O jogo de valores entre estes ganhos fará com que o nosso sistema consiga ter uma resposta o mais rápido possível com um overshot (desvio ao valor desejado) pequeno e obviamente sem erro.

No próximo artigo irei mostrar um pequeno e simples algoritmo fácil de implementar em qualquer MCU e depois algumas técnicas usadas para fazer o tunning dos ganhos.


Encoders ou geradores de impulsos são equipamentos eletromecânicos, utilizados para conversão de movimentos rotativos ou deslocamentos lineares em impulsos elétricos de onda quadrada, que geram uma quantidade exacta de impulsos por volta em uma distribuição perfeita dos pulsos ao longo dos 360 graus do eixo.
Existem vários tipo de encoders, sejam eles mecânicos, óptimos, magnéticos, etc...
Pegando num exemplo prático, como a rotação de um motor.
É essencial saber qual é a rotação actual de um motor se for o objectivo controlar a velocidade do mesmo. No entanto esse feedback deve ser dado a partir de uma boa referência e não de uma referencia "móvel" pelo que o sistema de encoder deverá ser bem montado.
A imagem em baixo ajuda a ilustrar melhor esta montagem e a visualizar melhor qual é a informação que se retira de um encoder.
Visto desta perspectiva pode-mos ver que existe um pequeno circuito montado em redor do eixo do rotor do motor.
Este circuito possui, por norma, dois sensores de hall e preso no rotor um "bolacha", disco, magnético com metade "N" (norte) e metade "S" (sul), ou mais secções ainda! O sensor de hall a cada transição de "N-S" ou "S-N" faz negar a sua saída.
Com a rotação do motor é gerado então uma onda quadrada na saída de cada sensor de hall.
Tal como disse atrás, normalmente são usados 2 sensores de hall para distinguir a rotação para a direita da rotação para a esquerda.
Sabendo quantos pulsos por rotação o encoder gera e o tempo de cada pulso, é bastante fácil determinar a sua velocidade.
Agora alguns cálculos...
Supondo que uma rotação cria 4 pulsos e o tempo de cada pulso é de 50ms (de subida a subida do pulso), então uma rotação completa demora 200ms.
1 rot --- 0.2 seg
x rot --- 1 seg
RPS = 1/0.2 = 5 rps

Sabendo qual a rotação, velocidade actual do motor, pode-se então aplicar um controlador para que se atinja a velocidade desejada.

Vou iniciar aqui uma série de artigos sobre como controlar a rotação de um motor separando-os nos seguintes pontos:
* Encoder - medir rotação do motor
* Controlador PID
* Algoritmo modelo para controlo
* Tunning dos parâmetros do controlador PID