title0a.gif

Memorandumの小部屋

本ページは金銭授受を伴う行為を含むAuctionや商用Web Pageからの無断リンク・無断参照を禁じます。
無断リンク・無断参照が判明した時点で然るべき処置をとらさせて頂きます。


まるごとNMEAもどき SPRESENSE(メインボード+拡張ボード)編

 

 このWebページは「SONY SPRESENSE メインボード CXD5602PWBMAIN1 (M-14584)」・「SONY SPRESENSE 拡張ボード CXD5602PWBEXT1 (M-14585)」を用いてGNSSロガーを試作した経緯を記録として残した個人的なメモです。

 文中の一部の用語は下記を意味します。


− 目次 −

1.はじめに

2.プロトタイプの製作

3.まるごとNMEAもどき SPRESENSE(メインボード+拡張ボード)編のハードウエア製作

4.まるごとNMEAもどき SPRESENSE(メインボード+拡張ボード)編の仕様

5.記録データおよび公開スケッチ(spkファイル)

6.動作確認


1.はじめに

 「まるごとNMEA Arduino編」、 「まるごとNMEA Raspberry Pi Pico編」 、「まるごとNMEA RP2040 Zero編」、「電池ボックス電子工作(その23) まるごとNMEAボックス版」に続く製作記録です。 「SONY SPRESENSE メインボード」 のデバイスにはGNSS機能が搭載されており、サブメータ級測位補強サービス用のL1S信号を利用するこができます。 今回はこのL1S信号を利用できるGNSSロガーを製作しました。 製作したGNSSロガーは「SONY SPRESENSE メインボード」 搭載のGNSS機能のみを対象としており、外付け(別設)のGNSSモジュールには対応していません。

 スケッチ作成の開発環境はArduino IDEを利用しました。 製作当初はNMEAフォーマットの取得をするためにSPRESENSE SDKでスケッチ開発をしようと試みましたが、SPESENSE SDKのインストールに成功しませんでした。(原因不明です。) 「SONY SPRESENSE メインボード」 でもAdruino IDEでGNSS関連の個別データを取得することができますので、このデータをもとにNMEAフォーマットを生成することも考えました。 しかし、そもそもNMEAフォーマットを取得するのはGNSS関連の個別データを取得することが目的です。 そのため、今回はNMEAフォーマットを生成せずに、取得したGNSS関連の個別データをそのままCVS フォーマットもどきで記録するようにしました。 そのため「まるごとNMEA」ではなく「まるごとNMEAもどき」の製作となりました。 (いや、SPRESENSE SDKを利用するスキルがないため「もどき」になっただけの話です。)

 

2.プロトタイプの製作

 GNSSロガーの操作・機能は「まるごとNMEA RP2040 Zero編」を ベースにしてプロトタイプを試作しました。 ハードウエア面では「SONY SPRESENSE メインボード」 ・「SONY SPRESENSE 拡張ボード」の組み合わせではGNSS機能・SDカード機能を備えていますので操作・表示機能を追加するだけです。

 下記にプロトタイプの回路図、ブレッドボードを用いたプロトタイプ外観を掲載します。  このハードウエアでスケッチの作成にとりかかりました。

 

上記回路図をクリックすると原寸大の回路図をダウンロードできます。

【 プロトタイプ 回路図 】

 

【 プロトタイプ 試作品全体外観1 】

 

【 プロトタイプ 試作品全体外観2 】

 

3.まるごとNMEAもどき SPRESENSE(メインボード+拡張ボード)編のハードウエア製作

 プロトタイプでスケッチの概略作成と動作確認した後に「まるごとNMEAもどき SPRESENSE(メインボード+拡張ボード)編」の基板製作にとりかかりました。

 「SONY SPRESENSE 拡張ボード」の信号取出しコネクタはArduino用ユニバーサル基板に準拠していますので、秋月電子通商の「RoHS2非対応 Arduino用ユニバーサル基板 ガラスコンポジット[AE−ARDUINO_UNI−G] 通販コード P−06877 」 を利用しました。 この追加の基板は「SONY SPRESENSE 拡張ボード」の上から接続します。 そのため、「SONY SPRESENSE メインボード」 に実装されているGNSSアンテナの邪魔にならないような形状に凹状に加工しました。

 

