特許第6836632号(P6836632)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ シチズンホールディングス株式会社の特許一覧

<>
  • 特許6836632-携帯機器および携帯機器システム 図000002
  • 特許6836632-携帯機器および携帯機器システム 図000003
  • 特許6836632-携帯機器および携帯機器システム 図000004
  • 特許6836632-携帯機器および携帯機器システム 図000005
  • 特許6836632-携帯機器および携帯機器システム 図000006
  • 特許6836632-携帯機器および携帯機器システム 図000007
  • 特許6836632-携帯機器および携帯機器システム 図000008
  • 特許6836632-携帯機器および携帯機器システム 図000009
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6836632
(24)【登録日】2021年2月9日
(45)【発行日】2021年3月3日
(54)【発明の名称】携帯機器および携帯機器システム
(51)【国際特許分類】
   G04G 99/00 20100101AFI20210222BHJP
   G04C 3/00 20060101ALI20210222BHJP
   G04G 21/04 20130101ALI20210222BHJP
   G06F 8/30 20180101ALI20210222BHJP
   H04M 1/00 20060101ALI20210222BHJP
【FI】
   G04G99/00 302C
   G04C3/00 B
   G04G21/04
   G06F8/30
   H04M1/00 Q
【請求項の数】8
【全頁数】21
(21)【出願番号】特願2019-147136(P2019-147136)
(22)【出願日】2019年8月9日
(65)【公開番号】特開2020-148756(P2020-148756A)
(43)【公開日】2020年9月17日
【審査請求日】2020年5月14日
(31)【優先権主張番号】特願2019-43026(P2019-43026)
(32)【優先日】2019年3月8日
(33)【優先権主張国】JP
(73)【特許権者】
【識別番号】000001960
【氏名又は名称】シチズン時計株式会社
(74)【代理人】
【識別番号】110001771
【氏名又は名称】特許業務法人虎ノ門知的財産事務所
(72)【発明者】
【氏名】松王 大輔
(72)【発明者】
【氏名】植村 隆太郎
【審査官】 榮永 雅夫
(56)【参考文献】
【文献】 特開2002−108634(JP,A)
【文献】 特開2007−57274(JP,A)
【文献】 特表2016−520822(JP,A)
【文献】 米国特許出願公開第2016/0301849(US,A1)
【文献】 大橋 源一郎,定型作業にかかる時間を一気に節約 パソコン自動化の極意,日経パソコン No.708 NIKKEI PERSONAL COMPUTING,日本,日経BP社 Nikkei Business Publications,Inc.,2014年10月27日,44−45頁
【文献】 ヤシマ ノブユキ,つぶやきも共有も全自動でデキる男になる IFTTT完全入門,週刊アスキー 第27巻 通巻1024号,日本,株式会社KADOKAWA,2015年 4月 7日,第27巻,80-85頁
(58)【調査した分野】(Int.Cl.,DB名)
G04C 3/00
G04C 3/14
G04C 9/00
G04G 5/00
G04G 21/00
G04G 21/04
G04G 99/00
G04R 20/00 − 20/30
G06F 8/30
H04M 1/00
H04M 1/24 − 1/82
(57)【特許請求の範囲】
【請求項1】
制御部と、駆動部と、動作部とを備える携帯機器において、
前記制御部は、記憶部と、ハードウェア制御部と、スクリプトエンジンとを有し、
前記記憶部は、予め記憶され、機械語で記述された主プログラムと、外部機器を通じて取得され、スクリプト言語で記述されたユーザプログラムとを記憶し、
前記ハードウェア制御部は、通常動作時では、機械語で記述された駆動プログラムに対して前記主プログラムを反映させることにより機械語で記述された指令を生成して前記指令を前記駆動部に対して出力し、前記ユーザプログラムによる動作時では、前記ユーザプログラムを前記スクリプトエンジンが実行して前記駆動プログラムに反映することにより機械語で記述された前記指令を生成して前記指令を前記駆動部に対して出力し、
前記駆動部は、入力される前記指令に対応して予め定められた動作がされるように、前記指令に対応した駆動信号を前記動作部に出力し、
前記動作部は、入力される前記駆動信号に対応した駆動をする
ことを特徴とする携帯機器。
【請求項2】
前記動作部は、指針を回転させるモータを含み、
前記駆動部は、前記モータに対して前記駆動信号を出力する駆動回路を有し、
前記制御部は、前記ユーザプログラムに従い、前記駆動部に対して前記モータを動作させる前記指令を出力する
請求項に記載の携帯機器。
【請求項3】
前記外部機器は、携帯通信機器であり、
前記制御部は、前記ユーザプログラムに従い、無線通信によって前記携帯通信機器から取得した情報に基づいて前記駆動部に対して前記指令を出力する
請求項1または2に記載の携帯機器。
【請求項4】
前記携帯機器は、電子時計であり、かつ搭載されたムーブメントの型式に対応した機械語の制御プログラムを記憶しており、
前記制御部は、前記ユーザプログラムに従い、前記型式に対応した前記制御プログラムを実行することで前記駆動部に対して前記指令を出力する
請求項1からの何れか1項に記載の携帯機器。
【請求項5】
更に、前記携帯機器に関する情報を取得するセンサを備え、
前記制御部は、前記ユーザプログラムに従い、前記センサから取得する情報に基づいて前記駆動部に対して前記指令を出力する
請求項1からの何れか1項に記載の携帯機器。
【請求項6】
前記制御部は、前記ユーザプログラムに従い、電源の状態に基づいて前記駆動部に対して前記指令を出力する
請求項1からの何れか1項に記載の携帯機器。
【請求項7】
携帯通信機器において実行され、スクリプト言語で記述されたユーザプログラムを生成するアプリケーションと、
携帯機器と、
を備え、
前記携帯機器は、
制御部と、駆動部と、動作部とを有し、
前記制御部は、記憶部と、ハードウェア制御部と、スクリプトエンジンとを有し、
前記記憶部は、予め記憶され、機械語で記述された主プログラムと、前記携帯通信機器を通じて取得された前記ユーザプログラムとを記憶し、
前記ハードウェア制御部は、通常動作時では、機械語で記述された駆動プログラムに対して主プログラムを反映させることにより機械語で記述された指令を生成して前記指令を前記駆動部に対して出力し、前記ユーザプログラムによる動作時では、前記ユーザプログラムを前記スクリプトエンジンが実行して前記駆動プログラムに反映することにより機械語で記述された前記指令を生成して前記指令を前記駆動部に対して出力し、
前記駆動部は、入力される前記指令に対応して予め定められた動作がされるように、前記指令に対応した駆動信号を前記動作部に出力し、
前記動作部は、入力される前記駆動信号に対応した駆動をする
ことを特徴とする携帯機器システム。
【請求項8】
前記アプリケーションは、前記ユーザプログラムと、前記携帯通信機器において実行され、前記ユーザプログラムと連携する連携プログラムと、を合わせて一つのブロックプログラムを生成して保存し、
前記アプリケーションは、前記ブロックプログラムから抽出した前記ユーザプログラムを前記携帯機器に送信する
請求項に記載の携帯機器システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、携帯機器および携帯機器システムに関する。
【背景技術】
【0002】
従来、予め記憶された制御プログラムに基づいて動作する電子時計がある。特許文献1には、装置の全体的な制御を行う制御部と、制御部のCPUが実行する制御プログラムや制御データが格納された設定値記憶手段としてのROMとを有する電子時計が開示されている。
【0003】
また、携帯端末と連動する機能を有するなど、機能を充実させた電子機器がある。特許文献2には、携帯端末に電子メールの受信があったことを通知する電子メール受信表示と、携帯端末に電話の着信があったことを通知する電話着信表示とを有する電子時計が開示されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特許第5347814号公報
【特許文献2】特開2018−22223号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ユーザに対して多くの機能を提供できるようにする場合に、携帯機器に予め全ての機能を記憶させておくことが考えられる。しかしながら、多くの機能を記憶させておこうとすると、必要なメモリ容量が増大して携帯機器の大型化を招いてしまう。
【0006】
本発明の目的は、ユーザに対して充実した機能を提供可能で、かつ携帯機器の大型化を抑制できる携帯機器および携帯機器システムを提供することである。
【課題を解決するための手段】
【0007】
本発明の携帯機器は、入力される指令と、動作部に対して出力する駆動信号と、の対応関係が予め定められている駆動部と、前記駆動部に対して前記指令を出力して前記動作部を動作させる制御部とを備え、前記制御部は、スクリプト言語を含むユーザプログラムを記憶する記憶部を有し、前記ユーザプログラムに従って前記指令を出力することを特徴とする。
【発明の効果】
【0008】
本発明に係る携帯機器は、ユーザプログラムを記憶する記憶部を有し、ユーザが自由に書き換えられることで、ユーザに対して充実した機能を提供することが可能である。また、多くのプログラムを予め記憶しておく必要がないため、携帯機器の大型化が抑制されるという効果を奏する。
【図面の簡単な説明】
【0009】
図1図1は、実施形態に係る携帯機器システムを示す図である。
図2図2は、実施形態に係る携帯機器システムのブロック図である。
図3図3は、実施形態に係るスロットを説明する図である。
図4図4は、実施形態に係る携帯機器システムの要部を示す図である。
図5図5は、実施形態に係るトリガブロックの動作例を示す図である。
図6図6は、実施形態に係るトリガブロックの動作例を示す他の図である。
図7図7は、実施形態に係るサービスブロックの動作例を示す図である。
図8図8は、実施形態に係るアクションブロックの動作例を示す図である。
【発明を実施するための形態】
【0010】
以下に、本発明の実施形態に係る携帯機器および携帯機器システムにつき図面を参照しつつ詳細に説明する。なお、この実施形態によりこの発明が限定されるものではない。また、下記の実施形態における構成要素には、当業者が容易に想定できるものあるいは実質的に同一のものが含まれる。
【0011】
[実施形態]
本実施形態では、携帯機器の一例である電子時計1について説明する。また、本実施形態では、携帯機器システムの一例として、電子時計1およびアプリケーション60を含む携帯機器システム10について説明する。
【0012】
図1に示すように、携帯機器システム10は、電子時計1およびアプリケーション60を含む。電子時計1は、アナログ表示部26および外装ケース29を有する。
【0013】
アナログ表示部26は、ケース本体29eの内部空間に収容されている。アナログ表示部26は、指針6および文字板28を有する。指針6は、秒針6a、分針6b、および時針6cを有する。ケース本体29eには、リューズ27、第一ボタン30A、および第二ボタン30Bが配置されている。
【0014】
携帯通信機器50は、例えば、電子時計1のユーザが所有する機器であり、ユーザによって使用される。携帯通信機器50は、典型的には、スマートフォン等の携帯型の端末機器である。携帯通信機器50は、近距離無線通信を実行する機能を有する。また、携帯通信機器50は、インターネット網100を介して外部サーバ200と通信する機能を有する。携帯通信機器50は、筐体51およびタッチパネル52を有する。タッチパネル52は、画像表示面に重畳されている。画像表示面には、アプリケーション60のユーザインタフェース61が表示される。ユーザは、タッチパネル52に対する入力動作によって携帯通信機器50を操作することができる。
【0015】
図2に示すように、電子時計1は、駆動部2、制御部3、通信部4、電池5、指針6、モータ7、センサ9、太陽電池11、およびブザー12を有する。本実施形態の電子時計1は、指針6によって時刻を表示するアナログ電子時計である。電子時計1は、時刻を表示するデジタル表示部を有していてもよい。
【0016】
電池5は、電子時計1の電源であり、例えば、充電可能な二次電池である。電池5は、駆動部2、制御部3、通信部4を含む各部に対して電力を供給する。指針6は、輪列等を介してモータ7と連結されている。従って、指針6は、モータ7の回転と連動して回転する。
【0017】
モータ7は、指針6を回転させる駆動源であり、例えば、電磁モータや静電モータである。本実施形態のモータ7は、秒針6aと連結された第一モータ71と、分針6b及び時針6cと連結された第二モータ72と、を有している。本実施形態の電子時計1では、秒針6aの運針と、分針6b及び時針6cの運針とが独立している。つまり、本実施形態の電子時計1は、分針6b及び時針6cによって現在時刻を表示させつつ、秒針6aに各種の動作を実行させることができるように構成されている。
【0018】
センサ9は、電子時計1に関する情報を取得するセンサである。センサ9は、例えば、電子時計1の内部温度を計測する温度センサ、電子時計1の加速度を計測する加速度センサ、電子時計1の傾斜角度の変化を検出する傾斜センサ、太陽電池11が受光する光の強度を検出する光センサ等を含む。センサ9による検出結果は、制御部3や駆動部2によって取得される。
【0019】
太陽電池11は、光エネルギーを電気エネルギーに変換する光発電機構である。太陽電池11は、例えば、文字板28に対して背面側に配置されている。太陽電池11によって発電された電力は、電池5に充電され、電池5を介して駆動部2、制御部3、モータ7等の電子時計1各部に電力供給される。
【0020】
ブザー12は、ブザー音を発生させる鳴動機構である。ブザー12は、例えば、ピエゾ素子等の圧電素子を有し、圧電素子の振動によってブザー音を発生させる。圧電素子は、供給される電圧の変化に応じて振動することでアラームを示すブザー音を発生する。
【0021】
駆動部2は、携帯機器に搭載されている動作部を駆動する。携帯機器が電子時計1である場合の駆動部2は、例えば、時計ICである。本実施形態の電子時計1において、駆動部2によって駆動される動作部は、モータ7およびブザー12を含む。
【0022】
駆動部2は、モータ駆動回路21、電源管理部22、ブザー駆動回路23、およびタイマー24を有する。モータ駆動回路21は、モータ7を駆動する回路である。モータ駆動回路21は、制御部3から入力される指令に応じて、モータ7に対して駆動信号を出力する。本実施形態の電子時計1では、駆動部2に入力される指令と、駆動部2が第二モータ72に対して出力する駆動信号と、の対応関係が予め定められている。すなわち、駆動部2に対する入力指令と、当該入力指令に応じて駆動部2が出力する駆動信号との対応関係をユーザがカスタマイズすることはできない。言い換えるならば、駆動部2は、同じ入力指令に対して同じ動作を実行するように構成されている。なお、ファームウエアがアップデートされる場合には、入力指令と、出力する駆動信号との対応関係が変更されてもよい。
【0023】
電源管理部22は、電池5の充放電を管理する。例えば、電源管理部22は、電池5から駆動部2や制御部3に対する電力の供給を制御する。また、電源管理部22は、太陽電池11から電池5への充電を管理する。また、電源管理部22は、電池5の電圧を検出する電圧検出回路と接続されている。駆動部2は、電池5の電圧(以下、単に「電池電圧」と称する。)に応じて電子時計1の動作モードを選択する。例えば、駆動部2は、電池電圧が低下した場合、電子時計1のモードを節電モードやパワーブレークモードに移行させる。節電モードは指針6の運針を停止させることなどにより、電池電圧の低下を抑制するモードである。パワーブレークモードは、駆動部2や制御部3の動作を停止するモードである。モード移行の判定および指令は、制御部3によってなされてもよい。
【0024】
ブザー駆動回路23は、ブザー12に対する駆動信号を出力する回路である。ブザー駆動回路23は、制御部3から駆動部2に対して出力された指令に基づいてブザー12に対して駆動信号を出力する。駆動部2に入力される指令と、当該指令に応じてブザー駆動回路23がブザー12に対して出力する駆動信号と、の対応関係は予め定められている。
【0025】
駆動部2は、予め定められた有限個の鳴動パターンでブザー12を鳴動させるように構成されている。例えば、駆動部2は、第一の鳴動パターンおよび第二の鳴動パターンの何れかでブザー12を鳴動させるように構成されているものとする。この場合、制御部3から駆動部2に対して出力されるブザー指令には、二つの鳴動パターンの何れでブザー12を鳴動させるかを指定する情報が含まれている。ブザー駆動回路23は、指定された鳴動パターンに対応する駆動信号をブザー12に出力する。
【0026】
タイマー24は、発振回路等から出力されるクロック信号に基づいて経過時間をカウントする。駆動部2は、制御部3から入力された指令に応じてタイマー24に対する駆動信号を出力する。タイマー24に対する駆動信号には、タイマー時間を指定する信号や、カウント開始を指令する信号が含まれる。駆動部2は、タイマー24を利用して、各種の動作を実行する。
【0027】
通信部4は、例えば、アンテナ、通信モジュール、および変換部を有する。通信部4は、携帯通信機器50との間で近距離無線通信を行う。通信部4は、例えば、Bluetooth(登録商標)のプロトコルによって携帯通信機器50と通信する。
【0028】
制御部3は、例えば、マイクロコンピュータであり、演算部31、およびメモリ8を有する。メモリ8は、RAM(Random Access Memory)32、およびROM(Read Only Memory)33を有する。RAM32は、例えば、フラッシュメモリやEEPROM等であり、演算部31のワークメモリとして利用される。また、RAM32はROM33としても使用可能であって、予め格納されている動作シーケンスや情報が記録されていてもよい。
【0029】
図3に示すように、メモリ8は、複数のスロット80,81,82,83を有する。より詳しくは、メモリ8は、基準スロット80、第一スロット81、第二スロット82、および第三スロット83を有する。スロット80,81,82,83は、例えば、RAM32を構成する記憶領域である。スロット80は、通常動作に該当する時計動作を行うプログラム(以下、単に「主プログラム」と称する。)を記憶する記憶領域である。主プログラムは、内部時刻を算出する計時プログラム、電池5の充放電を制御する電源制御プログラム、モータ7の駆動制御を行うモータ制御プログラム、太陽電池11によって発電された電力を電池5に充電し、電池5を介して駆動部2、制御部3、モータ7等の電子時計1各部に分配する分配プログラム等を含む。
【0030】
主プログラムは、例えば、機械語のプログラムである。主プログラムは、電子時計1の型式(キャリバー)に応じたプログラムであってもよく、複数の型式に共通のプログラムであってもよい。本実施形態の主プログラムは、複数の型式に共通のプログラムである。主プログラムは、例えば、C言語で作成され、機械語にアセンブルされる。本実施形態の電子時計1では、主プログラムに対するユーザによるカスタマイズが不能である。なお、電子時計1において、ファームアップデートによる主プログラムの変更は許可される。ファームアップデートは、電子時計1の製造者によって提供される主プログラムのアップデートである。
【0031】
第一スロット81、第二スロット82、および第三スロット83は、ユーザプログラムを記憶する記憶領域である。ユーザプログラムは、ユーザによって作成されたプログラムであって、スクリプト言語で記述されている。本実施形態の携帯機器システム10では、携帯通信機器50から電子時計1に対してユーザプログラムを転送可能である。ユーザプログラムの詳細については、後述する。電子時計1は、例えば、基準スロット80、第一スロット81、第二スロット82、および第三スロット83の何れか一つのプログラムを実行するように構成されている。
【0032】
以下の説明では、第一スロット81に記憶されたユーザプログラムを「第一ユーザプログラム」と称する。同様に、第二スロット82に記憶されたユーザプログラムを「第二ユーザプログラム」と称し、第三スロット83に記憶されたユーザプログラムを「第三ユーザプログラム」と称する。また、主プログラムに基づいて電子時計1が制御されているモードを主モードと称する。
【0033】
制御部3は、主モードでは、主プログラムに基づいて駆動部2に対して指令を出力する。例えば、制御部3は、内部時刻に基づいて分針6bおよび時針6cを運針させる指令を駆動部2に対して出力する。この指令を受け取った駆動部2は、分針6bおよび時針6cの回転位置を内部時刻に応じた位置とするように第二モータ72を駆動する。
【0034】
主モードにおいて、制御部3は、内部時刻に基づいて秒針6aを運針させる指令を駆動部2に対して出力する。この指令を受け取った駆動部2は、第一モータ71によって秒針6aを運針させる。駆動部2は、所謂1秒運針によって間欠的に秒針6aを運針させるように第一モータ71を駆動してもよく、秒針6aを連続的に回転させるように第一モータ71を駆動してもよい。
【0035】
主モードにおいて、制御部3は、主プログラムに基づいて電源管理部22に対して指令を出力する。電源管理部22は、制御部3からの指令に応じて、電池5の充放電を制御する駆動信号を出力する。また、制御部3は、主プログラムに基づいて駆動部2に対してブザーについての指令を出力する。例えば、主プログラムは、第一ボタン30Aおよび第二ボタン30Bに対するユーザの操作に基づいて、指定された時刻にブザー12を鳴動させる指令を駆動部2に出力する。駆動部2は、指令に応じて、指定された時刻にブザー駆動回路23からブザー12に対して駆動信号を出力し、ブザー12を鳴動させる。
【0036】
上記のように構成された電子時計1において、制御部3は、メモリ8の基準スロット80に記憶されている主プログラムに従って、駆動部2に対して通常動作に該当する時計動作を指令する。また、制御部3は、ユーザからのプログラム実行命令に応じて、第一ユーザプログラム、第二ユーザプログラム、および第三ユーザプログラムの何れか実行する。本実施形態の電子時計1では、以下に説明するように、携帯通信機器50においてユーザプログラムの作成がなされる。また、携帯通信機器50において作成されたユーザプログラムが電子時計1に送信され、メモリ8のスロット81,82,83の何れかに記憶される。
【0037】
ユーザプログラムは、携帯通信機器50において実行されるアプリケーション60によって作成される。ユーザプログラムは、電子時計1において実行されるアプリケーションプログラムであり、アプレットとも称される。アプリケーション60は、図1に示すように、ユーザプログラムを作成するためのユーザインタフェース61を表示する。ユーザインタフェース61は、提供されるサービス内容、電子時計1において実行させる動作、および動作を実行させるトリガ条件を入力するものである。ユーザインタフェース61は、サービス選択領域61a、トリガ選択領域61b、およびアクション選択領域61cを有する。
【0038】
サービス選択領域61aは、作成するユーザプログラムからユーザが受けたいサービス内容を選択するための領域である。サービスには、電子時計1が単体で提供するサービスや、電子時計1と携帯通信機器50が協働して提供するサービスがある。例えば、本実施形態のアプリケーション60は、ユーザが指定した目的地までの距離を知らせる距離案内サービスを作成する。目的地は、例えば、カフェ等の店舗であってもよい。ユーザは、距離案内サービスを作成する場合、サービス選択領域61aから距離案内サービスを選択する。
【0039】
トリガ選択領域61bは、トリガ条件を選択するための領域である。トリガ条件は、選択したサービスに対応するアクションを実行する条件である。トリガ条件としては、電子時計1に対するユーザの操作入力、開始時刻、電子時計1の内部情報等が選択可能である。例えば、操作入力としては、第一ボタン30Aや第二ボタン30Bに対するプッシュ操作が挙げられる。電子時計1の内部情報は、例えば、センサ9によって検出された情報や、この情報に基づいて算出されたデータである。例えば、温度センサによって所定温度以上の温度が検出されることがトリガ条件とされてもよい。あるいは、電子時計1において加速度センサや傾斜センサの検出結果に基づいてユーザの活動量データが算出される場合に、活動量データが所定の条件を満たすことがトリガ条件とされてもよい。例えば、算出された歩数が所定の歩数に達したことがトリガ条件とされてもよい。
【0040】
アクション選択領域61cは、電子時計1において実行されるアクションを選択するための領域である。本実施形態の電子時計1では、電池5の情報、指針の動作、タイマー24の動作、およびブザー12の動作がユーザに対して開放されている。ユーザは、秒針6aの動作条件をカスタマイズすることや、ブザー12の動作条件をカスタマイズすることが可能である。また、ユーザは、電池5の情報やタイマー24によるカウントを利用してユーザプログラムを作成することが可能である。
【0041】
図4に示すように、制御部3は、スクリプトエンジン3Bを有しており、スクリプト言語によって作成されたユーザプログラムを実行することが可能である。すなわち、制御部3は、時計のスロットが機械語の主プログラムによって制御される基準スロットからスクリプト言語を含むユーザプログラムが記憶されたスロットに変更された際に、ユーザプログラムに従った駆動をすることが可能である。ここで、後述するように駆動プログラム35は機械語であるため、ユーザプログラムはスクリプトエンジン3Bを用いて駆動プログラム35に反映される。そして、ユーザプログラムを反映した駆動プログラム35を実行し、駆動部2に対して指令を出力することで、主プログラムで実施されていた通常動作から、ユーザプログラムによる動作に切り替えることができる。スクリプト言語は、例えば、Lua等のレジスタ型のスクリプト言語である。
【0042】
また、本実施例において、携帯通信機器50において作成されるユーザプログラムはjson(javascript object notation)で書かれたテキストデータであり、その中にスクリプト言語として機能する表現が含まれる。ユーザプログラムは携帯通信機器50から電子時計1に送信され、メモリ8に記憶される。
なお、ユーザプログラムのうち電子時計1の処理に関する内容のみが電子時計1に送信されてもよい。その場合は、電子時計1に関連しない処理は、携帯通信機器50によって実行されてもよい。
【0043】
制御部3は、電池5、モータ7、ブザー12、タイマー24等の動作部を駆動するための各種の駆動プログラム35を記憶している。駆動プログラム35は、第一ボタン30A、第二ボタン30B、リューズ27等の時計の動作制御に関する機能についてのプログラムを含む。駆動プログラム35は、電子時計1の型式(キャリバー)に応じて作成される。すなわち、駆動プログラム35は、電子時計1に搭載されているムーブメントの種類に適合するように作成されたプログラムである。駆動プログラム35は、静的な機能モジュールとして時計毎にコーディングされている。一方、ユーザプログラムは、ユーザが望む動作を電子時計1に実行させる動的な機能モジュールである。
【0044】
例えば、制御部3は、図4に示すように、第一モータプログラム35a、第二モータプログラム35b、第三モータプログラム35cを記憶している。第一モータプログラム35a、第二モータプログラム35b、および第三モータプログラム35cは、それぞれモータ7に動作を実行させるプログラムである。三つのモータプログラム35a,35b,35cには、互いに異なる動作が定義されている。モータプログラム35a,35b,35cがモータ7を駆動するためのモータ駆動情報は、例えば、駆動パルスの周波数、デューティ、パルス数、ステップ数、回転方向などである。
【0045】
制御部3において実行される主プログラムやユーザプログラムは、駆動プログラム35を呼び出すことで駆動部2に指令を送る。例えば、第一モータプログラム35aが呼び出されると、第一モータプログラム35aにおいて定義された動作をモータ7に実行させるように、制御部3から駆動部2に対して指令が送られる。制御部3は、例えば、アプリケーション60が生成する動作命令のコードと、この動作命令のコードに対応する駆動プログラム35との対応関係を予め記憶している。この対応関係は、電子時計1の型式に応じて予め定められている。制御部3は、主プログラムやユーザプログラムを実行する場合に、上記の対応関係を参照して駆動部2に対して指令を出力する。
【0046】
駆動部2は、受信した指令に応じた駆動信号をモータ7等の動作部に出力して動作部を動作させる。例えば、第一モータプログラム35aが秒針6aに1秒運針を実行させるプログラムであるとする。この場合、制御部3において実行されるプログラムで第一モータプログラム35aが呼び出されると、秒針6aを1秒運針させる指令が制御部3から駆動部2に出力される。駆動部2は、秒針6aを1秒運針させる駆動信号をモータ7に出力する。駆動部2は、例えば、秒針6aの動作を変更する指令を受けるまで、秒針6aを1秒運針させ続ける。
【0047】
携帯通信機器50のアプリケーション60は、ユーザに対して開放されている駆動プログラム35に基づいて、ユーザプログラムを生成する。以下の説明では、上述した距離案内サービスを提供するユーザプログラムを「距離案内プログラム」と称する。アプリケーション60は、トリガ選択領域61bで選択されたトリガ条件が成立した場合に、サービス選択領域61aで選択されたサービスを実行し、サービスの実行結果をアクション選択領域61cで選択されたアクションにて実行する、距離案内プログラムを生成する。距離案内プログラムは、トリガ条件が成立したか否かを判定するトリガブロック、サービスを実行するサービスブロックおよびアクションを実行するアクションブロックを含む。アクションブロックは、駆動プログラム35を呼び出す呼び出しコードを含んでいる。
【0048】
ここで、距離案内サービスの具体例を示す。
トリガブロックはユーザが電子時計1のプッシュボタンが押されたことを判定してトリガ条件が成立する。
トリガ条件が成立すると、サービスブロックはユーザの現在位置と目的地位置とから残距離を求めて、サーバからその値を取得する。
アクションブロックは、サービスブロックで取得したユーザの現在位置から目的地までの距離を駆動プログラム35で認識させ、指針を使った所定の制御で距離を表現する。
【0049】
アプリケーション60は、ユーザプログラムと、後述する連携プログラムとを含むプログラム集合体を生成する。連携プログラムは、ユーザプログラムと連携するプログラムであり、携帯通信機器50において実行される。プログラム集合体は、複数のブロックを含むことができる。例えば、プログラム集合体は、一つのトリガブロックと、一つのサービスブロックと、一つのアクションブロックと、によって構成されてもよい。本実施形態のプログラム集合体は、任意の個数のトリガブロックと、任意の個数のサービスブロックと、任意の個数のアクションブロックと、を組み合わせて生成される。ここで、任意の個数には、0が含まれる。
【0050】
アプリケーション60は、電子時計1のメモリ8に流し込むためのスクリプトをブロックに埋め込む。つまり、アプリケーション60によって生成されるブロックは、電子時計1で実行されるスクリプトと、携帯通信機器50で実行される連携プログラムと、を合わせたブロックプログラムである。例えば、各ブロックがjsonで記載されたテキストデータである場合、アプリケーション60は、スクリプトをデータの一つとしてブロックに含ませる。つまり、スクリプトのテキストが一つの文字列値としてブロックに記載される。この場合、スクリプトを含むデータには、固有のタグが付けられる。
【0051】
電子時計1で実行されるアクションに関するスクリプトは、アクションブロックに記載され、電子時計1で発生するトリガに関するスクリプトは、トリガブロックに記載される。電子時計1で実行されるサービスがある場合には、そのサービスに関するスクリプトがサービスブロックに記載される。アプリケーション60は、生成したブロックプログラムを含むプログラム集合体を携帯通信機器50のメモリや外部サーバ200に保存する。
【0052】
以下の説明では、電子時計1で発生するトリガに関するスクリプトを「トリガスクリプト」と称する。同様に、電子時計1が実行するサービスに関するスクリプトを「サービススクリプト」と称し、電子時計1が実行するアクションに関するスクリプトを「アクションスクリプト」と称する。
【0053】
アプリケーション60は、ユーザプログラムを電子時計1に送信する場合、プログラム集合体に含まれる各ブロックからスクリプトを抽出する。アプリケーション60は、各ブロックから抽出されたスクリプトを連結して一つのユーザスクリプトを生成する。例えば、プログラム集合体がトリガブロック、サービスブロック、およびアクションブロックを含む場合、トリガスクリプト、サービススクリプト、およびアクションスクリプトが連結されてひとつのユーザスクリプトが生成される。生成されたユーザスクリプトが、電子時計1で実行されるユーザプログラムである。アプリケーション60は、生成したユーザスクリプトを電子時計1に送信する。
【0054】
アプリケーション60は、ペアリングがなされた電子時計1の型式(キャリバー)に応じたユーザプログラムを生成してもよく、複数の型式に共通のプログラムを作成してもよい。本実施形態のアプリケーション60は、複数の型式に共通のユーザプログラムを作成する。
【0055】
アプリケーション60は、個別の型式に応じたユーザプログラムを作成する場合、予め電子時計1の型式、およびこの型式に対応する駆動プログラム35についての情報を取得する。それぞれの型式において利用可能な駆動プログラム35についての情報は、例えば、外部サーバ200から取得される。また、アプリケーション60は、型式に基づいて、電子時計1に搭載されているセンサ9についての情報や、電子時計1において発生するイベントについての情報を予め取得する。アプリケーション60は、取得した情報に基づいてユーザプログラムを生成する。
【0056】
ユーザによって選択されたトリガ条件が、第一ボタン30Aに対する所定のプッシュ操作であり、選択されたアクションが、距離に応じた回数だけ秒針6aを回転させる動作であるとする。この場合、アプリケーション60は、所定のプッシュ操作が検出された場合に距離に応じた回数だけ秒針6aを回転させる距離案内プログラムを生成する。秒針6aの回転数は、アプリケーション60から電子時計1に対して指示されてもよい。この場合、携帯通信機器50では、距離案内プログラムと連携する連携プログラムが実行される。アプリケーション60は、距離案内プログラムと共に、連携プログラムを生成する。
【0057】
連携プログラムは、携帯通信機器50が有するアプリスロット54(図3参照)に記憶される。携帯通信機器50は、第一アプリスロット54aから第三アプリスロット54cまでの複数のアプリスロット54を有する。第一アプリスロット54aは、メモリ8の第一スロット81に対応する記憶領域である。同様に、第二アプリスロット54bおよび第三アプリスロット54cは、第二スロット82および第三スロット83に対応する記憶領域である。距離案内プログラムが第一スロット81に記憶される場合、距離案内プログラムと連携する連携プログラムは、第一アプリスロット54aに記憶される。電子時計1において距離案内プログラムが実行される場合、携帯通信機器50において第一アプリスロット54aから連携プログラムが読み込まれて実行される。
【0058】
距離案内プログラムは、携帯通信機器50との無線通信によって、秒針6aの目標回転数についての情報を取得する。連携プログラムは、電子時計1からの情報リクエストに応じて、現在位置から指定された店舗までの距離を算出する。算出される距離は、直線距離であっても、店舗までの最短経路に沿った距離であってもよい。携帯通信機器50の現在位置は、例えば、GPS(GLOBAL POSITIONING SYSTEM)衛星から出力されるGPS電波に基づいて算出される。連携プログラムは、算出された距離に基づいて、秒針6aの目標回転数を決定し、電子時計1に送信する。距離案内プログラムは、連携プログラムに対して、定期的に目標回転数についての情報をリクエストしてもよく、定められたトリガ条件が成立した場合に情報をリクエストしてもよい。
【0059】
作成された距離案内プログラムは、無線通信によって携帯通信機器50から電子時計1に対して送信される。アプリケーション60では、電子時計1が有する第一スロット81から第三スロット83までのどのスロットに距離案内プログラムを記憶させるかが選択される。従って、携帯通信機器50は、距離案内プログラム、および距離案内プログラムが格納されるべきスロット番号を電子時計1に送信する。指定された格納先のスロットが第一スロット81であるとする。この場合、制御部3は、受信した距離案内プログラムを第一スロット81に格納する。また、アプリケーション60は、距離案内プログラムと連携する連携プログラムを第一アプリスロット54aに格納する。
【0060】
アプリケーション60は、例えば、携帯通信機器50と電子時計1との無線通信が確立したときに、ユーザプログラムの同期を実行する。ユーザプログラムの同期は、例えば、ユーザプログラムが変更された場合や、ユーザプログラムが新規作成された場合、ユーザプログラムの入れ替えがなされた場合に実行される。アプリケーション60は、ユーザプログラムの同期を行なう場合、更新用のユーザプログラムや新規作成されたユーザプログラムを電子時計1に送信する。制御部3は、受信したユーザプログラムを指定されたスロット81,82,83に格納する。
【0061】
ユーザは、距離案内プログラムを実行する場合、電子時計1における操作、または携帯通信機器50における操作によって、距離案内プログラムを実行させるためのプログラム実行命令を行う。電子時計1に対する操作入力によって距離案内プログラムが実行される場合、電子時計1は、無線通信を介して、携帯通信機器50に対して連携プログラムを実行するようリクエストする。一方、携帯通信機器50における操作によって距離案内プログラムが起動される場合、携帯通信機器50は、電子時計1に対して距離案内プログラムを実行するようリクエストすると共に、連携プログラムを読み出して実行する。
【0062】
制御部3は、プログラム実行命令を受け取ると、第一スロット81から距離案内プログラムを読み込んで実行する。このときに、制御部3は、読み込んだ距離案内プログラムをRAM32に記憶させてもよい。なお、距離案内プログラムが実行されるときに、駆動部2は、秒針6aの動作を変更する指令がなされるまでの間は秒針6aに通常の運針をさせてもよい。すなわち、距離案内プログラムのトリガ条件が成立するまでの間は、秒針6aは、内部時刻の位置を示すように運針されてもよい。
【0063】
距離案内プログラムは、トリガ条件が成立すると、サービス選択領域61aで選択されたサービスを実行し、サービスの実行結果を受けて、アクション選択領域61cで選択されたアクションを実行するための駆動プログラム35を呼び出す。例えば、制御部3には、第二モータプログラム35bとして、360度を一単位として秒針6aを回転させるプログラムが記憶されているとする。この場合、距離案内プログラムは、第二モータプログラム35bを呼び出し、目標回転数だけ秒針6aを回転させる。例えば、目標回転数が三回転である場合、距離案内プログラムは、引数を三単位として第二モータプログラム35bを呼び出す。これにより、制御部3から駆動部2に対して、秒針6aを三回転させる指令が出力される。駆動部2は、秒針6aを三回転させる駆動信号をモータ7に出力する。
【0064】
なお、第二モータプログラム35bにおける回転開始の起点は、例えば、12時の位置とされてもよい。この場合、駆動部2は、秒針6aを12時の位置まで運針させた後に秒針6aを三回転させる。
【0065】
図5から図8を参照して、実施形態の各ブロックにおける動作例の詳細を説明する。図5には、トリガブロックにおける動作例が示されている。携帯通信機器50では、SDK(Software Development Kit)55およびアプリケーション60が動作する。SDK55は、携帯通信機器50の基本ソフト(OS)とアプリケーション60との間に介在するソフトウェアである。SDK55は、ハードウェア資源の利用要求をアプリケーション60から受け取ると、この利用要求を基本ソフト用のコマンドに変換して出力する。
【0066】
実施形態の制御部3では、ハードウェア制御部3Aおよびスクリプトエンジン3Bが動作する。ハードウェア制御部3Aは、電子時計1のハードウェアを制御するプログラムであり、例えば、C言語で作成されている。ハードウェア制御部3Aは、主プログラムとは別のプログラムであっても、主プログラムの一部であってもよい。スクリプトエンジン3Bは、ユーザプログラムのスクリプトを実行するプログラムである。スクリプトエンジン3Bは、例えば、スクリプトを逐次変換しながら実行する。
【0067】
図5を参照して、トリガブロックの動作例について説明する。
(1)ハードウェア制御部3Aが、トリガ条件の成立(発火)を検出する。ハードウェア制御部3Aは、複数種類のトリガを検出可能である。検出可能なトリガの一つは、例えば、第一ボタン30Aや第二ボタン30Bが押されたことである。ハードウェア制御部3Aは、ボタン30A,30Bが押されたことを示す信号に基づいて、トリガ条件の成立を検出する。
(2)ハードウェア制御部3Aは、スクリプトエンジン3Bに対してトリガスクリプトのtrg関数をコールする。trg関数の引数は、例えば、発火したトリガの種類を示す番号である。
(3)スクリプトエンジン3Bは、trg関数を実行する。trg関数は、現在実行中のトリガスクリプトにおいて設定されているトリガの番号と、引数とを比較する。trg関数は、設定されているトリガの番号と発火したトリガの番号とが一致するか否か、および現在実行中であるユーザプログラムのIDを戻り値として出力する。ユーザプログラムのIDは、現在アクティブなスロットの番号である。
(4)スクリプトエンジン3Bは、trg関数の戻り値をハードウェア制御部3Aに返す。
(5)ハードウェア制御部3Aは、戻り値を確認する。
(6)ハードウェア制御部3Aは、戻り値がトリガ番号の一致を示す値である場合、通知処理を開始する。通知処理は、トリガ条件が成立したことを携帯通信機器50に送信する処理である。
(7)ハードウェア制御部3Aは、携帯通信機器50との接続がなされていない場合、接続処理を実行する。既に携帯通信機器50との接続が確立されている場合、接続処理は省略される。
(8)ハードウェア制御部3Aは、無線通信により、アプリケーション60に対してトリガ通知を行なう。ハードウェア制御部3Aは、条件が成立したトリガの番号、および現在実行中であるユーザプログラムのIDをアプリケーション60に通知する。
(9)アプリケーション60は、アプリケーション60において実行しているユーザプログラムのIDと、電子時計1で実行されている連携プログラムのIDとを照合する。
(10)アプリケーション60は、IDが一致している場合、SDK55に対してトリガ通知を行なう。
【0068】
なお、(5)の戻り値の確認において、戻り値がトリガ番号の不一致を示す値である場合、(6)の通知処理へは移行しない。この場合、ハードウェア制御部3Aは、トリガ条件の成立を待機する待機状態となる。
【0069】
図6に示すように、(9)のID照合において、ユーザプログラムと連携プログラムのIDが一致しなかった場合、同期処理が実行される。
(10)同期処理において、アプリケーション60は、電子時計1のユーザプログラムをアプリケーション60のユーザプログラムに同期させる。アプリケーション60は、最新のユーザプログラムを無線通信によってハードウェア制御部3Aに送信する。ハードウェア制御部3Aは、受信したユーザプログラムをメモリ8のスロット81,82,83に記憶させる。
(11)アプリケーション60は、ユーザプログラムが同期されたことを通知センターでユーザに対して通知する。この通知では、アプリケーション60で設定されているユーザプログラムが電子時計1に反映されていなかった旨、および同期が完了した旨が通知される。
(12)アプリケーション60は、ハードウェア制御部3Aに対してINFO要求を行なう。ハードウェア制御部3Aは、INFO要求に応じてINFO動作を実行する。INFO動作は、秒針6aによって予め定められたINFOマークを示す動作である。INFO動作は、ユーザに対する通知が送られていることをユーザに伝え、携帯通信機器50を確認するように促す動作である。
【0070】
図7を参照して、サービスブロックの動作例について説明する。
(1)SDK55がサービスの開始を通知する。サービスの開始条件は、例えば、連携プログラムにおいて定義されている。アプリケーション60は、連携プログラムに基づき、SDK55に対して、サービスの開始条件が成立した場合に通知することを事前に指示している。
(2)アプリケーション60は、電子時計1との通信が接続されているか否かを確認する。アプリケーション60は、電子時計1との通信が接続されていない場合、接続処理を行なう。
(3)アプリケーション60は、通信が接続されている場合、ハードウェア制御部3Aに対してサービス要求を送信する。
(4)ハードウェア制御部3Aは、スクリプトエンジン3Bに対してサービススクリプトのsrv関数をコールする。srv関数は、例えば、電子時計1が有する情報に基づいて処理を行なう関数である。
(5)スクリプトエンジン3Bは、srv関数において、ハードウェア制御部3Aに対して計測データを要求する。計測データの要求は、ユーザプログラムに対して開放されているデータ要求関数をコールすることで実行される。スクリプトエンジン3Bは、データ要求関数の引数によって、要求するデータの種類を指定する。
取得可能な計測データは、例えば、本日のユーザの歩数、電源電圧のデータ、本日のユーザの消費カロリー、光データ、現在の温度、秒針位置、分針位置、時針位置、機能針の位置等である。なお、スクリプトエンジン3Bは、複数種類の計測データをハードウェア制御部3Aから取得してもよい。
(6)ハードウェア制御部3Aは、要求された計測データをスクリプトエンジン3Bに返す。
(7)スクリプトエンジン3Bは、取得した計測データに基づく処理を実行する。スクリプトエンジン3Bは、例えば、計測データに基づく演算加工を実行してもよい。スクリプトエンジン3Bは、計測データに基づく条件判断を行なってもよい。
(8)スクリプトエンジン3Bは、ハードウェア制御部3Aに対してタスクを登録する。このタスクは、アプリケーション60に対して処理結果を渡す通信タスクである。
(9)ハードウェア制御部3Aは、登録されたタスクを実行し、サービス応答を行なう。サービス応答では、スクリプトエンジン3Bにおける処理結果がアプリケーション60に送信される。
(10)アプリケーション60は、SDK55に対してサービスのアウトプットを実行する。例えば、アプリケーション60は、連携プログラムに基づき、スクリプトエンジン3Bの処理結果からアウトプットの指令を生成する。この指令は、例えば、本日のユーザの消費カロリーを画面に表示させる指令である。SDK55は、取得したアウトプットに応じたサービスを実行する。
【0071】
図8を参照して、アクションブロックの動作例について説明する。
(1)SDK55がアクションの開始を通知する。アクションの開始条件は、例えば、連携プログラムにおいて定義されている。アプリケーション60は、連携プログラムに基づき、SDK55に対して、アクションの開始条件が成立した場合に通知することを事前に指示している。
(2)アプリケーション60は、電子時計1との通信が接続されているか否かを確認する。
(3)アプリケーション60は、通信が接続されている場合、ハードウェア制御部3Aに対して連携プログラムのスロット番号を送信する。アプリケーション60は、例えば、第一アプリスロット54aの連携プログラムを実行している場合、スロット番号である「1」をハードウェア制御部3Aに送信する。
(4)ハードウェア制御部3Aは、スロット番号の照合を行なう。ハードウェア制御部3Aは、電子時計1で実行されているユーザプログラムのスロット番号と、受信したスロット番号とが一致しているかを判定する。
(5)ハードウェア制御部3Aは、二つのスロット番号が一致している場合、アプリケーション60に対して番号一致を通知する。
(6)アプリケーション60は、ハードウェア制御部3Aに対してアクションデータの送信を要求する。
(7)ハードウェア制御部3Aは、アプリケーション60に対して、アクションデータの要求を受け付けた旨を応答する。
(8)ハードウェア制御部3Aは、スクリプトエンジン3Bに対してアクションスクリプトのact関数をコールする。act関数は、アクションに関する処理を実行する関数である。
(9)スクリプトエンジン3Bは、act関数がコールされると、ハードウェア制御部3Aの駆動関数をコールしてイベント処理を実行する。駆動関数は、駆動プログラム35の実行を指示する関数である。スクリプトエンジン3Bは、駆動関数により、運針動作、ブザー12の動作、ウエイト動作、現在時刻への復帰動作等を指示することができる。
例えば、運針動作では、動作させる指針として、秒針6a、分針6b、時針6c、および機能針を指定することができる。運針動作では、運針のステップ数を0から360[°]の範囲で指定することができる。ブザー12の動作では、ブザー12の鳴動パターンや鳴動回数を指定することができる。ウエイト動作では、待機時間を指定することができる。
ハードウェア制御部3Aは、指示された駆動プログラム35の実行が完了すると、スクリプトエンジン3Bに対してact関数をコールする。スクリプトエンジン3Bは、アクションスクリプトに従って、次のイベントを実行させる駆動関数をコールする。すなわち、スクリプトで定められたイベントを全て実行するまで、act関数のコールおよび駆動関数のコールが繰り返される。
(10)スクリプトエンジン3Bは、最後のイベントを実行させる駆動関数をコールすると、ハードウェア制御部3Aに対して、act関数のコール終了を指示する。
(11)ハードウェア制御部3Aは、コール終了の指示を受け取ると、最後のイベントが完了するまで処理待ちをする。
(12)ハードウェア制御部3Aは、最後のイベントが完了すると、アプリケーション60に対して動作完了を通知する。
(13)アプリケーション60は、SDK55に対してアクション終了を通知する。
(14)アプリケーション60は、ハードウェア制御部3Aに対して、動作完了通知を受け取った旨の応答を行なう。
【0072】
上記のように、ユーザプログラムは、モータ7だけでなく、電池5、ブザー12、およびタイマー24を利用することも可能である。例えば、ユーザプログラムにおいて、電池5の電圧に応じて異なる動作が設定されてもよい。一例として、ユーザプログラムは、電池5の電圧が低レベルである場合には秒針6aに第一の動作を実行させ、電池5の電圧が高レベルである場合には秒針6aに第二の動作を実行させてもよい。ユーザプログラムは、電池電圧を含む様々な条件に応じて異なる動作を行うように構成可能である。
【0073】
上記のように、ユーザプログラムは、トリガ条件等に応じてブザー12を鳴動させることもできる。トリガ条件は、センサ9の検出結果について設定されてもよい。一例として、ユーザプログラムは、ユーザの活動量データに関するトリガ条件が成立した場合にブザー12を鳴動させてもよい。例えば、ユーザプログラムは、算出されたユーザの消費熱量が所定値に達した場合にブザー12を鳴動させることもできる。
【0074】
以上説明したように、実施形態に係る電子時計1は、駆動部2と、メモリ8を含む制御部3と、を有する。電子時計1は、携帯機器の一例である。駆動部2は、入力される指令と、動作部に対して出力する駆動信号と、の対応関係が予め定められている。本実施形態の駆動部2は、複数の駆動回路を有する時計ICである。メモリ8は、ユーザによって作成されたスクリプト言語を含むユーザプログラムを記憶する記憶部である。制御部3は、ユーザプログラムに従って指令を出力する。
【0075】
本実施形態の電子時計1は、ユーザプログラムを記憶するメモリ8を有する。本実施形態の電子時計1は、ユーザプログラムを記憶して実行することが可能に構成されていることで、ユーザに対して充実した機能を提供することができる。また、メモリ8等に多くのプログラムを予め記憶しておく必要がないため、電子時計1の大型化が抑制される。また、本実施形態の電子時計1において、ユーザプログラムがスクリプト言語を含むプログラムであるため、容易に作成可能である。例えば、ユーザプログラムを生成するためのアプリケーション60が簡素化される。本実施形態の電子時計1は、時計の制御プログラムに対してスクリプト言語を使用した仮想マシンを形成することが可能に構成されている。仮想マシンにより、ユーザが任意に電子時計1の機能を変更することが可能となる。また、スクリプト言語でユーザプログラムが作成されることで、電子時計1をカスタマイズする言語の共通化を図ることができる。
【0076】
本実施形態の制御部3は、予め記憶している機械語の駆動プログラム35によって指令を生成する。駆動プログラム35が機械語であることから、ユーザプログラムの実行における制御部3の演算処理が軽減される。
【0077】
本実施形態の制御部3は、通常動作時には機械語の主プログラムに従って指令を出力する。言い換えると、機械語の駆動プログラム35によって、駆動部2に対して指令を出力して、通常動作が行われる。主プログラムが機械語であることから、通常動作の実行における制御部3の演算処理が軽減される。
【0078】
本実施形態の制御部3は、ハードウェア制御部3Aとスクリプトエンジン3Bとを有する。制御部3は、ユーザプログラムによる駆動時には、ハードウェア制御部3Aとスクリプトエンジン3Bとが連動することでユーザプログラムに従った指令を出力する。ユーザプログラムによる動作が実行され、ユーザに対して充実した機能が提供される。
【0079】
本実施形態の動作部は、指針6を回転させるモータ7を含む。駆動部2は、モータ7に対して駆動信号を出力するモータ駆動回路21を有する。制御部3は、ユーザプログラムに従い、駆動部2に対してモータ7を動作させる指令を出力する。指針6に対する制御がユーザに対して開放されていることで、ユーザに対して充実した機能を提供可能である。
【0080】
本実施形態の電子時計1は、携帯通信機器50との無線通信を行う通信部4を有し、携帯通信機器50との無線通信によってユーザプログラムを取得する。ユーザプログラムは、携帯通信機器50において生成されてもよく、外部サーバ200からダウンロードされてもよい。よって、ユーザは電子時計1に容易にユーザプログラムを組み込むことができる。
【0081】
本実施形態の制御部3は、ユーザプログラムに従い、無線通信によって携帯通信機器50から取得した情報に基づいて駆動部2に対して指令を出力する。電子時計1は、携帯通信機器50と連携して動作することで、ユーザに対して充実した機能を提供することができる。
【0082】
本実施形態の携帯機器は、電子時計1であり、機械語の駆動プログラム35を記憶している。駆動プログラム35は、電子時計1に搭載されたムーブメントの型式に対応した制御プログラムの一例である。制御部3は、ユーザプログラムに従い、型式に対応した駆動プログラム35を実行することで駆動部2に対して指令を出力する。つまり、ユーザプログラムは、電子時計1のキャリバーを判断して、そのキャリバーに合う形に変換してプログラムを流す。よって、本実施形態によれば、複数のキャリバーに対して共通のユーザプログラムを適用することが可能となる。例えば、ユーザが複数の電子時計1を所有しており、かつ各電子時計1のキャリバーが互いに異なるとする。このような場合であっても、ユーザは共通のユーザプログラムで複数の電子時計1に同じ機能を組み込むことができる。
【0083】
本実施形態の携帯機器システム10は、携帯通信機器50において実行されるアプリケーション60と、電子時計1等の携帯機器と、を含む。アプリケーション60は、スクリプト言語を含むユーザプログラムを生成する。携帯機器は、通信部4と、駆動部2と、メモリ8を含む制御部3と、を有する。メモリ8は、携帯通信機器50との無線通信によって取得したユーザプログラムを記憶する。制御部3は、ユーザプログラムに従って駆動部2に対して指令を出力して動作部を動作させる。
【0084】
本実施形態の携帯機器システム10は、ユーザに対して充実した機能を提供可能で、かつ携帯機器の大型化を抑制することができる。本実施形態のアプリケーション60は、ユーザインタフェース61によるビジュアルプログラミングの機能を提供する。ユーザは、ユーザインタフェース61による非言語プログラミングによりユーザプログラムを作成することができる。よって、実施形態の携帯機器システム10は、埋め込みプログラミングの知識を有していないユーザに対しても、携帯機器における充実した機能を提供することができる。また、スクリプト言語はクラウドと親和性が高いため、携帯機器システム10とクラウドとの機能連携が容易である。
【0085】
本実施形態の携帯機器システム10において、アプリケーション60は、ユーザプログラムと、携帯通信機器50において実行される連携プログラムと、を合わせて一つのブロックプログラムを生成して保存する。アプリケーション60は、ブロックプログラムから抽出したユーザプログラムを電子時計1等の携帯機器に送信する。ユーザプログラムと連携プログラムとが一つのブロックプログラムとしてまとめられることで、例えば、ユーザプログラムや連携プログラムの管理が容易となる。
【0086】
[実施形態の変形例]
実施形態の変形例について説明する。携帯機器は、例示した電子時計1には限定されない。実施形態の携帯機器は、電子時計を含む各種の機器を適用対象とする。携帯機器は、アナログ表示部26を有していなくてもよい。携帯機器は、例えば、デジタル表示のスマートウォッチであってもよい。
【0087】
ユーザプログラムのスクリプト言語は、例示したLuaには限定されない。また、ユーザプログラムの言語として、任意のスクリプト言語を使用可能である。携帯通信機器50は、所謂スマートフォンには限定されない。携帯通信機器50としては、携帯機器との無線通信を行う機能を有する様々な機器を利用可能である。携帯通信機器50は、例えば、タブレット端末機器であってもよい。
【0088】
ユーザに対して動作が開放される指針6は、秒針6aには限定されない。例えば、秒針6a、分針6b、および時針6cのうち任意の指針6の動作がユーザに開放されてもよい。また、指針6は、秒針6a、分針6b、および時針6cに加えて他の指針を有していてもよい。この場合、他の指針の動作がユーザに開放されてもよい。携帯機器がLED(Light Emitting Diode)等の発光素子を有する場合、発光素子の動作がユーザに開放されてもよい。携帯機器がデジタル表示部を有する場合、デジタル表示部の動作がユーザに開放されてもよい。
【0089】
上記の実施形態および変形例に開示された内容は、適宜組み合わせて実行することができる。
【符号の説明】
【0090】
1 電子時計
2 駆動部
3 制御部
3A:ハードウェア制御部、 3B:スクリプトエンジン
4 通信部
5 電池
6 指針
6a:秒針、 6b:分針、 6c:時針
7 モータ
8 メモリ
9 センサ
10 携帯機器システム
11 太陽電池
12 ブザー
21 モータ駆動回路
22 電源管理部
23 ブザー駆動回路
24 タイマー
27 リューズ
28 文字板
29 外装ケース
29a〜29d:かん、 29e:ケース本体
30A:第一ボタン、 30B:第二ボタン
31 演算部
32 RAM
33 ROM
35 駆動プログラム
35a:第一モータプログラム、 35b:第二モータプログラム、 35c:第三モータプログラム
50 携帯通信機器
51 筐体
52 タッチパネル
54 アプリスロット
54a:第一アプリスロット、 54b:第二アプリスロット、 54c:第三アプリスロット
55:SDK
60 アプリケーション
61 ユーザインタフェース
61a:サービス選択領域、 61b:トリガ選択領域、 61c:アクション選択領域
71:第一モータ、 72:第二モータ
81:第一スロット、 82:第二スロット、 83:第三スロット
100 インターネット網
200 外部サーバ
図1
図2
図3
図4
図5
図6
図7
図8