これが何度も尋ねられたことは知っていますが、本当に探しているものが見つかりません。
Arduino Uno と、GPS データをシリアルで表示する GPS Shield を使用しています。
GPS Shield に接続するために Arduino にアップロードするコードは次のとおりです。
void loop() // run over and over
{
while(!(mySerial.available())){}
Serial.write(mySerial.read());
}
それだけのコードです。それにもかかわらず、連続的にループするため、シリアル モニターでは、GPS データも毎秒出力されます。
毎秒の出力は次のとおりです。
$GPGGA,013856.000,000.9090,N,9090.90,E,1,09,1.1,316.97,M,0.00,M,,*66 $GPGSA,A,3,07,08,11,1ÿ3,16,19,23,27,42,,,,2.8,1.1,2.5*3F $GPRMC,013856.000,A,000.9090,N,9090.90,E,0.0,038.1,310814,,,A*62 $GPGSV,ÿ3,1,12,16,26,059,33,27,33,025,44,08,30,330,32,07,31,326,34*7A $GPGSV,3,2,12,19,58,354,31,01,33,186,18,23,32,221,24,11,5ÿ9,198,31*70 $GPGSV,3,3,12,42,60,129,32,13,38,253,27,32,06,161,,31,01,140,*7E
毎秒更新されるため、座標が最小限に変わります。これは、GPS シールドが機能していることを意味します。
ここでの問題は、特に GPGGA 行のみで GPS データを解析し、他の行を無視したかったことです。ステータス、緯度、N/S インジケータ、経度、および E/W インジケータを解析したいと思います。
NMEA ライブラリ ( http://nmea.sourceforge.net/ )を検索しましたが、使い方がわかりません。
誰かがここで私を助けてくれますか? ありがとうございました。