(57)【特許請求の範囲】
【請求項１】
時系列な自装置の振動の大きさを検出する振動検出手段と、
前記振動検出手段によって検出された自装置の振動の大きさに基づいて予め設定した時間間隔毎に自装置の振動の大きさを検出して、当該時間間隔毎の自装置の振動の大きさと閾値とを比較してビットコードを検出して、当該ビットコードが予め設定した始点条件に合致するか否かを判断して通信の始点を検出する始点検出手段と、
前記始点検出手段によって通信の始点が検出された後の前記時間間隔毎の自装置の振動の大きさと前記閾値とを比較してビットコードを検出する信号変換手段と、
前記信号変換手段によって検出されたビットコードに応じた情報を出力する出力手段と、
を備え、
前記始点検出手段は、閾値を変更して、変更した閾値毎に前記ビットコードを検出して前記始点条件に合致するか否かを判断して、当該ビットコードが当該始点条件に合致した場合に、通信の始点を検出すると共に当該場合の閾値を前記信号変換手段が用いる閾値に設定し、
前記始点検出手段は、予め設定した始点ビットコードと検出したビットコードとを比較することによって、前記始点条件に合致するか否かを判断する、振動通信装置。
【請求項２】
前記出力手段は、予めビットコードと受信情報との対応関係を記憶しておき、当該対応関係に基づいて前記信号変換手段によって検出されたビットコードから受信情報を特定して、当該受信情報を出力する請求項１に記載の振動通信装置。
【請求項３】
前記振動検出手段は、自装置の振動の大きさとして自装置の加速度を検出する請求項１又は２に記載の振動通信装置。
【請求項４】
送信する送信情報を入力する入力手段と、
前記入力手段によって入力された送信情報に応じたビットコードの前に、前記始点条件に合致するビットコードを付加する信号生成手段と、
前記信号生成手段によって生成されたビットコードに応じて、前記時間間隔毎に自装置を振動させる振動手段と、
を更に備える請求項１〜３の何れか一項に記載の振動通信装置。
【請求項５】
振動通信装置による振動通信方法であって、
時系列な自装置の振動の大きさを検出する振動検出ステップと、
前記振動検出ステップにおいて検出された自装置の振動の大きさに基づいて予め設定した時間間隔毎に自装置の振動の大きさを検出して、当該時間間隔毎の自装置の振動の大きさと閾値とを比較してビットコードを検出して、当該ビットコードが予め設定した始点条件に合致するか否かを判断して通信の始点を検出する始点検出ステップと、
前記始点検出ステップにおいて通信の始点が検出された後の前記時間間隔毎の自装置の振動の大きさと前記閾値とを比較してビットコードを検出する信号変換ステップと、
前記信号変換ステップにおいて検出されたビットコードに応じた情報を出力する出力ステップと、
を含み、
前記始点検出ステップにおいて、閾値を変更して、変更した閾値毎に前記ビットコードを検出して前記始点条件に合致するか否かを判断して、当該ビットコードが当該始点条件に合致した場合に、通信の始点を検出すると共に当該場合の閾値を前記信号変換ステップにおいて用いられる閾値に設定し、
前記始点検出ステップにおいて、予め設定した始点ビットコードと検出したビットコードとを比較することによって、前記始点条件に合致するか否かを判断する、振動通信方法。
【請求項６】
振動通信装置に振動通信処理をさせる振動通信プログラムであって、
前記振動通信装置を、
時系列な自装置の振動の大きさを検出する振動検出手段と、
前記振動検出手段によって検出された自装置の振動の大きさに基づいて予め設定した時間間隔毎に自装置の振動の大きさを検出して、当該時間間隔毎の自装置の振動の大きさと閾値とを比較してビットコードを検出して、当該ビットコードが予め設定した始点条件に合致するか否かを判断して通信の始点を検出する始点検出手段と、
前記始点検出手段によって通信の始点が検出された後の前記時間間隔毎の自装置の振動の大きさと前記閾値とを比較してビットコードを検出する信号変換手段と、
前記信号変換手段によって検出されたビットコードに応じた情報を出力する出力手段と、
して機能させ、
前記始点検出手段は、閾値を変更して、変更した閾値毎に前記ビットコードを検出して前記始点条件に合致するか否かを判断して、当該ビットコードが当該始点条件に合致した場合に、通信の始点を検出すると共に当該場合の閾値を前記信号変換手段が用いる閾値に設定し、
前記始点検出手段は、予め設定した始点ビットコードと検出したビットコードとを比較することによって、前記始点条件に合致するか否かを判断する、振動通信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、振動によって通信を行う振動通信装置、振動通信方法及び振動通信プログラムに関する。
【背景技術】
【０００２】
従来、スマートフォンやタブレット型端末等のスマート端末間で端末の振動を用いたデータ通信方式が存在する。非特許文献１では、反射型フォトセンサを用い、端末の振動を通信に利用した手法が提案されている。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】T.Tomoki and K. Eiji,Vibration-based near field data communications. IEICE technical report,108(398):7-12,2009-01-15.
【発明の概要】
【発明が解決しようとする課題】
【０００４】
非特許文献１に記載された方法では、情報送信側である端末の振動を受信側で読み取り復号を行っている。受信側での振動の読み取りには、上述したように反射型フォトセンサを利用しており、反射型フォトセンサが搭載されていないスマートフォンやタブレット型端末等のスマート端末間での通信を行うことができない。
【０００５】
本発明は、上記の問題点を鑑みてなされたものであり、振動による通信を反射型フォトセンサ等の特殊なデバイスを必要とせずに行うことを可能とする振動通信装置、振動通信方法及び振動通信プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記の目的を達成するために、本発明に係る振動通信装置は、時系列な自装置の振動の大きさを検出する振動検出手段と、振動検出手段によって検出された自装置の振動の大きさに基づいて予め設定した時間間隔毎に自装置の振動の大きさを検出して、当該時間間隔毎の自装置の振動の大きさと閾値とを比較してビットコードを検出して、当該ビットコードが予め設定した始点条件に合致するか否かを判断して通信の始点を検出する始点検出手段と、始点検出手段によって通信の始点が検出された後の時間間隔毎の自装置の振動の大きさと閾値とを比較してビットコードを検出する信号変換手段と、信号変換手段によって検出されたビットコードに応じた情報を出力する出力手段と、を備える。
【０００７】
本発明に係る振動通信装置では、送信側の装置と接触する等して、送信側の装置から振動を検出することで、通信の始点を検出し、また、始点の後に続く信号を検出することができる。上記のように本発明に係る振動通信装置では、自装置の振動を検出することができれば受信を行うことができる。即ち、本発明に係る振動通信装置によれば、振動による通信を反射型フォトセンサ等の特殊なデバイスを必要とせずに行うことができる。
【０００８】
始点検出手段は、閾値を変更して、変更した閾値毎にビットコードを検出して始点条件に合致するか否かを判断して、当該ビットコードが当該始点条件に合致した場合に、通信の始点を検出すると共に当該場合の閾値を信号変換手段が用いる閾値に設定する。この構成によれば、送信側の振動の強さによらずに、適切に信号を検出することができる。
【０００９】
始点検出手段は、予め設定した始点ビットコードと検出したビットコードとを比較することによって、始点条件に合致するか否かを判断する。この構成によれば、より確実に始点を検出することができ、より確実に本発明を実施することができる。
【００１０】
出力手段は、予めビットコードと受信情報との対応関係を記憶しておき、当該対応関係に基づいて信号変換手段によって検出されたビットコードから受信情報を特定して、当該受信情報を出力することとすることができる。この構成によれば、文字等の情報を確実に出力することができる。
【００１１】
振動検出手段は、自装置の振動の大きさとして自装置の加速度を検出することとすることができる。この構成によれば、より確実に自装置の振動の大きさを検出することができ、より確実に本発明を実施することができる。
【００１２】
振動通信装置は、送信する送信情報を入力する入力手段と、入力手段によって入力された送信情報に応じたビットコードの前に、始点条件に合致するビットコードを付加する信号生成手段と、信号生成手段によって生成されたビットコードに応じて、時間間隔毎に自装置を振動させる振動手段と、を更に備えることとすることができる。この構成によれば、振動通信装置を送信側の装置として構成することができる。
【００１４】
ところで、本発明は、上記のように振動通信装置の発明として記述できる他に、以下のように振動通信方法及び振動通信プログラムの発明としても記述することができる。これはカテゴリ等が異なるだけで、実質的に同一の発明であり、同様の作用及び効果を奏する。
【００１５】
即ち、本発明に係る振動通信方法は、振動通信装置による振動通信方法であって、時系列な自装置の振動の大きさを検出する振動検出ステップと、振動検出ステップにおいて検出された自装置の振動の大きさに基づいて予め設定した時間間隔毎に自装置の振動の大きさを検出して、当該時間間隔毎の自装置の振動の大きさと閾値とを比較してビットコードを検出して、当該ビットコードが予め設定した始点条件に合致するか否かを判断して通信の始点を検出する始点検出ステップと、始点検出ステップにおいて通信の始点が検出された後の時間間隔毎の自装置の振動の大きさと閾値とを比較してビットコードを検出する信号変換ステップと、信号変換ステップにおいて検出されたビットコードに応じた情報を出力する出力ステップと、を含み、始点検出ステップにおいて、閾値を変更して、変更した閾値毎にビットコードを検出して始点条件に合致するか否かを判断して、当該ビットコードが当該始点条件に合致した場合に、通信の始点を検出すると共に当該場合の閾値を信号変換ステップにおいて用いられる閾値に設定し、始点検出ステップにおいて、予め設定した始点ビットコードと検出したビットコードとを比較することによって、始点条件に合致するか否かを判断する。
【００１６】
また、本発明に係る振動通信プログラムは、振動通信装置に振動通信処理をさせる振動通信プログラムであって、振動通信装置を、時系列な自装置の振動の大きさを検出する振動検出手段と、振動検出手段によって検出された自装置の振動の大きさに基づいて予め設定した時間間隔毎に自装置の振動の大きさを検出して、当該時間間隔毎の自装置の振動の大きさと閾値とを比較してビットコードを検出して、当該ビットコードが予め設定した始点条件に合致するか否かを判断して通信の始点を検出する始点検出手段と、始点検出手段によって通信の始点が検出された後の時間間隔毎の自装置の振動の大きさと閾値とを比較してビットコードを検出する信号変換手段と、信号変換手段によって検出されたビットコードに応じた情報を出力する出力手段と、して機能させ、始点検出手段は、閾値を変更して、変更した閾値毎にビットコードを検出して始点条件に合致するか否かを判断して、当該ビットコードが当該始点条件に合致した場合に、通信の始点を検出すると共に当該場合の閾値を信号変換手段が用いる閾値に設定し、始点検出手段は、予め設定した始点ビットコードと検出したビットコードとを比較することによって、始点条件に合致するか否かを判断する。
【発明の効果】
【００１７】
本発明によれば、自装置の振動を検出することができれば受信を行うことができるので、振動による通信を反射型フォトセンサ等の特殊なデバイスを必要とせずに行うことができる。
【図面の簡単な説明】
【００１８】
【図１】本発明の実施形態に係る振動通信装置の機能構成を示す図である。
【図２】コード管理部に記憶される情報の例を示す図である。
【図３】振動通信装置において検出される時系列の加速度の例を示すグラフである。
【図４】本発明の実施形態に係る振動通信装置のハードウェア構成を示す図である。
【図５】本発明の実施形態に係る振動通信装置で情報の送信時に実行される処理（振動通信方法）を示すシーケンス図である。
【図６】本発明の実施形態に係る振動通信装置で情報の受信時に実行される処理（振動通信方法）を示すシーケンス図である。
【図７】情報の受信時において始点を検出する処理を示すフローチャートである。
【図８】情報の受信時において受信情報を特定する処理を示すフローチャートである。
【図９】本発明の実施形態に係る振動通信プログラムの構成を、記録媒体と共に示す図である。
【発明を実施するための形態】
【００１９】
以下、図面と共に本発明に係る振動通信装置、振動通信方法及び振動通信プログラムの実施形態について詳細に説明する。なお、図面の説明においては同一要素には同一符号を付し、重複する説明を省略する。
【００２０】
図１に本実施形態に係る振動通信装置１００を示す。振動通信装置１００は、振動によって他の装置との間で通信を行う装置である。具体的には、振動通信装置１００は、ユーザの操作によって別の振動通信装置２００と接触させて自装置１００を振動させて、その振動を別の振動通信装置２００に伝えることで情報を送信する。また、振動通信装置１００は、ユーザの操作によって別の振動通信装置３００と接触させて、別の振動通信装置３００から振動を伝えられることで情報を受信する。
【００２１】
振動通信装置１００は、具体的には、ユーザによって携帯される携帯端末であり、例えば、スマートフォンやタブレット型のスマート端末に相当する。また、振動通信装置１００は、振動による通信機能に加えて、例えば、移動体通信機能等の電波による通信機能を備えていてもよい。
【００２２】
図１に示すように、振動通信装置１００は、機能的な構成要素として、コード管理部１１０と、送信部１２０と、受信部１３０とを備えて構成されている。
【００２３】
コード管理部１１０は、振動により情報の送受信が行われる際に参照される情報を格納する手段である。コード管理部１１０は、具体的には、図２に示すようなテーブルに情報を格納することで情報を記憶する。図２に示すように、コード管理部１１０は、１以上のビットからなる２進数表記されたビットコード（ビット列）に情報を対応付けて記憶している。ビットコードに対応付けられる情報は、振動によって送信あるいは受信される情報に対応する。この情報は、図２に示すように、例えば、文字（数字や記号を含む）である。また、この情報は、制御情報等の文字以外の情報が含まれていてもよい。２進数表記されたビットコードは、一般的に使用されているＡＳＣＩＩ文字コードを利用してもよい。あるいは、独自の文字コードを作成してそれを利用してもよい。コード管理部１１０に格納される情報は、例えば、振動通信装置１００の製造者あるいはユーザによって予め記憶され、管理される。
【００２４】
コード管理部１１０は、後述するように文字等の情報が入力されると、当該文字に対応付けて記憶しているビットコードを出力する。また、コード管理部１１０は、後述するようにビットコードが入力されると、当該ビットコードに対応付けて記憶している情報を出力する。
【００２５】
送信部１２０は、振動による情報の送信を行うための手段である。送信部１２０は、入力部１２１と、信号生成部１２２と、振動制御部１２３とを含んで構成されている。
【００２６】
入力部１２１は、振動によって送信する送信情報を入力する入力手段である。この入力は、例えば、振動通信装置１００のユーザによる入力操作を受け付ける、あるいは他のモジュールや装置から送信された入力情報を受け付けることによって行われる。入力される送信情報は、任意の情報を利用することができる。例えば、文字列、記号列又は数字列、若しくはそれらの組み合わせを送信情報とすることができる。また、入力部１２１は、上記の情報以外にビットコードを入力情報として入力することとしてもよい。入力部１２１は、入力した送信情報を信号生成部１２２に出力する。
【００２７】
信号生成部１２２は、振動によって送信する送信信号を生成する信号生成手段である。信号生成部１２２は、入力部１２１から送信情報が入力されると入力された送信情報に応じたビットコードを生成する。具体的には、入力部１２１から入力された送信情報をコード管理部１１０に出力して、コード管理部１１０から当該送信情報に応じたビットコードを入力する。送信情報を構成する個々の情報（例えば、文字列を構成する個々の文字）毎に当該情報に対応付けられてコード管理部１１０に記憶されているビットコードを取得して、それらのビットコードを順番につなげて一つのビットコードを生成することとしてもよい。なお、入力部１２１から入力された送信情報がビットコード自体であった場合には、コード管理部１１０からビットコードを取得する必要はない。
【００２８】
信号生成部１２２は、上記のように生成したビットコードの先頭に始点ビットコードを、末尾に終点ビットコードを付加する。始点ビットコードは、振動による情報の送信開始（始点条件）を示すビットコードであり、予め決められて信号生成部１２２に記憶されている。終点ビットコードは、振動による情報の送信終了を示すビットコードであり、予め決められて信号生成部１２２に記憶されている。始点ビットコード及び終点ビットコードの何れも、１つ以上のビットからなるビットコードである。信号生成部１２２は、送信情報に応じたビットコードに始点ビットコード及び終点ビットコードが付加されたビットコードを、送信信号である送信ビットコードとして振動制御部１２３に出力する。
【００２９】
振動制御部１２３は、信号生成部１２２から入力された送信ビットコードに応じて、予め設定した時間間隔（これを時区間と呼ぶ）毎に自装置１００を振動させる振動手段である。時区間は、振動の送受信の際に振動を検出する時間の単位となるものであり、予め決められて振動制御部１２３に記憶されている。例えば、時区間は１００ミリ秒と設定される。振動は、例えば、後述するように振動通信装置１００が備える振動モータを制御することによって行われる。
【００３０】
振動制御部１２３は、送信ビットコードの各ビットの値に応じて振動モータを制御する。具体的には、送信ビットコードのビットが“０”を振動なし、送信ビットコードのビットが“１”を振動ありとして、送信ビットコードのビットの順番で時区間毎に振動を制御する。例えば、送信ビットコードが“０００１０”、時区間が１００ミリ秒である場合には、最初の３００ミリ秒間は振動させず、その後１００ミリ秒間振動させ、その後更に１００ミリ秒間振動させない制御を行う。
【００３１】
なお、振動制御部１２３による自装置１００の振動は、通信相手先の振動通信装置２００と接触したときに振動を伝えられればよい。例えば、必ずしも振動通信装置１００全体を振動させる必要はなく、振動通信装置１００のうち通信相手先の振動通信装置２００に接触される一部を振動させてもよい。以上が、送信部１２０の構成である。
【００３２】
受信部１３０は、振動による情報の受信を行うための手段である。受信部１３０は、振動受信部１３１と、信号検出部１３２と、信号変換部１３３と、復号化部１３４と、出力部１３５とを含んで構成されている。
【００３３】
振動受信部１３１は、時系列な自装置１００の振動の大きさを検出する振動検出手段である。具体的には、振動受信部１３１は、自装置１００の振動の大きさとして自装置１００の加速度を検出する。加速度の検出は、例えば、後述するように振動通信装置１００が備える加速度センサによって行われる。振動受信部１３１は、検出した加速度の大きさを表すスカラー値を信号検出部１３２に出力する。このとき、通信を行うための振動は、例えば接触によって、情報の送信側の振動通信装置３００から伝えられた振動である。
【００３４】
振動受信部１３１が検出した時系列な加速度の大きさの例を図３のグラフに示す。図３において、横軸が時間であり、縦軸が検出した加速度の大きさを表すスカラー値であり、図中の丸が振動受信部１３１によって検出された点である。また、図中に示す幅Ｒが時区間である。図３に示すように振動受信部１３１は、連続的に加速度を検出する。例えば、時区間よりも細かい間隔（例えば、１０ミリ秒間隔）で加速度を検出する。時系列なデータであることを明確にするため、振動受信部１３１が検出したスカラー値には、検出された時刻が対応付けられてもよい。
【００３５】
信号検出部１３２は、振動受信部１３１から入力された時系列のスカラー値から、振動による通信の始点（通信の開始）を検出する始点検出手段である。通信の始点の検出は、具体的には以下のように行う。信号検出部１３２は、振動受信部１３１から入力された時系列のスカラー値に基づいて、予め設定した時区間毎に自装置１００の振動の大きさを検出する。そのためにまず、信号検出部１３２は、図５に示すように複数の時区間の幅Ｒを有する時区間の集合（タイムウィンドウと呼ぶ）Ｗを時間軸上に設定する。タイムウィンドウＷに含まれる時区間Ｒの数は、始点ビットコードのビット数である。信号検出部１３２は、個々の時区間Ｒに含まれる振動受信部１３１から入力されたスカラー値の平均を算出して、その平均の値を個々の時区間Ｒの自装置１００の振動の大きさとする。
【００３６】
信号検出部１３２は、時区間Ｒ毎に上記の平均が予め定められた閾値Ｔよりも下回った場合を“０”（振動なし）、上回った場合を“１”（振動あり）としてビット値を特定する。信号検出部１３２は、そのようにして得られたビットコードが予め設定した始点条件に合致するか否かを判断する。具体的には、ビットコードと予め設定されて記憶された始点ビットコードとを比較して、両者が一致するか否かを判断する。信号検出部１３２は、両者が一致していた場合に振動による通信の始点を検出したと判断する。その場合には、始点ビットコードと一致したビットコードに対応するスカラー値から後のスカラー値を信号変換部１３３に出力する。
【００３７】
信号検出部１３２は、両者が一致していなかった場合には振動による通信の始点を検出しないと判断する。その場合には、タイムウィンドウＷを予め設定した時間間隔分、後（図２の符号Ｗの部分に矢印で示す方向）にずらして、連続した時区間Ｒが始点ビットコードと合致する点を検出するまで、再度上記の処理を行う。このとき、適切に始点ビットコードと合致する点を検出するために、タイムウィンドウＷをずらす間隔は、時区間Ｒの幅よりも小さくすることが望ましい。
【００３８】
振動受信部１３１によって検出される振動の大きさは、情報の送信側の振動通信装置３００の振動モータの種類や接触のさせ方等によって変動する可能性がある。以下に、振動受信部１３１によって検出される振動の大きさが変動した場合であっても受信側で適切に信号を検出するための構成を説明する。
【００３９】
信号検出部１３２は、上記の閾値を変更して、変更した閾値毎にビットコードを検出して、検出したビットコードと始点ビットコートとを比較して、その比較によって始点を検出することとしてもよい。具体的には、信号検出部１３２は、予め設定された閾値の下限値と上限値とを記憶しておく。信号検出部１３２は、最初に閾値の下限値を閾値として用いて、振動受信部１３１から入力されたスカラー値に基づくビットコードを検出する。続いて、信号検出部１３２は、検出したビットコードと始点ビットコードとを比較して、両者が一致するか否かを判断する。信号検出部１３２は、両者が一致していた場合に振動による通信の始点を検出したと判断する。
【００４０】
信号検出部１３２は、両者が一致していなかった場合には、閾値を予め設定した単位量だけ増加させ、増加させた閾値を用いてビットコードを検出して、再度上記の判断を行う。信号検出部１３２は、検出したビットコードと始点ビットコードとが一致するか、閾値が上限値になるまで閾値を増加させながら上記の処理を行う。信号検出部１３２は、閾値が上限値になっても、検出したビットコードと始点ビットコードとが一致しなかった場合には、上述のようにタイムウィンドウＷをずらして上記の処理を行う。このように閾値を変更して、ビットコードを検出することで、振動受信部１３１によって検出される振動の大きさが変動した場合であっても受信側で適切に信号を検出することができる。
【００４１】
信号検出部１３２は、上記のように閾値を変更してビットコードを検出した場合は、始点ビットコードと一致するビットコードを検出した場合の閾値を以降の処理（信号変換部１３３による処理）にも用いる。信号検出部１３２は、当該閾値を信号変換部１３３に出力する。
【００４２】
信号変換部１３３は、信号検出部１３２から入力された加速度の大きさを表すスカラー値（信号検出部１３２によって通信の始点が検出された後のスカラー値）から、ビットコードを検出する信号変換手段である。信号変換部１３３は、信号検出部１３２と同様に、時区間Ｒ毎のスカラー値の平均を算出して、その平均の値を個々の時区間Ｒの自装置１００の振動の大きさとする。信号変換部１３３は、時区間Ｒ毎に順次、上記の平均が予め定められた閾値Ｔよりも下回った場合を“０”（振動なし）、上回った場合を“１”（振動あり）としてビット値を特定する（ビットコードへの変換を行う）。なお、上述したように信号検出部１３２によって閾値が設定される場合には、上記の閾値として信号検出部１３２によって設定された閾値を用いる。
【００４３】
信号変換部１３３は、ビット値が特定される毎に、特定されたビット値によって構成されるビットコードの末尾に終点ビットコードが検出されるか判断して、終点ビットコードが検出されるまでビットコードへの変換を行う。変換されたビットコード（始点ビットコード以降及び終点ビットコード以前のビットコード）を受信ビットコードと呼ぶ。信号変換部１３３は、上記のようにして得られた受信ビットコードを復号化部１３４に出力する。
【００４４】
復号化部１３４は、信号変換部１３３によって検出された受信ビットコードに応じた情報（振動によって受信された情報）を出力する出力手段の一機能である。復号化部１３４は、信号変換部１３３から入力された受信ビットコードをコード管理部１１０に出力する。なお、この出力の際に、受信ビットコードを、コード管理部１１０において文字等の情報に対応付けられたビットコードのビット数に区切って出力することとしてもよい。コード管理部１１０は、受信ビットコードが受信されると、当該受信ビットコードと同じビットコードに対応付けて記憶している文字等の情報を復号化部１３４に出力する。復号化部１３４は、コード管理部１１０から入力した情報、例えば文字列等の情報を、受信情報として出力部１３５に出力する。
【００４５】
出力部１３５は、信号変換部１３３によって検出された受信ビットコードに応じた情報（振動によって受信された情報）を出力する出力手段の一機能である。出力部１３５は、復号化部１３４から入力した受信情報を出力する。この出力は、例えば、振動通信装置１００が備える表示装置等に表示することで行う。具体的には、受信情報である文字列をテキスト表示してもよいし、受信情報である文字列がＵＲＬ（Uniform Resource Locator）であればウェブ画面で当該ＵＲＬのページも表示してもよいし、受信文字列が電子メールアドレスであればメーラを起動して送信アドレス欄に当該電子メールアドレスが入力された新規送信画面を表示してもよい。なお、出力は表示出力以外の方法で行われてもよく、例えば、他のモジュールや装置に受信情報を出力することとしてもよい。以上が、受信部１３０の構成である。
【００４６】
図４に振動通信装置１００のハードウェア構成を示す。図２に示すように、振動通信装置１００は、ＣＰＵ（Central Processing Unit）１００１、主記憶装置であるＲＡＭ（RandomAccess Memory）１００２及びＲＯＭ１００３（Read Only Memory)、操作部１００４、無線通信部１００５、ディスプレイ１００６、アンテナ１００７等のハードウェアにより構成されている。また、移動通信端末１００は、上記のハードウェアに加えて、振動モータ１００８及び加速度センサ１００９等のハードウェアを備えている。振動モータ１００８は、振動通信装置１００において、通信のための振動を発生させるための装置であり、上述したような振動の制御が可能であれば任意のものを利用することができる。例えば、一般的なスマート端末に搭載されている振動モータを利用することも可能である。加速度センサ１００９は、通信のための振動の強さを検知できれば任意のものを利用してよい。例えば、一般的なスマート端末に搭載されている加速度センサを利用することも可能である。これらの構成要素がプログラム等により動作することにより、上述した振動通信装置１００の各機能が発揮される。
【００４７】
引き続いて、図５〜図８を用いて、本実施形態に係る振動通信装置１００で実行される処理である振動通信方法を説明する。まず、図５のシーケンス図を用いて、振動によって情報を送信する場合の処理を説明する。なお、本処理は、例えばユーザによって振動による情報送信を行う操作をトリガとして行われる。また、本処理が行われる際には、ユーザが振動通信装置１００を送信先の振動通信装置２００に接触させる等して、振動通信装置１００の振動が振動通信装置２００に伝わる状態にしておく。
【００４８】
振動通信装置１００では、入力部１２１によって、例えば、文字列等の送信情報が入力される（Ｓ０１、入力ステップ）。入力された送信情報は、入力部１２１から信号生成部１２２に出力される（Ｓ０２）。続いて、信号生成部１２２によって、送信情報である文字列がビットコードに変換される（Ｓ０３、信号生成ステップ）。具体的には、信号生成部１２２からコード管理部１１０に当該文字列に対応するビットコードの要求が行われて（Ｓ０３ａ）、コード管理部１１０から要求に応じたビットコードが信号生成部１２２に出力される（Ｓ０３ｂ）ことによって、上記の変換が行われる。
【００４９】
続いて、信号生成部１２２によって、上記のように生成されたビットコードの先頭に始点ビットコードが付加される（Ｓ０４、信号生成ステップ）。また、信号生成部１２２によって、当該ビットコードの末尾に終点ビットコードが付加される（Ｓ０５、信号生成ステップ）。続いて、始点ビットコード及び終点ビットコードが付加された送信ビットコードが信号生成部１２２から振動制御部１２３に出力される（Ｓ０６）。
【００５０】
続いて、振動制御部１２３の制御によって、信号生成部１２２から入力された送信ビットコードに応じて時区間Ｒ毎に自装置１００が振動される（Ｓ０７、振動ステップ）。具体的には、送信ビットコードの各ビットの値に応じて振動モータが動作するように制御される。送信ビットコードのビットが“０”を振動なし、送信ビットコードのビットが“１”を振動ありとして、送信ビットコードのビットの順番で時区間Ｒ毎に振動が制御される。以上が、振動によって情報を送信する場合の処理である。
【００５１】
引き続いて、図６のシーケンス図、並びに図７及び図８のフローチャートを用いて、振動によって情報を受信する場合の処理を説明する。本処理が行われる際には、ユーザが振動通信装置１００を送信元の振動通信装置３００に接触させる等して、振動通信装置３００の振動が振動通信装置１００に伝わる状態にしておく。
【００５２】
振動通信装置１００では、振動受信部１３１によって、自装置１００の加速度が検出されて、検出した加速度がスカラー値に変換される（Ｓ１１、振動検出ステップ）。加速度の検出は連続的に行われて、時系列なスカラー値が得られる。また、ここで検出される加速度は、情報の送信側の振動通信装置３００から伝えられた振動によるものである。得られたスカラー値は、振動受信部１３１から信号検出部１３２に出力される（Ｓ１２）。
【００５３】
続いて、信号検出部１３２によって、時系列のスカラー値に基づいて振動による通信の始点が検出される（Ｓ１３、始点検出ステップ）。始点の検出の処理を、図７のフローチャートを用いてより詳細に説明する。まず、図３に示すようにタイムウィンドウＷが設定される（Ｓ１３１）。タイムウィンドウＷは、例えば、図３における左端の位置（タイムウィンドウＷにおいて最も古い時刻の位置）が、スカラー値が最初に取得された位置になるように設定される。また、閾値Ｔは予め設定された下限値に設定される。
【００５４】
続いて、タイムウィンドウＷにおいて各時区間Ｒのスカラー値の平均が算出される。上記の平均と設定された閾値Ｔとが比較される。時区間Ｒ毎に上記の平均が設定された閾値Ｔよりも下回った場合を“０”（振動なし）、上回った場合を“１”（振動あり）としてビット値を特定し、タイムウィンドウのビットコードが算出される（Ｓ１３２）。続いて、算出されたビットコードと予め記憶された始点ビットコートとが比較される（Ｓ１３３）。それらが一致していると判断される（Ｓ１３３のＹＥＳ）と振動による通信の始点を検出したと判断され、次の処理に移る。
【００５５】
それらが一致していないと判断される（Ｓ１３３のＮＯ）と上記の閾値Ｔを予め設定した単位量だけ増加させる（Ｓ１３４）。続いて、当該閾値Ｔが予め設定された上限値（最大値）を超えているかが判断される（Ｓ１３５）。閾値Ｔが上限値を超えていないと判断された場合（Ｓ１３５のＮＯ）、増加された閾値Ｔが用いられてＳ１３２の処理が再度行われる。閾値Ｔが上限値を超えている判断された場合（Ｓ１３５のＹＥＳ）、閾値Ｔはリセットされ、再度予め設定された下限値に設定される（Ｓ１３６）。続いて、タイムウィンドウＷがスライドされる。続いて、リセットされた閾値Ｔ及びスライドされたタイムウィンドウが用いられてＳ１３２の処理が再度行われる。
【００５６】
上記のように閾値Ｔの変更とタイムウィンドウＷのスライドとが繰り返されて、時系列なスカラー値から始点が検出される。上述したように、繰り返しの中のＳ１３３の処理でスカラー値から得られたビットコードと始点ビットコードとが一致した場合、始点が検出されると共にその時の閾値Ｔが、以降の処理で用いられる閾値Ｔとなる。
【００５７】
図６に戻り、始点が検出されると、始点ビットコード以降のスカラー値と始点を検出したときの閾値Ｔが、信号検出部１３２から信号変換部１３３に出力される（Ｓ１４）。続いて、信号変換部１３３によって、始点ビットコード以降の時系列のスカラー値から受信ビットコードが検出される（スカラー値から受信ビットコードに変換される）（Ｓ１５、信号変換ステップ）。変換された受信ビットコードは、信号変換部１３３から復号化部１３４に出力される（Ｓ１６）。
【００５８】
続いて、復号化部１３４によって、信号変換部１３３によって検出された受信ビットコードに応じた受信情報が取得される（受信ビットコードの復号化処理が行われる）（Ｓ１７、出力ステップ）。具体的には、復号化部１３４からコード管理部１１０に当該受信ビットコードに対応する文字列等の受信情報の要求が行われて（Ｓ１７ａ）、コード管理部１１０から要求に応じた文字列等の受信情報が復号化部１３４に出力される（Ｓ１７ｂ）ことによって、上記の復号化が行われる。
【００５９】
信号変換処理（Ｓ１５）から復号化処理（Ｓ１７）までの処理を、図８のフローチャートを用いてより詳細に説明する。まず、始点ビットコード以降の時系列のスカラー値に対して、順次時区間Ｒが設定されて、最初の時区間Ｒのスカラー値の平均が算出される。上記の平均と設定された閾値Ｔとが比較される（Ｓ１５１）。時区間Ｒ毎に上記の平均が設定された閾値Ｔよりも下回った場合を“０”（振動なし）（Ｓ１５２）、上回った場合を“１”（振動あり）（Ｓ１５３）としてビット値が特定される。
【００６０】
続いて、この時区間Ｒが一つの文字等の個々の受信情報に対応するビットコードの最終時区間に対応するものであるか否かが判定される。例えば、個々の受信情報は、図２に示すように８つのビットからなるビットコードに対応している。即ち、上記の例では、この時区間Ｒがビットコードのうち８つ目のビットであるかが判断される（Ｓ１５４）。時区間Ｒがビットコードの最終時区間に対応するものでないと判断された場合（Ｓ１５４のＮＯ）、次の時区間に移行される（Ｓ１５５）。続いて、移行された時区間において、上述したようにビット値の特定の処理（Ｓ１５１〜Ｓ１５３の処理）が行われる。
【００６１】
時区間Ｒがビットコードの最終時区間に対応するものであると判断された場合（Ｓ１５４のＹＥＳ）、続いて、上記のように特定されたビットによって構成されるビットコードと予め記憶された終点ビットコートとが比較される（Ｓ１５６）。それらが一致していないと判断される（Ｓ１５６のＮＯ）と当該ビットコードに対応する文字等の受信情報が特定される（Ｓ１７１）。文字等の受信情報の特定は、上述したようにコード管理部１１０に記憶されている情報が用いられて行われる。続いて、次の時区間に移行される（Ｓ１７２）。続いて、移行された時区間において、上述したようにビット値の特定の処理（Ｓ１５１〜Ｓ１５３の処理）が行われる。特定された文字等の個々の受信情報は、順次並べられて一連の受信情報とされる。
【００６２】
上記のようにビットコードに終了ビットコードが現れるまで、ビットコードの特定及び当該ビットコードに対応する文字等の受信情報の特定が繰り返される。特定したビットコードと終点ビットコートとが一致していると判断されると（Ｓ１５６のＹＥＳ）、復号化処理が終了する。
【００６３】
図６に戻り、復号化処理が終了すると、続いて、受信情報が復号化部１３４から出力部１３５に出力される（Ｓ１８）。続いて、出力部１３５によって、受信情報の表示等の出力処理が行われる（Ｓ１９、出力ステップ）。以上が、振動によって情報を受信する場合の処理である。
【００６４】
上述したように本実施形態では、振動通信装置１００を送信側の振動通信装置３００と接触させる等して、送信側の振動通信装置３００から振動を検出することで、通信の始点を検出し、また、始点の後に続く信号を検出することができる。上記のように本実施形態では、自装置１００の振動を検出することができれば振動による情報の受信を行うことができる。即ち、振動通信装置１００によれば、振動による通信を反射型フォトセンサ等の特殊なデバイスを必要とせずに行うことができる。即ち、本実施形態によれば、ユーザが送受信したい情報を装置の振動のみを利用して簡易に送受信することができる。
【００６５】
また、本実施形態のように閾値を変更して、始点ビットコードを検出することができる適切な閾値を設定することとすれば、送信側の振動通信装置３００の振動モータや接触状態に応じた振動の強さによらずに、適切に信号を検出することができる。但し、送信側の振動の条件が一定である場合等、振動通信装置１００の振動の大きさにあまり変動がない場合等には必ずしも上記の構成をとる必要はない。即ち、固定的な振動からビットの特定において固定的な閾値を利用することができる。
【００６６】
また、上述した実施形態のように始点ビットコードと検出したビットコードを比較して始点を検出することとすれば、より確実に始点を検出することができ、より確実に本発明を実施することができる。
【００６７】
また、本実施形態のようにコード管理部１１０に記憶されている情報を利用して受信情報を特定することとすれば、文字等の情報を確実に出力することができる。但し、ビットコード自体を受信された情報として出力するような構成をとることもでき、その場合、必ずしも上記の構成とする必要はない。
【００６８】
また、本実施形態のように振動の大きさを加速度によって検出することとすれば、例えば従来から用いられている加速度センサを用いて振動を検出することができ、より確実に自装置の振動の大きさを検出することができ、より確実に本発明を実施することができる。但し、振動の検出は必ずしも上記の方法に限られず、任意の方法を用いることができる。
【００６９】
また、本実施形態のように振動通信装置１００に送信側の構成、即ち、送信情報を振動によって別の振動通信装置２００に伝える構成を有していれば、振動通信装置１００を送信側の装置として構成することができる。但し、本実施形態に係る振動通信装置１００は、受信側のみの構成であってもよい。また、逆に送信側のみの構成であってもよい。即ち、振動通信装置１００は、送信部１２０及び受信部１３０の何れか一方の構成を備えるものであってもよい。その場合でも、ユーザが送受信したい情報を装置の振動のみを利用して簡易に送受信することができる。
【００７０】
引き続いて、上述した一連の振動通信装置１００の振動により通信を行わせる処理を振動通信装置１００に実行させるための振動通信プログラムを説明する。図９に示すように、振動通信プログラム５００は、コンピュータに挿入されてアクセスされる、あるいはコンピュータが備える記録媒体４００に形成されたプログラム格納領域４１０内に格納される。
【００７１】
振動通信プログラム５００は、振動通信処理を統括的に制御するメインモジュール５０１と、コード管理モジュール５１０と、送信モジュール５２０と、受信モジュール５３０とを備えて構成される。送信モジュール５２０は、入力モジュール５２１と、信号生成モジュール５２２と、振動制御モジュール５２３とを含んで構成される。受信モジュール５３０は、振動受信モジュール５３１と、信号検出モジュール５３２と、信号変換モジュール５３３と、復号化モジュール５３４と、出力モジュール５３５とを含んで構成される。コード管理モジュール５１０と、送信モジュール５２０と、受信モジュール５３０とを実行させることにより実現される機能は、上述した振動通信装置１００のコード管理部１１０と、送信部１２０と、受信部１３０との機能とそれぞれ同様である。入力モジュール５２１と、信号生成モジュール５２２と、振動制御モジュール５２３とを実行させることにより実現される機能は、上述した入力部１２１と、信号生成部１２２と、振動制御部１２３との機能とそれぞれ同様である。振動受信モジュール５３１と、信号検出モジュール５３２と、信号変換モジュール５３３と、復号化モジュール５３４と、出力モジュール５３５とを実行させることにより実現される機能は、上述した振動受信部１３１と、信号検出部１３２と、信号変換部１３３と、復号化部１３４と、出力部１３５との機能とそれぞれ同様である。
【００７２】
なお、振動通信プログラム５００は、その一部若しくは全部が、通信回線等の伝送媒体を介して伝送され、他の機器により受信されて記録（インストールを含む）される構成としてもよい。また、振動通信プログラム５００の各モジュールは、１つのコンピュータでなく、複数のコンピュータのいずれかにインストールされてもよい。その場合、当該複数のコンピュータによるコンピュータシステムよって上述した一連の振動通信プログラム５００の振動通信処理が行われる。
【符号の説明】
【００７３】
１００…振動通信装置、１１０…コード管理部、１２０…送信部、１２１…入力部、１２２…信号生成部、１２３…振動制御部、１３０…受信部、１３１…振動受信部、１３２…信号検出部、１３３…信号変換部、１３４…復号化部、１３５…出力部、１００１…ＣＰＵ、１００２…ＲＡＭ、１００３…ＲＯＭ、１００４…操作部、１００５…無線通信部、１００６…ディスプレイ、１００７…アンテナ、１００８…振動モータ、１００９…加速度センサ、２００，３００…振動通信装置、４００…記録媒体、４１０…プログラム格納領域、５００…振動通信プログラム、５０１…メインモジュール、５１０…コード管理モジュール、５２０…送信モジュール、５２１…入力モジュール、５２２…信号生成モジュール、５２３…振動制御モジュール、５３０…受信モジュール、５３１…振動受信モジュール、５３２…信号検出モジュール、５３３…信号変換モジュール、５３４…復号化モジュール、５３５…出力モジュール。
【図１】
0005879156.tif 000002
【図２】
0005879156.tif 000003
【図３】
0005879156.tif 000004
【図４】
0005879156.tif 000005
【図５】
0005879156.tif 000006
【図６】
0005879156.tif 000007
【図７】
0005879156.tif 000008
【図８】
0005879156.tif 000009
【図９】
0005879156.tif 000010