RaspberryPi Zero WHでGPS

NO IMAGE

GPSモジュールが使えないか

秋月のGPSモジュールというのをゲットしていたのだけれど、使えないか…と思っていたら、使っている人がしっかりいたので、備忘録がてら書いておこうと思う。

まずは、こちらのブログで手順が書かれているので、その通りにやる。

作業手順

作業手順としては、次の通り。おいらのコメントを追加している。

  • RaspberryPi Zero WHの4,6,8,10,12ピンに秋月のGPSモジュールの+5V,GND,RXD,TXD,1PPSにそれぞれ繋ぐ。横並びに接続するので、配線しやすい。タイプパルスを使わない人は、1PPSへの配線は不要。
  • コンソールをserial0からtty1へ変更するため、bootディレクトリにあるcmdline.txtを編集。デフォルトの物は、ブログと一部異なっているけれど、デフォルトの方は無視してコメント。nanoなどのテキストエディタを使って、下記のように書き換える。

dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

  • systemdの設定を変更し、シリアルコンソールを無効化するため、下のsystemctlの呪文を唱える。

sudo systemctl stop serial-getty@ttyS0.service
sudo systemctl disable serial-getty@ttyS0.service

  • bootディレクトリにあるconfig.txtをテキストエディタで編集。下記を一番最後の行に追加し、UARTを有効にする。

enable_uart=1

※タイムパルスを使う場合は、bootディレクトリにあるconfig.txtへ更に下記を追記する。GPSしか使わない人は不要。

dtoverlay=pps-gpio,gpiopin=18,assert_falling_edge=true

  • etcディレクトリにあるmodulesをテキストエディタで編集。最終行にpps-gpioを追加。

pps-gpio

  • rebootコマンドで再起動させる。
  • 再起動したら、GPS関連のアプリをインストールする。タイムパルスを使わない人は、pps-toolsは不要。

sudo apt-get install gpsd gpsd-clients pps-tools

(sudo apt install gpsd gpsd-clients pps-tools でもOK!)

  • etc/defaultディレクトリにあるgpsdをテキストエディタで編集し、gpsdの接続デバイスとオプションを修正。GPSモジュールにバッテリーを接続、ポーリングは行わないため、GPSD_OPTIONSを「-n」とするらしいが、逆にポーリングする場合は、-yとなりますな。1PPSを配線しない人は、/dev/pps0の記述は不要ではあるけれど、気が変わるかっも知れないので、今後のために記載しておく方が親切かも。

START_DAEMON=”true”
DEVICES=”/dev/ttyS0 /dev/pps0″
GPSD_OPTIONS=”-n”

  • systemctlコマンドでgpsd.socketを有効に。

sudo systemctl enable gpsd.socket

  • 再度、rebootコマンドで再起動。
  • 前の手順でpps-toolsをインストールした場合は、pps-toolsを起動させると、GPSがきちんと電波を捉えられているか確認できる。電波が捉えられていない場合は、それっぽい数字が出てこない。

sudo ppstest /dev/pps0

  • 更に細かい動きを確認するには、下記コマンドで。

cgps -s

そうすると、自分の位置情報を始め、補足している衛星のナンバーや衛星位置情報も瞬時に分かる。サイトによっては、gpsmonをお勧めしているが、おいらの場合は、何故か分からないが、動作が思わしくなかった。gpsmonを起動しても、ウンともスンとも言わず、マウスのダイヤルを下方向へ回すと、急に文字が出てくるようになるのだが、皆さんがアップしている画像のようにはならなかった。

これでようやっと、GPSを使う下準備ができた。でも、pythonなどでアプリを作って動かそうとすると、データが出てこない事態が発生する。どうも、先に紹介したcgpsなどがポートを占有してしまうのか、データが全く取れない状態になるのだ。再起動すれば解決されるのだが、これに嵌ってしまい、エライ時間を費やしてしまった。

ppsはGPSしか使わない人は不要と書いてしまったが、pps信号があると誤差が少なくなるみたい。こちらの方が検証されている。