○使用部品
出力形式がNMEA(NMEA 0183)、ボーレート9600bpsのGPSモジュールなら、同じように使えるかと思われます。
○GPS制御用端子
Arduino TX、RX、3.3V、GND
Raspberry Pi 1、6、8、10
○基本回路/プログラム
◇Arduino
・配線
モジュール
|
Arduino
|
RX
|
10
|
TX
|
11
|
VCC
|
3.3V
|
GND
|
GND
|
・プログラム
◇Raspberry Pi
Raspberry Piでは、Johnny-Fiveを使ってGPSと通信することができないため、代替えの方法を紹介します。
※Raspberry Pi 3では動作しません。
・シリアルコンソールの無効化
次のように操作して、シリアルコンソールを無効に設定します。
①[Menu]→[設定]→[Raspberry Piの設定]を選択します。
②「インターフェイス」タブを選択し、シリアルを無効に設定し、[OK]をクリックします。
③[はい]をクリックして、再起動します。
・「serialport」と「node-nmea」モジュールのインストール
次のように操作して、「serialport」と「node-nmea」モジュールをインストールします。
①ターミナルを起動し、作業用のフォルダに移動します。
②「npm install serialport node-nmea[Enter]」と入力します。
・配線
モジュール
|
Raspberry Pi
|
RX
|
8
|
TX
|
10
|
VCC
|
1
|
GND
|
6
|
※物理的なピン番号で表記しています。
・プログラム
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var serialport = require('serialport'); | |
var nmea = require('node-nmea'); | |
var port = new serialport.SerialPort( | |
'/dev/ttyAMA0', { | |
baudrate: 9600, | |
parser: serialport.parsers.readline('\r\n') | |
} | |
); | |
port.on('data', function(line) { | |
//console.log(nmea.parse(line)); | |
var dat = nmea.parse(line); | |
if (dat.loc != null) { | |
var lat = dat.loc.geojson.coordinates[0]; | |
var lon = dat.loc.geojson.coordinates[1]; | |
console.log("position"); | |
console.log(" latitude : ", lat); | |
console.log(" longitude : ", lon); | |
} | |
}); |