<<2.ラズパイカメラ  4.Blynk>>


3-1.部品

UBLOX Banggood:$25.5
3個以上買うとちょっぴり安くなる。
送料無料便で2週間くらいで届いた。特急オプションつけるともっとはやいらしい。

2.54mmピンソケット
直でラズパイに半田つけるなら不要。そんな勇気のない普通の人はあったほうがいいと思う。
手持ちで適当なやつがあったので使用 秋月:¥25


3-2.ラズパイとGPSを接続

gps0
電源は5vでなく3.3vのほうがいいかも。5vでも壊れてないけど信号も5vになるとちょっとまずいかもしれないので。
gpscon

gps1

3-3.ラズパイで測位データを読み込む

ボード上のGPIOのシリアルピンを使う場合は、シリアルの設定を変更する必要がある。

$ sudo vi /boot/cmdline.txt

エディタでcmdline.txtを開いて、

dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait

1行目の赤字部分を削除。

下の命令はRASPBIAN JESSIEの場合。
RASPBIAN WHEEZYはsudo systemctl…. でなく/etc/inittab の変更らしいのでやり方が違う。

$ sudo systemctl stop serial-getty@ttyAMA0.service
$ sudo systemctl disable serial-getty@ttyAMA0.service
$ console=ttyAMA0,9600 kgdboc=ttyAMA0,9600 console=tty1

$ sudo systemctl stop serial-getty@ttyAMA0.service | sudo systemctl disable serial-getty@ttyAMA0.service | console=ttyAMA0,9600 kgdboc=ttyAMA0,9600 console=tty1 | sudo reboot

$ sudo systemctl stop serial-getty@ttyAMA0.service | sudo systemctl disable serial-getty@ttyAMA0.service | console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 | sudo reboot
---------------メモ
停止/開始
$ sudo systemctl stop serial-getty@ttyAMA0.service
$ sudo systemctl start serial-getty@ttyAMA0.service

自動起動の有効/無効
$ sudo systemctl enable serial-getty@ttyAMA0.service
$ sudo systemctl disable serial-getty@ttyAMA0.service

シリアルの様子をみる
$ sudo cat /dev/ttyAMA0

———————↓手順要考察 *** これ有望
stty -F /dev/ttyAMA0 115200 \
-iuclc -ixany -imaxbel -iutf8 -opost -olcuc -ocrnl -onlcr \
-onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 -isig \
-icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase \
-tostop -echoprt -echoctl -echoke

$ stty -a < /dev/ttyAMA0

シリアル状態をみるコマンド。
——————————-
コンソール(getty)の利用を停止したのち、
シェルプロから直接/dev/ttyAMA0をいじって入出力をする場合、
通信速度や制御コードを送らない設定は従来と同じでsttyコマンドを使います。

$ sudo systemctl stop serial-getty@ttyAMA0.service
$ sudo chmod o+rw /dev/ttyAMA0
$ sudo stty -F /dev/ttyAMA0 115200 \
-iuclc -ixany -imaxbel -iutf8 -opost -olcuc -ocrnl -onlcr \
-onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 -isig \
-icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase \
-tostop -echoprt -echoctl -echoke

http://raspberrypi.stackexchange.com/questions/18285/set-default-baud-rate-on-dev-ttyama0-and-keep-after-reboot

—————————————

NMEAデータを管理するgpsdとクライアントをインストール

$ sudo apt-get install gpsd gpsd-clients

gpsdの設定変更

$ sudo vi /etc/default/gpsd

   DEVICES=””
   GPSD_OPTIONS=””

の二行の空欄括弧のなかをそれぞれ

   DEVICES=”/dev/ttyAMA0″
   GPSD_OPTIONS=”/dev/ttyAMA0″

gpsdを起動。

$ sudo gpsd /dev/ttyAMA0 -n -F /var/run/gpsd.sock

クライアント起動

$ cgps -s

GPSの状況が見れる。

guiクライアントは

$ xgps

ctrl + c で中止

参考↓
http://lowfreq.info/archives/18314

http://diydrones.com/profiles/blogs/how-to-connect-3dr-gps-ublox-to-raspberry-pihttps://www.raspberrypi.org/forums/viewtopic.php?f=28&t=129826

3-4.GPSデータをサーバに送信

http://YOUR_PHP_URL/writeA_gps.php?id=GPS002&lat=00&lon=000

