GPS driver (#55)

* u-blox GPS driver for both I2C and UART
This commit is contained in:
Anthony Elder
2019-05-23 14:29:29 +01:00
committed by Ron Evans
parent c259da1f17
commit a24657d1eb
7 changed files with 386 additions and 0 deletions
+29
View File
@@ -0,0 +1,29 @@
package main
import (
"fmt"
"machine"
"github.com/tinygo-org/drivers/gps"
)
func main() {
println("GPS I2C Example")
machine.I2C0.Configure(machine.I2CConfig{})
ublox := gps.NewI2C(&machine.I2C0)
parser := gps.Parser(ublox)
var fix gps.Fix
for {
fix = parser.NextFix()
if fix.Valid {
print(fix.Time.Format("15:04:05"))
print(", lat=", fmt.Sprintf("%f", fix.Latitude))
print(", long=", fmt.Sprintf("%f", fix.Longitude))
print(", altitude:=", fix.Altitude)
print(", satellites=", fix.Satellites)
println()
} else {
println("No fix")
}
}
}
+29
View File
@@ -0,0 +1,29 @@
package main
import (
"fmt"
"machine"
"github.com/tinygo-org/drivers/gps"
)
func main() {
println("GPS UART Example")
machine.UART1.Configure(machine.UARTConfig{BaudRate: 9600})
ublox := gps.NewUART(&machine.UART1)
parser := gps.Parser(ublox)
var fix gps.Fix
for {
fix = parser.NextFix()
if fix.Valid {
print(fix.Time.Format("15:04:05"))
print(", lat=", fmt.Sprintf("%f", fix.Latitude))
print(", long=", fmt.Sprintf("%f", fix.Longitude))
print(", altitude:=", fix.Altitude)
print(", satellites=", fix.Satellites)
println()
} else {
println("No fix")
}
}
}