ブログ

Armadillo-IoT G3でのGPSレシーバ動作確認

at_shigehisa.y…
2018年8月6日 9時52分
使用機材
開発環境
動作確認手順

BU-353S4のArmadillo G3での動作確認は、以下の手順で行いました。

1. PL2303デバイスドライバ追加

BU-353S4は、Armadillo側(Armadillo G3 Linuxカーネル v4.9-x1-at2)から見ると、シリアルデバイス(Prolific社製USBシリアル変換コントローラ PL2303使用)として認識されます。 しかしPL2303用デバイスドライバ(USB Prolific 2303 Single Port Serial Driver)は、Armadillo G3 Linuxカーネル v4.9-x1-at2ではデフォルトで無効となっています。

TAG index

PL2303用デバイスドライバをLinuxカーネルに追加するために、以下のコマンドを実行してコンフィグレーションツールを起動します。

atmark@atde7:~/work/linux-4.9-x1-at1$ make ARCH=arm menuconfig

コンフィグレーション画面内では、以下の箇所(USB Prolific 2303 Single Port Serial Driver)を変更して、PL2303用デバイスドライバをLinuxカーネルに追加します。

Device Drivers
    -> USB support
        -> USB Serial Converter support
            -> USB Prolific 2303 Single Port Serial Driver

TAG index

2. Linuxカーネルビルド

PL2303用デバイスドライバを追加したら、Linuxカーネルをビルドします。

atmark@atde7:~/work/linux-4.9-x1-at1$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
atmark@atde7:~/work/linux-4.9-x1-at1$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- LOADADDR=0x80008000 uImage

念のため、イメージファイルが生成されていることを確認します。

atmark@atde7:~/work/linux-4.9-x1-at1$ ls arch/arm/boot/uImage
arch/arm/boot/uImage

3. Linuxカーネルイメージの書き換え

Armadillo G3マニュアル「11.2.2. Linuxカーネルイメージの書き換え」を参考にして、先ほどビルドで生成したuImageをArmadillo G3に書き込みます。 書き込みが終了したら、Armadillo G3を再起動します。

4. BU-353S4接続

BU-353S4をArmadillo G3のUSBポートに接続して、デバイスが認識されていることを確認します。

root@armadillo:~# usb 1-1: new full-speed USB device number 2 using ci_hdrc
pl2303 1-1:1.0: pl2303 converter detected
    usb 1-1: pl2303 converter now attached to ttyUSB4
root@armadillo:~# ls -l /dev/ttyUSB*
crw-rw---- 1 root dialout 188, 0 Aug  3 01:30 /dev/ttyUSB0
crw-rw---- 1 root dialout 188, 1 Aug  3 01:30 /dev/ttyUSB1
crw-rw---- 1 root dialout 188, 2 Aug  3 01:30 /dev/ttyUSB2
crw-rw---- 1 root dialout 188, 3 Aug  3 01:29 /dev/ttyUSB3
crw-rw---- 1 root dialout 188, 4 Aug  3 01:32 /dev/ttyUSB4
root@armadillo:~# lsusb
Bus 002 Device 004: ID 0cf3:3004 Atheros Communications, Inc. AR3012 Bluetooth 4.0
Bus 002 Device 005: ID 2c7c:0125
Bus 002 Device 002: ID 0424:3503 Standard Microsystems Corp.
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

今回の環境では、BU-353S4は/dev/ttyUSB4にアタッチされ、Armadillo G3で正常に認識されていることが分かります。

5. GPSデーモンのインストールおよび確認

GPSレシーバからのデータ受信/フォーマットするためのデーモン(gpsd)を、以下のコマンドを実行してインストールします。

root@armadillo:/dev# apt-get install gpsd

以下のコマンドを実行して、gpsdが起動されていることを確認します。

root@armadillo:~# service gpsd status
● gpsd.service - GPS (Global Positioning System) Daemon
Loaded: loaded (/lib/systemd/system/gpsd.service; indirect; vendor preset: en
Active: active (running) since Fri 2018-08-03 02:13:18 UTC; 1min 12s ago
Main PID: 21786 (gpsd)
CGroup: /system.slice/gpsd.service
        mq21786 /usr/sbin/gpsd -N
 
Aug 03 02:13:18 armadillo systemd[1]: Started GPS (Global Positioning System) Da

6. ボーレート設定

BU-353S4のGPSデータ通信速度は4800bpsです。これに対してttyUSB4のボーレートはデフォルトで9600bpsですので、以下のコマンドを実行して、ボーレートを4800bpsに変更します。

root@armadillo:~# stty -F /dev/ttyUSB4 4800

7. GPS受信データの表示

以下のコマンドを実行すると、GPS受信データがコンソールに表示されます。

root@armadillo:~# cat /dev/ttyUSB4
$GPGGA,071643.000,3542.8879,N,13942.3164,E,1,06,2.5,20.6,M,39.3,M,,0000*64
$GPGSA,A,3,19,06,09,17,23,03,,,,,,,3.5,2.5,2.5*37
$GPRMC,071643.000,A,3542.8879,N,13942.3164,E,0.20,0.00,020818,,,A*6B
$GPGGA,071644.000,3542.8878,N,13942.3165,E,1,06,2.5,20.6,M,39.3,M,,0000*63
$GPGSA,A,3,19,06,09,17,23,03,,,,,,,3.5,2.5,2.5*37
$GPRMC,071644.000,A,3542.8878,N,13942.3165,E,0.06,0.00,020818,,,A*68
$GPGGA,071645.000,3542.8878,N,13942.3165,E,1,05,2.7,20.3,M,39.3,M,,0000*66
$GPGSA,A,3,06,09,17,23,03,,,,,,,,3.7,2.7,2.5*3F
$GPRMC,071645.000,A,3542.8878,N,13942.3165,E,0.26,0.00,020818,,,A*6B
$GPGGA,071646.000,3542.8879,N,13942.3164,E,1,05,2.7,20.4,M,39.3,M,,0000*62
$GPGSA,A,3,06,09,17,23,03,,,,,,,,3.7,2.7,2.5*3F
$GPRMC,071646.000,A,3542.8879,N,13942.3164,E,0.00,0.00,020818,,,A*6C
$GPGGA,071647.000,3542.8879,N,13942.3164,E,1,05,2.7,20.4,M,39.3,M,,0000*63
$GPGSA,A,3,06,09,17,23,03,,,,,,,,3.7,2.7,2.5*3F
$GPGSV,3,1,12,06,67,002,23,09,57,088,35,17,48,171,38,23,33,053,44*70
$GPGSV,3,2,12,03,06,057,24,05,15,250,21,07,02,130,17,19,70,200,04*77
$GPGSV,3,3,12,02,31,307,,12,15,286,,57,06,260,,25,00,323,*70
注意

BU-353S4では、GPS衛星の受信状態を本体のLEDで確認できます。

  • LED OFF: GPS受信機の電源がOFF
  • LED ON : No-Fix (GPS信号検索中)
  • LED点滅: Fix

LEDがOFFまたはONの場合、GPS受信データ表示コマンド(cat /dev/ttyUSB4)で表示される値は無効なデータです。 また、GPS受信感度は変動する場合があり、特に屋内では受信感度が下がります。 LEDが点滅していない場合は、BU-353S4を窓際や屋外に移動させて実験してください。