6.2 KiB
Læs GPS-data - Wio Terminal
I denne del af lektionen vil du tilføje en GPS-sensor til din Wio Terminal og læse værdier fra den.
Hardware
Wio Terminal kræver en GPS-sensor.
Den sensor, du skal bruge, er en Grove GPS Air530 sensor. Denne sensor kan forbinde til flere GPS-systemer for en hurtig og præcis positionering. Sensoren består af to dele - selve sensorelektronikken og en ekstern antenne, der er forbundet med en tynd ledning for at opfange radiosignaler fra satellitterne.
Dette er en UART-sensor, så den sender GPS-data via UART.
Tilslut GPS-sensoren
Grove GPS-sensoren kan tilsluttes Wio Terminal.
Opgave - tilslut GPS-sensoren
Tilslut GPS-sensoren.
-
Sæt den ene ende af et Grove-kabel i stikket på GPS-sensoren. Det kan kun sættes i på én måde.
-
Med Wio Terminal frakoblet din computer eller anden strømkilde, tilslut den anden ende af Grove-kablet til det venstre Grove-stik på Wio Terminal, når du ser på skærmen. Dette er stikket tættest på tænd/sluk-knappen.
-
Placer GPS-sensoren, så den tilkoblede antenne har frit udsyn til himlen - ideelt set ved et åbent vindue eller udenfor. Det er nemmere at få et klart signal, hvis der ikke er noget, der blokerer for antennen.
-
Du kan nu tilslutte Wio Terminal til din computer.
-
GPS-sensoren har 2 LED'er - en blå LED, der blinker, når data overføres, og en grøn LED, der blinker hvert sekund, når den modtager data fra satellitter. Sørg for, at den blå LED blinker, når du tænder for Wio Terminal. Efter et par minutter vil den grønne LED begynde at blinke - hvis ikke, kan det være nødvendigt at flytte antennen.
Programmer GPS-sensoren
Wio Terminal kan nu programmeres til at bruge den tilsluttede GPS-sensor.
Opgave - programmer GPS-sensoren
Programmer enheden.
-
Opret et helt nyt Wio Terminal-projekt ved hjælp af PlatformIO. Kald dette projekt
gps-sensor
. Tilføj kode isetup
-funktionen for at konfigurere serielporten. -
Tilføj følgende include-direktiv øverst i
main.cpp
-filen. Dette inkluderer en headerfil med funktioner til at konfigurere det venstre Grove-stik til UART.#include <wiring_private.h>
-
Tilføj derefter følgende linje kode for at erklære en seriel portforbindelse til UART-porten:
static Uart Serial3(&sercom3, PIN_WIRE_SCL, PIN_WIRE_SDA, SERCOM_RX_PAD_1, UART_TX_PAD_0);
-
Du skal tilføje noget kode for at omdirigere nogle interne signalhåndterere til denne serielport. Tilføj følgende kode under
Serial3
-deklarationen:void SERCOM3_0_Handler() { Serial3.IrqHandler(); } void SERCOM3_1_Handler() { Serial3.IrqHandler(); } void SERCOM3_2_Handler() { Serial3.IrqHandler(); } void SERCOM3_3_Handler() { Serial3.IrqHandler(); }
-
I
setup
-funktionen, under hvorSerial
-porten er konfigureret, skal du konfigurere UART-serielporten med følgende kode:Serial3.begin(9600); while (!Serial3) ; // Wait for Serial3 to be ready delay(1000);
-
Tilføj derefter følgende kode i
setup
-funktionen for at forbinde Grove-pinden til serielporten:pinPeripheral(PIN_WIRE_SCL, PIO_SERCOM_ALT);
-
Tilføj følgende funktion før
loop
-funktionen for at sende GPS-data til serielmonitoren:void printGPSData() { Serial.println(Serial3.readStringUntil('\n')); }
-
I
loop
-funktionen skal du tilføje følgende kode for at læse fra UART-serielporten og udskrive output til serielmonitoren:while (Serial3.available() > 0) { printGPSData(); } delay(1000);
Denne kode læser fra UART-serielporten. Funktionen
readStringUntil
læser op til et terminator-tegn, i dette tilfælde en ny linje. Dette vil læse en hel NMEA-sætning (NMEA-sætninger afsluttes med et nyt linjetegn). Så længe der kan læses data fra UART-serielporten, læses det og sendes til serielmonitoren viaprintGPSData
-funktionen. Når der ikke kan læses mere data, forsinkesloop
i 1 sekund (1.000 ms). -
Byg og upload koden til Wio Terminal.
-
Når koden er uploadet, kan du overvåge GPS-dataene ved hjælp af serielmonitoren.
> Executing task: platformio device monitor < --- Available filters and text transformations: colorize, debug, default, direct, hexlify, log2file, nocontrol, printable, send_on_enter, time --- More details at http://bit.ly/pio-monitor-filters --- Miniterm on /dev/cu.usbmodem1201 9600,8,N,1 --- --- Quit: Ctrl+C | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H --- $GNGGA,020604.001,4738.538654,N,12208.341758,W,1,3,,164.7,M,-17.1,M,,*67 $GPGSA,A,1,,,,,,,,,,,,,,,*1E $BDGSA,A,1,,,,,,,,,,,,,,,*0F $GPGSV,1,1,00*79 $BDGSV,1,1,00*68
💁 Du kan finde denne kode i code-gps/wio-terminal-mappen.
😀 Dit GPS-sensorprogram var en succes!
Ansvarsfraskrivelse:
Dette dokument er blevet oversat ved hjælp af AI-oversættelsestjenesten Co-op Translator. Selvom vi bestræber os på at opnå nøjagtighed, skal du være opmærksom på, at automatiserede oversættelser kan indeholde fejl eller unøjagtigheder. Det originale dokument på dets oprindelige sprog bør betragtes som den autoritative kilde. For kritisk information anbefales professionel menneskelig oversættelse. Vi påtager os ikke ansvar for eventuelle misforståelser eller fejltolkninger, der måtte opstå som følge af brugen af denne oversættelse.