ZP GPS Driver
Goals
extract NMEA.GGA and NMEA.RMC information from the GPS data, including
location information
latitude and longitude
the incoming data is in the format
ddmm.mmmm
degrees minutes.fractional minutes
we want to convert it to the unit of degree only with 6 decimal places precision for the sake of simplicity and better compatibility
date
day, month, year
time
hour, minutes, seconds
number of satellites
ground speed
converts to m/s
track angle
this is the direction in which the vehicle is moving
this angle is relative to the true north
build a GPS driver class to provide the proper GPS configuration methods and info getters
The GPS module we are currently using is spark fun GPS breakout https://www.sparkfun.com/products/15210
It has an onboard SAM M8Q module from Ublox
In theory, this device should be usable with other Ublox GPS module since the GPS sentence they spill out is the same
using UART protocol
we can add the I2C interface to this driver later since UART spots are usually more precious on a MCU
interfaces with STM32
will be integrated into the ZP3.5 project
Design
@Ria Prakash
Source
GPS Arduino Library: https://github.com/sparkfun/SparkFun_u-blox_GNSS_Arduino_Library/tree/main
GGA format: https://receiverhelp.trimble.com/alloy-gnss/en-us/NMEA-0183messages_GGA.html
RMC format: https://receiverhelp.trimble.com/alloy-gnss/en-us/NMEA-0183messages_RMC.html
ublox 8 datasheet: https://content.u-blox.com/sites/default/files/products/documents/u-blox8-M8_ReceiverDescrProtSpec_UBX-13003221.pdf