GPSモジュールを使ってみる

Raspberry Pi向け GNSS受信基板を購入したのでRaspberry Pi Zeroに接続して使ってみる。

![449656353_328262637015518_1707578316911545855_n.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/28184/d82bd52d-63fb-22e0-0043-c0656fb5ec76.jpeg)

**開発元**
GR-M10-RP 

https://prioris.jp/gnss/

**販売元**

https://www.kadenken.com/view/item/000000001536

**アンテナ**
GPS/GLONASS アクティブアンテナ LNA内蔵 DC2.2V~5V対応

https://akizukidenshi.com/catalog/g/g112223/

![450524925_850212720307860_440206798627870185_n.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/28184/8b6bfa84-0018-08b1-230b-35c0e41c3d8e.jpeg)

# インストール

ドキュメントの通りにセットアップしていく

https://prioris.jp/gnss/docs/receiving/install

```:raspi-configの起動
$ sudo raspi-config
```

![スクリーンショット 2024-07-07 14.45.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/28184/cfe0e696-8281-bbad-4332-278d6f06ad4b.png)
![スクリーンショット 2024-07-07 14.46.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/28184/6dc55b57-6c7e-4355-d5df-30a93ba041c4.png)
![スクリーンショット 2024-07-07 14.47.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/28184/f2967ddd-f824-477a-1c43-29e0fd01d5e7.png)
![スクリーンショット 2024-07-07 14.47.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/28184/65654df2-4dde-b90b-3ab3-c99c03a5ee45.png)
![スクリーンショット 2024-07-07 14.47.50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/28184/1f19a269-31a7-f360-ac86-1dc56ae12e56.png)
![スクリーンショット 2024-07-07 14.48.11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/28184/60bc5e63-8e0f-e5d5-b3ef-db81632146c8.png)
![スクリーンショット 2024-07-07 14.48.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/28184/e0fff4c2-94af-00e4-cf36-08c160985a3f.png)

このあとドキュメントではscreenコマンドを使うことになっていたが、用意したRaspberry Piにはインストールされていなかったので、まずscreenコマンドをインストールする。

```:screenコマンドのインストール
$ sudo apt install screen
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  libutempter0
Suggested packages:
  byobu | screenie | iselect
The following NEW packages will be installed:
  libutempter0 screen
0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Need to get 547 kB of archives.
After this operation, 982 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://ftp.udx.icscoe.jp/Linux/raspbian/raspbian bookworm/main armhf libutempter0 armhf 1.2.1-3 [8,404 B]
Get:2 http://ftp.udx.icscoe.jp/Linux/raspbian/raspbian bookworm/main armhf screen armhf 4.9.0-4 [539 kB]
Fetched 547 kB in 2s (256 kB/s)
Selecting previously unselected package libutempter0:armhf.
(Reading database ... 135477 files and directories currently installed.)
Preparing to unpack .../libutempter0_1.2.1-3_armhf.deb ...
Unpacking libutempter0:armhf (1.2.1-3) ...
Selecting previously unselected package screen.
Preparing to unpack .../screen_4.9.0-4_armhf.deb ...
Unpacking screen (4.9.0-4) ...
Setting up libutempter0:armhf (1.2.1-3) ...
Setting up screen (4.9.0-4) ...
Processing triggers for debianutils (5.7-0.5~deb12u1) ...
Processing triggers for install-info (6.8-6+b1) ...
Processing triggers for libc-bin (2.36-9+rpt2+deb12u7) ...
Processing triggers for man-db (2.11.2-2) ...
$
```
購入が7月だったので38400bpsで接続。
（2024/6以前の出荷は9600bpsがデフォルトのこと）

```:GR-M10-RPと接続
$ sudo screen /dev/ttyS0 ３８４００
```

接続中の出力は、以下のようなものが流れ続けます。
今回は家の中でアンテナを窓際に置いていないので、データは取れていません。
取得できた位置情報を載せると家が特定されちゃいますし。w

```:GR-M10-RPからの出力
$GNRMC,061456.00,V,,,,,,,070724,,,N,V*1F
$GNVTG,,,,,,,,,N*2E
$GNGGA,061456.00,,,,,0,00,99.99,,,,,,*78
$GNGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99,1*33
$GNGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99,3*31
$GNGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99,4*36
$GNGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99,5*37
$GPGSV,1,1,03,05,58,330,18,20,67,036,19,30,42,084,34,1*56
$GPGSV,2,1,07,06,18,145,,07,23,051,,11,59,150,,13,66,232,,0*65
$GPGSV,2,2,07,13,66,232,,15,31,246,,18,01,320,,0*5C
$GAGSV,1,1,00,0*74
$GBGSV,1,1,04,10,16,236,,13,38,313,,23,22,111,,25,14,060,,0*7E
$GQGSV,1,1,00,0*64
$GNGLL,,,,,061456.00,V,N*54
```

GR-M10-RPとの接続を中断する場合は、ctrlキーを押しながらa、dの順でキーを押します。
Ctrl-cが効かなくて焦りました。

```:接続を中断
Ctrl-a Ctrl-d
```

# その他
* ハンダ付けが面倒だったので、手元にあったRaspberry Pi Zero WHを久しぶりに使ったがRaspberry Pi 4/5/Zero2に慣れた身としては遅く感じる
    * Raspberry Pi Zero 2もピンヘッダ付きのWHが発売されないかなー
* OSのインストールメディアを作るのにRaspberry Pi Imagerを使っているが、デバイスを選択すると使用できるOSが絞り困るようになっていて便利
    * デバイスの選択がなければ、普通64bit版をインストールして痛い目に遭っていたと思う
* Raspberry Pi ZeroのWiFiは、2.4Gしかサポートしていないのを忘れて、5.0GHzのアクセスポイントを設定してネットワークが繋がらなく焦った
    * 最終的にモバイルディスプレイ、キーボード、マウスとフルセットで繋いで確認するはめになった

# 追記
後日Raspberry Pi Zero 2 Wにピンヘッダを自分でハンダ付けして、GR-M10-RPを接続したところ、データが取得できなくなりました（最初の室内で試してみたときのような状況）。LEDをみると青色LEDが点滅していませんでした。

現象確認のため動作していたRaspberry Pi Zero WHに接続したところ、青色LEDも点滅し、データの取得にも成功している…。

さてはハンダ付けをしくじったかとも思ったのですが、下手なだけでハンダが失敗していそうなところはない（目視ですが）ため、Raspberry Pi Zero 2 Wに再度接続電源を入れたところ、やはり青色LEDは点滅しない…。

何か情報がないかとドキュメントを確認したりraspi-configを確認したりしていたのですが、しばらくすると青色LEDが点滅し始めました。
そこでscreenコマンドでデータを読み込んでみると、データが正常に取れている。

原因はよくわからないまま正常に動作していてモヤモヤしているのですが、新しい機器に接続すると何かキャリブレーションでもしていて時間がかかっているのではないかと自分を納得されせているところです。