(57)【要約】【課題】ユーザに対して充実した機能を提供可能で、かつ携帯機器の大型化を抑制できる携帯機器を提供する。【解決手段】携帯機器１は、入力される指令と、動作部７，１２に対して出力する駆動信号と、の対応関係が予め定められている駆動部２と、駆動部に対して指令を出力して動作部を動作させる制御部３と、を備え、制御部は、スクリプト言語を含むユーザプログラムを記憶する記憶部８を有し、ユーザプログラムに従って指令を出力する。【選択図】図２
2020148756.tif 000002
【特許請求の範囲】
【請求項１】
入力される指令と、動作部に対して出力する駆動信号と、の対応関係が予め定められている駆動部と、
前記駆動部に対して前記指令を出力して前記動作部を動作させる制御部とを備え、
前記制御部は、スクリプト言語を含むユーザプログラムを記憶する記憶部を有し、前記ユーザプログラムに従って前記指令を出力する
ことを特徴とする携帯機器。
【請求項２】
前記制御部は、予め記憶している機械語の制御プログラムによって前記指令を生成する
請求項１に記載の携帯機器。
【請求項３】
前記制御部は、通常動作時には機械語の主プログラムに従って前記指令を出力する
請求項２に記載の携帯機器。
【請求項４】
前記制御部は、ハードウェア制御部とスクリプトエンジンとを有し、
前記ユーザプログラムによる駆動時には、前記ハードウェア制御部と前記スクリプトエンジンとが連動することでユーザプログラムに従った前記指令を出力する
請求項２又は３に記載の携帯機器。
【請求項５】
前記動作部は、指針を回転させるモータを含み、
前記駆動部は、前記モータに対して前記駆動信号を出力する駆動回路を有し、
前記制御部は、前記ユーザプログラムに従い、前記駆動部に対して前記モータを動作させる前記指令を出力する
請求項１から４の何れか１項に記載の携帯機器。
【請求項６】
更に、携帯通信機器との無線通信を行う通信部を有し、前記携帯通信機器との無線通信によって前記ユーザプログラムを取得する
請求項１から５の何れか１項に記載の携帯機器。
【請求項７】
前記制御部は、前記ユーザプログラムに従い、無線通信によって前記携帯通信機器から取得した情報に基づいて前記駆動部に対して前記指令を出力する
請求項６に記載の携帯機器。
【請求項８】
前記携帯機器は、電子時計であり、かつ搭載されたムーブメントの型式に対応した機械語の制御プログラムを記憶しており、
前記制御部は、前記ユーザプログラムに従い、前記型式に対応した前記制御プログラムを実行することで前記駆動部に対して前記指令を出力する
請求項１から７の何れか１項に記載の携帯機器。
【請求項９】
更に、前記携帯機器に関する情報を取得するセンサを備え、
前記制御部は、前記ユーザプログラムに従い、前記センサから取得する情報に基づいて前記駆動部に対して前記指令を出力する
請求項１から８の何れか１項に記載の携帯機器。
【請求項１０】
前記制御部は、前記ユーザプログラムに従い、電源の状態に基づいて前記駆動部に対して前記指令を出力する
請求項１から９の何れか１項に記載の携帯機器。
【請求項１１】
携帯通信機器において実行され、スクリプト言語を含むユーザプログラムを生成するアプリケーションと、
携帯機器と、
を備え、
前記携帯機器は、
前記携帯通信機器と無線通信する通信部と、
入力される指令と、動作部に対して出力する駆動信号と、の関係が予め定められている駆動部と、
前記携帯通信機器との無線通信によって取得した前記ユーザプログラムを記憶する記憶部を有し、前記ユーザプログラムに従って前記駆動部に対して前記指令を出力して前記動作部を動作させる制御部と、
を有することを特徴とする携帯機器システム。
【請求項１２】
前記アプリケーションは、前記ユーザプログラムと、前記携帯通信機器において実行され、前記ユーザプログラムと連携する連携プログラムと、を合わせて一つのブロックプログラムを生成して保存し、
前記アプリケーションは、前記ブロックプログラムから抽出した前記ユーザプログラムを前記携帯機器に送信する
請求項１１に記載の携帯機器システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、携帯機器および携帯機器システムに関する。
【背景技術】
【０００２】
従来、予め記憶された制御プログラムに基づいて動作する電子時計がある。特許文献１には、装置の全体的な制御を行う制御部と、制御部のＣＰＵが実行する制御プログラムや制御データが格納された設定値記憶手段としてのＲＯＭとを有する電子時計が開示されている。
【０００３】
また、携帯端末と連動する機能を有するなど、機能を充実させた電子機器がある。特許文献２には、携帯端末に電子メールの受信があったことを通知する電子メール受信表示と、携帯端末に電話の着信があったことを通知する電話着信表示とを有する電子時計が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第５３４７８１４号公報
【特許文献２】特開２０１８−２２２２３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ユーザに対して多くの機能を提供できるようにする場合に、携帯機器に予め全ての機能を記憶させておくことが考えられる。しかしながら、多くの機能を記憶させておこうとすると、必要なメモリ容量が増大して携帯機器の大型化を招いてしまう。
【０００６】
本発明の目的は、ユーザに対して充実した機能を提供可能で、かつ携帯機器の大型化を抑制できる携帯機器および携帯機器システムを提供することである。
【課題を解決するための手段】
【０００７】
本発明の携帯機器は、入力される指令と、動作部に対して出力する駆動信号と、の対応関係が予め定められている駆動部と、前記駆動部に対して前記指令を出力して前記動作部を動作させる制御部とを備え、前記制御部は、スクリプト言語を含むユーザプログラムを記憶する記憶部を有し、前記ユーザプログラムに従って前記指令を出力することを特徴とする。
【発明の効果】
【０００８】
本発明に係る携帯機器は、ユーザプログラムを記憶する記憶部を有し、ユーザが自由に書き換えられることで、ユーザに対して充実した機能を提供することが可能である。また、多くのプログラムを予め記憶しておく必要がないため、携帯機器の大型化が抑制されるという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施形態に係る携帯機器システムを示す図である。
【図２】図２は、実施形態に係る携帯機器システムのブロック図である。
【図３】図３は、実施形態に係るスロットを説明する図である。
【図４】図４は、実施形態に係る携帯機器システムの要部を示す図である。
【図５】図５は、実施形態に係るトリガブロックの動作例を示す図である。
【図６】図６は、実施形態に係るトリガブロックの動作例を示す他の図である。
【図７】図７は、実施形態に係るサービスブロックの動作例を示す図である。
【図８】図８は、実施形態に係るアクションブロックの動作例を示す図である。
【発明を実施するための形態】
【００１０】
以下に、本発明の実施形態に係る携帯機器および携帯機器システムにつき図面を参照しつつ詳細に説明する。なお、この実施形態によりこの発明が限定されるものではない。また、下記の実施形態における構成要素には、当業者が容易に想定できるものあるいは実質的に同一のものが含まれる。
【００１１】
［実施形態］
本実施形態では、携帯機器の一例である電子時計１について説明する。また、本実施形態では、携帯機器システムの一例として、電子時計１およびアプリケーション６０を含む携帯機器システム１０について説明する。
【００１２】
図１に示すように、携帯機器システム１０は、電子時計１およびアプリケーション６０を含む。電子時計１は、アナログ表示部２６および外装ケース２９を有する。
【００１３】
アナログ表示部２６は、ケース本体２９ｅの内部空間に収容されている。アナログ表示部２６は、指針６および文字板２８を有する。指針６は、秒針６ａ、分針６ｂ、および時針６ｃを有する。ケース本体２９ｅには、リューズ２７、第一ボタン３０Ａ、および第二ボタン３０Ｂが配置されている。
【００１４】
携帯通信機器５０は、例えば、電子時計１のユーザが所有する機器であり、ユーザによって使用される。携帯通信機器５０は、典型的には、スマートフォン等の携帯型の端末機器である。携帯通信機器５０は、近距離無線通信を実行する機能を有する。また、携帯通信機器５０は、インターネット網１００を介して外部サーバ２００と通信する機能を有する。携帯通信機器５０は、筐体５１およびタッチパネル５２を有する。タッチパネル５２は、画像表示面に重畳されている。画像表示面には、アプリケーション６０のユーザインタフェース６１が表示される。ユーザは、タッチパネル５２に対する入力動作によって携帯通信機器５０を操作することができる。
【００１５】
図２に示すように、電子時計１は、駆動部２、制御部３、通信部４、電池５、指針６、モータ７、センサ９、太陽電池１１、およびブザー１２を有する。本実施形態の電子時計１は、指針６によって時刻を表示するアナログ電子時計である。電子時計１は、時刻を表示するデジタル表示部を有していてもよい。
【００１６】
電池５は、電子時計１の電源であり、例えば、充電可能な二次電池である。電池５は、駆動部２、制御部３、通信部４を含む各部に対して電力を供給する。指針６は、輪列等を介してモータ７と連結されている。従って、指針６は、モータ７の回転と連動して回転する。
【００１７】
モータ７は、指針６を回転させる駆動源であり、例えば、電磁モータや静電モータである。本実施形態のモータ７は、秒針６ａと連結された第一モータ７１と、分針６ｂ及び時針６ｃと連結された第二モータ７２と、を有している。本実施形態の電子時計１では、秒針６ａの運針と、分針６ｂ及び時針６ｃの運針とが独立している。つまり、本実施形態の電子時計１は、分針６ｂ及び時針６ｃによって現在時刻を表示させつつ、秒針６ａに各種の動作を実行させることができるように構成されている。
【００１８】
センサ９は、電子時計１に関する情報を取得するセンサである。センサ９は、例えば、電子時計１の内部温度を計測する温度センサ、電子時計１の加速度を計測する加速度センサ、電子時計１の傾斜角度の変化を検出する傾斜センサ、太陽電池１１が受光する光の強度を検出する光センサ等を含む。センサ９による検出結果は、制御部３や駆動部２によって取得される。
【００１９】
太陽電池１１は、光エネルギーを電気エネルギーに変換する光発電機構である。太陽電池１１は、例えば、文字板２８に対して背面側に配置されている。太陽電池１１によって発電された電力は、電池５に充電され、電池５を介して駆動部２、制御部３、モータ７等の電子時計１各部に電力供給される。
【００２０】
ブザー１２は、ブザー音を発生させる鳴動機構である。ブザー１２は、例えば、ピエゾ素子等の圧電素子を有し、圧電素子の振動によってブザー音を発生させる。圧電素子は、供給される電圧の変化に応じて振動することでアラームを示すブザー音を発生する。
【００２１】
駆動部２は、携帯機器に搭載されている動作部を駆動する。携帯機器が電子時計１である場合の駆動部２は、例えば、時計ＩＣである。本実施形態の電子時計１において、駆動部２によって駆動される動作部は、モータ７およびブザー１２を含む。
【００２２】
駆動部２は、モータ駆動回路２１、電源管理部２２、ブザー駆動回路２３、およびタイマー２４を有する。モータ駆動回路２１は、モータ７を駆動する回路である。モータ駆動回路２１は、制御部３から入力される指令に応じて、モータ７に対して駆動信号を出力する。本実施形態の電子時計１では、駆動部２に入力される指令と、駆動部２が第二モータ７２に対して出力する駆動信号と、の対応関係が予め定められている。すなわち、駆動部２に対する入力指令と、当該入力指令に応じて駆動部２が出力する駆動信号との対応関係をユーザがカスタマイズすることはできない。言い換えるならば、駆動部２は、同じ入力指令に対して同じ動作を実行するように構成されている。なお、ファームウエアがアップデートされる場合には、入力指令と、出力する駆動信号との対応関係が変更されてもよい。
【００２３】
電源管理部２２は、電池５の充放電を管理する。例えば、電源管理部２２は、電池５から駆動部２や制御部３に対する電力の供給を制御する。また、電源管理部２２は、太陽電池１１から電池５への充電を管理する。また、電源管理部２２は、電池５の電圧を検出する電圧検出回路と接続されている。駆動部２は、電池５の電圧（以下、単に「電池電圧」と称する。）に応じて電子時計１の動作モードを選択する。例えば、駆動部２は、電池電圧が低下した場合、電子時計１のモードを節電モードやパワーブレークモードに移行させる。節電モードは指針６の運針を停止させることなどにより、電池電圧の低下を抑制するモードである。パワーブレークモードは、駆動部２や制御部３の動作を停止するモードである。モード移行の判定および指令は、制御部３によってなされてもよい。
【００２４】
ブザー駆動回路２３は、ブザー１２に対する駆動信号を出力する回路である。ブザー駆動回路２３は、制御部３から駆動部２に対して出力された指令に基づいてブザー１２に対して駆動信号を出力する。駆動部２に入力される指令と、当該指令に応じてブザー駆動回路２３がブザー１２に対して出力する駆動信号と、の対応関係は予め定められている。
【００２５】
駆動部２は、予め定められた有限個の鳴動パターンでブザー１２を鳴動させるように構成されている。例えば、駆動部２は、第一の鳴動パターンおよび第二の鳴動パターンの何れかでブザー１２を鳴動させるように構成されているものとする。この場合、制御部３から駆動部２に対して出力されるブザー指令には、二つの鳴動パターンの何れでブザー１２を鳴動させるかを指定する情報が含まれている。ブザー駆動回路２３は、指定された鳴動パターンに対応する駆動信号をブザー１２に出力する。
【００２６】
タイマー２４は、発振回路等から出力されるクロック信号に基づいて経過時間をカウントする。駆動部２は、制御部３から入力された指令に応じてタイマー２４に対する駆動信号を出力する。タイマー２４に対する駆動信号には、タイマー時間を指定する信号や、カウント開始を指令する信号が含まれる。駆動部２は、タイマー２４を利用して、各種の動作を実行する。
【００２７】
通信部４は、例えば、アンテナ、通信モジュール、および変換部を有する。通信部４は、携帯通信機器５０との間で近距離無線通信を行う。通信部４は、例えば、Ｂｌｕｅｔｏｏｔｈ（登録商標）のプロトコルによって携帯通信機器５０と通信する。
【００２８】
制御部３は、例えば、マイクロコンピュータであり、演算部３１、およびメモリ８を有する。メモリ８は、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３２、およびＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）３３を有する。ＲＡＭ３２は、例えば、フラッシュメモリやＥＥＰＲＯＭ等であり、演算部３１のワークメモリとして利用される。また、ＲＡＭ３２はＲＯＭ３３としても使用可能であって、予め格納されている動作シーケンスや情報が記録されていてもよい。
【００２９】
図３に示すように、メモリ８は、複数のスロット８０，８１，８２，８３を有する。より詳しくは、メモリ８は、基準スロット８０、第一スロット８１、第二スロット８２、および第三スロット８３を有する。スロット８０，８１，８２，８３は、例えば、ＲＡＭ３２を構成する記憶領域である。スロット８０は、通常動作に該当する時計動作を行うプログラム（以下、単に「主プログラム」と称する。）を記憶する記憶領域である。主プログラムは、内部時刻を算出する計時プログラム、電池５の充放電を制御する電源制御プログラム、モータ７の駆動制御を行うモータ制御プログラム、太陽電池１１によって発電された電力を電池５に充電し、電池５を介して駆動部２、制御部３、モータ７等の電子時計１各部に分配する分配プログラム等を含む。
【００３０】
主プログラムは、例えば、機械語のプログラムである。主プログラムは、電子時計１の型式（キャリバー）に応じたプログラムであってもよく、複数の型式に共通のプログラムであってもよい。本実施形態の主プログラムは、複数の型式に共通のプログラムである。主プログラムは、例えば、Ｃ言語で作成され、機械語にアセンブルされる。本実施形態の電子時計１では、主プログラムに対するユーザによるカスタマイズが不能である。なお、電子時計１において、ファームアップデートによる主プログラムの変更は許可される。ファームアップデートは、電子時計１の製造者によって提供される主プログラムのアップデートである。
【００３１】
第一スロット８１、第二スロット８２、および第三スロット８３は、ユーザプログラムを記憶する記憶領域である。ユーザプログラムは、ユーザによって作成されたプログラムであって、スクリプト言語で記述されている。本実施形態の携帯機器システム１０では、携帯通信機器５０から電子時計１に対してユーザプログラムを転送可能である。ユーザプログラムの詳細については、後述する。電子時計１は、例えば、基準スロット８０、第一スロット８１、第二スロット８２、および第三スロット８３の何れか一つのプログラムを実行するように構成されている。
【００３２】
以下の説明では、第一スロット８１に記憶されたユーザプログラムを「第一ユーザプログラム」と称する。同様に、第二スロット８２に記憶されたユーザプログラムを「第二ユーザプログラム」と称し、第三スロット８３に記憶されたユーザプログラムを「第三ユーザプログラム」と称する。また、主プログラムに基づいて電子時計１が制御されているモードを主モードと称する。
【００３３】
制御部３は、主モードでは、主プログラムに基づいて駆動部２に対して指令を出力する。例えば、制御部３は、内部時刻に基づいて分針６ｂおよび時針６ｃを運針させる指令を駆動部２に対して出力する。この指令を受け取った駆動部２は、分針６ｂおよび時針６ｃの回転位置を内部時刻に応じた位置とするように第二モータ７２を駆動する。
【００３４】
主モードにおいて、制御部３は、内部時刻に基づいて秒針６ａを運針させる指令を駆動部２に対して出力する。この指令を受け取った駆動部２は、第一モータ７１によって秒針６ａを運針させる。駆動部２は、所謂１秒運針によって間欠的に秒針６ａを運針させるように第一モータ７１を駆動してもよく、秒針６ａを連続的に回転させるように第一モータ７１を駆動してもよい。
【００３５】
主モードにおいて、制御部３は、主プログラムに基づいて電源管理部２２に対して指令を出力する。電源管理部２２は、制御部３からの指令に応じて、電池５の充放電を制御する駆動信号を出力する。また、制御部３は、主プログラムに基づいて駆動部２に対してブザーについての指令を出力する。例えば、主プログラムは、第一ボタン３０Ａおよび第二ボタン３０Ｂに対するユーザの操作に基づいて、指定された時刻にブザー１２を鳴動させる指令を駆動部２に出力する。駆動部２は、指令に応じて、指定された時刻にブザー駆動回路２３からブザー１２に対して駆動信号を出力し、ブザー１２を鳴動させる。
【００３６】
上記のように構成された電子時計１において、制御部３は、メモリ８の基準スロット８０に記憶されている主プログラムに従って、駆動部２に対して通常動作に該当する時計動作を指令する。また、制御部３は、ユーザからのプログラム実行命令に応じて、第一ユーザプログラム、第二ユーザプログラム、および第三ユーザプログラムの何れか実行する。本実施形態の電子時計１では、以下に説明するように、携帯通信機器５０においてユーザプログラムの作成がなされる。また、携帯通信機器５０において作成されたユーザプログラムが電子時計１に送信され、メモリ８のスロット８１，８２，８３の何れかに記憶される。
【００３７】
ユーザプログラムは、携帯通信機器５０において実行されるアプリケーション６０によって作成される。ユーザプログラムは、電子時計１において実行されるアプリケーションプログラムであり、アプレットとも称される。アプリケーション６０は、図１に示すように、ユーザプログラムを作成するためのユーザインタフェース６１を表示する。ユーザインタフェース６１は、提供されるサービス内容、電子時計１において実行させる動作、および動作を実行させるトリガ条件を入力するものである。ユーザインタフェース６１は、サービス選択領域６１ａ、トリガ選択領域６１ｂ、およびアクション選択領域６１ｃを有する。
【００３８】
サービス選択領域６１ａは、作成するユーザプログラムからユーザが受けたいサービス内容を選択するための領域である。サービスには、電子時計１が単体で提供するサービスや、電子時計１と携帯通信機器５０が協働して提供するサービスがある。例えば、本実施形態のアプリケーション６０は、ユーザが指定した目的地までの距離を知らせる距離案内サービスを作成する。目的地は、例えば、カフェ等の店舗であってもよい。ユーザは、距離案内サービスを作成する場合、サービス選択領域６１ａから距離案内サービスを選択する。
【００３９】
トリガ選択領域６１ｂは、トリガ条件を選択するための領域である。トリガ条件は、選択したサービスに対応するアクションを実行する条件である。トリガ条件としては、電子時計１に対するユーザの操作入力、開始時刻、電子時計１の内部情報等が選択可能である。例えば、操作入力としては、第一ボタン３０Ａや第二ボタン３０Ｂに対するプッシュ操作が挙げられる。電子時計１の内部情報は、例えば、センサ９によって検出された情報や、この情報に基づいて算出されたデータである。例えば、温度センサによって所定温度以上の温度が検出されることがトリガ条件とされてもよい。あるいは、電子時計１において加速度センサや傾斜センサの検出結果に基づいてユーザの活動量データが算出される場合に、活動量データが所定の条件を満たすことがトリガ条件とされてもよい。例えば、算出された歩数が所定の歩数に達したことがトリガ条件とされてもよい。
【００４０】
アクション選択領域６１ｃは、電子時計１において実行されるアクションを選択するための領域である。本実施形態の電子時計１では、電池５の情報、指針の動作、タイマー２４の動作、およびブザー１２の動作がユーザに対して開放されている。ユーザは、秒針６ａの動作条件をカスタマイズすることや、ブザー１２の動作条件をカスタマイズすることが可能である。また、ユーザは、電池５の情報やタイマー２４によるカウントを利用してユーザプログラムを作成することが可能である。
【００４１】
図４に示すように、制御部３は、スクリプトエンジン３Ｂを有しており、スクリプト言語によって作成されたユーザプログラムを実行することが可能である。すなわち、制御部３は、時計のスロットが機械語の主プログラムによって制御される基準スロットからスクリプト言語を含むユーザプログラムが記憶されたスロットに変更された際に、ユーザプログラムに従った駆動をすることが可能である。ここで、後述するように駆動プログラム３５は機械語であるため、ユーザプログラムはスクリプトエンジン３Ｂを用いて駆動プログラム３５に反映される。そして、ユーザプログラムを反映した駆動プログラム３５を実行し、駆動部２に対して指令を出力することで、主プログラムで実施されていた通常動作から、ユーザプログラムによる動作に切り替えることができる。スクリプト言語は、例えば、Ｌｕａ等のレジスタ型のスクリプト言語である。
【００４２】
また、本実施例において、携帯通信機器５０において作成されるユーザプログラムはｊｓｏｎ（ｊａｖａｓｃｒｉｐｔ  ｏｂｊｅｃｔ  ｎｏｔａｔｉｏｎ）で書かれたテキストデータであり、その中にスクリプト言語として機能する表現が含まれる。ユーザプログラムは携帯通信機器５０から電子時計１に送信され、メモリ８に記憶される。
なお、ユーザプログラムのうち電子時計１の処理に関する内容のみが電子時計１に送信されてもよい。その場合は、電子時計１に関連しない処理は、携帯通信機器５０によって実行されてもよい。
【００４３】
制御部３は、電池５、モータ７、ブザー１２、タイマー２４等の動作部を駆動するための各種の駆動プログラム３５を記憶している。駆動プログラム３５は、第一ボタン３０Ａ、第二ボタン３０Ｂ、リューズ２７等の時計の動作制御に関する機能についてのプログラムを含む。駆動プログラム３５は、電子時計１の型式（キャリバー）に応じて作成される。すなわち、駆動プログラム３５は、電子時計１に搭載されているムーブメントの種類に適合するように作成されたプログラムである。駆動プログラム３５は、静的な機能モジュールとして時計毎にコーディングされている。一方、ユーザプログラムは、ユーザが望む動作を電子時計１に実行させる動的な機能モジュールである。
【００４４】
例えば、制御部３は、図４に示すように、第一モータプログラム３５ａ、第二モータプログラム３５ｂ、第三モータプログラム３５ｃを記憶している。第一モータプログラム３５ａ、第二モータプログラム３５ｂ、および第三モータプログラム３５ｃは、それぞれモータ７に動作を実行させるプログラムである。三つのモータプログラム３５ａ，３５ｂ，３５ｃには、互いに異なる動作が定義されている。モータプログラム３５ａ，３５ｂ，３５ｃがモータ７を駆動するためのモータ駆動情報は、例えば、駆動パルスの周波数、デューティ、パルス数、ステップ数、回転方向などである。
【００４５】
制御部３において実行される主プログラムやユーザプログラムは、駆動プログラム３５を呼び出すことで駆動部２に指令を送る。例えば、第一モータプログラム３５ａが呼び出されると、第一モータプログラム３５ａにおいて定義された動作をモータ７に実行させるように、制御部３から駆動部２に対して指令が送られる。制御部３は、例えば、アプリケーション６０が生成する動作命令のコードと、この動作命令のコードに対応する駆動プログラム３５との対応関係を予め記憶している。この対応関係は、電子時計１の型式に応じて予め定められている。制御部３は、主プログラムやユーザプログラムを実行する場合に、上記の対応関係を参照して駆動部２に対して指令を出力する。
【００４６】
駆動部２は、受信した指令に応じた駆動信号をモータ７等の動作部に出力して動作部を動作させる。例えば、第一モータプログラム３５ａが秒針６ａに１秒運針を実行させるプログラムであるとする。この場合、制御部３において実行されるプログラムで第一モータプログラム３５ａが呼び出されると、秒針６ａを１秒運針させる指令が制御部３から駆動部２に出力される。駆動部２は、秒針６ａを１秒運針させる駆動信号をモータ７に出力する。駆動部２は、例えば、秒針６ａの動作を変更する指令を受けるまで、秒針６ａを１秒運針させ続ける。
【００４７】
携帯通信機器５０のアプリケーション６０は、ユーザに対して開放されている駆動プログラム３５に基づいて、ユーザプログラムを生成する。以下の説明では、上述した距離案内サービスを提供するユーザプログラムを「距離案内プログラム」と称する。アプリケーション６０は、トリガ選択領域６１ｂで選択されたトリガ条件が成立した場合に、サービス選択領域６１ａで選択されたサービスを実行し、サービスの実行結果をアクション選択領域６１ｃで選択されたアクションにて実行する、距離案内プログラムを生成する。距離案内プログラムは、トリガ条件が成立したか否かを判定するトリガブロック、サービスを実行するサービスブロックおよびアクションを実行するアクションブロックを含む。アクションブロックは、駆動プログラム３５を呼び出す呼び出しコードを含んでいる。
【００４８】
ここで、距離案内サービスの具体例を示す。
トリガブロックはユーザが電子時計１のプッシュボタンが押されたことを判定してトリガ条件が成立する。
トリガ条件が成立すると、サービスブロックはユーザの現在位置と目的地位置とから残距離を求めて、サーバからその値を取得する。
アクションブロックは、サービスブロックで取得したユーザの現在位置から目的地までの距離を駆動プログラム３５で認識させ、指針を使った所定の制御で距離を表現する。
【００４９】
アプリケーション６０は、ユーザプログラムと、後述する連携プログラムとを含むプログラム集合体を生成する。連携プログラムは、ユーザプログラムと連携するプログラムであり、携帯通信機器５０において実行される。プログラム集合体は、複数のブロックを含むことができる。例えば、プログラム集合体は、一つのトリガブロックと、一つのサービスブロックと、一つのアクションブロックと、によって構成されてもよい。本実施形態のプログラム集合体は、任意の個数のトリガブロックと、任意の個数のサービスブロックと、任意の個数のアクションブロックと、を組み合わせて生成される。ここで、任意の個数には、０が含まれる。
【００５０】
アプリケーション６０は、電子時計１のメモリ８に流し込むためのスクリプトをブロックに埋め込む。つまり、アプリケーション６０によって生成されるブロックは、電子時計１で実行されるスクリプトと、携帯通信機器５０で実行される連携プログラムと、を合わせたブロックプログラムである。例えば、各ブロックがｊｓｏｎで記載されたテキストデータである場合、アプリケーション６０は、スクリプトをデータの一つとしてブロックに含ませる。つまり、スクリプトのテキストが一つの文字列値としてブロックに記載される。この場合、スクリプトを含むデータには、固有のタグが付けられる。
【００５１】
電子時計１で実行されるアクションに関するスクリプトは、アクションブロックに記載され、電子時計１で発生するトリガに関するスクリプトは、トリガブロックに記載される。電子時計１で実行されるサービスがある場合には、そのサービスに関するスクリプトがサービスブロックに記載される。アプリケーション６０は、生成したブロックプログラムを含むプログラム集合体を携帯通信機器５０のメモリや外部サーバ２００に保存する。
【００５２】
以下の説明では、電子時計１で発生するトリガに関するスクリプトを「トリガスクリプト」と称する。同様に、電子時計１が実行するサービスに関するスクリプトを「サービススクリプト」と称し、電子時計１が実行するアクションに関するスクリプトを「アクションスクリプト」と称する。
【００５３】
アプリケーション６０は、ユーザプログラムを電子時計１に送信する場合、プログラム集合体に含まれる各ブロックからスクリプトを抽出する。アプリケーション６０は、各ブロックから抽出されたスクリプトを連結して一つのユーザスクリプトを生成する。例えば、プログラム集合体がトリガブロック、サービスブロック、およびアクションブロックを含む場合、トリガスクリプト、サービススクリプト、およびアクションスクリプトが連結されてひとつのユーザスクリプトが生成される。生成されたユーザスクリプトが、電子時計１で実行されるユーザプログラムである。アプリケーション６０は、生成したユーザスクリプトを電子時計１に送信する。
【００５４】
アプリケーション６０は、ペアリングがなされた電子時計１の型式（キャリバー）に応じたユーザプログラムを生成してもよく、複数の型式に共通のプログラムを作成してもよい。本実施形態のアプリケーション６０は、複数の型式に共通のユーザプログラムを作成する。
【００５５】
アプリケーション６０は、個別の型式に応じたユーザプログラムを作成する場合、予め電子時計１の型式、およびこの型式に対応する駆動プログラム３５についての情報を取得する。それぞれの型式において利用可能な駆動プログラム３５についての情報は、例えば、外部サーバ２００から取得される。また、アプリケーション６０は、型式に基づいて、電子時計１に搭載されているセンサ９についての情報や、電子時計１において発生するイベントについての情報を予め取得する。アプリケーション６０は、取得した情報に基づいてユーザプログラムを生成する。
【００５６】
ユーザによって選択されたトリガ条件が、第一ボタン３０Ａに対する所定のプッシュ操作であり、選択されたアクションが、距離に応じた回数だけ秒針６ａを回転させる動作であるとする。この場合、アプリケーション６０は、所定のプッシュ操作が検出された場合に距離に応じた回数だけ秒針６ａを回転させる距離案内プログラムを生成する。秒針６ａの回転数は、アプリケーション６０から電子時計１に対して指示されてもよい。この場合、携帯通信機器５０では、距離案内プログラムと連携する連携プログラムが実行される。アプリケーション６０は、距離案内プログラムと共に、連携プログラムを生成する。
【００５７】
連携プログラムは、携帯通信機器５０が有するアプリスロット５４（図３参照）に記憶される。携帯通信機器５０は、第一アプリスロット５４ａから第三アプリスロット５４ｃまでの複数のアプリスロット５４を有する。第一アプリスロット５４ａは、メモリ８の第一スロット８１に対応する記憶領域である。同様に、第二アプリスロット５４ｂおよび第三アプリスロット５４ｃは、第二スロット８２および第三スロット８３に対応する記憶領域である。距離案内プログラムが第一スロット８１に記憶される場合、距離案内プログラムと連携する連携プログラムは、第一アプリスロット５４ａに記憶される。電子時計１において距離案内プログラムが実行される場合、携帯通信機器５０において第一アプリスロット５４ａから連携プログラムが読み込まれて実行される。
【００５８】
距離案内プログラムは、携帯通信機器５０との無線通信によって、秒針６ａの目標回転数についての情報を取得する。連携プログラムは、電子時計１からの情報リクエストに応じて、現在位置から指定された店舗までの距離を算出する。算出される距離は、直線距離であっても、店舗までの最短経路に沿った距離であってもよい。携帯通信機器５０の現在位置は、例えば、ＧＰＳ（GLOBAL  POSITIONING  SYSTEM）衛星から出力されるＧＰＳ電波に基づいて算出される。連携プログラムは、算出された距離に基づいて、秒針６ａの目標回転数を決定し、電子時計１に送信する。距離案内プログラムは、連携プログラムに対して、定期的に目標回転数についての情報をリクエストしてもよく、定められたトリガ条件が成立した場合に情報をリクエストしてもよい。
【００５９】
作成された距離案内プログラムは、無線通信によって携帯通信機器５０から電子時計１に対して送信される。アプリケーション６０では、電子時計１が有する第一スロット８１から第三スロット８３までのどのスロットに距離案内プログラムを記憶させるかが選択される。従って、携帯通信機器５０は、距離案内プログラム、および距離案内プログラムが格納されるべきスロット番号を電子時計１に送信する。指定された格納先のスロットが第一スロット８１であるとする。この場合、制御部３は、受信した距離案内プログラムを第一スロット８１に格納する。また、アプリケーション６０は、距離案内プログラムと連携する連携プログラムを第一アプリスロット５４ａに格納する。
【００６０】
アプリケーション６０は、例えば、携帯通信機器５０と電子時計１との無線通信が確立したときに、ユーザプログラムの同期を実行する。ユーザプログラムの同期は、例えば、ユーザプログラムが変更された場合や、ユーザプログラムが新規作成された場合、ユーザプログラムの入れ替えがなされた場合に実行される。アプリケーション６０は、ユーザプログラムの同期を行なう場合、更新用のユーザプログラムや新規作成されたユーザプログラムを電子時計１に送信する。制御部３は、受信したユーザプログラムを指定されたスロット８１，８２，８３に格納する。
【００６１】
ユーザは、距離案内プログラムを実行する場合、電子時計１における操作、または携帯通信機器５０における操作によって、距離案内プログラムを実行させるためのプログラム実行命令を行う。電子時計１に対する操作入力によって距離案内プログラムが実行される場合、電子時計１は、無線通信を介して、携帯通信機器５０に対して連携プログラムを実行するようリクエストする。一方、携帯通信機器５０における操作によって距離案内プログラムが起動される場合、携帯通信機器５０は、電子時計１に対して距離案内プログラムを実行するようリクエストすると共に、連携プログラムを読み出して実行する。
【００６２】
制御部３は、プログラム実行命令を受け取ると、第一スロット８１から距離案内プログラムを読み込んで実行する。このときに、制御部３は、読み込んだ距離案内プログラムをＲＡＭ３２に記憶させてもよい。なお、距離案内プログラムが実行されるときに、駆動部２は、秒針６ａの動作を変更する指令がなされるまでの間は秒針６ａに通常の運針をさせてもよい。すなわち、距離案内プログラムのトリガ条件が成立するまでの間は、秒針６ａは、内部時刻の位置を示すように運針されてもよい。
【００６３】
距離案内プログラムは、トリガ条件が成立すると、サービス選択領域６１ａで選択されたサービスを実行し、サービスの実行結果を受けて、アクション選択領域６１ｃで選択されたアクションを実行するための駆動プログラム３５を呼び出す。例えば、制御部３には、第二モータプログラム３５ｂとして、３６０度を一単位として秒針６ａを回転させるプログラムが記憶されているとする。この場合、距離案内プログラムは、第二モータプログラム３５ｂを呼び出し、目標回転数だけ秒針６ａを回転させる。例えば、目標回転数が三回転である場合、距離案内プログラムは、引数を三単位として第二モータプログラム３５ｂを呼び出す。これにより、制御部３から駆動部２に対して、秒針６ａを三回転させる指令が出力される。駆動部２は、秒針６ａを三回転させる駆動信号をモータ７に出力する。
【００６４】
なお、第二モータプログラム３５ｂにおける回転開始の起点は、例えば、１２時の位置とされてもよい。この場合、駆動部２は、秒針６ａを１２時の位置まで運針させた後に秒針６ａを三回転させる。
【００６５】
図５から図８を参照して、実施形態の各ブロックにおける動作例の詳細を説明する。図５には、トリガブロックにおける動作例が示されている。携帯通信機器５０では、ＳＤＫ（Software  Development  Kit）５５およびアプリケーション６０が動作する。ＳＤＫ５５は、携帯通信機器５０の基本ソフト（ＯＳ）とアプリケーション６０との間に介在するソフトウェアである。ＳＤＫ５５は、ハードウェア資源の利用要求をアプリケーション６０から受け取ると、この利用要求を基本ソフト用のコマンドに変換して出力する。
【００６６】
実施形態の制御部３では、ハードウェア制御部３Ａおよびスクリプトエンジン３Ｂが動作する。ハードウェア制御部３Ａは、電子時計１のハードウェアを制御するプログラムであり、例えば、Ｃ言語で作成されている。ハードウェア制御部３Ａは、主プログラムとは別のプログラムであっても、主プログラムの一部であってもよい。スクリプトエンジン３Ｂは、ユーザプログラムのスクリプトを実行するプログラムである。スクリプトエンジン３Ｂは、例えば、スクリプトを逐次変換しながら実行する。
【００６７】
図５を参照して、トリガブロックの動作例について説明する。
（１）ハードウェア制御部３Ａが、トリガ条件の成立（発火）を検出する。ハードウェア制御部３Ａは、複数種類のトリガを検出可能である。検出可能なトリガの一つは、例えば、第一ボタン３０Ａや第二ボタン３０Ｂが押されたことである。ハードウェア制御部３Ａは、ボタン３０Ａ，３０Ｂが押されたことを示す信号に基づいて、トリガ条件の成立を検出する。
（２）ハードウェア制御部３Ａは、スクリプトエンジン３Ｂに対してトリガスクリプトのｔｒｇ関数をコールする。ｔｒｇ関数の引数は、例えば、発火したトリガの種類を示す番号である。
（３）スクリプトエンジン３Ｂは、ｔｒｇ関数を実行する。ｔｒｇ関数は、現在実行中のトリガスクリプトにおいて設定されているトリガの番号と、引数とを比較する。ｔｒｇ関数は、設定されているトリガの番号と発火したトリガの番号とが一致するか否か、および現在実行中であるユーザプログラムのＩＤを戻り値として出力する。ユーザプログラムのＩＤは、現在アクティブなスロットの番号である。
（４）スクリプトエンジン３Ｂは、ｔｒｇ関数の戻り値をハードウェア制御部３Ａに返す。
（５）ハードウェア制御部３Ａは、戻り値を確認する。
（６）ハードウェア制御部３Ａは、戻り値がトリガ番号の一致を示す値である場合、通知処理を開始する。通知処理は、トリガ条件が成立したことを携帯通信機器５０に送信する処理である。
（７）ハードウェア制御部３Ａは、携帯通信機器５０との接続がなされていない場合、接続処理を実行する。既に携帯通信機器５０との接続が確立されている場合、接続処理は省略される。
（８）ハードウェア制御部３Ａは、無線通信により、アプリケーション６０に対してトリガ通知を行なう。ハードウェア制御部３Ａは、条件が成立したトリガの番号、および現在実行中であるユーザプログラムのＩＤをアプリケーション６０に通知する。
（９）アプリケーション６０は、アプリケーション６０において実行しているユーザプログラムのＩＤと、電子時計１で実行されている連携プログラムのＩＤとを照合する。
（１０）アプリケーション６０は、ＩＤが一致している場合、ＳＤＫ５５に対してトリガ通知を行なう。
【００６８】
なお、（５）の戻り値の確認において、戻り値がトリガ番号の不一致を示す値である場合、（６）の通知処理へは移行しない。この場合、ハードウェア制御部３Ａは、トリガ条件の成立を待機する待機状態となる。
【００６９】
図６に示すように、（９）のＩＤ照合において、ユーザプログラムと連携プログラムのＩＤが一致しなかった場合、同期処理が実行される。
（１０）同期処理において、アプリケーション６０は、電子時計１のユーザプログラムをアプリケーション６０のユーザプログラムに同期させる。アプリケーション６０は、最新のユーザプログラムを無線通信によってハードウェア制御部３Ａに送信する。ハードウェア制御部３Ａは、受信したユーザプログラムをメモリ８のスロット８１，８２，８３に記憶させる。
（１１）アプリケーション６０は、ユーザプログラムが同期されたことを通知センターでユーザに対して通知する。この通知では、アプリケーション６０で設定されているユーザプログラムが電子時計１に反映されていなかった旨、および同期が完了した旨が通知される。
（１２）アプリケーション６０は、ハードウェア制御部３Ａに対してＩＮＦＯ要求を行なう。ハードウェア制御部３Ａは、ＩＮＦＯ要求に応じてＩＮＦＯ動作を実行する。ＩＮＦＯ動作は、秒針６ａによって予め定められたＩＮＦＯマークを示す動作である。ＩＮＦＯ動作は、ユーザに対する通知が送られていることをユーザに伝え、携帯通信機器５０を確認するように促す動作である。
【００７０】
図７を参照して、サービスブロックの動作例について説明する。
（１）ＳＤＫ５５がサービスの開始を通知する。サービスの開始条件は、例えば、連携プログラムにおいて定義されている。アプリケーション６０は、連携プログラムに基づき、ＳＤＫ５５に対して、サービスの開始条件が成立した場合に通知することを事前に指示している。
（２）アプリケーション６０は、電子時計１との通信が接続されているか否かを確認する。アプリケーション６０は、電子時計１との通信が接続されていない場合、接続処理を行なう。
（３）アプリケーション６０は、通信が接続されている場合、ハードウェア制御部３Ａに対してサービス要求を送信する。
（４）ハードウェア制御部３Ａは、スクリプトエンジン３Ｂに対してサービススクリプトのｓｒｖ関数をコールする。ｓｒｖ関数は、例えば、電子時計１が有する情報に基づいて処理を行なう関数である。
（５）スクリプトエンジン３Ｂは、ｓｒｖ関数において、ハードウェア制御部３Ａに対して計測データを要求する。計測データの要求は、ユーザプログラムに対して開放されているデータ要求関数をコールすることで実行される。スクリプトエンジン３Ｂは、データ要求関数の引数によって、要求するデータの種類を指定する。
取得可能な計測データは、例えば、本日のユーザの歩数、電源電圧のデータ、本日のユーザの消費カロリー、光データ、現在の温度、秒針位置、分針位置、時針位置、機能針の位置等である。なお、スクリプトエンジン３Ｂは、複数種類の計測データをハードウェア制御部３Ａから取得してもよい。
（６）ハードウェア制御部３Ａは、要求された計測データをスクリプトエンジン３Ｂに返す。
（７）スクリプトエンジン３Ｂは、取得した計測データに基づく処理を実行する。スクリプトエンジン３Ｂは、例えば、計測データに基づく演算加工を実行してもよい。スクリプトエンジン３Ｂは、計測データに基づく条件判断を行なってもよい。
（８）スクリプトエンジン３Ｂは、ハードウェア制御部３Ａに対してタスクを登録する。このタスクは、アプリケーション６０に対して処理結果を渡す通信タスクである。
（９）ハードウェア制御部３Ａは、登録されたタスクを実行し、サービス応答を行なう。サービス応答では、スクリプトエンジン３Ｂにおける処理結果がアプリケーション６０に送信される。
（１０）アプリケーション６０は、ＳＤＫ５５に対してサービスのアウトプットを実行する。例えば、アプリケーション６０は、連携プログラムに基づき、スクリプトエンジン３Ｂの処理結果からアウトプットの指令を生成する。この指令は、例えば、本日のユーザの消費カロリーを画面に表示させる指令である。ＳＤＫ５５は、取得したアウトプットに応じたサービスを実行する。
【００７１】
図８を参照して、アクションブロックの動作例について説明する。
（１）ＳＤＫ５５がアクションの開始を通知する。アクションの開始条件は、例えば、連携プログラムにおいて定義されている。アプリケーション６０は、連携プログラムに基づき、ＳＤＫ５５に対して、アクションの開始条件が成立した場合に通知することを事前に指示している。
（２）アプリケーション６０は、電子時計１との通信が接続されているか否かを確認する。
（３）アプリケーション６０は、通信が接続されている場合、ハードウェア制御部３Ａに対して連携プログラムのスロット番号を送信する。アプリケーション６０は、例えば、第一アプリスロット５４ａの連携プログラムを実行している場合、スロット番号である「１」をハードウェア制御部３Ａに送信する。
（４）ハードウェア制御部３Ａは、スロット番号の照合を行なう。ハードウェア制御部３Ａは、電子時計１で実行されているユーザプログラムのスロット番号と、受信したスロット番号とが一致しているかを判定する。
（５）ハードウェア制御部３Ａは、二つのスロット番号が一致している場合、アプリケーション６０に対して番号一致を通知する。
（６）アプリケーション６０は、ハードウェア制御部３Ａに対してアクションデータの送信を要求する。
（７）ハードウェア制御部３Ａは、アプリケーション６０に対して、アクションデータの要求を受け付けた旨を応答する。
（８）ハードウェア制御部３Ａは、スクリプトエンジン３Ｂに対してアクションスクリプトのａｃｔ関数をコールする。ａｃｔ関数は、アクションに関する処理を実行する関数である。
（９）スクリプトエンジン３Ｂは、ａｃｔ関数がコールされると、ハードウェア制御部３Ａの駆動関数をコールしてイベント処理を実行する。駆動関数は、駆動プログラム３５の実行を指示する関数である。スクリプトエンジン３Ｂは、駆動関数により、運針動作、ブザー１２の動作、ウエイト動作、現在時刻への復帰動作等を指示することができる。
例えば、運針動作では、動作させる指針として、秒針６ａ、分針６ｂ、時針６ｃ、および機能針を指定することができる。運針動作では、運針のステップ数を０から３６０［°］の範囲で指定することができる。ブザー１２の動作では、ブザー１２の鳴動パターンや鳴動回数を指定することができる。ウエイト動作では、待機時間を指定することができる。
ハードウェア制御部３Ａは、指示された駆動プログラム３５の実行が完了すると、スクリプトエンジン３Ｂに対してａｃｔ関数をコールする。スクリプトエンジン３Ｂは、アクションスクリプトに従って、次のイベントを実行させる駆動関数をコールする。すなわち、スクリプトで定められたイベントを全て実行するまで、ａｃｔ関数のコールおよび駆動関数のコールが繰り返される。
（１０）スクリプトエンジン３Ｂは、最後のイベントを実行させる駆動関数をコールすると、ハードウェア制御部３Ａに対して、ａｃｔ関数のコール終了を指示する。
（１１）ハードウェア制御部３Ａは、コール終了の指示を受け取ると、最後のイベントが完了するまで処理待ちをする。
（１２）ハードウェア制御部３Ａは、最後のイベントが完了すると、アプリケーション６０に対して動作完了を通知する。
（１３）アプリケーション６０は、ＳＤＫ５５に対してアクション終了を通知する。
（１４）アプリケーション６０は、ハードウェア制御部３Ａに対して、動作完了通知を受け取った旨の応答を行なう。
【００７２】
上記のように、ユーザプログラムは、モータ７だけでなく、電池５、ブザー１２、およびタイマー２４を利用することも可能である。例えば、ユーザプログラムにおいて、電池５の電圧に応じて異なる動作が設定されてもよい。一例として、ユーザプログラムは、電池５の電圧が低レベルである場合には秒針６ａに第一の動作を実行させ、電池５の電圧が高レベルである場合には秒針６ａに第二の動作を実行させてもよい。ユーザプログラムは、電池電圧を含む様々な条件に応じて異なる動作を行うように構成可能である。
【００７３】
上記のように、ユーザプログラムは、トリガ条件等に応じてブザー１２を鳴動させることもできる。トリガ条件は、センサ９の検出結果について設定されてもよい。一例として、ユーザプログラムは、ユーザの活動量データに関するトリガ条件が成立した場合にブザー１２を鳴動させてもよい。例えば、ユーザプログラムは、算出されたユーザの消費熱量が所定値に達した場合にブザー１２を鳴動させることもできる。
【００７４】
以上説明したように、実施形態に係る電子時計１は、駆動部２と、メモリ８を含む制御部３と、を有する。電子時計１は、携帯機器の一例である。駆動部２は、入力される指令と、動作部に対して出力する駆動信号と、の対応関係が予め定められている。本実施形態の駆動部２は、複数の駆動回路を有する時計ＩＣである。メモリ８は、ユーザによって作成されたスクリプト言語を含むユーザプログラムを記憶する記憶部である。制御部３は、ユーザプログラムに従って指令を出力する。
【００７５】
本実施形態の電子時計１は、ユーザプログラムを記憶するメモリ８を有する。本実施形態の電子時計１は、ユーザプログラムを記憶して実行することが可能に構成されていることで、ユーザに対して充実した機能を提供することができる。また、メモリ８等に多くのプログラムを予め記憶しておく必要がないため、電子時計１の大型化が抑制される。また、本実施形態の電子時計１において、ユーザプログラムがスクリプト言語を含むプログラムであるため、容易に作成可能である。例えば、ユーザプログラムを生成するためのアプリケーション６０が簡素化される。本実施形態の電子時計１は、時計の制御プログラムに対してスクリプト言語を使用した仮想マシンを形成することが可能に構成されている。仮想マシンにより、ユーザが任意に電子時計１の機能を変更することが可能となる。また、スクリプト言語でユーザプログラムが作成されることで、電子時計１をカスタマイズする言語の共通化を図ることができる。
【００７６】
本実施形態の制御部３は、予め記憶している機械語の駆動プログラム３５によって指令を生成する。駆動プログラム３５が機械語であることから、ユーザプログラムの実行における制御部３の演算処理が軽減される。
【００７７】
本実施形態の制御部３は、通常動作時には機械語の主プログラムに従って指令を出力する。言い換えると、機械語の駆動プログラム３５によって、駆動部２に対して指令を出力して、通常動作が行われる。主プログラムが機械語であることから、通常動作の実行における制御部３の演算処理が軽減される。
【００７８】
本実施形態の制御部３は、ハードウェア制御部３Ａとスクリプトエンジン３Ｂとを有する。制御部３は、ユーザプログラムによる駆動時には、ハードウェア制御部３Ａとスクリプトエンジン３Ｂとが連動することでユーザプログラムに従った指令を出力する。ユーザプログラムによる動作が実行され、ユーザに対して充実した機能が提供される。
【００７９】
本実施形態の動作部は、指針６を回転させるモータ７を含む。駆動部２は、モータ７に対して駆動信号を出力するモータ駆動回路２１を有する。制御部３は、ユーザプログラムに従い、駆動部２に対してモータ７を動作させる指令を出力する。指針６に対する制御がユーザに対して開放されていることで、ユーザに対して充実した機能を提供可能である。
【００８０】
本実施形態の電子時計１は、携帯通信機器５０との無線通信を行う通信部４を有し、携帯通信機器５０との無線通信によってユーザプログラムを取得する。ユーザプログラムは、携帯通信機器５０において生成されてもよく、外部サーバ２００からダウンロードされてもよい。よって、ユーザは電子時計１に容易にユーザプログラムを組み込むことができる。
【００８１】
本実施形態の制御部３は、ユーザプログラムに従い、無線通信によって携帯通信機器５０から取得した情報に基づいて駆動部２に対して指令を出力する。電子時計１は、携帯通信機器５０と連携して動作することで、ユーザに対して充実した機能を提供することができる。
【００８２】
本実施形態の携帯機器は、電子時計１であり、機械語の駆動プログラム３５を記憶している。駆動プログラム３５は、電子時計１に搭載されたムーブメントの型式に対応した制御プログラムの一例である。制御部３は、ユーザプログラムに従い、型式に対応した駆動プログラム３５を実行することで駆動部２に対して指令を出力する。つまり、ユーザプログラムは、電子時計１のキャリバーを判断して、そのキャリバーに合う形に変換してプログラムを流す。よって、本実施形態によれば、複数のキャリバーに対して共通のユーザプログラムを適用することが可能となる。例えば、ユーザが複数の電子時計１を所有しており、かつ各電子時計１のキャリバーが互いに異なるとする。このような場合であっても、ユーザは共通のユーザプログラムで複数の電子時計１に同じ機能を組み込むことができる。
【００８３】
本実施形態の携帯機器システム１０は、携帯通信機器５０において実行されるアプリケーション６０と、電子時計１等の携帯機器と、を含む。アプリケーション６０は、スクリプト言語を含むユーザプログラムを生成する。携帯機器は、通信部４と、駆動部２と、メモリ８を含む制御部３と、を有する。メモリ８は、携帯通信機器５０との無線通信によって取得したユーザプログラムを記憶する。制御部３は、ユーザプログラムに従って駆動部２に対して指令を出力して動作部を動作させる。
【００８４】
本実施形態の携帯機器システム１０は、ユーザに対して充実した機能を提供可能で、かつ携帯機器の大型化を抑制することができる。本実施形態のアプリケーション６０は、ユーザインタフェース６１によるビジュアルプログラミングの機能を提供する。ユーザは、ユーザインタフェース６１による非言語プログラミングによりユーザプログラムを作成することができる。よって、実施形態の携帯機器システム１０は、埋め込みプログラミングの知識を有していないユーザに対しても、携帯機器における充実した機能を提供することができる。また、スクリプト言語はクラウドと親和性が高いため、携帯機器システム１０とクラウドとの機能連携が容易である。
【００８５】
本実施形態の携帯機器システム１０において、アプリケーション６０は、ユーザプログラムと、携帯通信機器５０において実行される連携プログラムと、を合わせて一つのブロックプログラムを生成して保存する。アプリケーション６０は、ブロックプログラムから抽出したユーザプログラムを電子時計１等の携帯機器に送信する。ユーザプログラムと連携プログラムとが一つのブロックプログラムとしてまとめられることで、例えば、ユーザプログラムや連携プログラムの管理が容易となる。
【００８６】
［実施形態の変形例］
実施形態の変形例について説明する。携帯機器は、例示した電子時計１には限定されない。実施形態の携帯機器は、電子時計を含む各種の機器を適用対象とする。携帯機器は、アナログ表示部２６を有していなくてもよい。携帯機器は、例えば、デジタル表示のスマートウォッチであってもよい。
【００８７】
ユーザプログラムのスクリプト言語は、例示したＬｕａには限定されない。また、ユーザプログラムの言語として、任意のスクリプト言語を使用可能である。携帯通信機器５０は、所謂スマートフォンには限定されない。携帯通信機器５０としては、携帯機器との無線通信を行う機能を有する様々な機器を利用可能である。携帯通信機器５０は、例えば、タブレット端末機器であってもよい。
【００８８】
ユーザに対して動作が開放される指針６は、秒針６ａには限定されない。例えば、秒針６ａ、分針６ｂ、および時針６ｃのうち任意の指針６の動作がユーザに開放されてもよい。また、指針６は、秒針６ａ、分針６ｂ、および時針６ｃに加えて他の指針を有していてもよい。この場合、他の指針の動作がユーザに開放されてもよい。携帯機器がＬＥＤ（Light  Emitting  Diode）等の発光素子を有する場合、発光素子の動作がユーザに開放されてもよい。携帯機器がデジタル表示部を有する場合、デジタル表示部の動作がユーザに開放されてもよい。
【００８９】
上記の実施形態および変形例に開示された内容は、適宜組み合わせて実行することができる。
【符号の説明】
【００９０】
１  電子時計
２  駆動部
３  制御部
３Ａ：ハードウェア制御部、  ３Ｂ：スクリプトエンジン
４  通信部
５  電池
６  指針
６ａ：秒針、  ６ｂ：分針、  ６ｃ：時針
７  モータ
８  メモリ
９  センサ
１０  携帯機器システム
１１  太陽電池
１２  ブザー
２１  モータ駆動回路
２２  電源管理部
２３  ブザー駆動回路
２４  タイマー
２７  リューズ
２８  文字板
２９  外装ケース
２９ａ〜２９ｄ：かん、  ２９ｅ：ケース本体
３０Ａ：第一ボタン、  ３０Ｂ：第二ボタン
３１  演算部
３２  ＲＡＭ
３３  ＲＯＭ
３５  駆動プログラム
３５ａ：第一モータプログラム、  ３５ｂ：第二モータプログラム、  ３５ｃ：第三モータプログラム
５０  携帯通信機器
５１  筐体
５２  タッチパネル
５４  アプリスロット
５４ａ：第一アプリスロット、  ５４ｂ：第二アプリスロット、  ５４ｃ：第三アプリスロット
５５：ＳＤＫ
６０  アプリケーション
６１  ユーザインタフェース
６１ａ：サービス選択領域、  ６１ｂ：トリガ選択領域、  ６１ｃ：アクション選択領域
７１：第一モータ、  ７２：第二モータ
８１：第一スロット、  ８２：第二スロット、  ８３：第三スロット
１００  インターネット網
２００  外部サーバ
【図１】
2020148756.tif 000003
【図２】
2020148756.tif 000004
【図３】
2020148756.tif 000005
【図４】
2020148756.tif 000006
【図５】
2020148756.tif 000007
【図６】
2020148756.tif 000008
【図７】
2020148756.tif 000009
【図８】
2020148756.tif 000010