Integração de Dados de Sensores no Raspberry Pi: Guia Prático
Resumo
Aprenda como conectar e ler dados de um módulo GPS e IMU MPU‑9150 em um Raspberry Pi usando interfaces I²C e UART, e processar a informação em tempo real para navegação autônoma.
Palavras-chave: comunicação I2C, comunicação UART, Adafruit Ultimate GPS Breakout, Sparkfun MPU‑9150 Breakout, Configuração Raspberry Pi
Introdução
Aquisição de dados de sensores é a espinha dorsal de qualquer sistema de controle digital. Quando um controlador embarcado processa estas entradas, a escolha da interface de comunicação torna-se crítica. Para projeto de navegação robótica, atualizações contínuas de localização GPS e medições precisas de curso são essenciais. Este tutorial demonstra como ligar módulo GPS e magnetômetro a um Raspberry Pi, visualizar dados remotamente e integrar em software de controle.
Objetivo
Este tutorial avançado assume familiaridade com Raspbian e comandos bash básicos. Guia você através da leitura de dados de acelerômetro e GPS via interfaces seriais do Pi, fiação dos sensores e configuração dos drivers de hardware necessários.
Informações
Hardware
- Sparkfun 9‑Degrees‑of‑Freedom Breakout (MPU‑9150)
- Adafruit Ultimate GPS Breakout
O MPU‑9150 é módulo multi-chip combinando MPU‑6050 (giroscópio 3-eixos & acelerômetro) e bússola digital AK8975. É amplamente usado em smartphones e tablets por seu baixo consumo e alto desempenho.
O Adafruit Ultimate GPS é construído em torno do chip MTK3339, oferecendo taxa de atualização de 10 Hz, rastreamento de 22 satélites e porta para antena externa. Seu LED vermelho indica status do sinal: 1 Hz durante busca e piscadas de 15 segundos quando fixação é alcançada.
Padrões de Comunicação
I²C usa duas linhas bidirecionais (SDA e SCL) para conectar um mestre (o Pi) a múltiplos escravos, cada um com endereço único.
UART transmite dados assincronamente em frames de 5–8 bits em taxa de baud definida pelo programador, requerendo linhas separadas TxD e RxD.
Lista de Peças
- Raspberry Pi
- Fonte de alimentação
- Dongle Wi‑Fi
- Sparkfun MPU‑9150 breakout
- Adafruit Ultimate GPS breakout
- Adaptador USB‑para‑TTL (opcional)
- Protoboard
- Jumpers M-para-F
Premissas
- Acesso à internet disponível.
- Raspbian instalado e configurado para modo desktop.
- Mouse, teclado e monitor HDMI conectados.
Procedimentos
- Identifique pinos GPIO do Pi: UART usa GPIO 14 (Tx) e 15 (Rx); I²C usa GPIO 2 (SDA) e 3 (SCL).
- Fiação do GPS: Conecte Tx do GPS ao Rx do Pi, Rx do GPS ao Tx do Pi, forneça 3.3 V ou 5 V ao Vin, e ligue GND ao ground do Pi.
- Fiação do MPU‑9150: Conecte Vcc a 3.3 V, GND a ground, SDA ao GPIO 2, e SCL ao GPIO 3.
- Habilite I²C no Pi:
- Execute
sudo apt‑get update && sudo apt‑get install i2c‑tools libi2c‑dev. - Instale WiringPi:
git clone git://git.drogon.net/wiringPi && cd wiringPi && sudo nano /etc/modulese adicionesnd-bcm2835,i2c-bcm2708,i2c-dev. - Edite
/boot/config.txtpara adicionardtparam=i2c1=onedtparam=i2c_arm=on, depois reinicie.
- Execute
- Instale demo MPU‑6050:
- Clone
git://github.com/richardghirst/PiBits.git, navegue atéMPU6050-Pi-Demo, instalelibgtkmm-3.0-dev. - Edite
I2Cdev.cppesetup‑i2c.shpara substituir/dev/i2c-0por/dev/i2c-1. - Compile com
make, execute./setup-i2c.sh, verifique comsudo i2cdetect -y 1. - Execute demo com
./demo_rawpara ver dados brutos de giroscópio e acelerômetro.
- Clone
- Configure aquisição de dados GPS:
- Guia GPS Daemon da Adafruit é ponto de partida, mas para manipulação personalizada usamos biblioteca open-source libgps.
- Clone
git://github.com/wdalmut/libgps.git, compile commake && sudo make install. - Teste com exemplo
position_logger.cfornecido: compile viagcc -o position_logger position_logger.c -lgps -lme execute./position_logger. Quando fixação obtida, latitude e longitude imprimem em graus decimais.
Conclusão
Este tutorial cobriu fiação de hardware, habilitação de protocolos de comunicação e configuração básica de software para dois sensores comuns em Raspberry Pi. Embora exemplos foquem em exibição de dados, os mesmos princípios estendem-se a integração de saídas de sensores em algoritmos sofisticados de navegação ou controle. Domínio da biblioteca de cada sensor e sólida compreensão de desenvolvimento C/C++ permitirão fusão de sensores mais complexa em tempo real.
Referências
- Kevin Townsend. Adafruit Ultimate GPS on the Raspberry Pi, 15 Jul 2014.
- Walter Dal Mut. UART NMEA GPS library for Raspberry Pi, 08 Set 2014.
- InvenSense. MPU‑9150 Datasheet, 18 Set 2013.
Processo de manufatura
- Conecte Múltiplos Sensores DS18B20 1-Wire ao Raspberry Pi para Monitoramento Preciso de Temperatura
- Monitoramento Profissional de Temperatura com Raspberry Pi e DS18B20
- Monitoramento Preciso de Temperatura em Closet de Servidores com Raspberry Pi
- Controle um LED com Sensor de Movimento PIR no Raspberry Pi
- Construa um Sensor de Umidade do Solo de Baixo Custo para Irrigação Inteligente com Raspberry Pi
- Rastreamento Facial Pan/Tilt em Tempo Real no Raspberry Pi – Guia Prático
- Conectar Diretamente Sensor Ultrassônico NXT do Lego Mindstorms ao Raspberry Pi
- Conectando Sensor Ultrassônico HC-SR04 ao Raspberry Pi – Guia Prático
- Crie Seu Primeiro Projeto IoT com Raspberry Pi, DHT11 e ThingSpeak
- Construa um Sistema Aeropônico Automatizado com Raspberry Pi e Sensor de Umidade