4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

GPSモジュールの使い方

Last updated at Posted at 2021-07-11

GPSとは?

GPSについて

 GPSとは、Global Positioning Systemの略称です。日本語では「全地球測位システム」とも訳されます。簡単に説明すると、アメリカが開発した衛星測位システムで、人工衛星から発せられた電波を受信し、位置・距離・時刻などを計算して、現在位置を測位する技術です。

GNSSについて

 GNSSとは、Global Navigation Satellite Systemの略称です。まず、人工衛星にとって地上の現在位置を決定する「衛星測位システム」をNSSと呼び、その中で地球全てを測位可能なものをGNSSと分類します(ちなみに特定地域が測位可能なものをRNSSと分類)。GPSはアメリカが開発したGNSSの一つです。

実測

使用したGPSモジュール

iOS の画像 (3).jpg (758.7 kB)
  • 接続方式:UART

UARTとは

 UARTはUniversal Asynchronous Receiver Transmitter(汎用非同期式送受信機)の頭文字で、「ユーアート」と読みます。
 UARTは単純な仕組みゆえに開発コストが低く、安価な電化製品の普及やIoTの導入と共に、コスト重視の組み込み機器の多くに搭載されるようになりました。UARTの特徴のひとつとして、名前の通り「非同期」のシリアル通信であることが挙げられます。つまり,I2CやSPIのような同期をとるためのクロック配線を用いたクロック信号の必要がなくなるということになります。さらに、UARTは2本のデータ配線によって、マスター/スレーブの関係ではない双方向の通信が可能となっています。

プログラムコード

gps_data.py
from machine import UART
from machine import Pin
import math
import urequests
import ujson


URTN = 1
BPS = 9600
RXPIN = 3
TXPIN = 1
p3 = Pin(3,Pin.IN,Pin.PULL_UP)
#p1 = Pin(1,Pin.IN,Pin.PULL_UP)
#uart = UART(URTN,BPS)
uart.init(9600, bits=8, parity=None, stop=1, tx=TXPIN, rx=RXPIN)

print(uart.any())

for n in range(uart.any()):
    sp = uart.readline()
    sp = str(sp)
    sp = sp.split(',')
    #print(sp)
    gps_latitude = list()
    if sp[0][3:8] == 'GNGLL':
        count = 1
        while count <= 2:
            if count == 1:
                #print(sp[count])
                logger_latitude = float(sp[count])
                decimal, integer = math.modf(logger_latitude/100.0)
                gps_latitude.append(integer + decimal / 60.0 * 100.0)
            else:
                #print(sp[count])
                count = 3
                logger_latitude = float(sp[count])
                decimal, integer = math.modf(logger_latitude/100.0)
                gps_latitude.append(integer + decimal / 60.0 * 100.0)
            count += 1
        print('gps_latitude : ', gps_latitude[0] , ' , ' , gps_latitude[1])

実行結果

キャプチャ.PNG (12.6 kB)

240はブロックなしで読み込める文字数です。
gps_latitudeはRaw dataをフィルタリングして導きだした現在地の緯度と経度になります。

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?