2016年4月29日金曜日

Johnny-Fiveでマイコン制御4 - GPS

○使用部品

出力形式が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
※物理的なピン番号で表記しています。

・プログラム
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);
}
});
view raw gps_pi.js hosted with ❤ by GitHub


 

0 件のコメント:

コメントを投稿