自律型クーラーから視覚障害者向けのナビゲーション補助装置まで、GPSモジュールを Arduino と組み合わせることで、面白くて楽しいものから実用的で実用的なものまで、無数のプロジェクトを実現できます。これらのプロジェクトに取り組む前に、GPSがどのように機能し、何ができるのか、そしてそれをArduinoに接続するにはどうすればよいのかを調べてみましょう。
GPSはどのように機能しますか?
すべてのGPS (Global Positioning Systemの略) ユニットは基本的に同じ方法で動作します。GPSネットワークは、衛星の正確な位置に関するデータを含む無線信号を放送しながら、正確な事前定義された軌道で地球を周回する24個の衛星で構成されています。各衛星の軌道とそれに伴う無線信号はそれぞれ異なります。
GPS受信機は次のように構成されます。
1.さまざまな衛星からの受信信号を受け入れます。
2.位置データとその送信時間を比較します。
3.この情報を使用して、受信機の正確な位置を三角測量します。
GPSデバイスは、2次元空間での位置を決定するために少なくとも3つの信号を必要とし、3次元空間での位置を決定するために少なくとも4つの信号を必要とします。場所、時間帯、信号を遮る構造物の有無に応じて、受信機は一度に最大8つの衛星を追跡できると予想されます。
Arduino GPS機能
GPS受信機は、位置データに基づいて、別の場所までの時間と距離、方位、さらには移動速度や速度 (位置のリアルタイムの変化と、ある場所から次の場所への移動時間を比較することによって) を判断できます。これはすべて、単一のGPSユニットが単独で動作している場合に発生します。
カスタム ソフトウェアやその他のGPS対応デバイスを追加すると、可能性は飛躍的に広がります。たとえば、GPS対応デバイス2台 (Arduinoとスマートフォンなど) を連携して使用することで、両方の位置データを比較または送信し、次のようなタスクを実行できます。
- 迷子になったペットを探す
- 学校から帰宅する子供を監視する
- ピクニックのときはクーラーボックスを持ち歩きましょう(便利でパーティーのトリックとしても最適)
速度と位置情報を使用して、ルートだけでなく時間の経過に伴う速度も追跡することで、ウェアラブルデバイスを充実させることができます (ランナーにとって特に便利な機能)。
プロジェクトに1つ以上のオブジェクトの位置、方向、速度に関する正確なデータが含まれる場合、GPSモジュールの操作方法を学ぶと、それらの実現に大いに役立ちます。
GPSモジュールをArduinoに接続する方法
GPSユニットはシリアル データを出力する機能を備えており、Arduinoにはシリアル情報を受信するさまざまな方法があるため、GPSユニットをArduinoに接続するのにはそれほど時間はかかりません。これらのデバイスを接続するには、次の手順に従ってください。
1.まず、適切なGPSモジュールを選択します。すべてのArduinoピンが電圧調整されているわけではないので、適切な電源を備えたGPSユニット、またはArduinoがGPSユニットを損傷しないように独自のレギュレータを備えたGPSユニットを選択していることを確認してください (たとえば、5Vボードの出力は、調整されていない3.3V GPSを損傷する可能性があります)。
2.互換性のあるGPS受信機を入手したら、それをArduinoからの5V電源とグランド ピンに接続します。GPSのRXピンとTXピンをArduinoのシリアル ピンに接続します。
3.Arduinoのシリアル モニターを使用して、GPSがデータを出力していることを確認します。多くのGPSモジュールは「コールド スタート」時間が長いことに注意してください。そのため、正しく接続されているかどうかを判断する前に、1 ~ 2分ほど待ってください。
最初のシリアル出力は意味不明に見えますが、これはGPSネットワークのネイティブ言語です。通常、$GPXXXで始まる行が表示されます。ここで、「XXX」は他の3つの文字です。これらの文字コードは、それがGPSデータであることを証明し、コード化されているデータの種類 (推定位置、速度など) に関する情報を提供します。
文字コードの後には、次の順序を表す一連の数字が続きます。
- タイムスタンプ
- 緯度
- 経度
- 信号の品質(修正済み/未修正など)
- 座標に使用されている衛星の数
- 高度に関する情報
- 訂正事項
この生データ(GPSが発明される前の標準で、現在すべてのGPSユニットの標準となっているNMEAデータと呼ばれます)は、それ自体では、一般ユーザーにとって簡単に読み取れず、役立つものでもありません。しかし、Arduino GPSライブラリをインストールすると、 TinyGPSライブラリ 生データを次のような形式で読み取り可能な情報に変換します。
場所: 緯度、経度 日付/時刻: XX/XX/XXXX XX:XX:XX.XX
ご覧のとおり、データは日、月、年、および100分の1秒までの時刻がタイムスタンプされた単純な座標として表示されます。
GPSとArduino
GPSモジュールは、地理的位置、高度、速度などに関する有用な情報を提供します。これらはすべて、さまざまなアプリケーションに実装できます。GPSは、地球を周回し、無線周波数を放射する高度な衛星群に基づいていますが、幸いなことに、このデータにアクセスして使用するために必要なツールとソフトウェアはすぐに入手でき、簡単に調べることができます。ArduinoとGPSモジュールがどのように連携するかについて詳しくは、実践的なArduino GPSチュートリアルをご覧ください 。