GPS BC-337と同じ挙動をする偽GPSをArduinoで作った。

なんでかというと、GPSの位置取得に時間がかかってしょうがないから。

曇っていたり屋内だと位置を取れないし、調子が悪いと屋外でも位置取得に1~5分ぐらいかかる事がある。しかもBC-337は仮想シリアルポートとして認識されるけどCFカード式なので、仮想シリアルポートに接続している間しか給電されない。

つまり、デバッグするたびに1~5分ぐらい待たされる

2回目で嫌になったのでArduinoで同じ挙動を再現した。

SourceCode(Arduino 0005 Alpha)

大したモノでもなく、4800bpsでGPSと同じプロトコルで文字列を垂れ流すだけの偽GPS

前のGpsConnectorの記事のサンプルプロジェクトのGpsTestの方は、偽GPSを使用して作った。

GpsTest



■メモ

GPSはこういうデータをシリアル通信で送ってくる。改行か、$を目印にしてパースしてやる良い

$GPGGA,100132.142,3523.2235,N,13925.7413,E,1,03,2.3,28.6,M,39.5,M,,0000*67

$GPRMC,100131.146,A,3523.2204,N,13925.7336,E,2.22,236.15,141006,,*0F

$GPGSA,A,2,20,11,28,,,,,,,,,,2.5,2.3,1.0*3C

$GPGGA,100131.146,3523.2204,N,13925.7336,E,1,03,2.3,28.6,M,39.5,M,,0000*62

$GPRMC,100130.142,A,3523.2219,N,13925.7307,E,2.19,208.74,141006,,*06

$GPGSA,A,2,20,11,28,,,,,,,,,,2.5,2.3,1.0*3C

$GPGGA,100130.142,3523.2219,N,13925.7307,E,1,03,2.3,28.6,M,39.5,M,,0000*69

$GPRMC,100129.143,A,3523.2248,N,13925.7337,E,3.77,4.90,141006,,*05

$GPGSA,A,2,20,11,28,,,,,,,,,,2.5,2.3,1.0*3C

$GPGGA,100129.143,3523.2248,N,13925.7337,E,1,03,2.3,28.6,M,39.5,M,,0000*67

$GPRMC,100128.143,A,3523.2227,N,13925.7315,E,1.24,269.83,141006,,*02

$GPGSA,A,2,20,11,28,,,,,,,,,,2.5,2.3,1.0*3C

$GPGGA,100128.143,3523.2227,N,13925.7315,E,1,03,2.3,28.6,M,39.5,M,,0000*6F

$GPRMC,100127.143,A,3523.2236,N,13925.7320,E,5.76,31.03,141006,,*3F

$GPGSV,3,3,11,24,02,242,,04,01,244,,14,00,044,*4B

$GPGSV,3,2,11,17,23,303,17,08,13,233,,01,05,084,,27,02,211,*7C

$GPGSV,3,1,11,11,62,035,23,28,58,290,25,20,53,157,33,19,24,095,20*74

$GPGSA,A,2,20,11,28,,,,,,,,,,2.5,2.3,1.0*3C

$GPGGA,100127.143,3523.2236,N,13925.7320,E,1,03,2.3,28.6,M,39.5,M,,0000*66

$GPRMC,100126.143,A,3523.2224,N,13925.7360,E,13.41,214.27,141006,,*39

$GPGSA,A,2,20,11,28,,,,,,,,,,2.5,2.3,1.0*3C

$GPGGA,100126.143,3523.2224,N,13925.7360,E,1,03,2.3,28.6,M,39.5,M,,0000*60

$GPRMC,100125.146,A,3523.2245,N,13925.7345,E,6.70,120.90,141006,,*01

$GPGSA,A,2,20,11,28,,,,,,,,,,2.5,2.3,1.0*3C

あとGPS持って散歩してたら、でっかいヘビの抜け殻?死体?を見つけた。

DSC08771

臭かった。