通信衛星が登場する以前、人類は星や地図、さらには陸上のLORAN (LoRaWANと混同しないでください ) ナビゲーション支援装置を使用して移動していました。スプートニクが地球を周回し、無線信号を発信し始めると、技術者たちは複数の衛星信号を使って地球上の人の位置を三角測量できることに気づきました。この認識から、膨大な作業を経て、米国は現在全地球測位システム(GPS)として知られている衛星測位システムを開発しました。
このシステムは、最近の国際的な対応システムとともに、珍しいものから、一般的な携帯電話で利用できる、どこにでもある安価なテクノロジーへと進化しました。独自のプロジェクトでこの技術を使用したい人のために、画面やマッピング ソフトウェアなしでGPSモジュールを単独で利用できます。
GPSモジュールをセットアップして、シリアル接続を介してArduinoボードに位置と時刻のデータを送信できます。これらのデバイスのセットアップは簡単です。この生データを有用な情報に変換するのに役立つライブラリがいくつか用意されており、この記事では、このテクノロジーを使い始めるためのいくつかの実験について概説します。
Arduino Uno GPSプロジェクト資料:
- Arduinoボード ( Uno を使用)
- u-blox NEO-6 GPSモジュールとアンテナ
- USB-TTLシリアルケーブル
- WS2812B「NeoPixel」RGB LEDとジャンパーワイヤー
- この記事で概説されているソフトウェア
はじめに: GPSモジュールが動作しているかどうかを確認する方法
キャプション: U-bloxソフトウェア。画面の左上にある緑色の接続アイコンに注意してください
ここでは、ArduinoでGPSモジュールを使用することに焦点を当てていますが、まずGPSが正しく動作していることを確認する必要があります。
1.アンテナをGPSユニットに接続します。
2.必要に応じてヘッダーピンをGPSモジュールにはんだ付けします。
3.USB-TTLケーブルをコンピューターに接続します。
4.ケーブルからの電源とグランドをUSBモジュールの電源とグランドに接続します。
5.TTL RxケーブルをGPS Txに接続し、TTL TxをGPS Rxに接続します。
何らかの信号を受信していることを確認するには、Arduino IDE (まだインストールしていない場合はインストールしてください) でCOMポートを開き、GPSボー レート (ここでは9600を使用) に設定します。データ出力はおそらく理解できないでしょうが、GPSがシリアル信号を受信または出力している場合は、何らかの「生存証明」表示が表示されます。GPS機能をさらに検査するには、次の手順に従います。
1.u-bloxソフトウェアをダウンロードしてください。
2.TTL経由で接続し、Arduino IDEと同様に適切なCOMポートを選択します。
3.インターフェースの左上にあるプラグ アイコンを介して接続します。
位置データ、頭上の衛星、おおよその地図上の位置をはっきりと表示できるようになりました。
正確さを確認したい場合は、緯度、経度の数値形式でデータをGoogleマップの検索バーに入力します。現在の場所から数フィート離れた場所、場合によっては屋内でも測定値が表示されます。
GPSモジュールArduino接続
次に、次の手順に従ってGPSモジュールをArduinoボードに接続します。
1.GitHubから TinyGPSPlus ライブラリをダウンロードし、Arduino IDEに .zipライブラリとして追加します。
2.例の下にある「DeviceExample」を開き、GPSBaudをデバイスの適切なレートに変更します (テストされたデバイスは9600でした)。
3.このコードをArduinoボードに送信します。
4.VCC GPSピンをArduinoのGPS +5Vピンに接続し、GNDをGNDに接続します。
5.RxをArduinoピン3に接続し、TxをArduinoピン4に接続します。
6.115200ボーでシリアル ポートを開くと、緯度と経度の座標が表示され、その後に日付と協定世界時 (UTC) が表示されます。UTCは、自分の場所に合わせて調整する必要があります。
7.設定を確認するには、Googleマップで場所を確認してください。
Arduino GPSをスピードメーターとして使う
キャプション: Arduino GPSが机の上に止まりました。
Arduinoボードを使用すると、GPSモジュールを使用して座標の読み取り以上のことが可能になります。デバイスが状況に反応するように設定することもできます。TinyGPSライブラリでは、さまざまな 時間と位置の値 が利用可能になります。
この実験では、時速キロメートル単位で速度を出力する機能を使用して、移動速度に応じてWS2812D RGB LEDの色を変更します。
- 赤 は停止した動き(速度値0)を示します。
- 黄色 は時速5キロメートルまでの速度を示します。
- 緑 は時速5キロメートルを超える速度を示します。
これらの値は必要に応じて変更または拡張できますが、記載されている値は徒歩で簡単に達成できる値に対応しています。スピード ライトのデモを設定するには、次の手順に従います。
1.Adafruit NeoPixelライブラリをインストールします。
2.このディレクトリから Speed-RGB.ino をダウンロードしてインストールします。
3.単一のRGBライトのデジタル入力をArduinoピン5に接続し、アースをアースに接続し、+5VパッドをArduinoボードの +5Vに接続します。これがGPSモジュールの5V電源に干渉する場合は、代わりにArduinoの3.3V電源で電力を供給できる可能性があります。
キャプション: 止まって、ゆっくり歩いて、速く歩く/走る。速度とともにぼやけが増すことに注意してください
スケッチをArduinoボードにインストールし、動かして光のフィードバックが得られるか確認します。コードにはシリアル出力も含まれているため、正しく動作しない場合は、シリアル モニターを開いて問題を特定することができます。RGB LEDを気にしたくない場合は、「GPS-Builtin-Blink.ino」という代替プログラムがあり、RGBルーチンと同じリポジトリで利用できます。ほとんどのArduinoボードに組み込まれているLEDを使用しますが、停止しているか移動しているかのみが表示されます。
スピードライトの操作デモは、楽しい第一歩ではありますが、GPSモジュールと組み合わせた場合にArduinoボードで何ができるかを少しだけ紹介するだけです。特に、TinyGPSPlusは非常に有能なライブラリのように見えますが、ニーズに合わせてさまざまなハードウェアだけでなく、利用可能な他のソフトウェア オプションも多数あります。