をpythonで送信する例。コードをgps.pyで保存。
cgps
python gps.py

#! /usr/bin/python # License: GPL 2.0 import os from gps import * from time import * import time import threading import urllib2 import urllib gpsd = None #seting the global variable os.system(‘clear’) #clear the terminal (optional) class GpsPoller(threading.Thread): def __init__(self): threading.Thread.__init__(self) global gpsd #bring it in scope gpsd = gps(mode=WATCH_ENABLE) #starting the stream of info self.current_value = None self.running = True #setting the thread running to true def run(self): global gpsd while gpsp.running: gpsd.next() #this will continue to loop and grab EACH set of gpsd info to clear the buffer if __name__ == ‘__main__’: gpsp = GpsPoller() # create the thread try: gpsp.start() # start it up while True: #It may take a second or two to get good data #print gpsd.fix.latitude,’, ‘,gpsd.fix.longitude,’ Time: ‘,gpsd.utc os.system(‘clear’) lat = gpsd.fix.latitude lon = gpsd.fix.longitude data = {} data[‘id’]=’GPS002′ data[‘lat’] = lat data[‘lon’] = lon url_values = urllib.urlencode(data) print url_values url = ‘http://YOUR_PHP_URL/writeA_gps.php’ full_url = url + ‘?’ + url_values data = urllib2.urlopen(full_url) print data time.sleep(10) #set to whatever except (KeyboardInterrupt, SystemExit): #when you press ctrl+c print “\nKilling Thread…” gpsp.running = False gpsp.join() # wait for the thread to finish what it’s doing print “Done.\nExiting.”


3-5.RTK

RTKLIBのインストール

$ wget https://github.com/tomojitakasu/RTKLIB/archive/rtklib_2.4.3.zip
$ unzip rtklib_2.4.3.zip
$ cd ~/RTKLIB-rtklib_2.4.3/app
$ sh makeall.sh

とやると、行くはずらしいが、うまくいかない。
最新版うまくいかないのでひとつ前のバージョン

$ wget https://github.com/tomojitakasu/RTKLIB/archive/master.zip
$ unzip master.zip
$ ~/RTKLIB-master/app
$ sh makeall.sh

必要なものだけホーム直下にコピーしておく

$ mkdir ~/rtkrcv
$ cp ~/RTKLIB-master/app/rtkrcv/gcc/rtkrcv ~/rtkrcv/rtkrcv
$ cp ~/RTKLIB-master/app/rtkrcv/gcc/rtkrcv.conf ~/rtkrcv/rtkrcv.conf
$ cp -Rf ~/RTKLIB-master/data ~/rtkrcv/data

$ cd ~/rtktcv
$ vi rtkrcv.conf

テキスト内、ファイルを以下の箇所を書き換え

inpstr2-type =off
inpstr1-format =ubx
inpstr1-path =ttyAMA0:115200:8:n:1:off
file-cmdfile1 =./data/ubx_m8n_glo_raw_1hz.cmd
posi-sateph = brdc

パス関係は全部./data/****に直す。

$  vi data/ubx_m8n_glo_raw_1hz.cmd

!UBX CFG-GNSS 0 32 32 1 3 16 16 0 1
!UBX CFG-GNSS 0 32 32 1 6 16 16 0 1
!UBX CFG-MSG 3 16 0 1 1 1 1 1
!UBX CFG-MSG 3 15 0 1 1 1 1 1
!UBX CFG-MSG 1 32 0 1 1 1 1 1

@
!UBX CFG-MSG 3 16 0 0 0 0 0 0
!UBX CFG-MSG 3 15 0 0 0 0 0 0
!UBX CFG-MSG 1 32 0 0 0 0 0 0

に書き換え。

./rtkrcv
で機動….しないのでいろいろやったら動いた。
どれが有効か不明。
一旦全部けして
chmod 755 makeall.sh
してからコンパイル。

~/RTKLIB-master/app/rtkrcv/gcc/single.conf
の内容を編集して
./rtkrtc -o single.conf でうごかす。

いろいろ試したら
posi-sateph = brdc
がポイントっぽい。


タブレットにRTKGPS+をインストール。
format >> u-blox LET*T
command >> ubx_m8n_glo_row_1hz.cmd
をロード
1行目
!UBX ……… 16 ,16,0,0

!UBX ……… 16 ,16,0,1
に変更。

murarobo

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

コメントする