このGPSモジュールを使って、AVRでコントロールする「GPSデータ・ロガー」を作ろうと思っているのですが、なかなか進展していません。それでも途中段階としてGPS測定情報をシリアルポートから受け取るための準備だけはしました。準備と言っても大層な事はしていなくて、GPSモジュールの出力を「USB-シリアル変換モジュール」で受けて、PCに繋ぐだけです。そうすればWindowsであればTeratermのシリアルポート接続などを使えば情報が見えるようになります。
USB変換も秋月電子通商の(旧い)製品を利用しました。「24ピンDIP-ICサイズ FT232RL USB-シリアル変換モジュール[K-01977])というものです。この製品は3.3V出力ができるので、それをGPSモジュールに直結させれば済むかとおもったのですが、うまくいきませんでした。そこで5V出力(14ピンで「USB」と記されています。説明書には「USBバスよりの5V出力」と書かれています。)に3端子レギュレータをいれて3.3VにしてからGPSモジュールに繋いでいます。
まずWindows10で試してみました。USBケーブルを挿すと、標準ドライバで利用可能になりました。Teratermをシリアルポート接続すると、GPSモジュールからの情報が次々に表示されていきます。
次にNetBSD/i386でも試してみました。まずUSBケーブルを挿すと/var/log/messagesに以下のような情報が記録されます。
May 28 15:14:35 dbss /netbsd: ehci0: handing over full speed device on port 1 to uhci0
May 28 15:14:37 dbss /netbsd: uftdi0 at uhub0 port 1
May 28 15:14:37 dbss /netbsd: uftdi0: FTDI (0x403) FT232R USB UART (0x6001), rev 2.00/6.00, addr 2
May 28 15:14:37 dbss /netbsd: ucom0 at uftdi0 portno 1
ところがucom0というデバイスが出来ません。同じような問題を解決した情報がありました(玄箱NetBSDその4:USBシリアルからのログイン)ので、同じように対処してみました。これでデバイスが作られました。# mknod -l ucomそして/etc/remoteにエントリを追加しておきます。
ucom character major 66
# mknod /dev/ucom0 c 66 0
# ls -l /dev/ucom0
crw-rw-r-- 1 root wheel 66, 0 May 28 13:16 /dev/ucom0
# FT232R USB UARTここでtipを使ってシリアルポートに接続すると、GPS受信機からの情報が流れてくるようになりました。
ucom0:dv=/dev/ucom0:br#9600:pa=none:dc:
# tip ucom0
connected
$GSU-50 : Position Co.,Ltd.2003
$Firmware Checksum: 4d50
$TOW: 0
$WK: 1652
$POS: 6378137 0 0
$CLK: 96000
$CHNL:12
$Baud rate: 9600 System clock: 12.277MHz
$HW Type: S2AM
$Asic Version: 0x23
$Clock Source: GPSCLK
$Internal Beacon: None
$PSRF150,1,*12