Buscar

Relatório de Projeto GPS com Arduino

Prévia do material em texto

Diretoria de elétrica 
 
 
 
Relatório de projeto 
 
GPS 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Caio Heitor Barz Molinari 
 
Julho / 2019 
1 
Sumário 
 
 
 
1. Objetivos ....................................................................................................................................................................... 2 
2. Viabilidade técnica .................................................................................................................................................... 2 
2.1. Funcionamento .................................................................................................................................................. 2 
3. Plotando no Google MyMaps ................................................................................................................................ 4 
4. Conclusão ..................................................................................................................................................................... 5 
5. Referências ................................................................................................................................................................... 6 
6. Apêndices ..................................................................................................................................................................... 7 
6.1. Apêndice I- Código em arduino para o GPS ........................................................................................... 7 
6.2. Apêndice II- plotando dados no MyMaps ................................................................................................ 9 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2 
 
 
 
 
1. Objetivos 
O objetivo do projeto é implementar um módulo GPS com arduíno a fim de obter os 
pontos pelos quais o carro passa a fim de relacionar os aspectos do trajeto com as demais 
condições do carro. 
2. Viabilidade técnica 
 Os materiais utilizados para a utilização são consideravelmente acessíveis, foram usados um 
arduíno e um módulo GPS Neo-6M. 
 
2.1. Funcionamento 
 O GPS se baseia em sentenças de dados chamadas sentenças NMEA como na imagem 
1. 
3 
 
Figure 1- sentenças NMEA 
 
Cada sentença dessas corresponde a uma classe de informação definida na biblioteca Tiny 
GPS++. Por sua vez, cada palavra dessas sentenças representa um dado oferecido pelo módulo 
GPS, seja altura, velocidade, horário e etc. 
A conexão com o arduíno é bastante simples como na figura 2, o módulo é alimentado por 
uma tensão de 5V e é conectado ao GND, além disso, usam-se apenas dois pinos de dados, 
sendo que os pinos RX e TX do GPS devem corresponder aos pinos TX e RX do arduíno 
respectivamente. 
 
Figure 2- conexão módulo GPS arduíno 
4 
O código utilizado é igualmente simples (ver apêndice I), pois trata-se de um código na 
linguagem própria do Arduino e que tem como propósito meramente exibir os dados coletados 
pelo módulo. É interessante pesquisar a respeito da biblioteca utilizada para se aprofundar nas 
ferramentas que ela tem a oferecer. 
O objetivo final é salvar esses dados em um cartão SD e posteriormente os plotar. 
 
 
 
 
 
 
 
 
 
 
 
3. Plotando no Google MyMaps 
 
 
A ferramenta escolhida para visualização dos dados obtidos foi o Google MyMaps como 
mostrado na figura 3, o software é bastante simples, não contém recursos tão diversos quanto 
Figure 3- plot com todos os pontos obtido em um trajeto arbitrário 
5 
o Google Earth, por exemplo, porém tem um plot eficiente. Para construir o trajeto, deve-se 
fornecer a matriz de dados do módulo em um dos inúmeros formatos disponíveis na 
ferramenta. Informações mais detalhadas se encontram no apêndice II. 
 
4. Conclusão 
A utilização do módulo GPS não é complexa, seu código e conexões são bastante acessíveis; 
ao mesmo tempo em que se caracteriza pela sua simplicidade, o módulo GPS é uma ferramenta 
poderosa que pode ter diversas aplicações. 
 
 
 
 
 
 
 
 
 
Figure 4- plot final 
6 
 
 
 
 
 
 
 
 
 
 
 
5. Referências 
http://www.toptechboy.com/arduino-lessons/ - código fonte e como utilizar o módulo 
http://arduiniana.org/libraries/tinygpsplus/ - descrição da biblioteca. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6. Apêndices 
6.1. Apêndice I- Código em arduino para o GPS 
Esse código se baseou no código encontrado no site http://www.toptechboy.com/arduino-
lessons/ que também conta com vídeos explicativos a respeito desse e de diversos outros temas. 
 
#include <TinyGPS++.h> 
#include <SoftwareSerial.h> 
#include <SPI.h> 
static const int RXPin = 4, TXPin = 3; 
static const uint32_t GPSBaud = 9600; 
 
// The TinyGPS++ object 
TinyGPSPlus gps; 
 
// The serial connection to the GPS device 
SoftwareSerial ss(RXPin, TXPin); 
 
 
void setup(){ 
 Serial.begin(9600); 
8 
 ss.begin(GPSBaud); 
} 
 
TinyGPSCustom height(gps,"GPGGA", 9); //isso permite coletar uma palavra específica dos dados 
raw do gps (sentenças NMEA) 
 
void loop(){ 
 // This sketch displays information every time a new sentence is correctly encoded. 
 while (ss.available() > 0){ 
 gps.encode(ss.read()); 
 if (gps.location.isUpdated()){ 
 
 // Number of satellites in use (u32) 
 Serial.print("Number os satellites in use = "); 
 Serial.println(gps.satellites.value()); 
 // Raw time in HHMMSSCC format (u32) 
 Serial.print("Raw time in HHMMSSCC = "); 
 Serial.println(gps.time.value()); 
 // Speed in meters per second (double) 
 Serial.print("Speed in m/s = "); 
 Serial.println(gps.speed.mps()); 
 // Speed in kilometers per hour (double) 
 Serial.print("Speed in km/h = "); 
 Serial.println(gps.speed.kmph()); 
 Serial.print(" Longitude="); 
 Serial.println(gps.location.lng(), 6); 
 Serial.print("Latitude="); 
 Serial.println(gps.location.lat(), 6); 
 delay(900); 
 Serial.print("altitude="); 
 Serial.println(height.value()); 
 
 
 } 
 
 } 
 } 
 
 
 
 
9 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6.2. Apêndice II- plotando dados no MyMaps 
Obs.: essa explicação também se encontra no drive 
 
 
USANDO O COOLTERM: 
 Para que o programa execute sua função de forma apropriada, devem-se seguir os 
seguintes passos iniciais: 
1. Configurações iniciais: Options-> Definir corretamente a porta de operação->DTR e 
RTS off. 
2. Início da gravação: Connection-> Capture to .txt-> Start (obs.: apenas uma serial 
pode estar ativa por vez, dessa forma deve-se fechar a serial do arduino). 
3. Fim da gravação: Connection-> Capture to .txt-> Stop-> Disconnect-> Clear Data 
 
PLOT: 
1. A serial do arduino e o coolterm utilizam a mesma serial, isto é, o que aparecer na 
serial do primeiro será o conteúdo posteriormente gravado no coolterm, portanto os 
prints na serial devem-se adequar a proposta de armazenamento dos dados. 
2. O mymaps opera apenas em termos das latitudes e longitudes dos pontos, isso justifica 
a falta de outros dados também fornecidos pelo GPS. 
3. Ao criar um novo mapa, deve-seimportar o arquivo .csv e definir qualitativamente o 
que cada coluna significa, isto é, qual representa a latitude e qual representa a 
longitude baseado no código fonte. Para mais informações sobre o plot e 
customizações do mapa: https://www.techtudo.com.br/dicas-e-
10 
tutoriais/noticia/2014/09/como-usar-o-my-maps-para-criar-mapas-pessoais-e-guias-
de-viagem.html.

Continue navegando