MEDIÇÃO DISTÂNCIA ULTRASSOM CÁSSIO DANIEL 0912212
-
Upload
cassio-daniel -
Category
Documents
-
view
46 -
download
0
Transcript of MEDIÇÃO DISTÂNCIA ULTRASSOM CÁSSIO DANIEL 0912212
7/14/2019 MEDIÇÃO DISTÂNCIA ULTRASSOM CÁSSIO DANIEL 0912212
http://slidepdf.com/reader/full/medicao-distancia-ultrassom-cassio-daniel-0912212 1/9
MEDIÇÃO DE DISTÂNCIA UTILIZANDO PLATAFORMA ARDUINO1
CÁSSIO DANIEL SALOMÃO SILVA2
RESUMO - Um sensor ultrassônico utilizando plataforma Arduino foi desenvolvido. Objetiva-
se medir distâncias através de sensor tipo PING e rastrear objetos dentro de uma distância
especificada usando-se servomotores e mostrando-se esta distância através de um display LCD16x2 e indicar a procura através de um sonorizador piezoelétrico.
Termos para indexação: Arduino, medição de distância, ultrassom, servomotores.
DISTANCE MEASUREMENT USING ARDUINO PLATFORM.
ABSTRACT – A ultrasonic sensor using Arduino platform. The objective is to measure
distance using PING Sensor and track objects within the specified distance using servo motor
and displaying display the distance measured on the 16X2 LCD display and indicating seeking
by using piezoelectric sound buzzer.
Index terms: Arduino, distance measurement, ultrasound, servomotors.
INTRODUÇÃO
1As medidas de nível de líquidos podem ser realizadas por meio de diversos métodos. Nesse trabalho deu-
se ênfase aos métodos baseados no fenômeno de pulso-eco, como os que, manifestam-se biologicamente em
animais como o morcego, que emite pulsos ultrassônicos e, após receber os ecos refletidos pelas barreiras do
ambiente, referencia seu voo. Dos métodos eletrônicos destinados à determinação de distâncias destacam-se,
portanto, os que se baseiam na emissão e reflexão de ondas sônicas e os que usam ondas ultra-sônicas que se
atenuam à medida em que a distância relativa a uma barreira física cresce. Nesse grupo de detectores
encontram-se os baseados na produção de ultrassons por fenômenos piezoelétricos, que convertem pulsos
elétricos em sons, e os pulsos refletidos (ondas mecânicas) em pulsos elétricos novamente. São desta forma
classificados como transdutores.A maioria dos sistemas automáticos que usam ultrassons para medição de distâncias baseia-se em técnicas
eletrônicas avançadas para processar e transmitir medidas feitas pelos mesmos tipos de sensores, que vêm
sendo utilizados de forma maciça mais recentemente. O objetivo do presente trabalho é mostrar o
desenvolvimento desse sensor e sua lógica, sua viabilidade técnica e precisão para medir distâncias.
MATERIAL E MÉTODOS
O sensor ultrassônico é um módulo eletrônico baseado em tecnologia ultra-som, cuja finalidade é o envio
de pulsos e captura de ecos, enviando sinais ao módulo Arduino proporcionais em relação a proximidade de
obstáculos.
A abrangência do trabalho é teórica e prática, relativa às teorias conhecidas de ultra-som. O
desenvolvimento dar-se-á através da criação de esquemático elétrico, do lay-out da placa, e programação.
Sensores ultrassônicos (fig. 1) são elementos piezoelétricos que emitem ou recebem ultrassons no meio de
transmissão na faixa de freqüências acima de 20kHz, que não são perceptíveis pelo ouvido humano.
7/14/2019 MEDIÇÃO DISTÂNCIA ULTRASSOM CÁSSIO DANIEL 0912212
http://slidepdf.com/reader/full/medicao-distancia-ultrassom-cassio-daniel-0912212 2/9
Figura 1 – representação esquemática efeito piezoelétrico.
Os sensores ultra-sônicos são apropriados para o uso das escalas de detecção dependendo da
frequência em que operam. Fez-se uso de um sistema Pulse Burst (Sonar) que é baseado no princípio depthsounding do eco, ou conhecido também como pulso-eco, onde os sensores são excitados periodicamente, em
seqüência , e transmitem então os sinais de ultra-som. Os sensores são ativados pelo sinal recebido da reflexão
do obstáculo e para o cálculo da posição do objeto em relação ao veículo, é medido o tempo da emissão do
sinal até o mesmo ser refletido no objeto e retornar ao sensor.
O diagrama de blocos (fig. 2) define a interligação do sistema operando em uma unidade emissor-receptor,
ou seja, um sensor e um receptor montados em uma única placa.
Figura 2 – representação esquemática do circuito elétrico
O circuito de recepção utiliza quatro estágios de amplificadores a transistor, sendo que os três primeiros
estão sintonizados em 40kHz e o último amplifica o sinal de áudio, a sua envoltória.
O circuito transmissor é excitado através do sinal NA_TX que vem do processador, gerando 10 pulsos de
40kHz (Ton = 12us e Toff = 13us) num intervalo aproximado de 50ms. Este sinal é ligado na base dos
transistores TR6 e TR5. A cápsula está montada em uma ponte H entre os sinais S1_GND e S1_TR, assim,quando há uma subida no sinal (Ton), TR6 e TR7 conduzem corrente através da cápsula dando um pulso
positivo na cápsula, e quando o pulso de NA_TX está em baixa (Toff) o TR5 e TR8 conduzem corrente
através da cápsula e gera o pulso negativo na cápsula apresentando então um pulso de 24V pico a pico nas
extremidades da cápsula.
7/14/2019 MEDIÇÃO DISTÂNCIA ULTRASSOM CÁSSIO DANIEL 0912212
http://slidepdf.com/reader/full/medicao-distancia-ultrassom-cassio-daniel-0912212 3/9
Figura 3 – esquema elétrico transmissor
O capacitor na base do transistor permite a passagem do sinal transitório evitando acionamento com
valores contínuos, apenas TR6 não tem capacitor devido à recepção do sinal, descritos no circuito de
recepção.
A mesma cápsula de transmissão é usada na recepção do sinal, ou seja, após um tempo em torno de
2ms (depende do modelo da cápsula) o sinal NA_TX é colocado em nível alto para que o TR6 entre em
condução e conecte um dos pinos da cápsula ao terra. Nesta configuração o circuito fica em posição de
recepção. O sinal refletido em algum objeto é injetado através da cápsula no S1_TR que é amplificado na
frequência de 40kHz nos três primeiros estágios, sendo que o estágio subsequente é a amplificação do
detector de envoltório. A configuração dos amplificadores é a transistor emissor comum.
Figura 4- esquema elétrico receptor
A interface sonora funciona por um sinal BUZZ vindo do processador, que emite trem de pulsos
conforme a faixa de distância detectada, de uma faixa espaçada, intermediária e por fim um sinal contínuo.Transistor TR37 funciona como um chave, ligando e desligando os 12V sobre o buzzer.
A plataforma utilizada será Tatuíno, versão da TATO para plataforma Arduino, que atende as
necessidades do sensor; é um microcontrolador de 8bits, de alta performance RISC. Tem um comparador
interno, um oscilador externo a cristal ou ressonador interno utilizando um RC externo com memória flash de
1024 word, 64 bytes de SRAM e 128 Bytes de EEprom.
A configuração dos pinos do micro para projeto é a seguinte:
OSC1 e OSC2 – Conexão do ressonador externo de 4MHz;
RA0 – Sinal do NA_S1, recebe infromações do sensor referente à posição e distância do objeto;
7/14/2019 MEDIÇÃO DISTÂNCIA ULTRASSOM CÁSSIO DANIEL 0912212
http://slidepdf.com/reader/full/medicao-distancia-ultrassom-cassio-daniel-0912212 4/9
RA1 – Sinal do NA_S2, espera para projeto de 4 sensores ou outro se necessário;
RC0 e RC2 – Sinal da distância visual;
RC3 – Buzz, sinal da distância sonora;
RC4 e RC5 - Rx e Tx para serial, usado futuramente se necessário para depuração do sistema.
RA3 – Não utilizado
Figura 5 – esquema básico plataforma de recepção e processamento.
O processador tem a tarefa de emitir os pulsos e aguardar resposta dos periféricos e processar essa
informação dando a posição ou à distância do veículo ao objeto.
7/14/2019 MEDIÇÃO DISTÂNCIA ULTRASSOM CÁSSIO DANIEL 0912212
http://slidepdf.com/reader/full/medicao-distancia-ultrassom-cassio-daniel-0912212 5/9
Figura 6 – fluxograma de software
LCD 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 PLACA
TATUÍNO GND +5V GND 12 GND 11 - - - - 6 5 4 3 +5V GND
#include <Servo.h> // include the servo library
#include <LiquidCrystal.h> // include the library code:
Servo servoMotor; // creates an instance of the servo object to control a servo
LiquidCrystal lcd(12, 11, 6, 5, 4, 3); // initialize the library with the numbers of the interface pins
const int pingPin = 13; // Control pin for Ping Sensor
const int servoPin = 2; // Control pin for servo motor, may only be pin 9 or 10
const int speakerPin = 8; // Control pin for the Sound Buzzer
int moveServoLeft = 0; // variable to control the motion of the Servo Motor to the left
7/14/2019 MEDIÇÃO DISTÂNCIA ULTRASSOM CÁSSIO DANIEL 0912212
http://slidepdf.com/reader/full/medicao-distancia-ultrassom-cassio-daniel-0912212 6/9
int moveServoRight = 0; // variable to control the motion of the Servo Motor to the right
int servoPosition = 0; // variable to control the position of the Servo Motor
void setup() {
// set up the LCD's number of rows and columns:
lcd.begin(16, 2);
// initial Display
lcd.setCursor(0,0);
lcd.print("Distance (inch.)");
lcd.setCursor(0,0);
servoMotor.attach(servoPin); // attaches the servo on pin 2 to the servo object servoMotor.write(0); // set servo to intial position
moveServoLeft = 1; // intial motion of Servo is from 0 to 180 i.e left
}
void loop() {
// get Distance
long duration, inches, cm;
// to set speakerPin and servoPin mode to OUTPUT
pinMode(speakerPin, OUTPUT);
pinMode(servoPin, OUTPUT);
digitalWrite(speakerPin, LOW); // sound buzzer is defalut switched off
// The PING Sensor is triggered by a HIGH pulse of 2 or more microseconds.
// Give a short LOW pulse beforehand to ensure a clean HIGH pulse:
pinMode(pingPin, OUTPUT);
digitalWrite(pingPin, LOW);
delayMicroseconds(2);
digitalWrite(pingPin, HIGH);
delayMicroseconds(5);
digitalWrite(pingPin, LOW);
7/14/2019 MEDIÇÃO DISTÂNCIA ULTRASSOM CÁSSIO DANIEL 0912212
http://slidepdf.com/reader/full/medicao-distancia-ultrassom-cassio-daniel-0912212 7/9
// The same pin is used to read the signal from the PING Sensor, a HIGH pulse whose duration is the time
(in
// microseconds) from the sending of the ping to the reception of its echo off of an object.
pinMode(pingPin, INPUT);
duration = pulseIn(pingPin, HIGH);
// convert the time into a distance
inches = microsecondsToInches(duration);
cm = microsecondsToCentimeters(duration);
delay(200);
lcd.clear(); // set the cursor to column 0, line 1
// (note: line 1 is the second row, since counting begins with 0):
lcd.print("Distance (inch.)");
lcd.setCursor(0, 1);
lcd.print(inches);
// to enable tracking the Servo motor is rotated only if the distance of the objects are greater than or equal to
5”
if(inches >= 5) { servoMotor.attach(servoPin);
servoMotor.write(servoPosition);
delay(20);
// to move right if the motor has reached 180 degrees
if(servoPosition == 180 && moveServoLeft == 1){
moveServoRight = 1;
moveServoLeft = 0;
}
// to move left if the motor has reached 0 degrees
if(servoPosition == 0 && moveServoRight == 1){
moveServoLeft = 1;
moveServoRight = 0;
}
// to move left from 0 degree to 180 degrees
7/14/2019 MEDIÇÃO DISTÂNCIA ULTRASSOM CÁSSIO DANIEL 0912212
http://slidepdf.com/reader/full/medicao-distancia-ultrassom-cassio-daniel-0912212 8/9
if(moveServoLeft == 1 & servoPosition <= 160)
servoPosition = servoPosition + 20;
// to move right from 180 degrees to 0 degree
if(moveServoRight == 1 & servoPosition >= 0)
servoPosition = servoPosition - 20;
}
// to disable tracking the Servo motor is detached if the distance of the object is lesser than 5”
else {
servoMotor.detach();
for(int duration = 0; duration < 100; duration ++){
digitalWrite(speakerPin, HIGH);delayMicroseconds(200);
digitalWrite(speakerPin, LOW);
delayMicroseconds(200);
}
}
}
long microsecondsToInches(long microseconds)
{
// According to Parallax's datasheet for the PING))), there are 73.746 microseconds per inch (i.e. sound
travels at
// 1130 feet per second). This gives the distance travelled by the ping, outbound and return, so we divide by
2 to
// get the distance of the obstacle. See: http://www.parallax.com/dl/docs/prod/acc/28015-PING-v1.3.pdf
return microseconds / 74 / 2;
}
long microsecondsToCentimeters(long microseconds)
{
// The speed of sound is 340 m/s or 29 microseconds per centimeter. The ping travels out and back, so to find
the
7/14/2019 MEDIÇÃO DISTÂNCIA ULTRASSOM CÁSSIO DANIEL 0912212
http://slidepdf.com/reader/full/medicao-distancia-ultrassom-cassio-daniel-0912212 9/9
// distance of the object we take half of the distance travelled.
return microseconds / 29 / 2;
}
Figura 6 – projeto funcional com placa Tatuíno e IHM 16x2 LCD