RaspberryPi3でGPSモジュール(SGU3339T)を使う


RaspberryPi3でGPSモジュール(下記SGU3339T)を使えるようにしたので忘れないように記録しておきます。
22rl

仕様は、下記のようになっています

赤色 VCC 入力 主電源入力 3.0~4.3V(※)
黄色 BKP 入力 バックアップ電源 (※)
シールド GND 入力 グランド
青色 TXD 出力 GPSから出力されるデータ (TTLレベル)
白色 RXD 入力 GPSへコマンドを送る (TTLレベル)
黒色 1PS 出力 位置情報が確定すると100msのパルスが出力される (TTLレベル)

このうち今回使用するのは赤色の電源(3.3v)、シールド(GND)、青色(TXD)の3つの線です。※シールドは線を剝いたとき、覆っている銀色の線のことです。
配線は、赤->GPIO 1(3.3v)、シールド->GPIO 6(GND)、青色->GPIO 15(RXD)に接続します。青色の線はモジュール側はoutput、GPIO側は入力に接続するので間違えないようにしてください。
スポンサード・リンク

Raspberry Pi 3用のUART設定を行います。

$ cat << EOS | sudo tee -a  /boot/config.txt
core_freq=250
enable_uart=1
EOS

$ cat /boot/cmdline.txt
dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/mmcblk0p7 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait

$ grep -e enable_uart /boot/config.txt
enable_uart=1

$ sudo raspi-config nonint do_serial 1

$ cat /boot/cmdline.txt
dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p7 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait

$ grep -e enable_uart /boot/config.txt
enable_uart=0

#2016/11/22追記
$ sudo sed -i -e 's/enable_uart=0/enable_uart=1/' /boot/config.txt

$ sudo systemctl stop serial-getty@ttyS0.service
$ sudo systemctl mask serial-getty@ttyS0.service

$sudo reboot

再起動後、/dev/ttyS0 の通信速度を設定します。

$ sudo stty -F /dev/ttyS0 ispeed 9600

GPSを/dev/gps0でアクセスできるように、dev にてシンボリックリンクを作るようにします。

$ sudo cat << 'EOS' | sudo tee /etc/udev/rules.d/40-selialgps.rules
KERNEL=="ttyS0", SYMLINK+="gps0"
EOS

$ sudo reboot

gpsdをインストール

$ sudo apt-get install gpsd gpsd-clients

gpsdの設定

$ cat << EOS | sudo tee -a  /etc/default/gpsd

USBAUTO="false"
DEVICES="/dev/gps0"
EOS

pgsdを起動

$ sudo systemctl start gpsd
$ sudo systemctl enable gpsd

確認

$ cgps -s

下記を参考にさせてもらいました。ほとんどそのままです。RaspberryPi3(raspbian-jessie)からシステム設定関係がだいぶ変わっているので覚えるのが大変。。。
秋月電子 UART(シリアル)接続GPS(2016.2発売)をRaspberry Pi 3につなげて、GPS出力をgpsdで受ける


日本で一番簡単にビットコインが買える取引所 coincheck bitcoin