2017年12月24日日曜日

An installation of NEO-6M GPS onto Raspberry3


こんなことをする為にU-blox NEO-6M GPSモジュールをAmzonでget

Raspberry Pi3+Stretch+GPSの設定です。
Raspberry Pi3は、Bluetoothが、シリアルポートを使っているので、
これを、ハズす事が必要。
いろいろ調べて、試しながら、こんな感じ(^^)

gpsdについては、ここここも

GPS用語集は、ここ



因みに、Raspberry PiとGPSの接続は普通のUARTの接続です。
説明は省略。GPS電場がちゃんと受信できている時は、青いLEDが点滅

1.1 raspi-config

Serial portを有効にします。こんな感じ。raspi-config終了時にreboot選択
「シリアル接続でのログインはしないけど、シリアル使うよ」という設定





2.1 /boot/config.txt

sudo vi /boot/config.txt

# Enable audio (loads snd_bcm2835)
dtparam=audio=on
#start_x=0
gpu_mem=64
enable_uart=1
#dtoverlay=w1-gpio

dtoverlay=pi3-disable-bt
#dtoverlay=pi3-miniuart-bt          # blurtoothを使うとき

2.2 /boot/cmdline.txt

/boot/cmdline.txtの「console=ttyAMA0,115200」の部分を削除

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

sudo reboot
sudo cat /dev/ttyAMA0


2.3 install

sudo apt-get install gpsd gpsd-clients python-gps
sudo vi /etc/default/gpsd
cat /etc/default/gpsd
# Default settings for the gpsd init script and the hotplug wrapper.

# Start the gpsd daemon automatically at boot time
START_DAEMON="true"

# Use USB hotplugging to add new USB devices automatically to the daemon
USBAUTO="true"

# Devices gpsd should collect to at boot time.
# They need to be read/writeable, either by user gpsd or the group dialout.
DEVICES="/dev/ttyAMA0"

# Other options you want to pass to gpsd
GPSD_OPTIONS="-n"

GPSD_OPTIONS="-F /var/run/gpsd.sock -b -n"
これは、ntpサーバーにする時

#udo gpsd /dev/ttyAMA0 -F /var/run/gpsd.sock
#stty -F /dev/ttyAMA0

sudo reboot

stty -Fは、open and use the specified DEVICE instead of stdin
という意味だから、設定するのはおかしいね。
だから、ここは sudo rebootのみで、、、
reboot後は、

systemctl status ntp gpsd
ntp -p

で確認する。
gpsdが立ち上がっていない時は
sudo systemctl start gpsd

でも、大事な事は原因を把握して、対処する事

2.4 確認

scgps -s

xgps

Peace!!

ところで、いろりろな情報があるけど、、、
Raspberry Pi2、だったり、Jessieだったり
少し混乱しました。

sudo cat /dev/ttyAMA0  で、文字化けなどの時
sudo systemctl stop serial-getty@ttyAMA0.service
sudo systemctl disable serial-getty@ttyAMA0.service

もしおかしい時は、この情報を参照して、AMA0関連の余計なサービスが無いか確認する

systemctl | grep tty
  sys-devices-platform-serial8250-tty-ttyS0.device                                                   loaded active plugged   /sys/devices/platform/serial8250/tty/ttyS0
  sys-devices-platform-soc-3f201000.serial-tty-ttyAMA0.device                                        loaded active plugged   /sys/devices/platform/soc/3f201000.serial/tty/ttyAMA0
  sys-devices-virtual-tty-ttyprintk.device                                                           loaded active plugged   /sys/devices/virtual tty/ttyprintk
  getty@tty1.service                                                                                 loaded active running   Getty on tty1     
  system-getty.slice                                                                                 loaded active active    system-getty.slice 
  getty.target                                                                                       loaded active active    Login Prompts


Raspberry Pi3+Jessieのとき、下のおまじない必要らしいけど
Stretchではしない。

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


参考リンク

本家
https://www.raspberrypi.org/documentation/configuration/uart.md

http://mcommit.hatenadiary.com/entry/2016/09/07/233816

http://blog.robit.co.jp/entry/20170411

http://www.neko.ne.jp/~freewing/raspberry_pi/raspberry_pi_3_serial_gps/

https://www.rs-online.com/designspark/add-gps-time-and-location-to-a-raspberry-pi-project-jp

http://ain0204.hatenablog.com/entry/2015/08/30/235729




おわり(^^)

1 件のコメント:

  1. I really appreciate this post. I’ve been looking all over for this! Thank goodness I found it on Bing. You’ve made my day! Thanks again! “One never goes so far as when one doesn’t know where one is going.

    Structured Cabling

    返信削除