こんなことをする為にU-blox NEO-6M GPSモジュールをAmzonでget
Raspberry Pi3+Stretch+GPSの設定です。
Raspberry Pi3は、Bluetoothが、シリアルポートを使っているので、
これを、ハズす事が必要。
いろいろ調べて、試しながら、こんな感じ(^^)
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-gpssudo 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 -sxgps
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
おわり(^^)
0 件のコメント:
コメントを投稿