chibimame が 2026年01月31日16時42分23秒 に編集
文章修正
本文の変更
1. 概要 GPSは、地球の周りを人工衛星が飛んで、衛星が送ってくる電波から自分の地球上の位置を割り出すそうです。その衛星が自分の位置からみるとどのように動いているのかなと興味と疑問が湧いてきました。 なんとなく地球の周りをまわるというのは、太陽や月のようにある方角からきてある方角に沈むのかなと思われます。これは、円軌道で地球をまわるということでイメージできますが、日本が打ち上げた準天頂衛星は、さらに疑問です。準天頂衛星は、8の字を描いた軌道とのことです。 それでなぜ落ちてこないのか、はたまた、準天頂というだけあって、頭の真上を飛んでいるのか、疑問がいっぱいわいてきます。 そこで、時計をかねて、SPRESENSEメインボードと2.8インチの液晶でコンパクトに衛星の航跡を表示するGPS時計を作ってみました。  2. 部品 | 部品番号 | 型番 |数量 | |:---:|:---:|:--- | | 1 | SPRESENSEメインボード |1 | | 2 | ILI9341搭載2.8インチSPI制御タッチパネル付TFT液晶 |1 | | 3 | プッシュスイッチ |1 | 3. 回路図
できるだけコンパクトにするため、拡張ボードは、使わず、メインボードだけ使用することにしました。メインボードに液晶を接続しました。プッシュスイッチは、表示のモードを変えるのに使用します。
できるだけコンパクトにするため、拡張ボードは、使わず、メインボードだけを使用することにし、メインボードと液晶を接続する事にしました。プッシュスイッチは、表示のモードを変えるのに使用します。
 4. 基板実装 写真を以下に示します。 SPRESENSEメインボードと液晶を接続したものです。    5. 動作仕様 5.1. 表示 表示は、以下の三種類の表示があります。各々に時刻表示がついています。 - 東経0度、緯度0度を中心とした地球表示 立ち上がり時の地図の表示です。 - 東経135度、緯度0度を中心とした地球表示 - 東経135度、北緯35度をを中心とした地球表示 観測者の位置からみた衛星の位置を表すために使います。 5.2. 機能表示 画面の表示機能としては、以下の機能があります。 - 時刻表示 デジタルで、JST(日本時間)を表示します。  - 地球の表示 経度0度を中心に地球を正面からみた表示です。  - 衛星位置の表示 該当する位置に衛星を表示します。  - 衛星の航跡表示 衛星の航跡を表示します。  6. プログラム
プログラムは、SPRESENSE SDKを用いて作成しました。ただ、CLI版もIDE版も完全に使いこなせなかったため、サンプルプログラムのnxhelloのソースにGPS関連機能を追加する形で作成しました。nxhelloのソースは、三つのソースモジュールで構成されており、そのうちの以下の二つのソースに機能追加しています。
拡張ボードの場合、液晶接続は、SPI4を使用しています。メインボードの場合は、SPI5を使用しますが、Ardiuno IDEでは、このポートの変更方法が分からず、プログラムは、SPRESENSE SDKを用いて作成しました。ただ、CLI版もIDE版も完全に使いこなせなかったため、サンプルプログラムのnxhelloのソースにGPS関連機能を追加する形で作成しました。nxhelloのソースは、三つのソースモジュールで構成されており、そのうちの以下の二つのソースに機能追加しています。
- nxhello_main.c GPS(GNSS)の時刻取り出し、緯度経度取り出し機能を追加し、衛星の航跡は、NMEAのGSV出力機能を追加しています。対象衛星は、GPS、QZ_L15(みちびき)とGLONASSとしました。 - nxhello_bkgd.c 衛星の画像処理機能を追加しました。地球の地図は、国土地理院の標高データを使用しています。 7. 現状と今後 当初の目的のGPS衛星の航跡を見ることは、現時点ではできませんでした。これは、SPRESENSE OSの自動起動がうまく設定できなかったため、常にパソコン付きでの動作を必要としたためです。このため、観測点は、天窓が見える室内に限られ、見える衛星数も限られてしまいました。設定を調査し、動作を確認して全天が見えるところで、試したいと思います。 また、準天頂衛星「みちびき」には、災危通報を出す機能もあるとのことで、時計だけの機能ではなく、このような通報を表示することができれば、もっと活用の範囲が広がると思います。 8.参考にしたウェブサイト 初めてのSPRESENSE SDKで以下のサイトは、大変参考になりました。ありがとうございました。 - Spresense SDK で LCD サンプルプログラムを動かしてみた その1、2、3 - SONY Spresenseで位置情報取得サンプル