LoginSignup
0
1

More than 1 year has passed since last update.

Ubuntu18.04でDrogger GPSを接続する

Last updated at Posted at 2021-09-09

DroggerのGPSモジュールは、Androidアプリから簡単に動作する.
しかし,Ubuntu側と接続することが難しかった.

Bluetooth接続を行うと,すぐに切断されてしまうのである.
調べると,
使用するBluetoothプロファイルをSPPにしなけらばならないらしい.

標準ではL2CAPを優先的に利用したがる様子なので,
RFCOMMを明示的に利用し,SPPを使うことで解決した.

SPPの詳細は以下のサイトを参照のこと.
このサイトは他のプロファイルについても,とても分かりやすい.

環境

  • Ubuntu 18.04.3LTS
  • DG-PRO1RWS

Bluetooth接続

スクリプトを書いたので,こちらをクローンする.

git clone https://github.com/ousagi-sama/spp-connect-bash-for-ubuntu18.04.git
cd spp-connect-bash-for-ubuntu18.04

以下の情報を元に,接続する.
- ID : 仮想ポートのID、基本的には0でよい
- ADDRESS : 接続するデバイスアドレス
- BAUDRATE : ボーレート

なお,DG-PRO1RWSのボーレートは,230400である.

bash spp-connect.sh [ID] [ADDRESS] [BAUDRATE]

一度通信行えば.spp-connect-configにその情報が保存されるため、
次回からは、IDなどの情報を省略できる

bash spp-connect.sh

仮想デバイスは/dev/rfcomm[ID]として表示される.
接続を切断するときは、Enterで仮想デバイスが解放される.

接続後の確認

参考程度に,接続を確認したい場合,catコマンドを利用すると楽.

cat /dev/rfcomm[ID]

接続用Scriptの中身

git cloneしたくない人用に以下にその内容を残す.
※ただし,最新版ではない可能性があるため注意.

#!/bin/bash
#
#使い方:#
#    spp-connect <[id] [address] [baudrate]>#

if [ $# -eq 3 ];then
    id=$1; address=$2; baudrate=$3
    echo "$id $address $baudrate" > .spp-connect-config
elif [ $# -eq 0 ];then
    if [ ! -e ".spp-connect-config" ];then 
        echo ".spp-connect-config is not found."
        exit 1
    fi
    set $(cat .spp-connect-config)
    id=${1}; address=${2}; baudrate=${3}
else
    text=$(cat $0 | grep "^#.*#$")
    echo -e "\033[33m${text//#}\033[32m"
    exit 1
fi

# 仮想ポートの作成
sudo rfcomm bind $id $address
sudo chmod 777 /dev/rfcomm$id
sudo stty -F /dev/rfcomm$id $baudrate cs8

read -p "Press [Enter] key to resume."

# 仮想ポートでの解除
sudo rfcomm release $id

参考

spp-connect-bash-for-ubuntu18.04
DG-PRO1RWS

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1