使用機材
- Armadillo-IoTゲートウェイG3 M1-Dモデル 開発セット NTTドコモ対応版 (以下、Armadillo G3)
- GlobalSat WorldCom Corp.製GPSレシーバ BU-353S4
開発環境
動作確認手順
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ではデフォルトで無効となっています。
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
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を窓際や屋外に移動させて実験してください。