Notice. New forum software under development. It's going to miss a few functions and look a bit ugly for a while, but I'm working on it full time now as the old forum was too unstable. Couple days, all good. If you notice any issues, please contact me.
|
Forum Index : Microcontroller and PC projects : PicoMite and Pico-GPS-L76B and MMBasic 5.09.00RC3
Author | Message | ||||
homa Guru Joined: 05/11/2021 Location: GermanyPosts: 351 |
Referring to this thread https://www.thebackshed.com/forum/ViewTopic.php?TID=16915 and the question about a GPS module and the answer from Peter, I have purchased this recommended module. A few questions directly. I only use the “PiPico” and version 5.09.00RC3. > option list PicoMite MMBasic Version 5.09.00RC3 OPTION COLORCODE ON > Here is my test program: 'GPS - Test v0.1 ' 'OPEN comspec$ AS GPS [,timezone_offset] [,monitor] ''The sentences interpreted are GPRMC, GNRMC, GPGGA and GNGGA. 'The timezone_offset parameter is used to convert UTC as received from the 'GPS to the local timezone. If omitted the timezone will default to UTC. The 'timezone_offset can be a any number between -12 and 14 allowing the time to 'be set correctly even for the Chatham Islands in New Zealand (UTC +12:45). 'If the monitor parameter is set to 1 then all GPS input is directed to the 'console. This can be stopped by closing the GPS channel. ' 'PRINT #GPS, expre etcssion [[,; ]expression] 'Outputs a NMEA string to an opened GPS device. The string must start with a '$ character and end with a * character. The checksum is automatically 'calculated and appended to the string together with the CR/LF characters. ' 'GPS() ' 'https://www.waveshare.com/wiki/Pico-GPS-L76B 'Modul: waveshare - Pico-GPS-L76B, GP0 Tx pin, GP1 Rx pin ' Dim lat, long As float Dim latg, latm, longg, longm As integer Dim lats, longs As float Dim latd$, longd$ As string SetPin GP1, GP0, COM1 'Open "COM1:9600" As GPS,+2,1 Open "COM1:9600" As GPS,+2,0 Do While (GPS(valid)<>1) And (GPS(fix)<>1) If Inkey$="x" Then Exit Do Loop 'Close GPS Pause 500 'SetPin GP1, GP0, COM1 'Open "COM1:9600" As GPS,+1,0 Do Print "GPS Valid:", GPS(valid) Print "GPS FIX:", GPS(FIX) Print GPS(DATE), GPS(TIME) Print "Satellites: ", GPS(SATELLITES) 'https://de.wikipedia.org/wiki/Dilution_of_Precision Print "DOP (top 1.0 - bad 10.0):", GPS(DOP) 'https://gibs.bkg.bund.de/geoid/gserlaeuter_g.php 'https://de.wikipedia.org/wiki/Geoid Print "Altitude: ", GPS(ALTITUDE), "GEOID:", GPS(GEOID) Print "Speed:", GPS(SPEED) Print "Track:", GPS(TRACK) lat =GPS(LATITUDE) long=GPS(LONGITUDE) Print "Latitude: ", lat, "Longitude:", long If lat<0 Then lat=lat*-1 latd$="S" Else latd$="N" EndIf If long<0 Then long=long*-1 longd$="W" Else longd$="E" EndIf latg=Fix(lat) latm=Fix((lat-latg)*60) lats=(((lat-latg)*60)-latm)*60 longg=Fix(long) longm=Fix((long-longg)*60) longs=(((long-longg)*60)-longm)*60 Print ,,Str$(latg)+Chr$(176); Print ""+Str$(latm)+Chr$(39); Print ""+Str$(lats,2,2,"0")+Chr$(34)+latd$; Print ,,,Str$(longg)+Chr$(176); Print ""+Str$(longm)+Chr$(39); Print ""+Str$(longs,2,2,"0")+Chr$(34)+longd$ Pause 1000 Loop 1) Unfortunately I can't close and reopen the interface to disable the monitor function. [34] Open "COM1:9600" As GPS,+1,0 Error : Pins not set for COM1 @Peter: Is this a bug in 5.09.00RC3 or am I using it wrong? 2) What does the altitude refer to? At my location, the value should actually be different. Do I have to calculate the GEOID here? 3) Track: how is this information to be understood? A rotation of the antenna is recognized with a delay, but the value generally jumps back and forth wildly. 4) Can functions in the module, such as GPS mode, multi-satellite, refresh rate, etc. be read out or activated specifically? How do you use the command for this? PRINT #GPS, expression[[,; ]expression] ... etc Outputs a NMEA string to an opened GPS device. The string must start with a $ character and end with a * character. The checksum is automatically calculated and appended to the string together with the CR/LF characters. Who has experience with this module? I am not yet so enthusiastic about the accuracy. Matthias |
||||
Print this page |