ラズパイのGPSをPythonでゴニョゴニョしたい!

ラズパイのGPSをPythonでゴニョゴニョしたい!

LinuxはPythonが流行り

最近、深層学習云々ということもあり、巷では、Pythonがもてはやされているみたい。結構Linux界隈は、以前からPythonのサンプルが多く見受けられる。ラズパイのGPSをPythonでゴニョゴニョしたい!と思ったので、ちょこっといじってみたりして。

PythonでGPSを扱うには、前のアーティクルにあるこちらの作業が必須。そして、一度、gpsmonなどのアプリを起動していたら、再起動する必要があり(アプリにシリアルポートを占有されてしまうらしく、Pythonのプラグラムで受信しても一切データが取れなくなるのだ)。

Pythonの素のままではダメ

いくらPythonが優れていても、素のままでは結構できないケースが多い。Node.jsも然り。モジュールなるものをインストールしなくてはならなのだ(Pythonで書かれたもの)。

Qiitaのユーザーが書かれたこちらの記事が参考になる。GPSに関するセッティングを行ってから、記事の「Pythonのシリアルモジュールをインストールする」からセッティングすることになる。

手順としては、

pip install pyserial

という、Pythonで書かれたアプリをインストールする呪文を唱える。

次に、キチンとpyserialがインストールされたか確認するため、Python3を起動し、ポチポチとプログラムを入力していく。

python3

>>> import serial

>>> s = serial.Serial(‘/dev/serial0’, 9600, timeout=10)

>>> print(s.readline())

…すると何か文字が出てくるはず

※赤文字は自分で入力する所

これで、Pythonを使ったシリアル通信が可能になる。今回は、GPSモジュールを繋げているが、それ以外の物もOK。

GPS用のデータ解析ライブラリを入れる

残念ながら、これで終わりではない。先に紹介した方法だと、変な文字列がズラズラと出てきて、「??」という感じ。自分の目的のデータを簡単にゲットするには、データ解析ライブラリを入れておく必要がある。

おいらは、micropyGPSというものを使った。インストール方法は、本家にある通り、下記のコマンドで可能。

pip install git+https://github.com/inmcm/micropyGPS.git

しかし、これを使うのに、結構嵌ってしまう。上記の方法でインストールしても、うんともすんとも動かなかったのだ。先に紹介したQiitaの記事にある通り、Pythonを起動するディレクトリにmicropyGPSがなくてはならそうだが、うまく目的の所に入ってくれていない。

Pythonを起動するディレクトリと書いてあったが、自分の作ったプログラム(.py)と同じディレクトリにmicropyGPSがあればOKのようだ(PATHを通す方法もあるのだろうけれど、Linuxのその方法を知らなかったので、PATHだけに今回はパス!?)。

PATHを通すのは、ターミナルから

export PATH=”$PATH:/opt/local/bin”

Linux入門 ~「パスを通す」とは~ – Qiita

…みたいな呪文でできるんだね。そのうち試してみまーす(;^o^A

入れたら、Qiitaのご紹介した記事にある位置情報を確認するアプリを試しに入力してみる。きちんと緯度経度を始め、補足した衛星の位置情報などが表示されればOK(3秒毎に更新)。