在網路尋找 Raspberry Pi 相關的資訊時,看到有關 Pi 如何透過藍牙跟其他裝置連線,想到幾年前公司曾送給同仁一個 GPS,這個GPS是跟 PDA連接使用,也是透過藍牙來連線。想說試看看是否可以透過 Pi來連接這個 GPS。於是找一個藍牙 USB 接在 Pi,正確安裝驅動程式後,是否能讀取 GPS 相關資訊。
安裝藍牙主程式及工具:
$ sudo apt-get install bluetooth bluez-utils blueman
安裝完成後,看看系統是否能讀取藍牙USB:
$ sudo lsusb
顯示結果如下:(藍色那一行就是藍牙USB的位址及製造廠商)
Bus 001 Device 015: ID 0424:9512 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 016: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 017: ID 0bda:8176 Realtek Semiconductor Corp. RTL8188CUS 802.11n WLAN Adapter
Bus 001 Device 018: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)
檢視藍牙程式是否正常運作:
[ ok ] bluetooth is running.
如果要掃描其他藍芽裝置,可輸入以下指令:
Scanning ...
00:02:78:14:24:41 Leadtek 9559 series BT GPS
找到開周邊啟藍芽的GPS,設備位址 00:02:78:14:24:41會不一樣。
如果要查詢USB藍牙的設備位址,可以輸入以下指令查詢:
Ping 藍牙裝置看看是否回應 (以下範例是我的GPS設備位址)
Ping: 00:02:78:14:24:41 from 00:15:83:15:A3:10 (data size 44) ...
44 bytes from 00:02:78:14:24:41 id 0 time 51.27ms
44 bytes from 00:02:78:14:24:41 id 1 time 25.57ms
44 bytes from 00:02:78:14:24:41 id 2 time 27.74ms
3 sent, 3 received, 0% loss
顯示可以正常回應,但是這還不能接收GPS資訊,只是表示與GPS通訊正常而已。如果要接收資料需要建立通訊Port及啟動GPS Deamon。
步驟一:修改 /etc/bluetooth/rfcomm.conf
# RFCOMM configuration file.
rfcomm0 {
# Automatically bind the device at startup
bind yes;
# Bluetooth address of the device
device 00:02:78:14:24:41;
# RFCOMM channel for the connection
channel 1;
# Description of the connection
comment "Example Bluetooth device";
}
步驟二:啟動GPS Deamon
執行上述兩個步驟後,就可以啟動GPS程式。在SSH視窗執行 cgps 啟動GPS視窗:
$ cgps -s
-s : 是安靜模式,不要將GPS原始資料顯示在視窗
在x-windows可執行 xgps 啟動GPS視窗
Ubuntu Community :Using Bluetooth GPS
[安裝程序]
安裝藍牙主程式及工具:
$ sudo apt-get install bluetooth bluez-utils blueman
安裝完成後,看看系統是否能讀取藍牙USB:
$ sudo lsusb
顯示結果如下:(藍色那一行就是藍牙USB的位址及製造廠商)
Bus 001 Device 015: ID 0424:9512 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 016: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 017: ID 0bda:8176 Realtek Semiconductor Corp. RTL8188CUS 802.11n WLAN Adapter
Bus 001 Device 018: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)
$ sudo /etc/init.d/bluetooth status
[ ok ] bluetooth is running.
如果要掃描其他藍芽裝置,可輸入以下指令:
$ sudo hcitool scan
Scanning ...
00:02:78:14:24:41 Leadtek 9559 series BT GPS
找到開周邊啟藍芽的GPS,設備位址 00:02:78:14:24:41會不一樣。
如果要查詢USB藍牙的設備位址,可以輸入以下指令查詢:
$ sudo hciconfig
Ping 藍牙裝置看看是否回應 (以下範例是我的GPS設備位址)
$ sudo l2ping -c 3 00:02:78:14:24:41
Ping: 00:02:78:14:24:41 from 00:15:83:15:A3:10 (data size 44) ...
44 bytes from 00:02:78:14:24:41 id 0 time 51.27ms
44 bytes from 00:02:78:14:24:41 id 1 time 25.57ms
44 bytes from 00:02:78:14:24:41 id 2 time 27.74ms
3 sent, 3 received, 0% loss
顯示可以正常回應,但是這還不能接收GPS資訊,只是表示與GPS通訊正常而已。如果要接收資料需要建立通訊Port及啟動GPS Deamon。
步驟一:修改 /etc/bluetooth/rfcomm.conf
$ sudo nano /etc/bluetooth/rfcomm.conf
# RFCOMM configuration file.
rfcomm0 {
# Automatically bind the device at startup
bind yes;
# Bluetooth address of the device
device 00:02:78:14:24:41;
# RFCOMM channel for the connection
channel 1;
# Description of the connection
comment "Example Bluetooth device";
}
預設值都加了#當作註解,要將#拿掉。
gpsd /dev/rfcomm0
執行上述兩個步驟後,就可以啟動GPS程式。在SSH視窗執行 cgps 啟動GPS視窗:
$ cgps -s
-s : 是安靜模式,不要將GPS原始資料顯示在視窗
在x-windows可執行 xgps 啟動GPS視窗
$ xgps
[參考資料]
豆腐腦:Raspberry Pi 安裝USB Bluetooth DongleUbuntu Community :Using Bluetooth GPS
張貼留言