ユニバーサル基板加工時の基板外観です。 右側の基板を利用しました。

【 追加基板の加工 】

 

 追加基板を取付けると「SONY SPRESENSE メインボード」 のリセットスイッチにアクセスすることがでなくなるためリセットスイッチSW4を追加しました。 回路図を下記に掲載します。

 

【 まるごとNMEAもどき SPRESENSE(メインボード+拡張ボード) 回路図 】

 

【 まるごとNMEAもどき SPRESENSE(メインボード+拡張ボード)  全体外観1 】

 

【 まるごとNMEAもどき SPRESENSE(メインボード+拡張ボード)  全体外観2 】

 

【 まるごとNMEAもどき SPRESENSE(メインボード+拡張ボード)  全体外観3 】

 

【 まるごとNMEAもどき SPRESENSE(メインボード+拡張ボード)  全体外観4 】

 

【 まるごとNMEAもどき SPRESENSE(メインボード+拡張ボード)  全体外観5 】

 

【 まるごとNMEAもどき SPRESENSE(メインボード+拡張ボード)  全体外観6 】

 

【 まるごとNMEAもどき SPRESENSE(メインボード+拡張ボード)  全体外観7 】

 

 このような追加基板をHAT(Hardware Attached on Top )と称することが多いようです。 本Webページでは追加基板と称します。

【 まるごとNMEAもどき SPRESENSE(メインボード+拡張ボード)  追加基板外観1 】

 

【 まるごとNMEAもどき SPRESENSE(メインボード+拡張ボード)  追加基板外観2 】

 

【 まるごとNMEAもどき SPRESENSE(メインボード+拡張ボード)  追加基板外観3 】

 

【 まるごとNMEAもどき SPRESENSE(メインボード+拡張ボード)  追加基板外観4 】

 

【 まるごとNMEAもどき SPRESENSE(メインボード+拡張ボード)  追加基板外観5 】

 

【 まるごとNMEAもどき SPRESENSE(メインボード+拡張ボード)  追加基板外観6 】

 

【 まるごとNMEAもどき SPRESENSE(メインボード+拡張ボード)  追加基板外観7 】

 

【 まるごとNMEAもどき SPRESENSE(メインボード+拡張ボード)  追加基板外観8 】

 

 上記製作ではモニター用コネクタに逆差しを防止できるコネクタを利用しましたが、脱着に力を要するためとても使い辛くなりました。 このコネクタの利用頻度は少ないため、逆差しは気になりますがピンソケットにしたほうが使いやすいと感じています。

 

4.まるごとNMEAもどき SPRESENSE(メインボード+拡張ボード)編の仕様

  上記ハードウエア製作後にスケッチのバージョンアップを繰返して下記仕様のGNSSロガ―となりました。 
 

項  目

仕  様

電源電圧

5Vdc (「SONY SPRESENSE メインボード」 のUSBコネクタから給電)

消費電流

消費電流は利用するSDカードにより異なります。

SDHCカード32GBの場合、約20mA以下でした。

GNSS

SONY SPRESENSE メインボード」 内蔵機能利用。
(外付けGNSSモジュールには未対応です。)

起動時モード選択

 電源投入時、もしくは、リセットスイッチSW4を押してリセットをかけた後にタクトスイッチSW1とSW2の状態で「まるごとNMEAもどき SPRESENSE(メインボード+拡張ボード)編」の動作を選択できます。

SW1

SW2

起動時モード

OFF

OFF

衛星タイプ GPS+QZSS_L1C/A+QZSS_L1S

OFF

ON

衛星タイプ GPS+QZSS_L1C/A

ON

OFF

衛星タイプ GPS+BeiDou+QZSS_L1C/A

ON

ON

ファイルマネージャー機能を起動します。 GNSSロガー機能は停止します。

ファイルマネージャー機能は「電池ボックス電子工作(その23) まるごとNMEAボックス版」をベースにしてヘッダー部分の表示を見直ししています。

  

