(57)【要約】【課題】副作用の発生、移動前若しくは移動中における活動制限の必要性を招くことなく、揺れに伴う不快症状を軽減するための装置を提供する。【解決手段】電動装置（１６０）は、ユーザの耳腔に挿入するための挿入構成部（１６５）を有すると共に、制御回路（１７５）と連動するよう接続された少なくとも１つのインダクタ（１７０）を有し、制御回路（１７５）は少なくとも１つのインダクタ（１７０）に電気エネルギーを供給する。挿入構成部（１６５）は、使用時にユーザの内耳に近接するように少なくとも１つのインダクタ（１７０）を備える。【選択図】図５
2014028311.tif 000002
【特許請求の範囲】
【請求項１】
ユーザの耳腔に挿入するための挿入構成部を有すると共に、制御回路と連動するよう接続された少なくとも１つのインダクタを有する電動装置であって、前記制御回路が前記少なくとも１つのインダクタに電気エネルギーを供給し、前記挿入構成部は、使用時に前記ユーザの内耳に近接するように前記少なくとも１つのインダクタを備える電動装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に「揺れに伴う不快症状」と称される感覚を軽減するための方法及び装置に関する。
【背景技術】
【０００２】
揺れに伴う不快症状の感覚は、移動中の車両に乗車している際に一部の人達が催す吐き気や目眩といった不快な感覚である。揺れに伴う不快症状は、自動車、船、潜水艦、飛行機、列車で移動するときや遊園地の回転する乗り物に乗ったときに限らず、遊び場でブランコに乗ったときでさえも発生する場合がある。揺れに伴う不快症状はまた、乗り物酔いとしても知られている。他にも交通手段に応じて、飛行機酔い、自動車酔い、及び船酔い等、よく知られた呼び方がある。
【０００３】
揺れに伴う不快症状の感覚を覚えると、不快感や吐き気を催し、症状が重くなると嘔吐にいたる場合がある。嘔吐を繰り返すと脱水症や低血圧に陥る恐れがあるので、症状が重い場合、患者はすぐに治療を受けることが重要である。
【０００４】
内耳の内部のリンパ液で満たされた一連の規管は、一般に迷路と称されており、この迷路には半円形の規管が含まれている。三半規管は、それぞれ異なる角度で配置されている。頭部が動くと、三半規管の内部をリンパ液が流れ、それによって、頭部がどれ程の速さで、どの方向に、どの程度動いたかが脳に正確に伝えられる。
【０００５】
三半規管からの情報は、蝸牛神経に隣接する前庭神経を介して脳へ伝えられる。脳は頭部の位置を認識すれば、身体の他の部分の位置を特定することができる。
【０００６】
脳はまた、眼からの情報や筋肉自体からの情報（「筋覚」又は運動感覚と称される）にも依存している。脳は内耳、眼、及び筋肉を使用して常に身体の位置を決定する。
【０００７】
揺れに伴う不快症状の感覚は知覚情報の不一致の結果、引き起こされると見られている（例えば、眼及び筋肉は、車内での観察及び静止から身体は比較的動いていないと知らせるのに対し、三半規管内のリンパ液は、車両の動きによって頭部が動いていると知らせる場合）。
【０００８】
揺れに伴う不快症状の発症を防止又は症状を軽減するためには、種々の対策をとり得る。例えば、移動前の２４時間は飲酒しない、移動中は飲食を避ける、強い臭い又は煙霧/煙草の煙は避ける、といったことが挙げられ、これらはそれぞれ、症状の悪化を招く恐れがある。
【０００９】
更に、薬剤の利用が可能である。これらの薬剤には内耳の神経を和らげる、又は嘔吐を誘引する脳の部分を落ち着かせる作用がある。しかし、どの薬剤も予防的なものであり、治療効果を持つわけではない。したがって、揺れに伴う不快症状が発生する前に服用した場合にのみ効き目があり、副作用として眠気を誘う場合もある。当然ながら、軽度の患者の場合は、旅行先で揺れに伴う不快症状に苦しむことはないかもしれないが、薬剤を服用することで、副作用に悩まされることが予想される。
【００１０】
特定の個人の感度にもよるが、一部の人達は、ほとんどどのような走行形態でも揺れに伴う不快症状の感覚を覚える場合がある。いずれにせよ、水上を移動する際は、特定の個人の感度に関わらず、それによる影響が特に顕著になる。したがって、揺れに伴う不快症状の感覚を回避するために、多くの人が、特定の移動手段を利用した移動、特に水路を利用した移動を避ける傾向にある。
【００１１】
移動手段の選択肢が制限されるだけでなく、水路を利用した移動を避けるとなると、魚釣り、水上スキー、クルージング等、水上を移動する船舶に関係するウォーター・スポーツや余暇活動を多くの人が楽しめなくなる。
【発明の概要】
【発明が解決しようとする課題】
【００１２】
揺れに伴う不快症状を軽減するための試みが過去に行われたが、実質的に失敗している。即ち、副作用の発生又は移動前若しくは移動中における活動制限の必要性を招いている。したがって、既存の対策又は方法に関連付けられた制限又は不自由さを除外した、揺れに伴う不快症状の感覚を軽減する装置及び方法が必要である。
【００１３】
本明細書に含まれている文献、行為、物質、装置、物品などのいかなる記載も、あくまで本発明の文脈を提示する目的のためである。これらの問題のいかなるもの又は全てが先行技術基準の一部を形成する、或いはこの出願の各請求項の優先日前に存在したかのように本発明の技術分野での共通の一般知識であったということを容認するものと見なされてはならない。
【課題を解決するための手段】
【００１４】
本発明の一様態では、ユーザの耳腔に挿入するための挿入構成部を有すると共に、制御回路と連動するよう接続される少なくとも１つのインダクタを有する電動装置であって、前記制御回路が少なくとも１つのインダクタに電気エネルギーを供給し、前記挿入構成部が、使用時に前記ユーザの内耳に近接するような前記少なくとも１つのインダクタを備える電動装置を提供する。
【００１５】
例示的な一実施形態では、前記挿入構成部内の前記インダクタは、数秒おきに電気エネルギーのパルスを与えられる。これにより、電磁波のパルスが前記インダクタから放出され、ユーザの前記内耳部位に当たる。
【００１６】
別の例示的な実施形態では、前記ユーザは調整手段を使用して前記電気エネルギーのレート／振幅を制御できる。この特定の実施形態では、前記制御回路がスイッチ又は他のユーザが操作可能なインターフェイスと連動するよう接続されるので、前記ユーザは電気エネルギーの振幅／周波数を調整することができる。電気エネルギーの振幅／周波数の制御は、電動装置から離れた場所で行うことができる。遠隔制御装置では、赤外線によって又は無線リンクによって制御信号を電動装置に送信することが可能である。
【００１７】
当然ながら、任意の特定の個人に対する刺激の有効性に従って、一定期間に任意の数の電気エネルギーのパルスを与えることが可能である。更に、前記インダクタに与えられる前記電気エネルギーのプロファイル（即ち波形）は、個々の要件に最も適合するように変化させることが可能である。例えば、前記パルスは周期的に、非周期的に、又は両者の任意の組み合わせで提供することが可能である。
【００１８】
例示的な実施形態では、前記ユーザが選択できる予めプログラムされたプロファイルの範囲が提供される。効果的な「予めプログラムされた」プロファイルが特定されたら、前記ユーザは、プロファイルを更に調整して、有効性の更なる向上を試みることができる。或いは、前記ユーザは自身のカスタムプロファイルを開発し、個々の要件を満たす最も効果的なプロファイルの開発を試みることができる。
【００１９】
例示的な実施形態では、移動中に前記ユーザは、前記インダクタに供給される電気エネルギーの振幅及び／又は周波数を調整することができる。これにより、ユーザは変化する揺れに伴う不快症状の感覚の激しさに応じて、プロファイルを調整し、移動中における揺れに伴う不快症状の感覚の最適な軽減を試みることができる。
【００２０】
ユーザの耳腔に快適に収まり、モールディング内に少なくとも１つのインダクタを内蔵する、成形ゴム又はプラスチック製の前記挿入構成部を形成することができる。当然ながら、多種多様な材料を使用して前記挿入構成部を形成することができるが、使用時に前記インダクタからの電磁波の放出を妨害しない材料を選択することが好ましい。
【００２１】
前記挿入構成部の具体的構成には多くの変形例が考えられ、例示的な一実施形態では、装着時の更なる安全性、及び／又は前記ユーザの耳腔と前記挿入構成部との比較的心地よい一体性に関しての必要条件を少なくするために、前記挿入構成部は、ユーザの外耳に付けるように構成される。
【００２２】
前記インダクタの特性は様々であってよく、例示的な一実施形態では、結果として前記ユーザの前記内耳部位に刺激を与える電磁パルスがもたらされるように、前記インダクタの特性は、該インダクタを通る電気エネルギーパルスの特性の組み合わせにおいて選択される。
【００２３】
前記電動装置への電気エネルギーは、前記制御回路及び前記インダクタ装置と永続的に接続された内蔵型のバッテリから供給してもよい。この特定の実施形態では、前記バッテリを再充電可能なバッテリとし、該バッテリを前記電動装置内に配置したままで充電できるように必要な回路を前記電動装置に備えてもよい。しかし、他にも多くの適切な電気エネルギー源を使用することができ、例えば、商用電源や外部バッテリ等や、自動車や船舶のバッテリ等が挙げられる。同様に、前記電動装置に内蔵されたバッテリを再充電するために、外部の電気エネルギー源との接続を行うようにしてもよい。
【００２４】
例示的な一実施形態では、前記挿入構成部は少なくとも１つのインダクタと電気エネルギーを可聴音エネルギーに変換するための音声ドランスデューサを備えている。この実施形態により、ユーザは内耳部位を刺激して揺れに伴う不快症状の軽減を試みることに加えて、再生音声を聴くことができる。
【００２５】
本発明の別の態様は、制御回路と連動するよう接続された少なくとも１つのインダクタを有する電動装置を使用して、内耳部位を刺激する方法であって、
前記少なくとも１つのインダクタをユーザの内耳部位に近接するように配置するステップと、
前記制御回路を操作して、前記少なくとも１つのインダクタに電源から電気エネルギーを供給するステップと、を含む方法を提供する。
【００２６】
例示的な一実施形態では、前記電動装置は、前記少なくとも１つのインダクタへの電気エネルギー供給のレート及び／又は振幅をユーザが制御できるように必要な回路を備えている。この例示的な実施形態では、ユーザが揺れに伴う不快症状の感覚を軽減するために前記電気エネルギーの振幅及び／又は周波数を調整するステップを含む。
【００２７】
本発明の別の態様は、本発明に係る電動装置内で実行するコンピュータ命令コードを提供する。コンピュータ命令コードは、前記少なくとも１つのインダクタへの電気エネルギーの供給を制御するための命令を含む。
【図面の簡単な説明】
【００２８】
【図１】本発明に係る電動装置の実施形態の主要構成要素を示す回路図である。
【図２】図１に詳細に示した回路構成のマイクロコントローラによって実行される主要な処理ステップを示すフローチャートである。
【図３】図１の制御回路によってインダクタに供給される電気パルスのパルスプロファイルを詳細に説明する各種波形を示した図である。
【図４】制御回路と電源とを内蔵し、挿入構成部を含むイヤーアタッチメント装置の例示的な実施形態を示す図である。
【図５】図４の実施形態の断面図である。
【発明を実施するための形態】
【００２９】
次に、本発明の例示的な実施形態を示す添付の図面を参照して、本発明を説明する。
図１を参照して、本発明に係る電動装置の例示的な実施形態の回路図を詳細に説明する。図１の回路構成では、バッテリＢＴ１とＢＴ２によって電力が供給される。バッテリＢＴ１及びＢＴ２はそれぞれ１．２ボルトのバッテリであり、直列に接続されてＤＣ２．４ボルトの電力を供給するようになっている。バッテリＢＴ１のプラス端子はマイクロコントローラ（Ｕ１）の端子１に接続され、バッテリＢＴ２のマイナス端子はマイクロコントローラ（Ｕ１）の端子８に接続されている。これにより、マイクロコントローラデバイスに電力が供給される。
【００３０】
マイクロコントローラ（Ｕ１）は、一連の汎用入出力（ＧＰＩＯ）接続を提供している。図１の例示的な実施形態の例では、３つの汎用入出力接続のみ、即ち、ＧＰＩＯ３と、ＧＰＩＯ４と、ＧＰＩＯ５とが使用されている。ＧＰＩＯ３は入力のみの接続として構成され、ＧＰＩＯ４及びＧＰＩＯ５は出力のみの接続として構成されている。
【００３１】
ＧＰＩＯ３は、スイッチ（Ｓ１）と抵抗（Ｒ１）で構成される、スイッチ及び抵抗の回路網に接続されている。スイッチ（Ｓ１）は「常時開」スイッチ構成で、通常は開状態にある。抵抗（Ｒ１）はＧＰＩＯ３接続の電圧を電圧Ｖｓｓに維持するように働く。スイッチング素子を作動させると、スイッチにより電流が抵抗（Ｒ１）を流れＧＰＩＯ３接続に電圧Ｖｄｄが発生する。したがって、スイッチＳ１を作動させると、スイッチが閉位置に維持されている期間、ＧＰＩＯ３接続の電圧がＶｓｓからＶｄｄに上昇する結果となる。
【００３２】
マイクロコントローラ（Ｕ１）へのＧＰＩＯ４接続は、抵抗（Ｒ２）と発光ダイオード（Ｄ４）から構成される回路網に接続され、発行ダイオード（Ｄ４）は更に電源ラインＶｄｄに接続されている。ＧＰＩＯ４接続が「Ｈｉ」電圧又は高インピーダンス状態にある場合、発光ダイオードは非点灯状態のままである。しかし、ＧＰＩＯ４接続が「Ｌｏ」電圧状態に遷移すると、電圧レールＶｄｄから発光ダイオード（Ｄ４）、抵抗（Ｒ２）を通り、最終的にマイクロコントローラ（Ｕ１）へ電流が流れ、その結果として発光ダイオード（Ｄ４）が点灯する。
【００３３】
ＧＰＩＯ５接続は、コンデンサ（Ｃ１）と、コンデンサ（Ｃ１）に接続された発光ダイオード（ＤＳ１）及び抵抗（Ｒ５）の直列回路網と、コンデンサに接続されたインダクタ（Ｌ１）とで構成される回路網に電気的に接続されている。
【００３４】
コンデンサ（Ｃ１）は、マイクロコントローラ（Ｕ１）をインダクタと充電回路から分離し、電気エネルギーのパルスをインダクタ（Ｌ１）に与える。抵抗（Ｒ５）は、通常動作中には充電用ダイオード（ＤＳ１）をインダクタから分離し、充電中にはダイオード（ＤＳ１）に流れる電流を制限する。ダイオード（ＤＳ１）は、充電中にインダクタからの電流を整流すると共に、バッテリが充電中であることを示すためにも用いられる。ＧＰＩＯ５接続の電圧を遷移させることにより、電気エネルギーがインダクタ（Ｌ１）に供給される。
【００３５】
図２を参照して、マイクロコントローラ（Ｕ１）によって実行される主要な処理ステップを詳細に示したフローチャートを説明する。マイクロコントローラ（Ｕ１）に電源を最初に供給すると、マイクロコントローラ内に常駐するソフトウェアが実行を開始する（ステップ１０）。次に実行される処理（ステップ２０）は、ソフトウェアが個々のプログラム命令を実行することでマイクロコントローラ（Ｕ１）の動作を制御する際にソフトウェアによって使用される変数を初期化することである。プログラム変数の初期化が終了すると、ソフトウェアプログラムはステップ３０に進む。ステップ３０において、ソフトウェアプログラムはマイクロコントローラ（Ｕ１）を「スリープ」状態にする。これにより、マイクロコントローラ（Ｕ１）が任意の必要な機能の実行を要求されるまで、マイクロコントローラ（Ｕ１）で消費される電気エネルギーは最小限に抑えられる。
【００３６】
ステップ４０で、プログラムは、マイクロコントローラ（Ｕ１）の「ウェイクアップ（起動）」が必要かどうかを判定するための確認を行い、その必要がなければ、ステップ３０に戻る。
【００３７】
マイクロコントローラ（Ｕ１）が「ウェイクアップ」状態を検出すると、プログラムは更なる「スリープ／ウェイクアップへ移行」処理（ステップ５０／６０）に入り、この処理中、マイクロコントローラ（Ｕ１）はユーザがスイッチを作動させたかどうかを検出する。スイッチの作動が検出された場合、プログラムはステップ７０に進む。
【００３８】
ステップ７０で、プログラムはインダクタに供給する電気エネルギーパルスのパラメータを最低レベル（即ち、レベル１）に設定する。電気エネルギーパルスの特性を最低レベルに設定した後、マイクロコントローラのプログラムは更なるスイッチの作動が行われたかどうか再度確認する。スイッチの閉状態が検出された場合、プログラムはステップ９０に進み、ステップ９０において電気エネルギーパルスのパラメータの電流レベル設定が最大（即ち、レベル４）となっているかどうかを判定する。最大でない場合、プログラムはステップ１００に進み、ステップ１００で「レベル」を１つ引き上げる。この段階で、プログラムはステップ１１０に進み、ステップ１１０でモードの調整が必要かどうかを判定する。しかし、ステップ９０で、電気エネルギーパルスのパラメータが最大レベル（即ち、レベル４）に設定されていた場合、プログラムはステップ５０に戻り、ステップ５０でマイクロコントローラ（Ｕ１）は「スリープ」モードに戻る。
【００３９】
スイッチを閉状態とすることで最大レベル（即ち、レベル４）を超えるレベルへの引き上げが試みられた場合、事実上、装置の手動停止が行われる。当然ながら、プログラムがステップ５０に戻った後でスイッチが更に作動されると、装置は「ウェイクアップ」（ステップ６０）して、再度ステップ７０に進み、ステップ７０でエネルギーパルスのレベル１が選択される。
【００４０】
マイクロコントローラのプログラムのステップ８０を再び参照すると、スイッチの閉状態が検出されない場合、プログラムはステップ１１０に進み、ステップ１１０でモードの調整が必要かどうかを判定する。
【００４１】
エネルギーパルスのレベルが１つ引き上げられると、プログラムは約３０秒間ＬＥＤを規則的に「点滅させ」（ステップ１３０）、レベルが引き上げられたことをユーザに通知する。３０秒経過後、プログラムはＬＥＤを不規則な「点滅」に戻す（ステップ１２０）（例えば、約６０秒おきに１回、短く点滅する）。したがって、ステップ１１０の目的は、通知用のＬＥＤを規則的に点滅させる（新たなレベル変更を示す）必要があるのか、不規則に点滅させる（装置が「起動している」状態にあることを示す）必要があるのかを判定することである。モードに関係なく、プログラムはステップ１４０に進み、ステップ１４０でエネルギーのパルスがインダクタに供給され、インダクタは電磁波のパルスを放出する。
【００４２】
プログラムは次にステップ１５０に進み、最後のスイッチ作動から５時間が経過しているならば、マイクロコントローラ（Ｕ１）はシャットダウンされる（ステップ５０）。５時間がまだ経過していない場合は、プログラムはステップ８０に進む。
【００４３】
図３を参照して、図１及び図２の例示的な実施形態で提供される各レベルのエネルギーパルス波形の図を示す。この特定の実施形態では、マイクロコントローラ（Ｕ１）は約２秒間に一連の電気エネルギーパルスを生成する。これらのパルスは約１０秒おきに繰り返され、約１．２ミリ秒の期間内に発生するパルス数は、ユーザが選択するレベル調整に応じて決まる。
【００４４】
図３に示したレベル１の波形を参照すると、それぞれ１．２ミリ秒の期間中に約０．１ミリ秒持続する矩形波パルスプロファイルが発生している。レベル１を選択した場合、それぞれの１．２ミリ秒の期間中に約０．１ミリ秒持続するパルスは１回発生するだけであり、約１．２ミリ秒の期間にわたる波形は約２秒間、繰り返される。２秒の期間が経過すると、約８秒の遅延をおいて、エネルギーパルスが再開される。
【００４５】
図３のレベル２の波形を参照すると、それぞれ１．２ミリ秒の期間中に２つのパルスが生成され、この２つのパルスは両方とも約０．１ミリ秒の持続時間を有し、パルス間の遅延は約０．１ミリ秒であることが容易にわかる。再び、レベル１の波形をみると、１．２ミリ秒の期間を通して発生するエネルギーパルスは、全体で約２秒の期間にわたり繰り返され、この２秒が経過すると約８秒の遅延をおいて、再び２秒の期間内にパルスが繰り返し発生する。
【００４６】
レベル１及びレベル２の波形に従い、レベル３及びレベル４の波形も、レベル１及びレベル２に対して確立されたフレームワークに同様に準拠することに読み手は気付くであろう。しかし、１．２ミリ秒の期間内にレベル３の場合は３つのパルス、レベル４の場合は４つのパルスが生成され、インダクタに供給されるパルス数が増える。したがって、ユーザが同じ期間内で多くのパルス数を選択すると、インダクタから放出される全体の平均的な電磁エネルギーも増大する。
【００４７】
以下に、本発明の実施形態に従ったプロトタイプ装置用のソースコードのリストを示す。
/*************************************/
/*  Program          :  MotSick.C                  */
/*  Function        :  Motion  Sickness  device  using  ON/OFF  switch  */
/*  Language        :  HiTech  C  (ANSI  C)                    */
/*************************************/
#include  <pic.h>
//#include  <stdlib.h>
__CONFIG(INTIO  &  MCLRDIS  &  BOREN  &  PROTECT  &  PWRTEN  &  WDTDIS);  //&  WDTEN
//  function  prototypes
void  init(void);
void  wait_mSec(int  times);
void  waist100mSec(void);
//  Defines
#define  LEDON    1
#defineLEDOFF    0
//  Action  Variables
unsigned  char  flash,  state,  test,  temp;
unsigned  char  speed,  flashtimer,  passes,  incstate;
unsigned  int  mSeconds;
unsigned  int  timeout;
unsigned  int  keytimer,  count,  thousands;
unsigned  char  level,  timer,  pwm;
/**************************************/  
/*  Main  Program                      */
/**************************************/
main()
{
char  i;
for(test  =  0;  test<250;  test++);  //  allow  time  during  power  up
init();//  set  up  all  port  direction  registers.
//count  =  0;
//databit  =  7;  
test  =  0;  
timeout  =  0;  
state  =  0;  
passes  =  0;  
level  =  1;  
timer  =  1;  
flashtimer  =  8;  
pwm  =  16;  
GIE  =  1;    //enable  interrupts
GPIF  =  0;  
T0IE  =  1;  
GPIE  =  1;  
wait_mSec(300);  
GPIF  =  0;  
GPIO  =  0x10;  //shut  off  all  power  draining  devices.
GIE  =  0;        //Disable  Interrupts
asm("sleep");  
asm("nop");  
for(test  =  0;  test<250;  test++);  
GPIF  =  0;  
GIE  =  1;      //  Enable  Interrupts  
T0IE  =  1;
GPIE  =  1;  
wait_mSec(200);  
speed  =  20;  
incstate  =  0;  
state  =  0;  
level  =  1;  
passes  =  0;  
timeout  =  0;  
for(i  =  0;i<5;i++)
GPIO5  =  0;  
GPIO4  =  1;
while(1)
{    //  This  is  the  main  program  endless  loop.
switch(state)
{
if(timeout  >  1000)
{
state  =  0;      //Go  to  sleep  if  been  on  for  more  than  4.7  hours
}
case  0:  //  Sleep  State
{
wait_mSec(300);
GPIF  =  0;
GPIO  =  0x10;  //shut  off  all  power  draining  devices.
GIE  =  0;            //Disable  Interrupts
asm("sleep");  
asm("nop");  
for(test  =  0;  test<250;  test++);
GPIF  =  0;
GIE  =  1;          //  Enable  Interrupts
T0IE  =  1;  
GPIE  =  1;
wait_mSec(200);  
speed  =  20;
incstate  =  0;  
state  =  1;
level  =  1;  
passes  =  0;  
timeout  =  0;  
break;
}//end  case  0:
case  1:  //  Level  =  1
{
flash  =  level;
if(!flashtimer)
{
GPIO0  =  LEDON;  
GPIO4  =  LEDOFF;            //Indicator  LED  ON
wait_mSec(20);  
flashtimer  =  speed;  
GPIO2  =  0;  
if(passes  >  10)  
{
flashtimer  =  250;  
timeout++;  
}
else  
{
passes++;  
}  
break;
}  
GPIO0  =  LEDOFF;  
GPIO4  =  LEDON;          //  Indicator  LED  OFF
if(incstate)    //  Play  Switch  was  Pressed  
{  
level  =  3;  
state  =  2;  
incstate  =  0;  
speed  =  10;  
GPIO0  =  LEDOFF;  
GPIO4  =  LEDON;    //  Indicator  LED  OFF  
passes  =  0;  
}  
break;  
}//end  case  1:  
case  2:  //  Level  =  2  
{  
flash  =  level;  
if(!flashtimer)  
{  
GPIO0  =  LEDON;  
GPIO4  =  LEDOFF;  
wait_mSec(20);  
flashtimer  =  speed;  
if(passes  >  20)  
{  
flashtimer  =  250;  
timeout++;  
}  
else  
{  
passes++;  
}  
break;  
}  
GPIO0  =  LEDOFF;  
GPIO4  =  LEDON;  
if(incstate)    //  Play  Switch  was  Pressed  
{  
level  =  5;  
state  =  3;  
incstate  =  0;  
speed  =  5;  
GPIO0  =  LEDOFF;  
GPIO4  =  LEDON;  
passes  =  0;  
}  
break;  
}//end  case  2:  
case  3:  //  Level  =  4  
{  
flash  =  level;  
if(!flashtimer)  
{  
GPIO0  =  LEDON;  
GPIO4  =  LEDOFF;  
wait_mSec(20);  
flashtimer  =  speed;  
if(passes  >  40)  
{  
flashtimer  =  250;  
timeout++;  
}  
else  
{  
passes++;  
}  
break;  
}  
GPIO0  =  LEDOFF;  
GPIO4  =  LEDON;  
if(incstate)    //  Play  Switch  was  Pressed  
{  
level  =  8;  
state  =  4;  
incstate  =  0;  
speed  =  2;  
GPIO0  =  LEDOFF;  
GPIO4  =  LEDON;  
passes  =  0;  
}  
break;  
}//end  case  3:  
case  4:  //  Level  =  8  
{  
flash  =  level;  
if(!flashtimer)  
{  
GPIO0  =  LEDON;  
GPIO4  =  LEDOFF;  
wait_mSec(20);  
flashtimer  =  speed;  
if(passes  >  80)  
{  
flashtimer  =  250;  
timeout++;  
}  
else  
{  
passes++;  
}  
break;  
}  
GPIO0  =  LEDOFF;  
GPIO4  =  LEDON;  
if(incstate)    //  Play  Switch  was  Pressed  
{  
level  =  0;  
state  =  0;  
incstate  =  0;  
speed  =  20;  
GPIO0  =  LEDOFF;  
GPIO4  =  LEDON;  
passes  =  0;  
}  
break;  
}//end  case  4:  
}//end  switch(state)  
if(timer  <  20)  
{  
if(timer  ==  0)  
{  
timer  =  100;  
}  
if(--pwm  <  level)  
{  
GPIO5  ^=  1;  //Toggle  output  
}  
else  
{  
GPIO5  =  0;    //Output  off  
}  
if(pwm  ==  0)  
{  
pwm  =  16;  
}  
}  
}  //  end  of  while  endless  loop  
}//  end  of  main
/**************************************/  
/*  A  milliSecond  delay  function                      */  
/**************************************/  
void  wait_mSec(int  times)  
{  
mSeconds  =  times;  
while(mSeconds);  
}//end  wait_mSec();  
/***************************************/  
/*  A  100  milliSecond  delay  function                  */  
/***************************************/  
void  waist100mSec(void)  
{  
int  times  =  1000;  
while(times--);  
}//end  waist100mSec();  
/***************************************/  
/*  Interrupt  service  function                          */  
/***************************************/  
static  void  interrupt  isr(void)  
{  
//  work  out  source  of  interrupt  
if(T0IF)  
{            //  Was  this  a  timer  ZERO  overflow?  Here  every  100us.  
TMR0  =  -86;    //  set  for  40  Khz    -15  =  25us,  -40  =  50us,  -90  =  100us  
temp++;  
if(temp>9)  
{  
mSeconds--;  
temp  =  0;  
}//end  temp>9  
if(thousands--  ==  0)  
{  
thousands  =  1000;  //  here  once  every  100  milliseconds;
if(timer)  
{  
timer--;  
}  
if(flashtimer)  flashtimer--;  
}  
T0IF  =  0;          //  Clear  interrupt  flag,  ready  for  next        }  
if(GPIF)  
{  //  Here  whenever  a  port  change  interrupt  occurs.  
if(GPIO3)    //  START  Switch  Down  
{//check  for  correct  edge  due  to  interrupt  on  change.
waist100mSec();    //Debounce  
if(GPIO3)  
{  
while(GPIO3);  
waist100mSec();  
while(GPIO3);  
//  Move  to  next  level  state  
incstate  =  1;  
passes  =  0;  
flashtimer  =  1;  
}  
GPIO  =  0x10;  
//Do  a  dummy  write  to  clear  the  mismatch  after  Int-on-change  
}  //  end  of  if(GPIO3)  
GPIF  =  0;  
}//  end  if  GPIF  
}//  end  or  ISR  
void  init(void)  
{  
#asm  
call  0x3FF    //Load  Factory  Calibration  Value  Into  OSCCAL  
bsf  _STATUS,5    //Select  BANK1  
movwf  _OSCCAL  
#endasm  
//12f675  setup  
//    ANSEL  =  0;    //PIC12F675  Only  
TRISIO  =  0b00001110;  //GP0-Output,  GP1-Input,GP2-  Input,GP3-Input,GP4-Output,GP5-Output  
GPIO0  =  0;  
GPIO4  =  1;
VRCON  =  0;          //Turn  Off  Vref  
CMCON  =  0x07;            //Turn  Off  Comparator  
OPTION  =  0b10001000;    //Pull  Ups  Disabled,  Rising  Edge,  Prescaler  1:1  WDT  
//      76543210  
T1CON  =  0b00000000;  //  Timer  1  disabled  //101;  //  Timer  1  enabled  with  int  oscillator.  
INTCON  =  0xA8;  //  GIE-enabled,  TMR0  int  enabled,  GP2/int  disabled,  Port  change  int  enabled.  
//      76543210  
IOCB  =  0b00001000;  //  Select  Interrupt  on  change  pins.  Gp3  int  
PIE1  =  0x00;  //  Disables  peripheral  interrupts.  
}  
【００４８】
図４及び図５を参照すると、イヤーアタッチメント装置の例示的な実施形態の図が提供されている。図４及び図５の特定の実施形態では、電動装置（１６０）がユーザの耳腔に挿入される挿入構成部（１６５）を含む。挿入構成部（１６５）は、プリント回路基板（１７５）に実装された制御回路と接続されたインダクタ（１７０）を内蔵している。前記構成部は全てプラスチック製のハウジング（軟質ゴム又はシリコンベースの構成部を含んでもよい）内に密封されており、プラスチック製のハウジングには耳かけ（１８０）が取り外し可能に取り付けられ、ユーザの耳への電動装置（１６０）の取り付けを更に安定させている。
【００４９】
図４及び図５の実施形態で、電動装置（１６０）はプリント回路基板（１７５）に実装されたバッテリ（１８５ａ、１８５ｂ）から電力を供給される。ユーザが装置の起動及び停止と、内耳に対する異なる刺激レベルの選択を行うことができるように、装置（１６０）はプリント回路基板（１７５）にやはり実装されたスイッチ（１９０）を備えている。軟質ゴム製のスイッチカバー（１９５）により、スイッチ（１９０）の簡単な操作で種々の機能を選択することができる。
【００５０】
図４及び図５に示した実施形態は一体型（内蔵型）の装置であるが、他の実施形態では、ユーザが装置の操作をより簡単に制御でき、遠隔制御装置を操作しながら確認できるように、別個に遠隔制御装置を含めてもよい。例えば、遠隔制御装置は、赤外線又は無線リンク等の複数の遠隔通信手段によって制御信号を電動装置に伝達することが可能である。更に、ユーザの耳に取り付けられる一体型の装置に電動装置を内蔵するのでなく、少なくとも１つのインダクタを内蔵した挿入構成部を、音声再生装置に接続されるイヤーフォンの構成に類似した延長導電リードによって制御回路に接続してもよい。同様に、挿入構成部は、延長リードによって、音声再生装置において一般的な種々の構成（例えば、ベルト装着、ポーチ装着、衣料品のポケットに装着）と類似した方法で装着又は実装可能な制御回路に接続し得る。
【００５１】
特定の一実施形態では、ユーザの耳腔に挿入するための挿入構成部は、少なくとも１つのインダクタと、ユーザの耳の中で音声信号を再現するための音声再生トランスデューサとを内蔵する。結合された挿入構成部／音声再生装置への延長リードアタッチメントは、少なくとも１つのインダクタへの電気エネルギーの供給と音声トランスデューサへの音声信号の提供をそれぞれの導体で行う装置に接続される。この特定の実施形態では、揺れに伴う不快症状を軽減できるのと同時に、音声再生装置からの音声信号の聴き取りが妨げられないように、ユーザは音声の再生と内耳の電磁的刺激とを組み合わせることが可能である。この特定の実施形態では、単一の装置を使用して音声信号を再生し、少なくとも１つのインダクタに電気エネルギーを提供するように構成されている。この実施形態において、本装置を使用すれば、ユーザは少なくとも１つのインダクタに供給される電気エネルギーと、音声信号の再生を実現するのに必要な全ての信号とを制御することができる。
【００５２】
当業者であれば、本明細書に説明した発明において、詳述した以外にも変形及び変更が発生する可能性があることが理解できるであろう。本発明は本発明の趣旨及び範囲内に存在するような全ての変形及び変更を含むことを理解されたい。
【００５３】
例えば、説明した例示的な実施形態には４つの刺激「レベル」が含まれているが、任意の数の刺激レベルを設け得ることは容易に理解されよう。同様に、例示的な実施形態では少なくとも１つのインダクタに、ある特定の電気エネルギー波形のみを供給する場合について説明したが、別の波形を供給することで様々なユーザの揺れに伴う不快症状の感覚が大幅に軽減される可能性があることも容易に理解されよう。したがって、本発明の実施形態には、ユーザが個人的な不快感のレベルに合わせて選択できるように様々なレベルにわたる範囲を含めることに加えて、各種の波形刺激プログラムにわたる範囲を含めてもよい。
【図１】
2014028311.tif 000003
【図２】
2014028311.tif 000004
【図３】
2014028311.tif 000005
【図４】
2014028311.tif 000006
【図５】
2014028311.tif 000007