NavigationSystem — это модульная система для сбора, обработки и интеграции навигационных данных на базе Raspberry Pi, с поддержкой:
- GNSS (через UART),
- магнитометра (I2C),
- LoRa (SPI),
- инерциальной навигации (EKF),
- Deep Coupling INS/GNSS,
- RTK / PPP (через внешние источники),
- фильтра Калмана.
- 🛱️ Поддержка GPS/GNSS через последовательный порт (
NMEA) - 🧩 Магнитометр HMC5883L / QMC5883 (I2C)
- 📶 LoRa-модули (SX127x по SPI)
- 📀 Фильтр Калмана (EKF) для инерциальной навигации
- 📈 Интеграция данных IMU + GNSS (Deep Coupling)
- 🌐 Готовность к RTK/PPP интеграции
- 🧹 Гибкая архитектура для подключения дополнительных сенсоров
- Raspberry Pi 4 / 3 / Zero 2 W
- Python 3.7+
- GNSS-приемник (UART)
- HMC5883L или аналог (I2C)
- LoRa-модуль SX1278 / SX1276 (SPI)
sudo apt update
sudo apt install python3-pip python3-smbus i2c-tools
pip install numpy pyserial spidev smbus2Включи интерфейсы:
sudo raspi-config
# Enable: I2C, Serial, SPI- Подключи оборудование к Raspberry Pi (см. ниже).
- Клонируй репозиторий:
git clone https://github.com/VohminV/NavigationSystem.git
cd NavigationSystem- Запусти:
python3 main.py| Компонент | Интерфейс | Пины Raspberry Pi | Протокол |
|---|---|---|---|
| GNSS-приёмник | UART | GPIO14 (TX), GPIO15 (RX) | NMEA |
| Магнитометр | I2C | GPIO2 (SDA), GPIO3 (SCL) | HMC5883L |
| LoRa-модуль | SPI | GPIO10 (MOSI), GPIO9 (MISO), GPIO11 (SCLK), GPIO8 (CS) | SX1278 |
NavigationSystem/
├── navigation_system.py # Основной класс навигации
├── main.py # Пример запуска
├── README.md
└── LICENSE
Пример конфигурации:
config = {
'i2c_bus': 1,
'serial_port': '/dev/ttyS0',
'baudrate': 9600,
'spi_bus': 0,
'spi_device': 0,
'magnetometer_address': 0x1E # HMC5883L
}Сообщения в формате:
POS:<долгота>,<широта>,HEAD:<курс>
Пример:
POS:37.12345,55.67890,HEAD:135.4
- Поддержка RTK/PPP через NTRIP/базу GNSS
- Web-интерфейс для отображения маршрута
- Запись логов на SD/отправка на сервер