EEPROM
機能

EEPROM機能は有りません。

 「まるごとNMEA Raspberry Pi Pico編」ではEEPROMでGNSSモジュールの設定ができましたが、「まるごとNMEAもどき SPRESENSE(メインボード+拡張ボード)編」では内蔵のGNSS機能を利用しますのでEEPROM 機能を設けませんでした。

シリアル
ポート
通信速度

Monitorライン : 460800bps(固定)

USBシリアル(メインボードUSB) : 460800bps(固定)

信号電圧レベル:3.3Vもしくは5V (「SONY SPRESENSE 拡張ボード」のJP1で設定します。)

SDカード

FAT16もしくはFAT32のマイクロSDカードで読み書きを確認しています。

タクトスイッチ
SW1

電源投入直後もしくはリセットスイッチSW4押してリセットした直後

前記の起動時モード選択を参照願います。

GNSSモジュール受信時

スイッチを押すごとにLED表示、ブザー発音有無を順次切り替えます。 (Step 0→1→2→3→4→0→1→2→…) デフォルトはStep3です。 

 

Step

LED表示

ブザー発音

有り

無し

無し

有り

無し

無し

有り

有り

 

タクトスイッチ
SW2

電源投入直後もしくはリセットスイッチSW4押してリセットした直後

前記の起動時モード選択を参照願います。

GNSSモジュール受信時

約3〜5秒連続押すことでロギング終了します。 (SDカードアクセス停止)

スライド
スイッチ
SW3

 SW3をオンすることで、GNSSモジュールのTXデータをMonitor−TXから出力します。 Monitor−TXはスケッチデバッグ用に設けた機能です。  通常の使い方ではTXデータを表示する必要はないので、SW3をオフで利用、もっと言えばSW3自体を設ける必要はありません。

LED表示

ブザー発音

注記:ブザー周波数はパラメータ設定となります。

 

状態

LED/ブザー

電源投入時
(リセット時)

時間

0.3s

 

0.3s

 

0.3s

 

0.3s

 

0.3s

 

0.3s

 

0.3s

 

0.3s

LED

赤色

消灯

緑色

消灯

青色

消灯

全色(白)

消灯

ブザー

3kHz

 

3kHz

 

3kHz

 

消音

 

3kHz

 

消音

 

3kHz

 

消音

起動時
モード表示

SW1:OFF SW2:OFF時 (衛星タイプ GPS+QZSS_L1CA+QZSS_L1S)

時間

0.1s

 

0.3s

 

0.1s

 

0.3s

 

0.1s

 

0.3s

LED

白色

消灯

白色

消灯

白色

消灯

ブザー

3kHz

 

消音

 

3kHz

 

消音

 

3kHz

 

消音

 

SW1:ON SW2:OFF時 (衛星タイプ GPS+QZSS_L1CA )

時間

0.1s

 

0.3s

 

0.1s

 

0.3s

 

0.1s

 

0.3s

 

1s

 

0.5s

LED

白色

消灯

白色

消灯

白色

消灯

白色

消灯

ブザー

3kHz

 

消音

 

3kHz

 

消音

 

3kHz

 

消音

 

3kHz

 

消音

 

SW1:OFF SW2:ON時 (衛星タイプ GPS+BeiDou+QZSS_L1CA)

時間

0.1s

 

0.3s

 

0.1s

 

0.3s

 

0.1s

 

0.3s

 

1s

 

0.5s

 

1s

 

0.5s

LED

白色

消灯

白色

消灯

白色

消灯

白色

消灯

白色

消灯

ブザー

3kHz

 

消音

 

3kHz

 

消音

 

3kHz

 

消音

 

3kHz

 

消音

 

3kHz

 

消音

 

SW1:ON SW2:OFF時 (ファイルマネージャー機能)

時間

0.1s

 

0.3s

 

0.1s

 

0.3s

 

0.1s

 

0.3s

 

1s

 

0.5s

 

1s

 

0.5s

 

1s

 

0.5s

LED

白色

消灯

白色

消灯

白色

消灯

