Desenvolvimento de sensores para testes automotivos – Parte 2

On 17 de julho de 2014 by Fabio Oliveira de Paula

instalar-sensor-de-estacionamento

1. Introdução

Como parte de uma série de posts sobre a instrumentação de um simulador de direção automotiva, este aborda o desenvolvimento de um método para leitura da posição dos pedais de aceleração, frenagem e embreagem. Apesar de haver diversos métodos para realização dessa leitura, apenas um foi realizado e descrito aqui.

A primeira parte abordou a leitura do sentido e velocidade de giro do volante (parte 1).

2. Referencial teórico

Para realizar a instrumentação dos pedais, foram consideradas diversas formas de aquisição dos dados e optou-se pela utilização de sensores ultrassônicos, por não haver contato físico e possíveis desgastes e desalinhamento entre o pedal e o sensor.

O princípio de funcionamento é baseado na reflexão das ondas de som e ultrassom. A frequência de som audível ao ser humano é de 20Hz a 20KHz e do ultrassom, imperceptível ao homem, é a partir de 20KHz. Por isso, é mais conveniente a utilização do ultrassom por não pertencer a faixa audível do ser humano.

Esse tipo de sensor é montado em um módulo que contêm um transmissor e um receptor de ultrassom. O emissor envia um pulso ultrassônico que se propaga até atingir um obstáculo, onde reflete e retorna ao módulo, onde é captado pelo receptor. Essa dinâmica gera no módulo um pulso de saída (figura 1). Em um microcontrolador, é temporizada a duração do nível alto no receptor e aplicado à uma equação, que resulta na distância entre o módulo e o obstáculo.

Esquema de funcionamento do sensor ultrassônico

Esquema de funcionamento do sensor ultrassônico

 

3. Metodologia

O módulo sensor utilizado é o HC-SR04. Ele permite medir distâncias entre 2cm e 4m, com precisão de 3mm e ângulo de operação de 15°. As conexões são feitas através de quatros pinos: VCC, Trigger, Echo e GND.

Para a realização da medição com o sensor ultrassônico é necessário alimentar a tensão VCC com 5V e o terra (GND). Além disso, é preciso aplicar nível alto ao pino Trigger por 20us e depois aplicar nível baixo novamente. Com isso o emissor emitirá uma onda de ultrassom que se propagará até encontrar um obstáculo (dentro da faixa de operação), onde rebaterá e ecoará de volta ao módulo, onde será recebido e identificado pelo pino Echo.

 

Figura 2. Diagrama de temporização do HC-SR04

Figura 2. Diagrama de temporização do HC-SR04

 

O tempo de duração do nível alto no pino Echo corresponde ao tempo que o ultrassom foi emitido, refletido e retorna ao sensor. Esse tempo é medido através de uma função no código e então aplicado à equação abaixo.

 

equacao

 

O parâmetro velocidade da equação é a velocidade do som e pode ser considerada ideal, isto é, 340 m/s.

Para toda essa realização, foi implementado o código apresentado abaixo, que faz a medição da distância por apenas um sensor ultrassônico.

[sourcecode language=”c”]
float calculaDistancia(int trig, int echo){

struct timeval inicio, final;
setPinValue(trig, OFF);
pauseNanoSec(1000);
setPinValue(trig, ON);
pauseNanoSec(20000);
setPinValue(trig, OFF);

while(getPinValue(echo) == OFF); // enquanto não recebe o retorno do sinal
gettimeofday(&inicio, NULL);
while(getPinValue(echo) == ON); // enquanto entrada estiver em alto
gettimeofday(&final, NULL);

float temp = (float) (final.tv_usec – inicio.tv_usec)/1000;
// Possiveis equações para calculo da distância
// Formula -> distancia = velocidade_da_luz * tempo
float mmdist = (340*temp)/2 ;
return mmdist;
}
[/sourcecode]

O projeto foi depurado e compilado para ser executado na BeagleBone Black (BBB), pois essa placa de desenvolvimento, com seu grande número de GPIOs permite maior versatilidade em projetos desse tipo.

Figura 3. Foto do circuito da protoboard

Figura 3. Foto do circuito da protoboard

 

Ligações entre BBB – protoboard – Sensores

O circuito construído em uma protoboard,apresentado em foto nas figuras 3 e 4, faz a interligação entre os módulos sensores e a BeagleBone Black. Os resistores utilizados formam um divisor de tensão para a saída Echo. Essa saída é de 5V e a entrada da BBB é de 3,3V. A montagem desse divisor de tensão é apresentado na figura 5.

 

Figura 4. Esquema do divisor de tensão

Figura 5. Esquema do divisor de tensão

 

A pinagem utilizada da BBB para interligá-la ao protoboard é apresentada na figura 6. Foram utilizados chicotes com 4 fios em cada. Como são 4 fios por chicote, os pinos foram escolhidos de forma agrupada. Na figura 6, são destacados em quadrados azuis. Esses chicotes, permitem mais segurança e facilidade nas ligações.

Pinagem da BeagleBone Black

Figura 6. Pinagem da BeagleBone Black

Com o objetivo de não correr o risco de sobrecarregar a alimentação de 5V fornecida pela BBB, optou-se pela utilização de uma fonte de alimentação externa. Salienta-se aqui que o terra dessa fonte deve ser curto-circuitado com o terra da BBB e do circuito da protoboard para deixá-lo ao mesmo nível de tensão.

Executando o projeto por alguns segundos, obteve-se as leituras apresentadas abaixo.

 

cmdistACEL: 177.34 – cmdistFR: 167.46 – cmdistEMB: 176.63
cmdistACEL: 177.97 – cmdistFR: 169.89 – cmdistEMB: 178.02
cmdistACEL: 177.97 – cmdistFR: 171.76 – cmdistEMB: 177.59
cmdistACEL: 177.53 – cmdistFR: 168.64 – cmdistEMB: 177.10
cmdistACEL: 177.97 – cmdistFR: 171.85 – cmdistEMB: 178.98
cmdistACEL: 176.97 – cmdistFR: 169.97 – cmdistEMB: 175.83
cmdistACEL: 178.15 – cmdistFR: 168.19 – cmdistEMB: 178.47
cmdistACEL: 178.02 – cmdistFR: 167.70 – cmdistEMB: 179.38
cmdistACEL: 178.42 – cmdistFR: 168.68 – cmdistEMB: 180.77
cmdistACEL: 178.42 – cmdistFR: 168.16 – cmdistEMB: 177.17
cmdistACEL: 177.97 – cmdistFR: 168.19 – cmdistEMB: 176.08
cmdistACEL: 177.53 – cmdistFR: 168.68 – cmdistEMB: 176.28
cmdistACEL: 178.09 – cmdistFR: 167.29 – cmdistEMB: 176.34

 

4. Próximos trabalhos

A próxima etapa será a integração dos dois sistemas descritos.

O objetivo será criar um único código em C a ser executado pela BeagleBone e uma placa extensora dos pinos da Beagle que será dedicada a realizar as conexões com os sensores. Esse placa terá a finalidade de substituir o protoboard citado nesse post.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *