RaspberryPi3でGPSモジュール(下記SGU3339T)を使えるようにしたので忘れないように記録しておきます。
仕様は、下記のようになっています
赤色 | 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で受ける