白色

消灯

白色

消灯

白色

消灯

ブザー

3kHz

 

消音

 

3kHz

 

消音

 

3kHz

 

消音

 

3kHz

 

消音

 

3kHz

 

消音

 

3kHz

 

消音

   

ロギング
終了時

GNSSロギング時にSW2を長押しした場合 : 下記の繰返し

時間

0.5s

 

0.5s

LED

全色(白)

消灯

ブザー

消音

 

消音

SDカード
未検出時

下記の繰返し

時間

0.05s

 

0.15s

LED

赤色

消灯

ブザー

消音

 

消音

測位表示

測位表示期間(次行参照)のLED表示とブザ−発音

時間

測位不可/
2次元測位

3次元測位

3次元測位/
QZSS衛星(L1C/A)補足

3次元測位/
QZSS衛星(L1CA+L1S)補足

LED

赤色

緑色

青色

青色 + 緑色

ブザー

3kHz

4kHz

5kHz

5kHz

 

GNSS

ロガー

シーケンス

 

Step

状態

LED表示/ブザー発音 (前記項目参照)

電源投入時 (リセット時)

電源投入時 (リセット時)参照

起動時モード選択

起動時モード表示参照

SDカード初期設定

正常終了時:LED表示/ブザー発音 無し

異常終了時:SDカード未検出時

GNSSロガー データ記録

測位表示参照

記録終了時

SW2を約3〜5秒連続押 します。 終了時はこの操作することを強く推奨します。

ロギング終了時

 

格納ファイル

  • 格納ファイル名は「GNSS」+「000」を開始番号とした追番号+拡張子「.LOG」となります。

例 GNSS000.LOG → GNSS001.LOG → …

  • GNSSからの日時を取得できない場合はファイルのタイムスタンプは未設定です。 取得できた際には、取得した日時(JST)を使って更新日時のタイムスタンプを設定します。 更新日時以外の作成日時、アクセス日時は未設定です。

 

5.記録データおよび公開スケッチ(spkファイル)

  「まるごとNMEAもどき SPRESENSE(メインボード+拡張ボード)」で記録するデータはNMEAフォーマットではなく、取得したGNSS関連の個別データをCVS様式で記録するようにしました。 データ構造を下記に掲載します。 

 

GNSSロガー 取得情報

行数

情報

1行目

ヘッダー1:スケッチの識別・Versionに関する情報のデータです。

2行目

ヘッダー2:利用する衛星タイプの情報のデータです。

3行目以降

下記の識別記号A〜Dのデータ行を1ブロックとしたのデータブロックです。 各データは”,”(カンマ)で区切られています。 識別記号A,B,Dは1ブロック1行です。 識別ブロックBは補足した衛星数の行数となります。

 

識別
記号

データ列

備考

出力先

A

日付,時間(GMT),マイクロ秒,補足衛星数,測位確定状態,経度,緯度,高度,速度,方向

測位基本情報

Monitor

SDカード

両方

B

追番号(0〜),衛星タイプ,衛星番号,仰角,方位,信号レベル

補足衛星情報

補足衛星ごとに出力

・・・・・・・・・・

B

追番号(0〜),衛星タイプ,衛星番号,仰角,方位,信号レベル

C

測位状態,位置データ有無,PDOP値,HDOP値,VDOP値,TDOP値

測位補足情報

D

日時,時間(JST)

日本時間

Monitorのみ

  

 

 公開スケッチは下記spkファイルとさせていただきます。 spkファイルの書込みはSPRESENSE SDK上で行うようですが、冒頭に記載のようにSPRESENSE SDKのインストールに失敗していますので下記ファイルで書き込めるか、正常に動作するのか確認できていません。

    

公開スケッチ :   

jsk94_1_v1_0.spk (155,248バイト)

 

6.動作確認

 下記に実際にロギングしてSDカードに記録されたファイルの一部を掲載します。

 

クリックすると拡大できます。

【 SDファイル 先頭部分データ 】

 

クリックすると拡大できます。

【 SDファイル 衛星補足時データ(衛星タイプGPS+QZSS_L1C/A+QZSS_L1S) 】

 

クリックすると拡大できます。

【 SDファイル 衛星補足時データ(衛星タイプGPS+BeiDou+QZSS_L1C/A) 】

 

 

 下記にMonitor出力されたデータの一部を掲載します。 識別記号A,B,C行はSDカードと同一情報が出力されていますが、識別記号D行はMonitorにのみ出力されています。

 

クリックすると拡大できます。

【 Monitor出力例(衛星タイプGPS+QZSS_L1CA+QZSS_L1S) 】

 

 なお、自作スケッチ内ではUSBシリアルポートは未使用ですが、GNSSライブラリ内で使っているようです。 USBシリアルポートから下記のデータが送信されています。

 

【 USBシリアルポート モニタ例 】

 

 ファイルマネージャー機能の使い方は「電池ボックス電子工作(その23) まるごとNMEAボックス版」の”6.「まるごとNMEAボックス・シリアル版」用スケッチ”と同一です。 下記に動作例を掲載します。

 

Start SD Card File Maneger for the Spresense Main Board and the Extention Board.


>list

***** File List *****
GNSS000.LOG 57
GNSS001.LOG 10002
GNSS002.LOG 14393
GNSS003.LOG 1558350
GNSS004.LOG 633
***** Done *****
>gnss004.log

***** Read [ gnss004.log ] *****
Spresense GNSS Logger using Main Board and Extender Boad (v1.0 460800bps)
Satellite system : GPS + QZSS_L1C/A + QZSS_L1S
A, 1980/01/06, 00:00:01, 000607, 0, No-Fix, No latitude, No longitude, No altitude, No velocity, No direction
C, 1 , 0 , -1.000000 , -1.000000 , -1.000000 , -1.000000
A, 1980/01/06, 00:00:02, 000608, 0, No-Fix, No latitude, No longitude, No altitude, No velocity, No direction
C, 1 , 0 , -1.000000 , -1.000000 , -1.000000 , -1.000000
A, 1980/01/06, 00:00:03, 000633, 0, No-Fix, No latitude, No longitude, No altitude, No velocity, No direction
C, 1 , 0 , -1.000000 , -1.000000 , -1.000000 , -1.000000

***** Done *****
Start time [ms] : 22743
End time [ms] : 22759
Execution time [ms] : 16
>del

Error : File [ ] not found.
>delgnss000.log

Do you delete the file [gnss000.log] ? [ y:Yes <>y:No ] y
Do you wish to cancel the deletion? [gnss000.log] ? [ n:No <>n:Yes ] n
***** Done *****
>list

***** File List *****
GNSS001.LOG 10002
GNSS002.LOG 14393
GNSS003.LOG 1558350
GNSS004.LOG 633
***** Done *****
>

 

 取得したログファイル(ほぼ7時間)のデータをもとに衛星補足状態、補足した衛星の受信状態の時間変化をグラフ化しました。 グラフの一例を下記に掲載します。

ロギング時設定

まるごとNMEAもどき SPRESENSE(メインボード+拡張ボード)設置状態

南西方向(北東方向建物で遮蔽)  

衛星タイプ

GPS + QZSS_L1C/A + QZSS_L1S

 

QCA : L1C/A信号  Q1S : L1S信号

【 GNSS補足衛星数 】

 

 補足できた衛星でも信号強度もしくは仰角が0となっている場合があります。 これらの衛星を除外した補足衛星数を有効衛星数としてカウントしてみました。

【 GNSS補足 有効衛星数 】

 

 衛星番号199はみちびき3号機で静止衛星軌道上にあります。 衛星番号196はみちびき初号機後継機で準天頂軌道です。

【 L1C/A信号を受信できた衛星の信号強度変化 】

 

 衛星番号189はみちびき3号機で静止衛星軌道上にありますが、間欠的にしか受信できていません。 衛星番号186はみちびき初号機後継機で準天頂軌道です。

【 L1S信号を受信できた衛星の信号強度変化 】

 

 目次に戻る  Memorandumの小部屋 へ戻る   ホームページへ戻る


End of This Page.