(57)【要約】【課題】基礎パーツの制御部に実行させるためのプログラムを基礎パーツ上の記憶部に書き込む必要なく、基礎パーツの端子に接続された電子部品に関する電子部品制御を基礎パーツの制御部に実行させることが可能な制御システム、制御方法、及び基礎パーツを提供する。【解決手段】受付部２３０は、複数のユーザ端末から共通にアクセスされるライブラリ記憶手段に記憶されるライブラリを使用して基礎パーツ１０の制御部１１に電子部品制御を実行させるためのプログラムの編集を受け付ける。コマンド送信部２５０は、プログラムの実行に応じて、制御部１１に電子部品制御を実行させるためのコマンドをサーバシステム３に送信する。コマンド中継部３１０は、ユーザ端末２０から送信されたコマンドを受信し、当該コマンドに基づくコマンドを基礎パーツ１０に送信する。制御部１１は、サーバシステム３から送信されたコマンドに基づいて、電子部品制御を実行する。【選択図】図１６
2019164750.tif 000002
【特許請求の範囲】
【請求項１】
電子部品を接続可能な端子と、通信部と、前記端子に接続された電子部品に関する電子部品制御を実行する制御部とを含み、１又は複数の電子部品を接続することが可能な基礎パーツと、
サーバシステムと、
ユーザ端末と、
複数のユーザ端末から共通にアクセスされる記憶手段であって、前記基礎パーツの前記制御部に前記電子部品制御を実行させるためのＡＰＩ（アプリケーションプログラミングインタフェース）のライブラリを記憶するライブラリ記憶手段と、を含み、
前記ユーザ端末は、
前記ライブラリ記憶手段に記憶されるライブラリを取得する取得手段と、
前記ライブラリを使用して前記基礎パーツの前記制御部に前記電子部品制御を実行させるためのプログラムの入力を受け付ける受付手段と、
前記ライブラリに基づいて前記プログラムを実行する実行手段と、
前記プログラムの実行に応じて、前記基礎パーツの前記制御部に前記電子部品制御を実行させるためのコマンドを前記サーバシステムに送信するコマンド送信手段と、を含み、
前記サーバシステムは、前記ユーザ端末から送信されたコマンドを受信し、当該コマンドに基づくコマンドを前記基礎パーツに送信するコマンド中継手段を含み、
前記基礎パーツの前記通信部は、前記サーバシステムから送信されたコマンドを受信し、
前記基礎パーツの前記制御部は、前記通信部によって受信されたコマンドに基づいて、前記電子部品制御を実行する、
制御システム。
【請求項２】
請求項１に記載の制御システムにおいて、
前記基礎パーツの前記制御部は、操作を受け付ける電子部品、又は、センサである電子部品が前記端子に接続されている場合に、前記操作の受付結果又は前記センサの検出結果を示す通知を、前記通信部を介して、前記サーバシステムに送信し、
前記サーバシステムは、前記基礎パーツから送信された通知を受信し、当該通知に基づく通知を前記ユーザ端末に送信する通知中継手段を含み、
前記ユーザ端末は、前記サーバシステムから送信された通知を受信する通知受信手段を含み、
前記ユーザ端末の前記コマンド送信手段は、前記通知受信手段によって通知が受信された場合に、当該通知に応じたコマンドを前記サーバシステムに送信する、
制御システム。
【請求項３】
請求項２に記載の制御システムにおいて、
前記ユーザ端末の前記コマンド送信手段は、前記通知受信手段によって通知が受信された場合に、当該通知に応じた前記電子部品制御を前記基礎パーツの前記制御部に実行させるためのコマンドを前記サーバシステムに送信する、
制御システム。
【請求項４】
請求項２又は３に記載の制御システムにおいて、
第１基礎パーツと第２基礎パーツとを含み、
前記第１基礎パーツの前記制御部は、前記操作を受け付ける電子部品、又は、前記センサである電子部品が前記第１基礎パーツの前記端子に接続されている場合に、前記操作の受付結果又は前記センサの検出結果を示す通知を、前記通信部を介して、前記サーバシステムに送信し、
前記サーバシステムの前記通知中継手段は、前記第１基礎パーツから送信された通知を受信し、当該通知に基づく通知を前記ユーザ端末に送信し、
前記ユーザ端末の前記コマンド送信手段は、前記通知受信手段によって通知が受信された場合に、当該通知に応じた前記電子部品制御を前記第２基礎パーツの前記制御部に実行させるためのコマンドを前記サーバシステムに送信し、
前記サーバシステムの前記コマンド中継手段は、前記通知に応じた前記電子部品制御を前記第２基礎パーツの前記制御部に実行させるための前記コマンドを受信し、当該コマンドに基づくコマンドを前記第２基礎パーツに送信し、
前記第２基礎パーツの前記通信部は、前記サーバシステムから送信されたコマンドを受信し、
前記第２基礎パーツの前記制御部は、前記通信部によって受信されたコマンドに基づき、前記通知に応じた前記電子部品制御を実行する、
制御システム。
【請求項５】
請求項１乃至４のいずれか１項に記載の制御システムにおいて、
前記基礎パーツは、前記電子部品を接続可能な複数の端子を含み、
前記プログラムは、前記電子部品の種類と、前記複数の端子のうちの、前記電子部品が接続された端子とを指定する部分を含み、
前記ユーザ端末の前記コマンド送信手段は、前記電子部品の種類と、前記電子部品が接続された端子とを指定する指定コマンドを前記サーバシステムに送信し、
前記サーバシステムの前記コマンド中継手段は、前記ユーザ端末から送信された指定コマンドを受信し、当該指定コマンドに基づく指定コマンドを前記基礎パーツに送信し、
前記基礎パーツの前記通信部は、前記サーバシステムから送信された指定コマンドを受信し、
前記基礎パーツの前記制御部は、前記通信部によって受信された指定コマンドに基づいて、前記複数の端子のうちの、前記電子部品が接続された端子と、当該端子に接続された電子部品の種類とを特定し、その後に前記通信部を介して受信される、当該電子部品に関するコマンドに基づいて、当該電子部品に関する電子部品制御を、特定された前記端子に対して実行する、
制御システム。
【請求項６】
請求項１乃至５のいずれか１項に記載の制御システムにおいて、
前記基礎パーツは表示部を含み、
前記基礎パーツの前記制御部は、前記プログラムを編集するためのプログラム編集画面を前記ユーザ端末に表示させるための情報を前記表示部に表示し、
前記ユーザ端末は、
前記表示部に表示された情報を読み取る読取手段と、
前記読取手段によって読み取られた情報に基づいて、前記プログラム編集画面を前記ユーザ端末の表示部に表示する表示制御手段と、を含み、
前記ユーザ端末の前記受付手段は、前記プログラム編集画面を介して前記プログラムの入力を受け付ける、
制御システム。
【請求項７】
請求項１乃至６のいずれか１項に記載の制御システムにおいて、
前記サーバシステムは、
所定の判定基準に基づいて、前記ユーザ端末から送信されたコマンドが適切であるか否かを判定する判定手段と、
前記判定手段の判定結果に基づいて、前記コマンド中継手段による前記基礎パーツへのコマンドの送信を制限する制限手段と、を含む、
制御システム。
【請求項８】
請求項１乃至７のいずれか１項に記載の制御システムにおいて、
前記基礎パーツでは、個々の端子ごとにモータドライバとバススイッチとが接続され、
前記基礎パーツの前記制御部は、前記端子に接続された電子部品の種類に基づいて選択される前記モータドライバと前記バススイッチとのうちの一方を介して、当該端子に接続された電子部品を制御する、
制御システム。
【請求項９】
請求項８に記載の制御システムにおいて、
前記基礎パーツの前記制御部は、
前記端子に接続された電子部品を動作させるために必要な電圧又は電流が所定の基準未満である場合に、当該端子に接続された前記バススイッチを介して、当該端子に接続された電子部品を制御し、
前記端子に接続された電子部品を動作させるために必要な電圧又は電流が前記所定の基準以上である場合に、当該端子に接続された前記モータドライバを介して、当該端子に接続された電子部品を制御する、
制御システム。
【請求項１０】
請求項１乃至９のいずれか１項に記載の制御システムにおいて、
前記基礎パーツの前記制御部は、第１プロセッサと第２プロセッサとを含み、
前記第１プロセッサは、前記端子に接続された電子部品に対する制御を実行し、
前記第２プロセッサは、前記端子の状態を監視し、当該監視の結果を前記第１プロセッサに提供し、
前記第１プロセッサは、前記第２プロセッサから提供された前記監視の結果に応じた制御を実行する、
制御システム。
【請求項１１】
請求項１０に記載の制御システムにおいて、
前記第２プロセッサは、前記第１プロセッサの状態を監視し、前記第１プロセッサが不調状態になった場合に、前記第１プロセッサによる前記端子に接続された電子部品に対する制御を制限する、
制御システム。
【請求項１２】
請求項１乃至１１のいずれか１項に記載の制御システムにおいて、
前記サーバシステムの前記コマンド中継手段は、前記ユーザ端末から受信されたコマンドをバイトコードのコマンドに変換して前記基礎パーツに送信する、
制御システム。
【請求項１３】
請求項１乃至１２のいずれか１項に記載の制御システムにおいて、
前記基礎パーツの前記制御部は、前記通信部を介して前記サーバシステムに通信接続要求を送信し、
前記通信接続要求に応じて、前記基礎パーツと前記サーバシステムとの間で通信接続が確立され、前記基礎パーツが前記通信部を介して前記サーバシステムから前記コマンドを受信可能な状態になる、
制御システム。
【請求項１４】
電子部品を接続可能な端子と、通信部と、前記端子に接続された電子部品に関する電子部品制御を実行する制御部とを含み、１又は複数の電子部品を接続することが可能な基礎パーツを制御するための制御方法において、
ユーザ端末が、複数のユーザ端末から共通にアクセスされるライブラリ記憶手段に記憶される、前記基礎パーツの前記制御部に前記電子部品制御を実行させるためのＡＰＩ（アプリケーションプログラミングインタフェース）のライブラリを取得するステップと、
前記ユーザ端末が、前記ライブラリを使用して前記基礎パーツの前記制御部に前記電子部品制御を実行させるためのプログラムの編集を受け付けるステップと、
前記ユーザ端末が、前記ライブラリに基づいて前記プログラムを実行するステップと、
前記ユーザ端末が、前記プログラムの実行に応じて、前記基礎パーツの前記制御部に前記電子部品制御を実行させるためのコマンドをサーバシステムに送信するステップと、
前記サーバシステムが、前記ユーザ端末から送信されたコマンドを受信し、当該コマンドに基づくコマンドを前記基礎パーツに送信するステップと、
前記基礎パーツの前記通信部が、前記サーバシステムから送信されたコマンドを受信するステップと、
前記基礎パーツの前記制御部が、前記通信部によって受信されたコマンドに基づいて、前記電子部品制御を実行するステップと、
を含む制御方法。
【請求項１５】
電子部品を接続可能な端子と、
前記端子に接続された電子部品に関する制御を実行する制御部と、
サーバシステムと通信するための通信部と、を含み、
前記通信部は、ユーザ端末で編集されたプログラムの実行に応じて前記ユーザ端末から前記サーバシステムに送信されたコマンドに基づいて前記サーバシステムから送信されたコマンドを受信し、
前記制御部は、前記通信部によって受信されたコマンドに基づいて、前記端子に接続された電子部品に関する制御を実行する、
基礎パーツ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は制御システム、制御方法、及び基礎パーツに関する。
【０００２】
電子部品を接続可能な端子と、端子に接続された電子部品に関する電子部品制御を実行する制御部と、記憶部とを含み、電子工作の基礎となる基礎パーツが知られている。ユーザは各種電子部品を基礎パーツの端子に接続し、端子に接続された電子部品に関する電子部品制御を実行するためのプログラムを作成して制御部に実行させることによって、所望の機能が実現されるような電子工作を行うことができる。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】「マイクロビット」：http://microbit.org/ja/guide/quick/
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来、上記のような基礎パーツでは、ユーザは作成したプログラムを基礎パーツの制御部に実行させるために基礎パーツ上の記憶部に書き込む必要があった。このため、ユーザによってはプログラムを実行させにくい場合があった。
【０００５】
本発明は上記課題に鑑みてなされたものであって、その目的は、基礎パーツの制御部に実行させるためのプログラムを基礎パーツ上の記憶部に書き込む必要なく、基礎パーツの端子に接続された電子部品に関する電子部品制御を基礎パーツの制御部に実行させることが可能な制御システム、制御方法、及び基礎パーツを提供することにある。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明の一態様に係る制御システムは、電子部品を接続可能な端子と、通信部と、前記端子に接続された電子部品に関する電子部品制御を実行する制御部とを含み、１又は複数の電子部品を接続することが可能な基礎パーツと、サーバシステムと、ユーザ端末と、複数のユーザ端末から共通にアクセスされる記憶手段であって、前記基礎パーツの前記制御部に前記電子部品制御を実行させるためのＡＰＩ（アプリケーションプログラミングインタフェース）のライブラリを記憶するライブラリ記憶手段と、を含み、前記ユーザ端末は、前記ライブラリ記憶手段に記憶されるライブラリを取得する取得手段と、前記ライブラリを使用して前記基礎パーツの前記制御部に前記電子部品制御を実行させるためのプログラムの入力を受け付ける受付手段と、前記ライブラリに基づいて前記プログラムを実行する実行手段と、前記プログラムの実行に応じて、前記基礎パーツの前記制御部に前記電子部品制御を実行させるためのコマンドを前記サーバシステムに送信するコマンド送信手段と、を含み、前記サーバシステムは、前記ユーザ端末から送信されたコマンドを受信し、当該コマンドに基づくコマンドを前記基礎パーツに送信するコマンド中継手段を含み、前記基礎パーツの前記通信部は、前記サーバシステムから送信されたコマンドを受信し、前記基礎パーツの前記制御部は、前記通信部によって受信されたコマンドに基づいて、前記電子部品制御を実行する。
【０００７】
本発明の一態様に係る制御方法は、電子部品を接続可能な端子と、通信部と、前記端子に接続された電子部品に関する電子部品制御を実行する制御部とを含み、１又は複数の電子部品を接続することが可能な基礎パーツを制御するための制御方法において、ユーザ端末が、複数のユーザ端末から共通にアクセスされるライブラリ記憶手段に記憶される、前記基礎パーツの前記制御部に前記電子部品制御を実行させるためのＡＰＩ（アプリケーションプログラミングインタフェース）のライブラリを取得するステップと、前記ユーザ端末が、前記ライブラリを使用して前記基礎パーツの前記制御部に前記電子部品制御を実行させるためのプログラムの編集を受け付けるステップと、前記ユーザ端末が、前記ライブラリに基づいて前記プログラムを実行するステップと、前記ユーザ端末が、前記プログラムの実行に応じて、前記基礎パーツの前記制御部に前記電子部品制御を実行させるためのコマンドをサーバシステムに送信するステップと、前記サーバシステムが、前記ユーザ端末から送信されたコマンドを受信し、当該コマンドに基づくコマンドを前記基礎パーツに送信するステップと、前記基礎パーツの前記通信部が、前記サーバシステムから送信されたコマンドを受信するステップと、前記基礎パーツの前記制御部が、前記通信部によって受信されたコマンドに基づいて、前記電子部品制御を実行するステップとを含む。
【０００８】
本発明の一態様に係る基礎パーツは、電子部品を接続可能な端子と、前記端子に接続された電子部品に関する制御を実行する制御部と、サーバシステムと通信するための通信部と、を含み、前記通信部は、前記ユーザ端末で編集されたプログラムの実行に応じて前記ユーザ端末から前記サーバシステムに送信されたコマンドに基づいて前記サーバシステムから送信されたコマンドを受信し、前記制御部は、前記通信部によって受信されたコマンドに基づいて、前記端子に接続された電子部品に関する制御を実行する。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施形態に係る制御システムの全体構成を示す図である。
【図２】基礎パーツの外観の一例を示す図である。
【図３】基礎パーツのハードウェア構成の一例を示す図である。
【図４Ａ】入出力部に対する制御の例について説明するための図である。
【図４Ｂ】入出力部に対する制御の例について説明するための図である。
【図４Ｃ】入出力部に対する制御の例について説明するための図である。
【図４Ｄ】入出力部に対する制御の例について説明するための図である。
【図５Ａ】２つのプロセッサを用いた監視について説明するための図である。
【図５Ｂ】２つのプロセッサを用いた監視について説明するための図である。
【図５Ｃ】２つのプロセッサを用いた監視について説明するための図である。
【図５Ｄ】２つのプロセッサを用いた監視について説明するための図である。
【図６】制御システムで実行される処理の一例を示す図である。
【図７】基礎パーツの表示部に表示される情報画面の一例を示す図である。
【図８】データベースの記憶内容の一例を示す図である。
【図９】プログラム編集画面の一例を示す図である。
【図１０】基礎パーツにサーボモータが接続された例を示す図である。
【図１１】実行画面の一例を示す図である。
【図１２】制御システムで実行される処理の一例を示す図である。
【図１３】第１基礎パーツにボリュームとＬＥＤとが接続され、第２基礎パーツにサーボモータが接続された例を示す図である。
【図１４】プログラム編集画面の他の一例を示す図である。
【図１５Ａ】制御システムで実行される処理の一例を示す図である。
【図１５Ｂ】制御システムで実行される処理の一例を示す図である。
【図１５Ｃ】制御システムで実行される処理の一例を示す図である。
【図１６】制御システムで実現される機能ブロックを示す図である。
【発明を実施するための形態】
【００１０】
本発明の実施形態の例を図面に基づいて説明する。
【００１１】
［１．システムの全体構成］図１は、本発明の実施形態に係る制御システムの全体構成を示す。図１に示すように、本実施形態に係る制御システム１は基礎パーツ１０とユーザ端末２０とサーバシステム３とライブラリ提供サーバ４０とを含む。
【００１２】
基礎パーツ１０は電子工作の基礎となるパーツである。ユーザは基礎パーツ１０に電子部品を接続し、プログラムを作成して実行することによって基礎パーツ１０に接続された電子部品を制御することができ、所望の機能を有する物を作成することができる。基礎パーツ１０の詳細に関しては後述する（図２，３参照）。
【００１３】
ユーザ端末２０は、ユーザが基礎パーツ１０を制御するために使用するコンピュータである。例えば、ユーザ端末２０は、例えばスマートフォン、タブレット型コンピュータ、ラップトップ型コンピュータ、又はデスクトップ型コンピュータ等である。
【００１４】
図１に示すように、ユーザ端末２０は制御部２１と記憶部２２と通信部２３と撮影部２４と操作部２５と表示部２６と音声出力部２７とを含む。制御部２１は少なくとも１つのプロセッサを含み、記憶部２２に記憶されたプログラムに従って処理を実行する。記憶部２２は主記憶部（例えばＲＡＭ）及び補助記憶部（例えば不揮発性の半導体メモリ、ハードディスクドライブ、又はソリッドステートドライブ）を含み、プログラムやデータを記憶する。通信部２３は、インターネット等を含むネットワークＮを介して他の装置とデータ通信するためのものである。
【００１５】
撮影部２４は例えばＣＣＤ等の撮像素子である。操作部２５は、ユーザが各種操作を行うためのものである。表示部２６は各種画面を表示するためのものであり、例えば液晶ディスプレイ又は有機ＥＬディスプレイ等である。図１では操作部２５と表示部２６とが別個に表されているが、操作部２５と表示部２６とはタッチパネルとして一体的に構成されてもよい。操作部２５と表示部２６とをタッチパネルとして一体的に構成することは必須ではなく、操作部２５は、キーボード、マウス、タッチパッド（トラックパッド）、又はレバー（スティック）等のように、表示部２６と別個に設けられてもよい。音声出力部２７は音声を出力するためのものであり、例えばスピーカ又はヘッドホン等である。
【００１６】
サーバシステム３は１又は複数のサーバ３０とデータベース３４とを含む。サーバ３０はサーバコンピュータである。図１に示すように、サーバ３０は制御部３１、記憶部３２、及び通信部３３を含む。制御部３１、記憶部３２、及び通信部３３は制御部２１、記憶部２２、及び通信部２３と同様である。サーバ３０はデータベース３４にアクセスすることが可能である。データベース３４はサーバ３０とは別のサーバコンピュータ内に構築されていてもよいし、サーバ３０内に構築されていてもよい。
【００１７】
プログラムやデータはネットワークＮを介して遠隔地からユーザ端末２０又はサーバ３０に供給されて、記憶部２２又は記憶部３２に記憶される。なお、情報記憶媒体（例えば光ディスク又はメモリカード等）に記憶されたプログラムやデータを読み取るための構成要素（例えば光ディスクドライブ又はメモリーカードスロット等）がユーザ端末２０又はサーバ３０に備えられていてもよい。そして、プログラムやデータが情報記憶媒体を介してユーザ端末２０又はサーバ３０に供給されてもよい。
【００１８】
図１では一つの基礎パーツ１０のみが示されているが、実際には複数の基礎パーツ１０が存在する。同様に、図１では一つのユーザ端末２０のみが示されているが、実際には複数のユーザ端末２０が存在する。
【００１９】
サーバシステム３は基礎パーツ１０やユーザ端末２０から見て外部ネットワーク上に配置される。複数の基礎パーツ１０の各々からインターネット等を含むネットワークＮを介してサーバシステム３に共通に通信接続可能である。また、複数のユーザ端末２０の各々からもインターネット等を含むネットワークＮを介してサーバシステム３に共通に通信接続可能である。
【００２０】
また、図１では一つのサーバ３０のみが示されているが、サーバシステム３は複数のサーバ３０を含んでもよい。例えば、メインのサーバ３０への接続数（アクセス数）が閾値よりも多くなった場合に、サブのサーバ３０への接続が行われるようにしてもよい。
【００２１】
ライブラリ提供サーバ４０は、ユーザ端末２０からネットワークＮ及びサーバシステム３を介して基礎パーツ１０を制御するためのプログラムを作成しやすくするためのＡＰＩ（アプリケーションプログラムインタフェース）のライブラリが記憶されたサーバコンピュータである。
【００２２】
例えば、ユーザ端末２０からサーバシステム３に通信接続するためのＡＰＩや、ユーザ端末２０から基礎パーツ１０を制御するためのコマンドを送信するためのＡＰＩのライブラリがライブラリ提供サーバ４０に記憶されている。これらのライブラリは基礎パーツ１０の提供者によって作成され、ライブラリ提供サーバ４０に登録される。本実施形態では、ユーザ端末２０とサーバシステム３とがＷｅｂＳｏｃｋｅｔを介して通信接続されるようになっており、ＷｅｂＳｏｃｋｅｔを介して通信接続するためのＡＰＩのライブラリ等がライブラリ提供サーバ４０に登録されている。
【００２３】
ライブラリ提供サーバ４０はユーザ端末２０から見て外部ネットワーク上に配置され、複数のユーザ端末２０の各々からネットワークＮを介して共通にアクセス可能である。言い換えれば、ライブラリ提供サーバ４０は複数のユーザ端末２０の各々に共通のライブラリを提供可能である。なお、ライブラリ提供サーバ４０はサーバシステム３内のサーバ３０によって実現されてもよい。
【００２４】
［２．基礎パーツの構成］図２は基礎パーツ１０の外観の一例を示し、図３は基礎パーツ１０のハードウェア構成の一例を示す。
【００２５】
［２−１］図２は基礎パーツの表面側を上方から見た様子を示す図である。基礎パーツ１０は、小型の基板上に各種チップやディスプレイ等が取り付けられた構成を有する。図２，３に示すように、基礎パーツ１０は制御部１１と記憶部１２と通信部１３とＵＳＢ端子１４と操作部１５と表示部１６とを含む。制御部１１は記憶部１２、通信部１３、ＵＳＢ端子１４、操作部１５や、表示部１６と例えばＩ２Ｃ（Inter-Integrated Circuit）バスで接続される。
【００２６】
制御部１１は第１プロセッサ１１Ａと第２プロセッサ１１Ｂとを含む。第１プロセッサ１１Ａと第２プロセッサ１１Ｂとは例えばＩ２Ｃバスで接続されており、相互に通信可能である。図２に示す例では、第１プロセッサ１１Ａと第２プロセッサ１１Ｂとが基礎パーツ１０の表面側に設けられておらず、裏面側に設けられている。
【００２７】
記憶部１２は主記憶部（例えばＲＡＭ）及び補助記憶部（例えば不揮発性の半導体メモリ、ハードディスクドライブ、又はソリッドステートドライブ）を含み、プログラムやデータを記憶する。図２に示す例では、記憶部１２に相当する素子が基礎パーツ１０の表面側に設けられておらず、裏面側に設けられている。
【００２８】
通信部１３は、インターネット等を含むネットワークＮを介して他の装置とデータ通信するためのものである。例えば、通信部１３は無線ＬＡＮ通信規格に則った通信を行うためのものである。このため、基礎パーツ１０は、通信部１３を介して、別途設置された無線ＬＡＮアクセスポイントと無線通信接続される。なお、通信部１３は、無線ＬＡＮ通信規格以外の通信規格に則った通信を行うためのものであってもよい。例えば、通信部１３は、携帯電話網又は有線ＬＡＮを介して通信を行うためのものであってもよい。図２に示す例では、通信部１３に相当する素子が基礎パーツ１０の表面側に設けられている。
【００２９】
ＵＳＢ端子１４はＵＳＢインタフェース規格に則った端子である。本実施形態では、ＵＳＢ端子１４は基礎パーツ１０を駆動するための電力を供給するために用いられる。すなわち、ＵＳＢ端子１４はＵＳＢケーブルを介して電源と接続される。図２に示す例では、ＵＳＢ端子１４が基礎パーツ１０の左側側面に設けられている。なお、基礎パーツ１０へ電力を供給するための方法はＵＳＢ端子１４を用いる方法に限られず、他の方法を採用してもよい。
【００３０】
操作部１５は、ユーザが各種操作を行うためのものである。後述するように、操作部１５は、基礎パーツ１０に対して無線ＬＡＮの設定（ＳＳＩＤやパスワード等の設定）を行う際に用いられる。図２に示す例では、ダイヤル式の操作部１５が基礎パーツ１０の奥側側面に設けられている。
【００３１】
表示部１６は基礎パーツ１０に関する各種情報を表示するためのものであり、例えば有機ＥＬディスプレイ又は液晶ディスプレイ等である。図２に示す例では、表示部１６が基礎パーツ１０の表面側に設けられている。
【００３２】
また図２，３に示すように、基礎パーツ１０は１２個の端子１７−０，１７−１，１７−２，１７−３，１７−４，１７−５，１７−６，１７−７，１７−８，１７−９，１７−１０，１７−１１を含む。
【００３３】
端子１７−０〜１７−１１は、汎用の各種電子部品を接続するための端子である。例えば、ＬＥＤ、サーボモータ、ＤＣモータ、ボリューム（可変抵抗）、ボタン、加速度センサ、又は温度センサ等を端子１７−０〜１７−１１に接続できる。当然のことながら、これら以外の電子部品も端子１７−０〜１７−１１に接続できる。図２に示す例では、端子１７−０〜１７−１１が基礎パーツ１０の手前側側面に設けられている。本実施形態では１２個の端子１７−０〜１７−１１を設けているが、１１個以下の端子を設けてもよいし、１３個以上の端子を設けてもよい。なお以下では、端子１７−０〜１７−１１の各々を総称して「端子１７」と記載する場合がある。
【００３４】
後述するように、ユーザはユーザ端末２０でプログラムを入力し、当該プログラムを当該ユーザ端末２０で実行させることによって、基礎パーツ１０に接続された電子部品を制御できる。例えば、ユーザはユーザ端末２０でプログラムを実行させることによって、端子１７に接続されたＬＥＤを光らせたり、端子１７に接続されたサーボモータを回転させたりすることができる。また例えば、ユーザはユーザ端末２０でプログラムを実行させることによって、基礎パーツ１０の端子１７に接続されたボタンが押下された場合に当該基礎パーツ１０の別の端子１７に接続されたＬＥＤを光らせたり、他の基礎パーツ１０の端子１７に接続されたＬＥＤを光らせたりすることもできる。
【００３５】
さらに図３に示すように、基礎パーツ１０は、端子１７−０〜１７−１１にそれぞれ対応する入出力部１８−０，１８−１，・・・，１８−１１を含む。
【００３６】
入出力部１８−０は制御部１１と端子１７−１との間に接続される。図３に示すように、入出力部１８−０はモータドライバ１８Ａ−０とバススイッチ１８Ｂ−０とを含む。図３に示すように、第１プロセッサ１１Ａはモータドライバ１８Ａ−０とバススイッチ１８Ｂ−０との両方に接続されている。同様に、第２プロセッサ１１Ｂもモータドライバ１８Ａ−０とバススイッチ１８Ｂ−０との両方に接続されている。さらに、第２プロセッサ１１Ｂは端子１７−０とも接続されている。なお、モータドライバ１８Ａ−０には電子ヒューズ（図示せず）が接続される。
【００３７】
同様に、入出力部１８−１は制御部１１と端子１７−１との間に接続される。図３に示すように、入出力部１８−１はモータドライバ１８Ａ−１とバススイッチ１８Ｂ−１とを含む。入出力部１８−１、モータドライバ１８Ａ−１や、バススイッチ１８Ｂ−１は、入出力部１８−０、モータドライバ１８Ａ−０や、バススイッチ１８Ｂ−０と同様の構成を有する。
【００３８】
また、入出力部１８−１１は制御部１１と端子１７−１１との間に接続される。図３に示すように、入出力部１８−１１はモータドライバ１８Ａ−１１とバススイッチ１８Ｂ−１１とを含む。入出力部１８−１１、モータドライバ１８Ａ−１１や、バススイッチ１８Ｂ−１１も、入出力部１８−０、モータドライバ１８Ａ−０や、バススイッチ１８Ｂ−０と同様の構成を有する。
【００３９】
図３では省略しているが、端子１７−２〜１７−１０の各々に対しても、入出力部１８−０と同様の入出力部がそれぞれ設けられる。
【００４０】
なお以下では、入出力部１８−０，１８−１，・・・，１８−１１の各々を総称して「入出力部１８」として記載する場合がある。同様に、モータドライバ１８Ａ−０，１８Ａ−１，・・・，１８Ａ−１１の各々を総称して「モータドライバ１８Ａ」と記載し、バススイッチ１８Ｂ−０，１８Ｂ−１，・・・，１８Ｂ−１１の各々を総称して「バススイッチ１８Ｂ」と記載する場合がある。
【００４１】
［２−２］制御部１１（第１プロセッサ１１Ａ及び第２プロセッサ１１Ｂ）は、端子１７に接続された電子部品の種類に応じて、入出力部１８（モータドライバ１８Ａ及びバススイッチ１８Ｂ）を制御する。図４Ａ〜図４Ｄは入出力部１８に対する制御の例について説明するための図である。
【００４２】
図４Ａは、３Ｖの信号を供給する必要がある電子部品が端子１７に接続された場合の入出力部１８に対する制御を示す。この場合、第２プロセッサ１１Ｂはモータドライバ１８Ａを無効（Ｄｉｓａｂｌｅ）に設定し、バススイッチ１８Ｂを有効（Ｅｎａｂｌｅ）に設定する。その結果、第１プロセッサ１１Ａは３Ｖ又は０Ｖの信号をバススイッチ１８Ｂを介して端子１７に出力する。
【００４３】
図４Ｂは、大きい信号を供給する必要がある電子部品や高負荷の電子部品が端子１７に接続された場合の入出力部１８に対する制御を示す。図４Ｂでは、図４Ａの場合よりも大きい５Ｖの信号を供給する必要がある電子部品が端子１７に接続された場合の入出力部１８に対する制御を示す。この場合、第２プロセッサ１１Ｂはモータドライバ１８Ａを有効に設定し、バススイッチ１８Ｂを無効に設定する。その結果、第１プロセッサ１１Ａは５Ｖ又は０Ｖの信号をモータドライバ１８Ａを介して端子１７に出力する。第１プロセッサ１１Ａが３Ｖの信号をモータドライバ１８Ａに入力した場合にモータドライバ１８Ａが５Ｖの信号を端子１７に出力する。
【００４４】
図４Ｃは、３Ｖ又は５Ｖのデジタル信号を基礎パーツ１０に入力するような電子部品が端子１７に接続された場合の入出力部１８に対する制御を示す。この場合、第２プロセッサ１１Ｂはモータドライバ１８Ａを無効に設定し、バススイッチ１８Ｂを有効に設定する。その結果、端子１７から入力されたデジタル信号がバススイッチ１８Ｂを介して第１プロセッサ１１Ａに供給される。
【００４５】
図４Ｄは、アナログ信号を基礎パーツ１０に入力するような電子部品が端子１７に接続された場合の入出力部１８に対する制御を示す。この場合、第２プロセッサ１１Ｂはモータドライバ１８Ａを無効に設定し、バススイッチ１８Ｂも無効に設定する。その結果、端子１７から入力されたアナログ信号がＡ／Ｄ変換回路（図示せず）を介して第２プロセッサ１１Ｂに入力される。そして、入力された信号が第２プロセッサ１１Ｂから第１プロセッサ１１Ａに供給される。
【００４６】
以上のような構成を有することによって、基礎パーツ１０では各種部品を端子１７に接続することが可能である。例えば、基礎パーツ１０では、必要な電圧や電流又は負荷の異なる各種部品を端子１７に接続することが可能である。具体的には、個々の端子１７に対してモータドライバ１８Ａとバススイッチ１８Ｂとの両方が接続されており、端子１７に接続される電子部品に応じてそれらが切り替えられるようになっている。すなわち、大きい電圧（又は電流）が必要な電子部品や高負荷の電子部品が端子１７に接続された場合にはモータドライバ１８Ａを介して制御を行い、小さい電圧が必要な電子部品や低負荷の電子部品が端子１７に接続された場合にはバススイッチ１８Ｂを介して制御を行うようになっている。さらに、デジタル信号を基礎パーツ１０に入力するような電子部品と、アナログ信号を基礎パーツ１０に入力するような電子部品とのどちらも端子１７に接続することが可能である。
【００４７】
［２−３］先述したように、基礎パーツ１０は第１プロセッサ１１Ａと第２プロセッサ１１Ｂとの２つのプロセッサを含んでいる。これらの第１プロセッサ１１Ａと第２プロセッサ１１Ｂとは互いの状態や入出力を監視している。図５Ａ〜図５Ｄは、第１プロセッサ１１Ａと第２プロセッサ１１Ｂとの２つのプロセッサを用いた監視について説明するための図である。
【００４８】
図５Ａは正常に動作している場合の例について示す。図５Ａに示す例では、第１プロセッサ１１Ａが５Ｖの信号を端子１７に出力している（Ａ１）。第２プロセッサ１１Ｂは端子１７の電圧をアナログ値で読み取ることができるようになっており（Ａ２）、第２プロセッサ１１Ｂは読み取った電圧値（例えば４．７Ｖ）を第１プロセッサ１１Ａに通知する（Ａ３）。そして、第１プロセッサ１１Ａは、第２プロセッサ１１Ｂから通知された電圧値が所定の正常範囲内であるため、端子１７への出力が正常に行われたと判定する（Ａ４）。
【００４９】
図５Ｂは異常が発生した場合の例について示す。図５Ｂに示す例では、第１プロセッサ１１Ａが、例えばモータのＶＣＣ端子が接続された端子１７に５Ｖの信号を出力している（Ｂ１）。しかしながら、例えば、モータのコイルが短絡していた場合には、モータのＶＣＣ端子が接続された端子１７もＧＮＤ端子と同様に０Ｖになる場合がある。この場合、図５Ａに示した例と同様、第２プロセッサ１１Ｂは端子１７の電圧値を読み取り（Ｂ２）、第２プロセッサ１１Ｂは読み取った電圧値（例えば０Ｖ）を第１プロセッサ１１Ａに通知する（Ｂ３）。この場合、第１プロセッサ１１Ａは、第２プロセッサ１１Ｂから通知された電圧値が所定の正常範囲外であるため、異常が発生していると判定する（Ｂ４）。この場合、例えば、第１プロセッサ１１Ａは端子１７への出力を停止する。
【００５０】
図５Ｃは第１プロセッサ１１Ａで異常が発生した場合の例について示す。第１プロセッサ１１Ａは、通信部１３の制御や、後述するような、サーバシステム３を介して受信されるコマンドの実行等の各種処理を行う。このため、何らかの原因によって処理が正常に行われず、第１プロセッサ１１Ａが停止したり、暴走したりする場合がある。この場合、第１プロセッサ１１Ａと第２プロセッサ１１Ｂとの間の通信が正常に行われなくなるため、第２プロセッサ１１Ｂは第１プロセッサ１１Ａで異常が発生したと判定し（Ｃ１）、端子１７に接続された電子部品を保護すべく、入出力部１８を入力モード（図４Ｃ又は４Ｄに示した状態）に設定する（Ｃ２）。
【００５１】
図５Ｄは第２プロセッサ１１Ｂで異常が発生した場合の例について示す。第２プロセッサ１１Ｂは第１プロセッサ１１Ａよりも端子１７に近い部分に接続されているため、端子１７に接続された電子部品（回路）によって電気的又は物理的に悪影響を受ける可能性があり、その結果、第２プロセッサ１１Ｂで異常が発生する場合がある。この場合、第１プロセッサ１１Ａと第２プロセッサ１１Ｂとの間の通信が正常に行われなくなるため、第１プロセッサ１１Ａは第２プロセッサ１１Ｂで異常に発生したと判定し（Ｄ１）、異常の発生を示す通知を表示部１６に表示したり、サーバシステム３に送信したりする（Ｄ２）。なお、例えば、サーバシステム３に送信された通知は、サーバシステム３によってユーザ端末２０に送信される。
【００５２】
以上のように、本実施形態では、個々の端子１７に対して２つのプロセッサ（第１プロセッサ１１Ａ及び第２プロセッサ１１Ｂ）を用意し、一方のプロセッサ（第１プロセッサ１１Ａ）によって行われた制御が正常に行われたかを他方のプロセッサ（第２プロセッサ１１Ｂ）が監視するようになっている。また、プロセッサ同士が互いの状態を監視するようになっている。このため、異常が発生した場合に適切に対処できるようになっている。
【００５３】
［３．基礎パーツの使用手順］ユーザが基礎パーツ１０を使用する場合に行う手順について説明する。先述したように、ユーザはユーザ端末２０でプログラムを編集し、当該プログラムをユーザ端末２０で実行させることによって、基礎パーツ１０に接続された電子部品を制御できる。例えば、ユーザはユーザ端末２０でプログラムを実行させることによって、端子１７に接続されたＬＥＤを光らせたり、端子１７に接続されたサーボモータを回転させたりすることができる。以下、そのためにユーザが行う手順について説明する。
【００５４】
［３−１］まず、プログラムを編集するためのプログラム編集画面をユーザ端末２０の表示部２６に表示させるまでの手順について説明する。
【００５５】
最初に、ユーザはＵＳＢケーブルを介して、基礎パーツ１０のＵＳＢ端子１４に電源を接続する。基礎パーツ１０のＵＳＢ端子１４に電源が接続されると、基礎パーツ１０が起動する。この場合、無線ＬＡＮの設定がなされていなければ（又は、無線ＬＡＮの設定はなされているが、無線ＬＡＮに接続できなければ）、制御部１１は、無線ＬＡＮに接続するための情報の入力を受け付けるための画面を表示部１６に表示する。この場合、ユーザは操作部１５を操作して、例えばＳＳＩＤやパスワード等の情報を入力する。
【００５６】
基礎パーツ１０が無線ＬＡＮに接続されると、例えば図６に示すような処理が実行される。図６に示すように、基礎パーツ１０の制御部１１は接続要求を通信部１３によってサーバ３０に送信し（Ｓ１０００）、サーバ３０は接続要求を通信部３３によって受信する（Ｓ３０００）。基礎パーツ１０の記憶部１２には、基礎パーツ１０を一意に識別するための識別情報であるＩＤが記憶されており、このＩＤが接続要求とともにサーバ３０に送信される。
【００５７】
接続要求がサーバ３０で受信された場合、サーバ３０の制御部３１は、接続要求とともに受信したＩＤがデータベース３４に登録されているか否かを判定することによって、当該ＩＤが正当であるか否かを確認する（Ｓ３００２）。そして、ＩＤが正当であることが確認された場合、制御部３１はランダムに生成したランダムデータを通信部３３によって基礎パーツ１０に返信し（Ｓ３００４）、基礎パーツ１０はこのランダムデータを通信部１３によって受信する（Ｓ１００２）。
【００５８】
ランダムデータが基礎パーツ１０で受信された場合、制御部１１は、記憶部１２に記憶された秘密鍵を基づいて署名データを生成する（Ｓ１００４）。そして、制御部１１は、この署名データを、ステップＳ１００２で受信されたランダムデータのハッシュ値とともに、通信部１３によってサーバ３０に送信し（Ｓ１００６）、サーバ３０はこれらの署名データとハッシュ値とを通信部３３によって受信する（Ｓ３００６）。
【００５９】
署名データとハッシュ値とがサーバ３０で受信された場合、制御部３１は、データベース３４に記憶された公開鍵とハッシュ値とに基づき、署名データが正当であるか否かを判定する（Ｓ３００８）。そして、署名データが正当であることが確認された場合、基礎パーツ１０とサーバ３０との間に通信接続（ＷｅｂＳｏｃｋｅｔによる常時接続）が確立される。この場合、制御部３１は、基礎パーツ１０に関する情報を示す情報画面データを生成し、情報画面データを通信部３３によって基礎パーツ１０に送信する（Ｓ３０１０）。
【００６０】
基礎パーツ１０は情報画面データを通信部１３によって受信し（Ｓ１００８）、制御部１１は情報画面データに基づいて情報画面を表示部１６に表示する（Ｓ１０１０）。
【００６１】
図７は、基礎パーツ１０の表示部１６に表示される情報画面の一例を示す図である。図７に示すように、情報画面Ｇ１００は表示要素Ｅ１０１，Ｅ１０２，Ｅ１０３を含む。
【００６２】
表示要素Ｅ１０１は基礎パーツ１０のＩＤを示す。図７に示す例では、基礎パーツ１０のＩＤが「００００−００００」であることが示されている。表示要素Ｅ１０２は、基礎パーツ１０を制御するためのプログラムを編集するためのプログラム編集画面をユーザ端末２０に表示するためにアクセスすべきＵＲＬを示す。このＵＲＬが示すウェブサイト（ウェブページ）はサーバ３０によって提供される。なお、このウェブサイトを提供するサーバ３０は、以上に説明したステップＳ３０００〜Ｓ３０１０を実行するサーバ３０とは別のサーバであってもよい。
【００６３】
また、表示要素Ｅ１０３は、基礎パーツ１０のＩＤと上記のＵＲＬとが埋め込まれたＱＲコード（登録商標）である。ここではＱＲコードを利用しているが、ＱＲコード以外のコード画像を利用してもよい。
【００６４】
なお、ステップＳ１００６では、基礎パーツ１０の位置に関する情報をサーバ３０に送信してもよい。そして、ステップＳ３０１０では、制御部３１は、基礎パーツ１０の位置に合ったウェブサイトのＵＲＬを表示要素Ｅ１０２として表示し、かつ、当該ＵＲＬが埋め込まれたＱＲコードをＥ１０３として表示する情報画面データを基礎パーツ１０に送信してもよい。例えば、基礎パーツ１０が日本国内にある場合には、日本国内にあるサーバ３０によって提供されるウェブサイトのＵＲＬを示す表示要素Ｅ１０２，Ｅ１０３を情報画面Ｇ１００に表示し、基礎パーツ１０が米国内にある場合には、米国内にあるサーバ３０によって提供されるウェブサイトのＵＲＬを示す表示要素Ｅ１０２，Ｅ１０３を情報画面Ｇ１００に表示してもよい。
【００６５】
例えば、ユーザは情報画面Ｇ１００に表示されたＱＲコードをユーザ端末２０の撮影部２４に読み取らせる。この場合、ユーザ端末２０の制御部２１は、読み取られたＱＲコードに埋め込まれたＵＲＬ及びＩＤを抽出する（Ｓ２０００）。また、制御部２１はウェブブラウザを起動し、ステップＳ２０００で抽出したＵＲＬに基づき、ＨＴＴＰ要求を通信部２３によってサーバ３０に送信し（Ｓ２００２）、サーバ３０はＨＴＴＰ要求を通信部３３によって受信する（Ｓ３０１２）。なお、このＨＴＴＰ要求にはＱＲコードから抽出されたＩＤも含まれる。
【００６６】
ＨＴＴＰ要求がサーバ３０で受信された場合、制御部３１は、ＨＴＴＰ要求とともに受信したＩＤがデータベース３４に登録されているか否かを判定することによって、当該ＩＤが正当であるか否かを確認する（Ｓ３０１４）。そして、受信したＩＤが正当であることが確認された場合、制御部３１は、当該ＩＤに関連付けて記憶されるプログラムデータを読み出す（Ｓ３０１６）。
【００６７】
本実施形態においては、図８に示すように、各基礎パーツ１０のＩＤに関連付けてプログラムデータがデータベース３４に記憶される。例えば、初期状態では、サンプルプログラムのデータが各基礎パーツ１０のＩＤと関連付けて記憶される。また、ユーザが基礎パーツ１０用にプログラムを作成した後では、ユーザが作成したプログラムのデータが基礎パーツ１０のＩＤと関連付けてデータベース３４に保存される。このため、ステップＳ３０１６では、制御部３１は、ステップＳ３０１２で受信したＩＤと関連付けて記憶されるプログラムデータをデータベース３４から読み出す。なお、図８に示す例では、一つのＩＤに対して一つのプログラムデータが記憶されているが、一つのＩＤに対して複数のプログラムデータが記憶されてもよい。
【００６８】
ステップＳ３０１６の実行後、制御部３１は、読み出したプログラムデータを含むＨＴＴＰ応答を通信部３３によってユーザ端末２０に返信し（Ｓ３０１８）、ユーザ端末２０はＨＴＴＰ応答を通信部２３によって受信する（Ｓ２００４）。そして、制御部２１は、ＨＴＴＰ応答に基づいてプログラム編集画面を表示部２６に表示する（Ｓ２００６）。
【００６９】
図９はプログラム編集画面の一例を示す。図９に示すように、プログラム編集画面Ｇ２００は、表示要素Ｅ２０１，Ｅ２０２と、行番号領域Ａ２０３と、編集領域Ａ２０４とを含む。表示要素Ｅ２０１はプログラムの対象になる基礎パーツ１０のＩＤを示す。表示要素Ｅ２０２はプログラムを保存して実行するためのボタンである。行番号領域Ａ２０３は行番号を示す。編集領域Ａ２０４は、ユーザがプログラムを編集するための領域であり、ユーザによって編集されたプログラムが表示される。例えば、ユーザは、表示部２６に表示されるソフトウェアキーボードや、ユーザ端末２０と有線又は無線接続されたキーボード等を用いて、プログラムを編集する。
【００７０】
なお、以上では、ユーザが情報画面Ｇ１００に表示されたＱＲコードをユーザ端末２０の撮影部２４に読み取らせる場合について説明したが、ユーザはユーザ端末２０でウェブブラウザを起動し、情報画面Ｇ１００に表示されたＵＲＬ（表示要素Ｅ１０２）を入力し、基礎パーツ１０のＩＤの入力要求に応じて、情報画面Ｇ１００に表示されたＩＤ（表示要素Ｅ１０１）を入力することによっても、図９と同様のプログラム編集画面Ｇ２００をユーザ端末２０の表示部２６に表示させることができる。
【００７１】
［４．プログラム例（１）］基礎パーツ１０を制御するためのプログラムの一例について説明する。
【００７２】
本実施形態に係る制御システム１では、ユーザはＪａｖａスクリプト（登録商標）等の公知のプログラム言語を使用して、基礎パーツ１０を制御するためのプログラムを作成できる。ここでは、Ｊａｖａスクリプトを使用して作成されたプログラムの例について説明するが、他のプログラム言語を使用することも可能である。
【００７３】
図９（編集領域Ａ２０４）に示すプログラム（ＨＴＭＬコード）は、図１０に示すような、サーボモータ５０が接続された基礎パーツ１０を制御するためのプログラムの一例である。具体的には、図９に示すプログラムは、ウェブブラウザに表示されたＯＮボタンが押下（クリック又はタップ等）された場合にサーボモータ５０を９０度回転させ、ウェブブラウザに表示されたＯＦＦボタンが押下された場合にサーボモータ５０を元の状態（０度の状態）に戻すプログラムである。なお、図１０に示す例では、サーボモータ５０のマイナス線（ＧＮＤ）５１が端子１７−０に接続され、プラス線（ＶＣＣ）５２が端子１７−１に接続され、信号線５３が端子１７−２に接続されている。なお、サーボモータ５０は他の端子１７に接続されていてもよい。
【００７４】
図９に示すプログラムのうちの第５行目部分では、ライブラリ提供サーバ４０に記憶されているライブラリを取り込んでいる。先述したように、このライブラリはユーザ端末２０をサーバシステム３と通信接続したり、基礎パーツ１０に接続される各種電子部品を制御したりするためのＡＰＩのライブラリを含んでいる。ユーザは通信接続に関する詳細な知識や電子部品の制御に関する詳細な知識を有していなくも、ライブラリを取り込んでＡＰＩを利用することによって容易にプログラムを作成できる。例えば、本実施形態に係る制御システム１では、ユーザ端末２０がＷｅｂＳｏｃｋｅｔを介してサーバシステム３に接続するが、ユーザはＷｅｂＳｏｃｋｅｔに関する詳細な知識を有していなくても、ライブラリを取り込んでＡＰＩを利用することによって容易にプログラムを作成できる。
【００７５】
また、図９に示すプログラムのうちの第９，１０行目部分は、ＯＮボタン及びＯＦＦボタンを表示するための部分に相当する。
【００７６】
また、図９に示すプログラムのうちの第１１〜２３行目部分は、基礎パーツ１０に接続されたサーボモータ５０を制御するためのＪａｖａスクリプト部分に相当する。Ｊａｖａスクリプト部分ではＡＰＩが利用されている。第１６〜１８行目部分は、ＯＮボタンが押下された場合にサーボモータ５０を９０度回転させるための部分に相当し、第１９〜２１行目部分は、ＯＦＦボタンが押下された場合にサーボモータ５０を元の状態（０度の状態）に戻すための部分に相当する。Ｊａｖａスクリプト部分の詳細については後述する。
【００７７】
プログラム編集画面Ｇ２００の表示要素Ｅ２０２が押下された場合、編集領域Ａ２０４に表示されたプログラム（ＨＴＭＬコード）の保存及び実行が行われる。
【００７８】
すなわち、表示要素Ｅ２０２が押下された場合、表示要素Ｅ２０１に示されたＩＤ（００００−００００）とともに、編集領域Ａ２０４に表示されたプログラムがユーザ端末２０からサーバ３０に送信される。この場合、サーバ３０は、受信したＩＤに関連付けてデータベース３４に記憶されたプログラムを、受信したプログラムに置き換える。
【００７９】
また、表示要素Ｅ２０２が押下された場合、編集領域Ａ２０４に表示されたプログラム（ＨＴＭＬコード）が実行される。この場合、図１１に示すような実行画面Ｇ３００がユーザ端末２０の表示部２６に表示される。図１１に示す実行画面Ｇ３００は表示要素Ｅ３０１，Ｅ３０２，Ｅ３０３，Ｅ３０４を含む。表示要素Ｅ３０１は表示要素Ｅ２０１と同様である。表示要素Ｅ３０２は実行画面Ｇ３００を閉じて、プログラム編集画面Ｇ２００に戻るためのボタンである。表示要素Ｅ３０３はＯＫボタンであり、表示要素Ｅ３０４はＯＦＦボタンである。表示要素Ｅ３０３（ＯＫボタン）が押下された場合には、基礎パーツ１０に接続されたサーボモータ５０が９０度回転した状態になり、表示要素Ｅ３０４（ＯＦＦボタン）が押下された場合には、基礎パーツ１０に接続されたサーボモータ５０が元の状態（０度の状態）に戻る。
【００８０】
ここで、図９に示すプログラム（ＨＴＭＬコード）のうちのＪａｖａスクリプト部分（第１１〜２３行目部分）について詳細に説明する。図１２は、Ｊａｖａスクリプト部分が実行されることによって、ユーザ端末２０とサーバ３０と基礎パーツ１０とにおいて実行される処理の一例を示す。
【００８１】
図９に示すプログラムの第１２行目部分では、プログラムによる制御対象として、ＩＤ「００００−００００」の基礎パーツ１０が指定されている。また、第１３行目部分では、当該基礎パーツ１０との通信接続が要求されている。
【００８２】
この第１２〜１３行目部分が実行されることによって、図１２に示すステップＳ２１００が実行される。すなわち、ユーザ端末２０の制御部２１は、ＩＤ「００００−００００」の基礎パーツ１０への接続要求を通信部２３によってサーバ３０に送信する（Ｓ２１００）。この場合、接続要求とともにＩＤ「００００−００００」がユーザ端末２０からサーバ３０に送信される。なお、後述するように、ユーザ端末２０と基礎パーツ１０とが直接的に通信接続されるわけではなく、ユーザ端末２０と基礎パーツ１０との間ではサーバ３０を介してコマンド等のデータが授受されることになるため、接続要求は「中継要求」ということもできる。
【００８３】
サーバ３０は、ユーザ端末２０から送信された接続要求を通信部３３によって受信する（Ｓ３１００）。この場合、サーバ３０の制御部３１は、接続要求とともに受信したＩＤがデータベース３４に登録されているか否かを判定することによって、当該ＩＤが正当であるか否かを確認する（Ｓ３１０２）。
【００８４】
そして、ＩＤが正当であることが確認された場合、制御部３１は、受信したＩＤ「００００−００００」の基礎パーツ１０とサーバ３０との間に通信接続が確立されているか否かを判定する（Ｓ３１０４）。先述したように、基礎パーツ１０への電力供給が開始されて基礎パーツ１０が起動された場合に図６に示したステップＳ１０００〜Ｓ１００６，Ｓ３０００〜Ｓ３００８の処理が実行されることによって、基礎パーツ１０とサーバ３０との間に通信接続が確立される。そして、基礎パーツ１０への電力供給が中止されるまでこの通信接続が維持される。このため、ステップＳ３１０４では、このような通信接続が維持されているか否かが確認される。
【００８５】
受信したＩＤ「００００−００００」の基礎パーツ１０とサーバ３０との間に通信接続が確立されていることが確認された場合、制御部３１は、基礎パーツ１０との接続がＯＫであることを通信部３３によってユーザ端末２０に通知し（Ｓ３１０６）、ユーザ端末２０は当該通知を通信部２３によって受信する（Ｓ２１０２）。この場合、サーバ３０とユーザ端末２０との間で所定の手順が実行されることによって通信接続（ＷｅｂＳｏｃｋｅｔによる常時接続）が確立される。
【００８６】
その後、図９に示すプログラムの第１４行目部分が実行される。第１４行目部分では、ＩＤ「００００−００００」の基礎パーツ１０に接続された電子部品の種類がサーボモータ５０であることが指定されるとともに、サーボモータ５０のマイナス線（ＧＮＤ）５１、プラス線（ＶＣＣ）５２、信号線５３が端子１７−０，１７−１，１７−２にそれぞれ接続されていることが指定されている。
【００８７】
第１４行目部分が実行されることによって、図１２に示すステップＳ２１０４が実行される。すなわち、制御部２１は、サーボモータ５０のマイナス線（ＧＮＤ）５１、プラス線（ＶＣＣ）５２、信号線５３がＩＤ「００００−００００」の基礎パーツ１０の端子１７−０，１７−１，１７−２にそれぞれ接続されていることを指定する指定コマンドを通信部２３によってサーバ３０に送信する（Ｓ２１０４）。この場合、サーボモータ５０が接続された端子１７−０，１７−１，１７−２の各々について、図４Ａ〜４Ｄに示した制御モードのうちのどの制御モードで制御すべきかがライブラリに基づいて判断され、当該判断結果を示す指定コマンドがサーバ３０に送信される。例えば、「｛ｉo０：０，ｉｏ１：１，ｐｗｍ０：｛ｉｏ：２，ｆｒｅｑ：１０００｝」のようなコマンドがユーザ端末２０からサーバ３０に送信される
【００８８】
サーバ３０は、ユーザ端末２０から送信された指定コマンドを通信部３３によって受信する（Ｓ３１０８）。そして、サーバ３０の制御部３１は、ステップＳ３１０８で受信したコマンドが適切であるか否かを判定する（Ｓ３１１０）。
【００８９】
例えば、サーバ３０の記憶部３２には、ユーザ端末２０から受信したコマンドが適切であるか否かを判定するための判定基準が記憶されている。例えば、適切なコマンド又は不適切なコマンドの類型が判定基準として記憶されている。このため、制御部３１は、ステップＳ３１０８で受信したコマンドが適切なコマンドの類型（又は不適切なコマンドの類型）に合致するか否かを判定する。例えば、ステップＳ３１０８で受信したコマンドが適切なコマンドの類型に合致しない場合や、ステップＳ３１０８で受信したコマンドが不適切なコマンドの類型に合致する場合に、制御部３１はステップＳ３１０８で受信したコマンドが適切でないと判定する。
【００９０】
また例えば、サーバ３０の記憶部３２には、ＩＤ「００００−００００」の基礎パーツ１０に関して、ユーザ端末２０から受信したコマンドの履歴が判定基準として記憶される。そして、制御部３１は、当該履歴に基づいて、ステップＳ３１０８で受信したコマンドが適切であるか否かを判定する。例えば、ステップＳ３１０８で受信したコマンドよりも先に実行されるべきコマンドが未だ受信されていない場合に、制御部３１はステップＳ３１０８で受信したコマンドが適切でないと判定する。
【００９１】
図１２では省略しているが、ステップＳ３１０８で受信したコマンドが適切でないと判定された場合、制御部３１はその旨を通信部３３によってユーザ端末２０に通知する。そして、通知内容がユーザ端末２０の表示部２６に表示される。
【００９２】
一方、ステップＳ３１０８で受信したコマンドが適切であると判定された場合、制御部３１は、ステップＳ３１０８で受信したコマンドを基礎パーツ１０の制御部１１が解釈可能な形式に変換し、変換後のコマンドを通信部３３によってＩＤ「００００−００００」の基礎パーツ１０に送信する（Ｓ３１１２）。この場合、ステップＳ３１０８で受信したコマンドが、例えば「０ｘ０３，０ｘ００，０ｘ０２，０ｘ００，０ｘ０２」のような中間コード（バイトコード）のコマンドに変換され、変換後のコマンドがＩＤ「００００−００００」の基礎パーツ１０に送信される。
【００９３】
ＩＤ「００００−００００」の基礎パーツ１０は、サーバ３０から送信されたコマンドを通信部１３によって受信する（Ｓ１１００）。この場合、基礎パーツ１０の制御部１１は、ステップＳ１１００で受信したコマンドに応じた制御を実行する（Ｓ１１０２）。記憶部１２には、サーバ３０から受信されることがある各コマンドに対応する制御内容を定めたデータが記憶されており、制御部１１は当該データを参照することによって、ステップＳ１１０２で受信したコマンドに対応する制御内容を特定する。
【００９４】
ステップＳ１１０２において、例えば、制御部１１は、サーボモータ５０のマイナス線（ＧＮＤ）５１、プラス線（ＶＣＣ）５２、信号線５３が接続された端子１７−０，１７−１，１７−２の各々について、図４Ａ〜４Ｄに示した制御モードのうちのどの制御モードで制御するのかを示すデータを記憶部１２に記憶させる。また、この場合、第２プロセッサ１１Ｂは、サーボモータ５０が接続された端子１７−０，１７−１，１７−２の入出力部１８−０，１８−１，１８−２の各々に対して、図４Ｂに示したような制御を行う。また、第１プロセッサ１１Ａはマイナス線（ＧＮＤ）５１が接続された端子１７−０に０Ｖの信号を出力し、プラス線（ＶＣＣ）５２が接続された端子１７−１に５Ｖの信号を出力する。
【００９５】
また、図９に示すプログラムでは、表示部２６に表示された表示要素Ｅ３０３（ＯＫボタン）が押下された場合に第１７行目部分が実行される。この第１７行目部分では、サーボモータ５０を９０度回転させる処理が実行される。この第１７行目部分が実行されることによって、図１２に示すステップＳ２１０６が実行される。すなわち、図１２に示すように、制御部２１は、ＩＤ「００００−００００」の基礎パーツ１０の端子１７−０，１７−１，１７−２に接続されたサーボモータ５０を９０度回転させるためのコマンドを通信部２３によってサーバ３０に送信する（Ｓ２１０６）。この場合、例えば「｛ｐｗｍ０：｛ｄｕｔｙ：０．０１｝｝」のようなコマンドがユーザ端末２０からサーバ３０に送信される。
【００９６】
サーバ３０は、ユーザ端末２０から送信されたコマンドを通信部３３によって受信する（Ｓ３１１４）。そして、サーバ３０の制御部３１は、ステップＳ３１１４で受信したコマンドが適切であるか否かを判定する（Ｓ３１１６）。ステップＳ３１１６はステップＳ３１１０と同様である。
【００９７】
ステップＳ３１１４で受信したコマンドが適切であると判定された場合、制御部３１は、当該コマンドを基礎パーツ１０の制御部１１が解釈可能な形式に変換し、変換後のコマンドを通信部３３によってＩＤ「００００−００００」の基礎パーツ１０に送信する（Ｓ３１１８）。この場合、ステップＳ３１１４で受信したコマンドが中間コード（バイトコード）のコマンドに変換され、変換後のコマンドがＩＤ「００００−００００」の基礎パーツ１０に送信される。
【００９８】
ＩＤ「００００−００００」の基礎パーツ１０は、サーバ３０から送信されたコマンドを通信部１３によって受信する（Ｓ１１０４）。そして、基礎パーツ１０の制御部１１は、受信したコマンドに応じた制御を実行する（Ｓ１１０６）。この場合、例えば、第１プロセッサ１１Ａは、サーボモータ５０を９０度回転させるための信号を、サーボモータ５０の信号線５３が接続された端子１７−２に出力する。なお、この場合、第２プロセッサ１１Ｂは、サーボモータ５０の信号線５３が接続された端子１７−２の入出力部１８−２に対して、図４Ｂに示したような制御を行う。
【００９９】
また、図９に示すプログラムでは、表示部２６に表示された表示要素Ｅ３０４（ＯＦＦボタン）が押下された場合に第２０行目部分が実行される。この第２０行目部分では、サーボモータ５０を元の状態（０度）の状態に戻す処理が実行される。この第２０行目部分が実行されることによって、図１２に示すステップＳ２１０８が実行される。すなわち、図１２に示すように、制御部２１は、ＩＤ「００００−００００」の基礎パーツ１０の端子１７−０，１７−１，１７−２に接続されたサーボモータ５０を元の状態（０度）の状態に戻すためのコマンドをサーバ３０に送信する（Ｓ２１０８）。この場合、例えば「｛｛ｐｗｍ０：｛ｄｕｔｙ：０．０２｝｝」のようなコマンドがユーザ端末２０からサーバ３０に送信される。
【０１００】
サーバ３０は、ユーザ端末２０から送信されたコマンドを通信部３３によって受信する（Ｓ３１２０）。そして、サーバ３０の制御部３１は、ステップＳ３１２０で受信したコマンドが適切であるか否かを判定する（Ｓ３１２２）。ステップＳ３１２２はステップＳ３１１０と同様である。
【０１０１】
ステップＳ３１２０で受信したコマンドが適切であると判定された場合、制御部３１は、当該コマンドを基礎パーツ１０の制御部１１が解釈可能な形式に変換し、変換後のコマンドを通信部３３によってＩＤ「００００−００００」の基礎パーツ１０に送信する（Ｓ３１２４）。この場合、ステップＳ３１２０で受信したコマンドが中間コード（バイトコード）のコマンドに変換され、変換後のコマンドがＩＤ「００００−００００」の基礎パーツ１０に送信される。
【０１０２】
ＩＤ「００００−００００」の基礎パーツ１０は、サーバ３０から送信されたコマンドを通信部１３によって受信する（Ｓ１１０８）。この場合、基礎パーツ１０の制御部１１は、受信したコマンドに応じてサーボモータ５０の制御を実行する（Ｓ１１１０）。この場合、例えば、第１プロセッサ１１Ａは、サーボモータ５０を初期状態（０度の状態）に戻すための信号を、サーボモータ５０の信号線５３が接続された端子１７−２に出力する。なお、この場合、第２プロセッサ１１Ｂは、サーボモータ５０の信号線５３が接続された端子１７−２の入出力部１８−２に対して、図４Ｂに示したような制御を行う。
【０１０３】
以上のように、本実施形態に係る制御システム１では、ユーザ端末２０におけるユーザの操作に応じて、基礎パーツ１０に接続されたサーボモータ５０を回転させるようなシステムを実現できる。
【０１０４】
なお、以上に説明した例では、サーボモータ５０を基礎パーツ１０に接続したが、サーボモータ５０以外の電子部品を基礎パーツ１０に接続してもよい。例えば、ＬＥＤを基礎パーツ１０に接続し、ユーザ端末２０におけるユーザの操作に応じて、基礎パーツ１０に接続されたＬＥＤを光らせるようにしてもよい。
【０１０５】
また、ユーザ端末２０で所定のイベントの発生が検知された場合に、基礎パーツ１０に接続された電子部品を制御するようにしてもよい。例えば、所定のハッシュタグが付された投稿がなされたことが検知された場合や、所定のメールアドレス宛のメールが受信されたことが検知された場合に、基礎パーツ１０に接続されたサーボモータ５０を回転させたり、ＬＥＤを点灯させたりするようにしてもよい。
【０１０６】
［５．プログラム例（２）］基礎パーツ１０を制御するためのプログラムの他の一例について説明する。
【０１０７】
ここでは、２つの基礎パーツ１０を連携させるようなプログラムの例について説明する。具体的には、図１３に示すような、ボリューム６０とＬＥＤ７０とが接続された第１基礎パーツ１０−１と、サーボモータ５０が接続された第２基礎パーツ１０−２とを連携させるようなプログラムの例について説明する。なお、第１基礎パーツ１０−１はＩＤ「００００−００００」の基礎パーツ１０であり、第２基礎パーツ１０−２はＩＤ「１１１１−１１１１」の基礎パーツ１０であることとする。また、ボリューム６０は、ユーザがつまみ部６４を回すことによって抵抗値が変化し、当該抵抗値によってつまみ部６４の位置（つまみ部６４がどの程度回されたか）を判別可能な電子部品である。例えば、つまみ部６４の位置を示す数値として「０」から「１」までの間の数値がボリューム６０から第１基礎パーツ１０−１に入力される。「０」はつまみ部６４が回されていない状態（つまみ部６４の初期位置）に相当し、「１」はつまみ部６４が最大限回された状態に相当し、「０．５」はつまみ部６４が半分程度まで回された状態に相当する。
【０１０８】
図１３に示す例では、第１基礎パーツ１０−１において、ボリューム６０の第１ピン６１、第２ピン６２、第３ピン６３がそれぞれ端子１７−０，１７−１，１７−２に接続され、ＬＥＤ７０のアノード７１及びカソード７２がそれぞれ端子１７−１０，１７−１１に接続されている。なお、ボリューム６０やＬＥＤ７０は他の端子１７に接続されていてもよい。一方、第２基礎パーツ１０−２において、サーボモータ５０のマイナス線（ＧＮＤ）５１、プラス線（ＶＣＣ）５２、信号線５３がそれぞれ端子１７−０，１７−１，１７−２に接続されている。なお、サーボモータ５０は他の端子１７に接続されていてもよい。
【０１０９】
図１４は、図９と同様にプログラム編集画面Ｇ２００の一例を示しており、図１４の編集領域Ａ２０４には、ユーザが第１基礎パーツ１０−１に接続されたボリューム６０のつまみ部６４を回した場合に、つまみ部６４が半分以上回されたら、第１基礎パーツ１０−１に接続されたＬＥＤ７０を点灯させたり、つまみ部６４の位置に対応する角度だけ、第２基礎パーツ１０−２に接続されたサーボモータ５０を回転させたりするためのプログラム（ＨＴＭＬコード）が表示されている。
【０１１０】
図１４（編集領域Ａ２０４）に示すプログラムのうちの第１〜５行目部分は、図９（編集領域Ａ２０４）に示すプログラムのうちの第１〜５行目部分と同じである。
【０１１１】
また、図１４に示すプログラムのうちの第９〜２７行目部分は、上記連携を実現するためのＪａｖａスクリプト部分に相当している。図１５Ａ〜図１５Ｃは、Ｊａｖａスクリプト部分が実行されることによって、ユーザ端末２０とサーバ３０と基礎パーツ１０とにおいて実行される処理の一例を示す。
【０１１２】
図１４に示すプログラムの第１０行目部分では、プログラムによる第１の制御対象として、ＩＤ「００００−００００」の第１基礎パーツ１０−１が指定されている。また、第１１行目部分では、第１基礎パーツ１０−１との通信接続が要求されている。
【０１１３】
これらの部分が実行されることによって、図１５Ａに示すステップＳ２２００が実行される。すなわち、ユーザ端末２０の制御部２１は、ＩＤ「００００−００００」の第１基礎パーツ１０−１への接続要求を通信部２３によってサーバ３０に送信する（Ｓ２２００）。この場合、接続要求とともにＩＤ「００００−００００」がユーザ端末２０からサーバ３０に送信される。なお、後述するように、ユーザ端末２０と第１基礎パーツ１０−１とが直接的に通信接続されるわけではなく、ユーザ端末２０と第１基礎パーツ１０−１との間ではサーバ３０を介してコマンド等のデータが授受されることになるため、接続要求は「中継要求」ということもできる。
【０１１４】
サーバ３０は、ユーザ端末２０から送信された接続要求を通信部３３によって受信する（Ｓ３２００）。この場合、サーバ３０の制御部３１は、接続要求とともに受信したＩＤがデータベース３４に登録されているか否かを判定することによって、当該ＩＤが正当であるか否かを確認する（Ｓ３２０２）。そして、ＩＤが正当であることが確認された場合、制御部３１は、受信したＩＤ「００００−００００」の第１基礎パーツ１０−１とサーバ３０との間に通信接続が確立されているか否かを判定する（Ｓ３２０４）。これらステップＳ３２０２，Ｓ３２０４は図１２のステップＳ３１０２，Ｓ３１０４と同様である。
【０１１５】
第１基礎パーツ１０−１とサーバ３０との間に通信接続が確立されていることが確認された場合、制御部３１は、第１基礎パーツ１０−１との接続がＯＫであることを通信部３３によってユーザ端末２０に通知し（Ｓ３２０６）、ユーザ端末２０は当該通知を通信部２３によって受信する（Ｓ２２０２）。この場合、サーバ３０とユーザ端末２０との間で所定の通信が実行されることによって通信接続（ＷｅｂＳｏｃｋｅｔによる常時接続）が確立される。
【０１１６】
その後、図１４に示すプログラムの第１２，１３行目部分が実行される。第１２行目部分では、プログラムによる第２の制御対象として、ＩＤ「１１１１−１１１１」の第２基礎パーツ１０−２が指定されている。また、第１３行目部分では、第２基礎パーツ１０−２との通信接続が要求されている。
【０１１７】
これらの部分が実行されることによって、図１５Ａに示すステップＳ２２０４が実行される。すなわち、ユーザ端末２０の制御部２１は、ＩＤ「１１１１−１１１１」の第２基礎パーツ１０−２への接続要求を通信部２３によってサーバ３０に送信する（Ｓ２２０４）。この場合、接続要求とともにＩＤ「１１１１−１１１１」がユーザ端末２０からサーバ３０に送信される。なお、後述するように、ユーザ端末２０と第２基礎パーツ１０−２とが直接的に通信接続されるわけではなく、ユーザ端末２０と第２基礎パーツ１０−２との間ではサーバ３０を介してコマンド等のデータが授受されることになるため、接続要求は「中継要求」ということもできる。
【０１１８】
サーバ３０は、ユーザ端末２０から送信された接続要求を通信部３３を介して受信する（Ｓ３２０８）。この場合、サーバ３０の制御部３１は、接続要求とともに受信したＩＤがデータベース３４に登録されているか否かを判定することによって、当該ＩＤが正当であるか否かを確認する（Ｓ３２１０）。そして、ＩＤが正当であることが確認された場合、制御部３１は、受信したＩＤ「１１１１−１１１１」の第２基礎パーツ１０−２とサーバ３０との間に通信接続が確立されているか否かを判定する（Ｓ３２１２）。これらステップＳ３２１０，Ｓ３２１２は図１２のステップＳ３１０２，Ｓ３１０４と同様である。
【０１１９】
第２基礎パーツ１０−２とサーバ３０との間に通信接続が確立されていることが確認された場合、制御部３１は、第２基礎パーツ１０−２との接続がＯＫであることを通信部３３によってユーザ端末２０に通知し（Ｓ３２１４）、ユーザ端末２０は当該通知を通信部２３によって受信する（Ｓ２２０６）。
【０１２０】
その後、図１４に示すプログラムの第１４行目部分が実行される。第１４行目部分では、ＩＤ「００００−００００」の第１基礎パーツ１０−１に接続された電子部品の種類がボリューム６０（ポテンショメータ）であることが指定されるとともに、ボリューム６０の第１ピン６１、第２ピン６２、第３ピン６３がそれぞれ端子１７−０，１７−１，１７−２にそれぞれ接続されていることが指定されている。
【０１２１】
第１４行目部分が実行されることによって、図１５Ｂに示すステップＳ２２０８が実行される。すなわち、ユーザ端末２０の制御部２１は、ボリューム６０（ポテンショメータ）の第１ピン６１、第２ピン６２、第３ピン６３がＩＤ「００００−００００」の第１基礎パーツ１０−１の端子１７−０，１７−１，１７−２にそれぞれ接続されていることを指定する指定コマンドをサーバ３０に送信する（Ｓ２２０８）。この場合、ボリューム６０が接続された端子１７−０，１７−１，１７−２の各々について、図４Ａ〜４Ｄに示した制御モードのうちのどの制御モードで制御すべきかがライブラリに基づいて判断され、当該判断結果を示す指定コマンドがサーバ３０に送信される。
【０１２２】
サーバ３０は、ユーザ端末２０から送信された指定コマンドを通信部３３によって受信する（Ｓ３２１６）。そして、サーバ３０の制御部３１は、ステップＳ３２１６で受信したコマンドが適切であるか否かを判定する（Ｓ３２１８）。ステップＳ３２１８は図１２のステップＳ３１１０と同様である。
【０１２３】
ステップＳ３２１６で受信したコマンドが適切であると判定された場合、制御部３１は、ステップＳ３２１６で受信したコマンドを第１基礎パーツ１０−１の制御部１１が解釈可能な形式に変換し、変換後のコマンドを通信部３３によってＩＤ「００００−００００」の第１基礎パーツ１０−１に送信する（Ｓ３２２０）。この場合、ステップＳ３２１６で受信したコマンドが中間コード（バイトコード）のコマンドに変換され、変換後のコマンドがＩＤ「００００−００００」の第１基礎パーツ１０−１に送信される。
【０１２４】
ＩＤ「００００−００００」の第１基礎パーツ１０−１は、サーバ３０から送信されたコマンドを通信部１３によって受信する（Ｓ１２００）。この場合、第１基礎パーツ１０−１の制御部１１は、受信したコマンドに応じた制御を実行する（Ｓ１２０２）。例えば、制御部１１は、ボリューム６０の第１ピン６１、第２ピン６２、第３ピン６３が接続された端子１７−０，１７−１，１７−２の各々について、図４Ａ〜４Ｄに示した制御モードのうちのどの制御モードで制御するのかを示すデータを記憶部１２に記憶する。この場合、第２プロセッサ１１Ｂは、端子１７−０，１７−２の入出力部１８−０，１８−２に対して、図４Ａに示したような制御を行い、端子１７−１の入出力部１８−１に対して、図４Ｄに示したような制御を行うことによって、ボリューム６０からの入力を端子１７−１を介して受け付ける状態とする。
【０１２５】
その後、図１４に示すプログラムの第１５行目部分が実行される。第１５行目部分では、ＩＤ「００００−００００」の第１基礎パーツ１０−１に接続された電子部品の種類がＬＥＤ７０であることが指定されるとともに、ＬＥＤ７０のアノード７１、カソード７２が端子１７−１０，１７−１１にそれぞれ接続されていることが指定されている。
【０１２６】
第１５行目部分が実行されることによって、図１５Ｂに示すステップＳ２２１０が実行される。すなわち、ユーザ端末２０の制御部２１は、ＬＥＤ７０のアノード７１、カソード７２がＩＤ「００００−００００」の第１基礎パーツ１０−１の端子１７−１０，１７−１１にそれぞれ接続されていることを指定する指定コマンドを通信部２３によってサーバ３０に送信する（Ｓ２２１０）。この場合、ＬＥＤ７０が接続された端子１７−１０，１７−１１の各々について、図４Ａ〜４Ｄに示した制御モードのうちのどの制御モードで制御すべきかがライブラリに基づいて判断され、当該判断結果を示す指定コマンドがサーバ３０に送信される。
【０１２７】
サーバ３０は、ユーザ端末２０から送信された指定コマンドを通信部３３によって受信する（Ｓ３２２２）。そして、サーバ３０の制御部３１は、ステップＳ３２２２で受信したコマンドが適切であるか否かを判定する（Ｓ３２２４）。ステップＳ３２２４は図１２のステップＳ３１１０と同様である。
【０１２８】
ステップＳ３２２２で受信したコマンドが適切であると判定された場合、制御部３１は、ステップＳ３２２２で受信したコマンドを第１基礎パーツ１０−１の制御部１１が解釈可能な形式に変換し、変換後のコマンドを通信部３３によってＩＤ「００００−００００」の第１基礎パーツ１０−１に送信する（Ｓ３２２６）。この場合、ステップＳ３２２２で受信したコマンドが中間コード（バイトコード）のコマンドに変換され、変換後のコマンドがＩＤ「００００−００００」の第１基礎パーツ１０−１に送信される。
【０１２９】
ＩＤ「００００−００００」の第１基礎パーツ１０−１は、サーバ３０から送信されたコマンドを通信部１３によって受信する（Ｓ１２０４）。この場合、第１基礎パーツ１０−１の制御部１１は、受信したコマンドに応じた制御を実行する（Ｓ１２０６）。例えば、制御部１１は、ＬＥＤ７０のアノード７１、カソード７２が接続された端子１７−１０，１７−１１の各々について、図４Ａ〜４Ｄに示した制御モードのうちのどの制御モードで制御するのかを示すデータを記憶部１２に記憶する。
【０１３０】
その後、図１４に示すプログラムの第１６行目部分が実行される。第１６行目部分では、ＩＤ「１１１１−１１１１」の第２基礎パーツ１０−２に接続された電子部品の種類がサーボモータ５０であることが指定されるとともに、サーボモータ５０のマイナス線（ＧＮＤ）５１、プラス線（ＶＣＣ）５２、信号線５３が端子１７−０，１７−１，１７−２にそれぞれ接続されていることを指定されている。
【０１３１】
第１６行目部分が実行されることによって、図１５Ｂに示すステップＳ２２１２が実行される。すなわち、ユーザ端末２０の制御部２１は、サーボモータ５０のマイナス線（ＧＮＤ）５１、プラス線（ＶＣＣ）５２、信号線５３がＩＤ「１１１１−１１１１」の第２基礎パーツ１０−２の端子１７−０，１７−１，１７−２にそれぞれ接続されていることを指定する指定コマンドをサーバ３０に送信する（Ｓ２２１２）。この場合、サーボモータ５０が接続された端子１７−０，１７−１，１７−２の各々について、図４Ａ〜４Ｄに示した制御モードのうちのどの制御モードで制御すべきかがライブラリに基づいて判断され、当該判断結果を示す指定コマンドがサーバ３０に送信される。
【０１３２】
サーバ３０は、ユーザ端末２０から送信された指定コマンドを通信部３３によって受信する（Ｓ３２２８）。そして、サーバ３０の制御部３１は、ステップＳ３２２８で受信したコマンドが適切であるか否かを判定する（Ｓ３２３０）。ステップＳ３２３０は図１２のステップＳ３１１０と同様である。
【０１３３】
ステップＳ３２２８で受信したコマンドが適切であると判定された場合、制御部３１は、ステップＳ３２２８で受信したコマンドを第２基礎パーツ１０−２の制御部１１が解釈可能な形式に変換し、変換後のコマンドを通信部３３によってＩＤ「１１１１−１１１１」の第２基礎パーツ１０−２に送信する（Ｓ３２３２）。この場合、ステップＳ３２２８で受信したコマンドが中間コード（バイトコード）のコマンドに変換され、変換後のコマンドがＩＤ「１１１１−１１１１」の第２基礎パーツ１０−２に送信される。
【０１３４】
ＩＤ「１１１１−１１１１」の第２基礎パーツ１０−２は、サーバ３０から送信されたコマンドを通信部１３によって受信する（Ｓ１３００）。この場合、第２基礎パーツ１０−２の制御部１１は、受信したコマンドに応じた制御を実行する（Ｓ１３０２）。例えば、制御部１１は、サーボモータ５０のマイナス線（ＧＮＤ）５１、プラス線（ＶＣＣ）５２、信号線５３が接続された端子１７−０，１７−１，１７−２の各々について、図４Ａ〜４Ｄに示した制御モードのうちのどの制御モードで制御するのかを示すデータを記憶部１２に記憶する。この場合、第２プロセッサ１１Ｂは、端子１７−０，１７−１，１７−２の入出力部１８−０，１８−１，１８−２の各々に対して、図４Ｂに示したような制御を行う。また、第１プロセッサ１１Ａは、入出力部１８−０，１８−１（モータドライバ１８Ａ−０，１８Ａ−１）を介して、マイナス線（ＧＮＤ）５１が接続された端子１７−０に０Ｖの信号を出力し、プラス線（ＶＣＣ）５２が接続された端子１７−１に５Ｖの信号を出力する。
【０１３５】
以上の処理が実行された後、図１５Ｃに示すように、第１基礎パーツ１０−１の制御部１１は、ボリューム６０のつまみ部６４の位置を通信部１３によってサーバ３０に通知する（Ｓ１２０８）。先述の通り、つまみ部６４の位置を示す数値として「０」から「１」までの間の数値がボリューム６０からの入力に基づいて取得され、当該数値がサーバ３０に通知される。なお、この通知は定期的に繰り返し実行される。
【０１３６】
サーバ３０は、第１基礎パーツ１０−１から送信された通知を通信部１３によって受信する（Ｓ３２３４）。この場合、サーバ３０は、通信部３３によって、上記の通知をユーザ端末２０の制御部２１が解釈可能な形式でユーザ端末２０に送信する（Ｓ３２３６）。
【０１３７】
ユーザ端末２０は、サーバ３０から送信された通知を通信部２３によって受信する（Ｓ２２１４）。この場合、ユーザ端末２０の制御部２１は、ボリューム６０のつまみ部６４の位置が変化したか否かを判定する（Ｓ２２１６）。すなわち、制御部２１は、前回通知された数値と今回通知された数値とが異なるか否かを判定する。そして、ボリューム６０のつまみ部６４の位置が変化した場合には、図１４に示すプログラムのうちの第１８〜２３行目が実行される。なお、図１４に示すプログラムでは、サーバ３０から送信された通知（ボリューム６０のつまみ部６４の位置を示す数値）が変数「ｐｏｓｉｔｉｏｎ」に格納されるようになっている。また、ボリューム６０のつまみ部６４の位置が変化していない場合には、図１４に示すプログラムのうちの第１８〜２３行目は実行されないため、以下に説明する処理も実行されない。
【０１３８】
第１８〜２２行目部分は、ボリューム６０のつまみ部６４の位置を示す数値が０．５よりも大きければ、第１基礎パーツ１０−１に接続されたＬＥＤ７０をオンし、ボリューム６０のつまみ部６４の位置を示す数値が０．５よりも大きくなければ、第１基礎パーツ１０−１に接続されたＬＥＤ７０をオフする処理に相当する。第１８〜２２行目部分が実行されることによって、図１５ＣのステップＳ２２１８が実行される。すなわち、ユーザ端末２０の制御部２１は、上記数値が０．５よりも大きい場合には、ＩＤ「００００−００００」の第１基礎パーツ１０−１の端子１７−１０，１７−１１に接続されたＬＥＤ７０をオンするためのコマンドを通信部２３によってサーバ３０に送信し、上記数値が０．５よりも大きくない場合には、ＩＤ「００００−００００」の第１基礎パーツ１０−１の端子１７−１０，１７−１１に接続されたＬＥＤ７０をオフするためのコマンドを通信部２３によってサーバ３０に送信する（Ｓ２２１８）。
【０１３９】
サーバ３０は、ユーザ端末２０から送信されたコマンドを通信部３３によって受信する（Ｓ３２３８）。そして、サーバ３０の制御部３１は、ステップＳ３２３８で受信したコマンドが適切であるか否かを判定する（Ｓ３２４０）。ステップＳ３２４０は図１２のステップＳ３１１０と同様である。
【０１４０】
ステップＳ３２３８で受信したコマンドが適切であると判定された場合、制御部３１は、ステップＳ３２３８で受信したコマンドを第１基礎パーツ１０−１の制御部１１が解釈可能な形式に変換し、変換後のコマンドを通信部３３によってＩＤ「００００−００００」の第１基礎パーツ１０−１に送信する（Ｓ３２４２）。この場合、ステップＳ３２３８で受信したコマンドが中間コード（バイトコード）のコマンドに変換され、変換後のコマンドがＩＤ「００００−００００」の第１基礎パーツ１０−１に送信される。
【０１４１】
ＩＤ「００００−００００」の第１基礎パーツ１０−１は、サーバ３０から送信されたコマンドを通信部１３によって受信する（Ｓ１２１０）。この場合、第１基礎パーツ１０−１の制御部１１は、受信したコマンドに応じてＬＥＤ７０の制御を実行する（Ｓ１２１２）。すなわち、受信したコマンドに応じて、制御部１１は端子１７−１０，１７−１１に接続されたＬＥＤ７０をオン又はオフする。ＬＥＤ７０をオンする場合には、第２プロセッサ１１Ｂは、端子１７−１０，１７−１１の入出力部１８−１０，１８−１１に対して、図４Ａに示したような制御を行い、第１プロセッサ１１ＡはＬＥＤ７０を点灯させるために３Ｖの信号を端子１７−１０に出力し、０Ｖの信号を端子１７−１１に出力する。
【０１４２】
また、図１４に示すプログラムのうちの第２３行目部分は、第２基礎パーツ１０−２の端子１７−０，１７−１，１７−２に接続されたサーボモータ５０を、第１基礎パーツ１０−１に接続されたボリューム６０のつまみ部６４の位置に応じた角度だけ回転させる処理に相当している。図１４に示す例では、サーボモータ５０を、ボリューム６０のつまみ部６４の位置を示す数値（０〜１）に１８０度を乗じて得られる角度だけ回転させるようになっている。第２３行目部分が実行されることによって、図１５ＣのステップＳ２２２０が実行される。すなわち、ユーザ端末２０の制御部２１は、ＩＤ「１１１１−１１１１」の第２基礎パーツ１０−２の端子１７−０，１７−１，１７−２に接続されたサーボモータ５０を、第１基礎パーツ１０−１に接続されたボリューム６０のつまみ部６４の位置に応じた角度だけ回転させるためのコマンドをサーバ３０に送信する（Ｓ２２２０）。
【０１４３】
サーバ３０は、ユーザ端末２０から送信されたコマンドを通信部３３によって受信する（Ｓ３２４４）。そして、サーバ３０の制御部３１は、ステップＳ３２４４で受信したコマンドが適切であるか否かを判定する（Ｓ３２４６）。ステップＳ３２４６は図１２のステップＳ３１１０と同様である。
【０１４４】
ステップＳ３２４４で受信したコマンドが適切であると判定された場合、制御部３１は、ステップＳ３２４４で受信したコマンドを第２基礎パーツ１０−２の制御部１１が解釈可能な形式に変換し、変換後のコマンドを通信部３３によってＩＤ「１１１１−１１１１」の第２基礎パーツ１０−２に送信する（Ｓ３２４８）。この場合、ステップＳ３２４４で受信したコマンドが中間コード（バイトコード）のコマンドに変換され、変換後のコマンドがＩＤ「１１１１−１１１１」の第２基礎パーツ１０−２に送信される。
【０１４５】
ＩＤ「１１１１−１１１１」の第２基礎パーツ１０−２は、サーバ３０から送信されたコマンドを通信部１３によって受信する（Ｓ１３０４）。この場合、第２基礎パーツ１０−２の制御部１１は、受信したコマンドに応じてサーボモータ５０の制御を実行する（Ｓ１３０６）。すなわち、受信したコマンドに応じて、制御部１１は端子１７−０，１７−１，１７−２に接続されたサーボモータ５０を回転させる。この場合、第２プロセッサ１１Ｂは、端子１７−０，１７−１，１７−２の入出力部１８−０，１８−１，１８−１２に対して、図４Ｂに示したような制御を行い、第１プロセッサ１１Ａは、サーボモータ５０を駆動させるための信号として０Ｖ，５Ｖの信号をそれぞれモータドライバ１８Ａ−０，１８Ａ−１を介して端子１７−０，１７−１に出力し、サーボモータ５０をコマンドによって指定された角度だけ回転させるための信号をモータドライバ１８Ａ−２を介して端子１７−２に出力する。
【０１４６】
以上のように、本実施形態に係る制御システム１では、第１基礎パーツ１０−１に接続されたボリューム６０に対するユーザの操作に応じて、第１基礎パーツ１０−１に接続されたＬＥＤ７０をオン／オフさせたり、第２パーツ１０−２に接続されたサーボモータ５０を回転させたりするようなシステムを実現できる。
【０１４７】
すなわち、第１基礎パーツ１０−１に接続された電子部品に対して行われた操作を、第１基礎パーツ１０−１に接続された他の電子部品に反映させるようなシステムを実現できる。また、第１基礎パーツ１０−１に接続された電子部品に対して行われた操作を、他の第２基礎パーツ１０−２に接続された電子部品に反映させるようなシステムも実現できる。例えば、第１基礎パーツ１０−１を第２基礎パーツ１０−２のコントローラとして機能させることができる。具体的には、例えば、複数の電子部品を第２基礎パーツ１０−２に接続することによってロボット等を作成し、このロボット等を操作するためのコントローラを第１基礎パーツ１０−１によって作成することもできる。
【０１４８】
なお、以上に説明した例では、ユーザの操作を受け付ける電子部品の一例としてボリューム６０を用いたが、ボリューム６０以外の電子部品を用いることもできる。例えば、ボタン等の電子部品を用いることもできる。
【０１４９】
また、ユーザの操作を受け付ける電子部品の代わりに、センサを第１基礎パーツ１０−１に接続してもよい。例えば、センサの検出結果が端子１７から入力され、第１基礎パーツ１０−１の制御部１１はセンサの検出結果をサーバ３０に通知し、サーバ３０は当該通知をユーザ端末２０に送信し、ユーザ端末２０の制御部２１は、センサの検出結果に基づいて、サーボモータ５０を回転させたり、ＬＥＤ７０をオンしたりするコマンドをサーバ３０に送信するようにしてもよい。具体的には、例えば、温度センサを第１基礎パーツ１０−１に接続し、ＬＥＤ７０を第２基礎パーツ１０−２に接続し、ユーザ端末２０の制御部２１は、温度センサによって検出された温度が閾値以上（又は以下）になった場合にＬＥＤ７０をオンさせるようにしてもよい。この場合、第１基礎パーツ１０−１と第２基礎パーツ１０−２とを別の場所に配置してもよい。このようにすれば、第１基礎パーツ１０−１の配置場所の温度を、離れた場所で第２基礎パーツ１０−２を用いて監視することができる。
【０１５０】
なお、基礎パーツ１０に接続されたボリューム又はボタン等に対する操作や基礎パーツ１０に接続されたセンサの検出結果を、ユーザ端末２０の表示部２６に表示される画面に反映させることもできる。すなわち、基礎パーツ１０に接続されたボリューム又はボタン等に対する操作や基礎パーツ１０に接続されたセンサの検出結果に基づいて、ユーザ端末２０の表示部２６に表示される画面の表示内容を更新させるようにしてもよい。
【０１５１】
［６．機能ブロック］以上に説明した制御システム１で実現される機能ブロックを図１６に示す。
【０１５２】
図１６に示すように、ユーザ端末２０は、取得部２００と、読取部２１０と、表示制御部２２０と、受付部２３０と、実行部２４０と、コマンド送信部２５０と、通知受信部２６０とを含む。これらの機能ブロックはユーザ端末２０の制御部２１を主として実現される。すなわち、制御部２１がプログラム（図９，１４等参照）に従って処理（図１２，１５Ａ〜１５Ｃ参照）を実行することによって、これらの機能ブロックとして機能する。
【０１５３】
また、図１６に示すように、サーバシステム３（サーバ３０）は、コマンド中継部３１０と、判定部３２０と、制限部３３０と、通知中継部３４０とを含む。これらの機能ブロックはサーバ３０の制御部３１を主として実現される。すなわち、制御部３１がプログラムに従って処理（図１２，１５Ａ〜１５Ｃ参照）を実行することによって、これらの機能ブロックとして機能する。
【０１５４】
さらに、図１６に示すように、制御システム１はライブラリ記憶部４００を含む。ライブラリ記憶部４００はライブラリ提供サーバ４０によって実現される。
【０１５５】
［６−１］ライブラリ記憶部４００は、基礎パーツ１０の端子１７に接続された電子部品に関する制御（電子部品制御）を制御部１１に実行させるためのＡＰＩ（アプリケーションプログラミングインタフェース）のライブラリを記憶する。ユーザ端末２０の取得部２００は、ネットワークＮを介して、ライブラリ記憶部４００に記憶されるライブラリを取得する。
【０１５６】
［６−２］基礎パーツ１０（第１基礎パーツ１０−１）の制御部１１は、当該基礎パーツ１０の制御部１１に電子部品制御を実行させるためのプログラムを編集するためのプログラム編集画面をユーザ端末２０に表示させるための情報を基礎パーツ１０の表示部１６に表示する。ユーザ端末２０の読取部２１０は、基礎パーツ１０の表示部１６に表示された情報を読み取る。ユーザ端末２０の表示制御部２２０は、読取部２１０によって読み取られた情報に基づいて、プログラム編集画面をユーザ端末２０の表示部２６に表示する。
【０１５７】
例えば、基礎パーツ１０の制御部１１は情報画面Ｇ１００（図７参照）を表示部１６に表示する。ユーザ端末２０の読取部２１０は情報画面Ｇ１００内のＱＲコード（表示要素Ｅ１０３）を読み取る。ユーザ端末２０の表示制御部２２０は、読取部２１０によって読み取られたＱＲコードから、基礎パーツ１０のＩＤとプログラム編集画面Ｇ２００のＵＲＬとを抽出し、それらのＩＤ及びＵＲＬに基づいて、プログラム編集画面Ｇ２００（図９，１４参照）を表示部２６に表示する。
【０１５８】
［６−３］ユーザ端末２０の受付部２３０は、ライブラリ記憶部４００に記憶されるライブラリを使用して基礎パーツ１０の制御部１１に電子部品制御を実行させるためのプログラムの入力を受け付ける。例えば、受付部２３０は、プログラム編集画面Ｇ２００（編集領域Ａ２０４）を介してプログラムの入力を受け付ける。ユーザ端末２０の実行部２４０は、取得部２００によって取得されたライブラリに基づいてプログラムを実行する。
【０１５９】
［６−４］ユーザ端末２０のコマンド送信部２５０は、プログラムの実行に応じて、基礎パーツ１０（第１基礎パーツ１０−１等）の制御部１１に電子部品制御を実行させるためのコマンドをサーバシステム３に送信する。
【０１６０】
サーバシステム３のコマンド中継部３１０は、ユーザ端末２０から送信されたコマンドを受信し、受信したコマンドに基づくコマンドを基礎パーツ１０（第１基礎パーツ１０−１等）に送信する。例えば、コマンド中継部３１０は、ユーザ端末２０から受信したコマンドを基礎パーツ１０の制御部１１によって解釈可能なコマンドに変換し、変換後のコマンドを基礎パーツ１０に送信する。具体的には、例えば、コマンド中継部３１０は、ユーザ端末２０から受信したコマンドをバイトコードのコマンドに変換して基礎パーツ１０に送信する。なお、ユーザ端末２０から受信したコマンドの形式が基礎パーツ１０の制御部１１によって解釈可能な形式である場合、コマンド中継部３１０は、ユーザ端末２０から受信したコマンドを変換することなくそのままの形式で基礎パーツ１０に送信してもよい。
【０１６１】
なお、ユーザ端末２０のコマンド送信部２５０は、コマンドを１つずつサーバシステム３に送信し、コマンド中継部３１０は、ユーザ端末２０から受信したコマンドに基づくコマンドを１つずつ基礎パーツ１０に送信する。１つのコマンドは１つのパケットで送信される。
【０１６２】
基礎パーツ１０（第１基礎パーツ１０−１）の通信部１３は、サーバシステム３（コマンド中継部３１０）から送信されたコマンドを受信し、基礎パーツ１０（第１基礎パーツ１０−１）の制御部１１は、通信部１３によって受信されたコマンドに基づいて、電子部品制御を実行する。
【０１６３】
例えば、ユーザ端末２０のコマンド送信部２５０は、電子部品の種類と、電子部品が接続された端子１７とを指定する指定コマンドをサーバシステム３に送信する。サーバシステム３のコマンド中継部３１０は、ユーザ端末２０から送信された指定コマンドを受信し、当該指定コマンドに基づく指定コマンドを基礎パーツ１０（第１基礎パーツ１０−１）に送信する。基礎パーツ１０の制御部１１は、受信された指定コマンドに基づいて、複数の端子１７のうちの、電子部品が接続された端子１７と、当該端子１７に接続された電子部品の種類とを特定し、その後に受信される、当該種類の電子部品に関するコマンドに応じて、当該電子部品に関する制御を、特定された端子１７に対して実行する。
【０１６４】
［６−５］サーバシステム３の判定部３２０は、所定の判定基準に基づいて、ユーザ端末２０から受信したコマンドが適切であるか否かを判定する。サーバシステム３の制限部３３０は、判定部３２０の判定結果に基づいて、コマンド中継部３１０による基礎パーツ１０へのコマンドの送信を制限する。例えば、ユーザ端末２０から受信したコマンドが適切でない場合に、制限部３３０は、コマンド中継部３１０による基礎パーツ１０へのコマンドの送信を制限（抑止）する。一方、ユーザ端末２０から受信したコマンドが適切である場合に、制限部３３０は、コマンド中継部３１０による基礎パーツ１０へのコマンドの送信を制限せずに許容する。
【０１６５】
［６−６］基礎パーツ１０−１の制御部１１は、操作を受け付ける電子部品、又は、センサである電子部品が端子１７に接続されている場合に、操作の受付結果又はセンサの検出結果を示す通知を、通信部１３を介して、サーバシステム３に送信する。例えば、ボリューム６０やボタン等が「操作を受け付ける電子部品」の一例に相当する。また例えば、加速度センサ又は温度センサ等が「センサである電子部品」の一例に相当する。
【０１６６】
サーバシステム３の通知中継部３４０は、基礎パーツ１０から送信された通知を受信し、当該通知に基づく通知をユーザ端末２０に送信する。例えば、基礎パーツ１０から受信した通知の形式がユーザ端末２０で解釈可能な形式でない場合、通知中継部３４０は、基礎パーツ１０から受信した通知をユーザ端末２０で解釈可能な形式の通知に変換し、変換後の通知をユーザ端末２０に送信する。一方、基礎パーツ１０から送信された通知の形式がユーザ端末２０で解釈可能な形式である場合、通知中継部３４０は、基礎パーツ１０から受信した通知を変換することなくそのままの形式でユーザ端末２０に送信する。
【０１６７】
ユーザ端末２０の通知受信部２６０は、サーバシステム３（通知中継部３４０）から送信された通知を受信する。ユーザ端末２０のコマンド送信部２５０は、通知受信部２６０によって受信された通知に応じたコマンドをサーバシステム３に送信する。
【０１６８】
例えば、通知受信部２６０は、第１基礎パーツ１０−１から送信され、かつ、サーバシステム３の通知中継部３４０によって中継された通知を受信し、コマンド送信部２５０は、当該通知に応じて、第１基礎パーツ１０−１の制御部１１に電子部品制御を実行させるためのコマンドをサーバシステム３に送信する。
【０１６９】
また例えば、通知受信部２６０は、第１基礎パーツ１０−１から送信され、かつ、サーバシステム３の通知中継部３４０によって中継された通知を受信し、実行部２４０は、当該通知に応じて、第１基礎パーツ１０−１とは別の第２基礎パーツ１０−２の制御部１１に電子部品制御を実行させるための処理（プログラム）を実行し、コマンド送信部２５０は、第１基礎パーツ１０−１とは別の第２基礎パーツ１０−２の制御部１１に電子部品制御を実行させるためのコマンドをサーバシステム３に送信する。この場合、サーバシステム３のコマンド中継部３１０は、受信したコマンドに基づくコマンドを第２基礎パーツ１０−２に送信する。なお、表示制御部２２０は、通知受信部２６０によって受信された通知に基づいて表示部２６の表示内容を更新してもよい。
【０１７０】
［７．効果・変形例］以上に説明した制御システム１によれば、ユーザ端末２０で編集したプログラムをユーザ端末２０で実行することによって、基礎パーツ１０の端子１７に接続された電子部品に関する制御を実行することができる。基礎パーツ１０の制御部１１に実行させるためのプログラムを基礎パーツ１０上の記憶部１２に書き込む必要なくなるため、ユーザが基礎パーツ１０の端子１７に接続された電子部品に関する制御を実行するためのプログラムを実行しやすくなる。
【０１７１】
また制御システム１によれば、ユーザ端末２０でプログラムを実行し、中間コードのコマンドを基礎パーツ１０に１つずつ順次送信するようにしたため、プログラムを基礎パーツ１０の記憶部１２に書き込む場合に比べて、基礎パーツ１０側で必要なメモリ量を低減でき、通信量も低減できる。また、プログラムを基礎パーツ１０の記憶部１２に書き込む場合には、プログラムを基礎パーツ１０の記憶部１２に書き込むために時間がかかってしまうが、制御システム１によれば、即座にプログラムを実行することができる。さらに、制御システム１によれば、ユーザ端末２０でプログラムが実行されるため、基礎パーツ１０の記憶部１２に格納しきれないような大きなサイズのプログラムを実行することもできる。
【０１７２】
また制御システム１によれば、ユーザ端末２０のウェブブラウザからプログラムを実行することが可能であるため、特別なプログラミング環境を別途用意する必要がなく、スマートフォンやタブレット型コンピュータでも、プログラムの作成や実行を行うことができる。制御システム１によれば、Ｗｅｂｓｏｃｋｅｔによって異なるドメインのユーザ端末２０からでもサーバ３０に常時接続することができ、ユーザ端末２０のウェブブラウザからサーバ３０を介して基礎パーツ１０を制御できる。常時接続であるため、ユーザ端末２０の表示部２６に表示されたボタンが押下された場合に即座に基礎パーツ１０に接続されたサーボモータ５０を回転させたり、ＬＥＤ７０を点灯させたりすることができる。
【０１７３】
また制御システム１によれば、ユーザ端末２０のウェブブラウザからプログラムを実行することが可能であるため、複数のユーザ端末２０で同じプログラムを同時に実行することもできる。すなわち、一台のユーザ端末２０では処理しきれない重い処理を複数のユーザ端末２０で分散処理することも行いやすくなる。
【０１７４】
また制御システム１によれば、ユーザ端末２０のウェブブラウザからプログラムを実行するため、仮にユーザが作成したプログラムに問題があったとしても、ユーザ端末２０のウェブブラウザに問題が生じるだけすむ場合が多く、サーバ３０や基礎パーツ１０に影響が及びにくい。
【０１７５】
また制御システム１によれば、ユーザ端末２０でプログラムを実行するため、プログラムを部分的に実行することも可能である。例えば、ユーザ端末２０でプログラムを１行ずつ実行することもでき、プログラムの実行中に問題が発生した場合には、当該箇所を修正したプログラムを再度途中から実行することもできる。すなわち、プログラムを実行しながら、プログラムを修正することもできる。プログラムを基礎パーツ１０の記憶部１２に書き込む場合には、プログラムに問題があると、基礎パーツ１０に接続できなってしまう場合があるが、制御システム１によれば、そのような事態の発生を防ぐことができる。
【０１７６】
また制御システム１によれば、ライブラリを利用することによって、ユーザはＷｅｂｓｏｃｋｅｔや電子部品制御に関して詳しい知識を有していなくてもプログラムを作成することができる。また、複数のユーザ端末２０から共通にアクセスされるライブラリ提供サーバ４０によってライブラリを提供するようにしたため、ライブラリに変更を加える場合にも、ライブラリ提供サーバ４０に記憶されるライブラリを変更するだけですむ。
【０１７７】
また制御システム１によれば、ユーザ端末２０のウェブブラウザからプログラムを実行するため、ウェブブラウザで利用可能な既存の各種ライブラリを利用することもできる。ウェブブラウザで利用可能なライブラリは豊富に存在するところ、それらを利用することができる。例えば、オンラインストレージへデータを書き込むためのライブラリを利用することによって、基礎パーツ１０の端子１７に接続されたセンサの検出結果をオンラインストレージに保存するというようなこともユーザ端末２０のウェブブラウザによって比較的容易に実行できるようになる。
【０１７８】
また制御システム１によれば、基礎パーツ１０の表示部１６に表示される情報（図７：表示要素Ｅ１０３（ＱＲコード）等）をユーザ端末２０に読み取らせるだけで、当該基礎パーツ１０を制御するためのプログラムを編集するためのプログラム編集画面Ｇ２００をユーザ端末２０の表示部２６に表示させることができ、即座にプログラムの作成を行うことができる。
【０１７９】
また制御システム１によれば、基礎パーツ１０の表示部１６に表示される情報（図７：表示要素Ｅ１０２，Ｅ１０３）をサーバ３０で生成するようにしたため（図６：ステップＳ３０１０）、基礎パーツ１０に応じて上記情報を変えることができる。例えば、基礎パーツ１０の位置に応じて、基礎パーツ１０の表示部１６に表示要素Ｅ１０２として表示されるＵＲＬ（基礎パーツ１０の表示部１６に表示される表示要素Ｅ１０３（ＱＲコード）に埋め込まれるＵＲＬ）を変えることができる。具体的には、例えば、基礎パーツ１０が日本国内にある場合には日本国内にあるサーバ３０のＵＲＬとし、基礎パーツ１０が米国内にある場合には米国内にあるサーバ３０のＵＲＬとすることができる。このようにすることによって、通信遅延を軽減することができる。
【０１８０】
また制御システム１によれば、ユーザ端末２０と基礎パーツ１０との間でサーバ３０を介してデータを授受するため、ユーザ端末２０と基礎パーツ１０とは互いのＩＰアドレスを知らなくてもデータを授受できる。さらに制御システム１によれば、ユーザ端末２０と基礎パーツ１０との間でサーバ３０を介してデータを授受するため、サーバ３０でデータを蓄積しておくことによって、ユーザ端末２０と基礎パーツ１０との一方の通信接続が一時的に切断された場合であっても、通信接続が回復された場合に切断前の続きから処理を実行できるようになる。
【０１８１】
また制御システム１によれば、コマンドをユーザ端末２０から基礎パーツ１０にサーバ３０を介して送信するため、サーバ３０でコマンドが適切であるか否かを確認し、不適切なコマンドが基礎パーツ１０に送信されるのを抑制できる。また、コマンドが不適切である場合にユーザ端末２０に警告を通知することによって、ユーザにプログラムの修正を促すこともできる。さらに、不適切なコマンドの事例をサーバシステム３で蓄積し、蓄積結果に応じた情報提供を各ユーザに対して行うこともできる。
【０１８２】
また制御システム１によれば、１つのプログラム（１つのユーザ端末２０）で複数の基礎パーツ１０を制御することができる。
【０１８３】
また制御システム１によれば、ユーザは各種電子部品を任意の端子１７に接続することができる。例えば、制御システム１では、図４Ａ〜４Ｄに示したような制御が実行されることによって、ユーザは電子部品で必要な電圧・電流の大きさ、電子部品の負荷や、電子部品の入出力を気にすることなく、電子部品を任意の端子１７に接続することができる。
【０１８４】
また制御システム１によれば、基礎パーツ１０が２つのプロセッサ（第１プロセッサ１１Ａ及び第２プロセッサ１１Ｂ）を含み、これらの２つのプロセッサが図５Ａ〜５Ｄに示したような監視・制御を実行することによって、問題が生じた場合に即座に対処することができる。
【０１８５】
なお、本発明は以上に説明した実施形態に限定されるものではない。例えば、３つ以上の基礎パーツ１０を連携させるようにしてもよい。また例えば、複数のプログラム（複数のユーザ端末２０）で１又は複数の基礎パーツ１０を制御するようにしてもよい。具体的には、例えば、１つの基礎パーツ１０に接続されたボタンが押下された場合に、その旨を複数のユーザ端末２０に通知し、ボタンの押下に応じた処理をそれら複数のユーザ端末２０で実行させるようにしてもよい。
【０１８６】
［８．付記］以上のような記載から、本発明は例えば以下のように把握される。
【０１８７】
１）本発明の一態様に係る制御システムは、電子部品を接続可能な端子と、通信部と、前記端子に接続された電子部品に関する電子部品制御を実行する制御部とを含み、１又は複数の電子部品を接続することが可能な基礎パーツと、サーバシステムと、ユーザ端末と、複数のユーザ端末から共通にアクセスされる記憶手段であって、前記基礎パーツの前記制御部に前記電子部品制御を実行させるためのＡＰＩ（アプリケーションプログラミングインタフェース）のライブラリを記憶するライブラリ記憶手段と、を含み、前記ユーザ端末は、前記ライブラリ記憶手段に記憶されるライブラリを取得する取得手段と、前記ライブラリを使用して前記基礎パーツの前記制御部に前記電子部品制御を実行させるためのプログラムの入力を受け付ける受付手段と、前記ライブラリに基づいて前記プログラムを実行する実行手段と、前記プログラムの実行に応じて、前記基礎パーツの前記制御部に前記電子部品制御を実行させるためのコマンドを前記サーバシステムに送信するコマンド送信手段と、を含み、前記サーバシステムは、前記ユーザ端末から送信されたコマンドを受信し、当該コマンドに基づくコマンドを前記基礎パーツに送信するコマンド中継手段を含み、前記基礎パーツの前記通信部は、前記サーバシステムから送信されたコマンドを受信し、前記基礎パーツの前記制御部は、前記通信部によって受信されたコマンドに基づいて、前記電子部品制御を実行する。
【０１８８】
本発明の一態様に係る制御方法は、電子部品を接続可能な端子と、通信部と、前記端子に接続された電子部品に関する電子部品制御を実行する制御部とを含み、１又は複数の電子部品を接続することが可能な基礎パーツを制御するための制御方法において、ユーザ端末が、複数のユーザ端末から共通にアクセスされるライブラリ記憶手段に記憶される、前記基礎パーツの前記制御部に前記電子部品制御を実行させるためのＡＰＩ（アプリケーションプログラミングインタフェース）のライブラリを取得するステップと、前記ユーザ端末が、前記ライブラリを使用して前記基礎パーツの前記制御部に前記電子部品制御を実行させるためのプログラムの編集を受け付けるステップと、前記ユーザ端末が、前記ライブラリに基づいて前記プログラムを実行するステップと、前記ユーザ端末が、前記プログラムの実行に応じて、前記基礎パーツの前記制御部に前記電子部品制御を実行させるためのコマンドをサーバシステムに送信するステップと、前記サーバシステムが、前記ユーザ端末から送信されたコマンドを受信し、当該コマンドに基づくコマンドを前記基礎パーツに送信するステップと、前記基礎パーツの前記通信部は、前記サーバシステムから送信されたコマンドを受信するステップと、前記基礎パーツの前記制御部は、前記通信部によって受信されたコマンドに基づいて、前記電子部品制御を実行するステップとを含む。
【０１８９】
本発明の一態様に係る基礎パーツは、電子部品を接続可能な端子と、前記端子に接続された電子部品に関する制御を実行する制御部と、サーバシステムと通信するための通信部と、を含み、前記通信部は、前記ユーザ端末で編集されたプログラムの実行に応じて前記ユーザ端末から前記サーバシステムに送信されたコマンドに基づいて前記サーバシステムから送信されたコマンドを受信し、前記制御部は、前記通信部によって受信されたコマンドに基づいて、前記端子に接続された電子部品に関する制御を実行する。
【０１９０】
２）本発明の一態様では、前記基礎パーツの前記制御部は、操作を受け付ける電子部品、又は、センサである電子部品が前記端子に接続されている場合に、前記操作の受付結果又は前記センサの検出結果を示す通知を、前記通信部を介して、前記サーバシステムに送信し、前記サーバシステムは、前記基礎パーツから送信された通知を受信し、当該通知に基づく通知を前記ユーザ端末に送信する通知中継手段を含み、前記ユーザ端末は、前記サーバシステムから送信された通知を受信する通知受信手段を含み、前記ユーザ端末の前記コマンド送信手段は、前記通知受信手段によって通知が受信された場合に、当該通知に応じたコマンドを前記サーバシステムに送信するようにしてもよい。
【０１９１】
３）本発明の一態様では、前記ユーザ端末の前記コマンド送信手段は、前記通知受信手段によって通知が受信された場合に、当該通知に応じた前記電子部品制御を前記基礎パーツの前記制御部に実行させるためのコマンドを前記サーバシステムに送信するようにしてもよい。
【０１９２】
４）本発明の一態様では、第１基礎パーツと第２基礎パーツとを含み、前記第１基礎パーツの前記制御部は、前記操作を受け付ける電子部品、又は、前記センサである電子部品が前記第１基礎パーツの前記端子に接続されている場合に、前記操作の受付結果又は前記センサの検出結果を示す通知を、前記通信部を介して、前記サーバシステムに送信し、前記サーバシステムの前記通知中継手段は、前記第１基礎パーツから送信された通知を受信し、当該通知に基づく通知を前記ユーザ端末に送信し、前記ユーザ端末の前記コマンド送信手段は、前記通知受信手段によって通知が受信された場合に、当該通知に応じた前記電子部品制御を前記第２基礎パーツの前記制御部に実行させるためのコマンドを前記サーバシステムに送信し、前記サーバシステムの前記コマンド中継手段は、前記通知に応じた前記電子部品制御を前記第２基礎パーツの前記制御部に実行させるための前記コマンドを受信し、当該コマンドに基づくコマンドを前記第２基礎パーツに送信し、前記第２基礎パーツの前記通信部は、前記サーバシステムから送信されたコマンドを受信し、前記第２基礎パーツの前記制御部は、前記通信部によって受信されたコマンドに基づき、前記通知に応じた前記電子部品制御を実行するようにしてもよい。
【０１９３】
５）本発明の一態様では、前記基礎パーツは、前記電子部品を接続可能な複数の端子を含み、前記プログラムは、前記電子部品の種類と、前記複数の端子のうちの、前記電子部品が接続された端子とを指定する部分を含み、前記ユーザ端末の前記コマンド送信手段は、前記電子部品の種類と、前記電子部品が接続された端子とを指定する指定コマンドを前記サーバシステムに送信し、前記サーバシステムの前記コマンド中継手段は、前記ユーザ端末から送信された指定コマンドを受信し、当該指定コマンドに基づく指定コマンドを前記基礎パーツに送信し、前記基礎パーツの前記通信部は、前記サーバシステムから送信された指定コマンドを受信し、前記基礎パーツの前記制御部は、前記通信部によって受信された指定コマンドに基づいて、前記複数の端子のうちの、前記電子部品が接続された端子と、当該端子に接続された電子部品の種類とを特定し、その後に前記通信部を介して受信される、当該電子部品に関するコマンドに基づいて、当該電子部品に関する電子部品制御を、特定された前記端子に対して実行するようにしてもよい。
【０１９４】
６）本発明の一態様では、前記基礎パーツは表示部を含み、前記基礎パーツの前記制御部は、前記プログラムを編集をするためのプログラム編集画面を前記ユーザ端末に表示させるための情報を前記表示部に表示し、前記ユーザ端末は、前記表示部に表示された情報を読み取る読取手段と、前記読取手段によって読み取られた情報に基づいて、前記プログラム編集画面を前記ユーザ端末の表示部に表示する表示制御手段と、を含み、前記ユーザ端末の前記受付手段は、前記プログラム編集画面を介して前記プログラムの入力を受け付けるようにしてもよい。
【０１９５】
７）本発明の一態様では、前記サーバシステムは、所定の判定基準に基づいて、前記ユーザ端末から送信されたコマンドが適切であるか否かを判定する判定手段と、前記判定手段の判定結果に基づいて、前記コマンド中継手段による前記基礎パーツへのコマンドの送信を制限する制限手段と、を含むようにしてもよい。
【０１９６】
８）本発明の一態様では、前記基礎パーツでは、個々の端子ごとにモータドライバとバススイッチとが接続され、前記基礎パーツの前記制御部は、前記端子に接続された電子部品の種類に基づいて選択される前記モータドライバと前記バススイッチとのうちの一方を介して、当該端子に接続された電子部品を制御するようにしてもよい。
【０１９７】
９）本発明の一態様では、前記基礎パーツの前記制御部は、前記端子に接続された電子部品を動作させるために必要な電圧又は電流が所定の基準未満である場合に、当該端子に接続された前記バススイッチを介して、当該端子に接続された電子部品を制御し、前記端子に接続された電子部品を動作させるために必要な電圧又は電流が前記所定の基準以上である場合に、当該端子に接続された前記モータドライバを介して、当該端子に接続された電子部品を制御するようにしてもよい。
【０１９８】
１０）本発明の一態様では、前記基礎パーツの前記制御部は、第１プロセッサと第２プロセッサとを含み、前記第１プロセッサは、前記端子に接続された電子部品に対する制御を実行し、前記第２プロセッサは、前記端子の状態を監視し、当該監視の結果を前記第１プロセッサに提供し、前記第１プロセッサは、前記第２プロセッサから提供された前記監視の結果に応じた制御を実行するようにしてもよい。
【０１９９】
１１）本発明の一態様では、前記第２プロセッサは、前記第１プロセッサの状態を監視し、前記第１プロセッサが不調状態になった場合に、前記第１プロセッサによる前記端子に接続された電子部品に対する制御を制限するようにしてもよい。
【０２００】
１２）本発明の一態様では、前記サーバシステムの前記コマンド中継手段は、前記ユーザ端末から受信されたコマンドをバイトコードのコマンドに変換して前記基礎パーツに送信するようにしてもよい。
【０２０１】
１３）本発明の一態様では、前記基礎パーツの前記制御部は、前記通信部を介して前記サーバシステムに通信接続要求を送信し、前記通信接続要求に応じて、前記基礎パーツと前記サーバシステムとの間で通信接続が確立され、前記基礎パーツが前記通信部を介して前記サーバシステムから前記コマンドを受信可能な状態になるようにしてもよい。
【符号の説明】
【０２０２】
１  制御システム、Ｎ  ネットワーク、３  サーバシステム、１０  基礎パーツ、１０−１  第１基礎パーツ、１０−２  第２基礎パーツ、１１  制御部、１２  記憶部、１３
通信部、１４  ＵＳＢ端子、１５  操作部、１６  表示部、１７，１７−０〜１７−１１  端子、１８，１８−０〜１８−１１  入出力部、１８Ａ，１８Ａ−０〜１８Ａ−１１
モータドライバ、１８Ｂ，１８Ｂ−０〜１８Ｂ−１１  バススイッチ、２０  ユーザ端末、２１  制御部、２２  記憶部、２３  通信部、２４  撮影部、２５  操作部、２６  表示部、２７  音声出力部、３０  サーバ、３１  制御部、３２  記憶部、３３  通信部、３４  データベース、４０  ライブラリ提供サーバ、５０  サーボモータ、５１  マイナス線、５２  プラス線、５３  信号線、６０  ボリューム、６１  第１ピン、６２  第２ピン、６３  第３ピン、６４  つまみ部、７０  ＬＥＤ、７１  アノード、７２  カソード、２００  取得部、２１０  読取部、２２０  表示制御部、２３０  受付部、２４０
実行部、２５０  コマンド送信部、２６０  通知受信部、３１０  コマンド中継部、３２０  判定部、３３０  制限部、３４０  通知中継部、Ｇ１００  情報画面、Ｅ１０１，Ｅ１０２，Ｅ１０３  表示要素  Ｇ２００  プログラム編集画面、Ｅ２０１，Ｅ２０２  表示要素、Ａ２０３  行番号領域、Ａ２０４  編集領域、Ｇ３００  実行画面、Ｅ３０１，Ｅ３０２，Ｅ３０３，Ｅ３０４  表示要素。
【図１】
2019164750.tif 000003
【図２】
2019164750.tif 000004
【図３】
2019164750.tif 000005
【図４Ａ】
2019164750.tif 000006
【図４Ｂ】
2019164750.tif 000007
【図４Ｃ】
2019164750.tif 000008
【図４Ｄ】
2019164750.tif 000009
【図５Ａ】
2019164750.tif 000010
【図５Ｂ】
2019164750.tif 000011
【図５Ｃ】
2019164750.tif 000012
【図５Ｄ】
2019164750.tif 000013
【図６】
2019164750.tif 000014
【図７】
2019164750.tif 000015
【図８】
2019164750.tif 000016
【図９】
2019164750.tif 000017
【図１０】
2019164750.tif 000018
【図１１】
2019164750.tif 000019
【図１２】
2019164750.tif 000020
【図１３】
2019164750.tif 000021
【図１４】
2019164750.tif 000022
【図１５Ａ】
2019164750.tif 000023
【図１５Ｂ】
2019164750.tif 000024
【図１５Ｃ】
2019164750.tif 000025
【図１６】
2019164750.tif 000026
【手続補正書】
【提出日】平成30年11月6日(2018.11.6)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
１又は複数の電子部品を接続することが可能な基礎パーツであって、通信部と、当該基礎パーツに接続された電子部品に関する電子部品制御を実行する制御部とを含む基礎パーツと、
サーバシステムと、
ユーザ端末と、を含み、
前記ユーザ端末は、
前記基礎パーツの前記制御部に前記電子部品制御を実行させるためのプログラムの編集を受け付ける受付手段と、
前記プログラムを実行する実行手段と、
前記プログラムの実行に応じて、前記基礎パーツの前記制御部に前記電子部品制御を実行させるためのコマンドを前記サーバシステムに送信するコマンド送信手段と、を含み、
前記サーバシステムは、前記ユーザ端末から送信されたコマンドを受信し、当該コマンドに基づくコマンドを前記基礎パーツに送信するコマンド中継手段を含み、
前記基礎パーツの前記通信部は、前記サーバシステムから送信されたコマンドを受信し、
前記基礎パーツの前記制御部は、前記通信部によって受信されたコマンドに基づいて、前記電子部品制御を実行する、
制御システムであって、
前記ユーザ端末は、
前記基礎パーツの表示部に表示される、当該基礎パーツ固有の識別情報に基づくコード画像を読み取る読取手段と、
前記読取手段によって読み取られた前記コード画像に基づいて、前記識別情報によって識別される前記基礎パーツを制御するための前記プログラムを編集するためのプログラム編集画面を前記ユーザ端末の表示部に表示する表示制御手段と、をさらに含み、
前記ユーザ端末の前記受付手段は、前記プログラム編集画面を介して前記プログラムの編集を受け付ける、
制御システム。
【請求項２】
請求項１に記載の制御システムにおいて、
前記基礎パーツの前記制御部は、操作を受け付ける電子部品、又は、センサである電子部品が前記基礎パーツに接続されている場合に、前記操作の受付結果又は前記センサの検出結果を示す通知を、前記通信部を介して、前記サーバシステムに送信し、
前記サーバシステムは、前記基礎パーツから送信された通知を受信し、当該通知に基づく通知を前記ユーザ端末に送信する通知中継手段を含み、
前記ユーザ端末は、前記サーバシステムから送信された通知を受信する通知受信手段を含み、
前記ユーザ端末の前記コマンド送信手段は、前記通知受信手段によって通知が受信された場合に、当該通知に応じたコマンドを前記サーバシステムに送信する、
制御システム。
【請求項３】
請求項２に記載の制御システムにおいて、
前記ユーザ端末の前記コマンド送信手段は、前記通知受信手段によって通知が受信された場合に、当該通知に応じた前記電子部品制御を前記基礎パーツの前記制御部に実行させるためのコマンドを前記サーバシステムに送信する、
制御システム。
【請求項４】
請求項２又は３に記載の制御システムにおいて、
第１基礎パーツと第２基礎パーツとを含み、
前記第１基礎パーツの前記制御部は、前記操作を受け付ける電子部品、又は、前記センサである電子部品が前記第１基礎パーツに接続されている場合に、前記操作の受付結果又は前記センサの検出結果を示す通知を、前記通信部を介して、前記サーバシステムに送信し、
前記サーバシステムの前記通知中継手段は、前記第１基礎パーツから送信された通知を受信し、当該通知に基づく通知を前記ユーザ端末に送信し、
前記ユーザ端末の前記コマンド送信手段は、前記通知受信手段によって通知が受信された場合に、当該通知に応じた前記電子部品制御を前記第２基礎パーツの前記制御部に実行させるためのコマンドを前記サーバシステムに送信し、
前記サーバシステムの前記コマンド中継手段は、前記通知に応じた前記電子部品制御を前記第２基礎パーツの前記制御部に実行させるための前記コマンドを受信し、当該コマンドに基づくコマンドを前記第２基礎パーツに送信し、
前記第２基礎パーツの前記通信部は、前記サーバシステムから送信されたコマンドを受信し、
前記第２基礎パーツの前記制御部は、前記通信部によって受信されたコマンドに基づき、前記通知に応じた前記電子部品制御を実行する、
制御システム。
【請求項５】
請求項１乃至４のいずれか１項に記載の制御システムにおいて、
前記プログラムは、前記基礎パーツに接続された電子部品の種類を指定する部分を含み、
前記ユーザ端末の前記コマンド送信手段は、前記基礎パーツに接続された電子部品の種類を指定する指定コマンドを前記サーバシステムに送信し、
前記サーバシステムの前記コマンド中継手段は、前記ユーザ端末から送信された指定コマンドを受信し、当該指定コマンドに基づく指定コマンドを前記基礎パーツに送信し、
前記基礎パーツの前記通信部は、前記サーバシステムから送信された指定コマンドを受信し、
前記基礎パーツの前記制御部は、前記通信部によって受信された指定コマンドに基づいて、当該基礎パーツに接続された電子部品の種類を特定し、その後に前記通信部を介して受信されるコマンドに基づいて、当該特定された種類の電子部品に関する電子部品制御を実行する、
制御システム。
【請求項６】
請求項５に記載の制御システムにおいて、
前記基礎パーツは、前記電子部品を接続可能な複数の端子を含み、
前記プログラムは、前記複数の端子のうちの、前記電子部品が接続された端子を指定する部分をさらに含み、
前記ユーザ端末の前記コマンド送信手段は、前記電子部品の種類と、前記電子部品が接続された端子とを指定する前記指定コマンドを前記サーバシステムに送信し、
前記基礎パーツの前記制御部は、前記通信部によって受信された前記指定コマンドに基づいて、前記複数の端子のうちの、前記電子部品が接続された端子と、当該端子に接続された電子部品の種類とを特定し、その後に前記通信部を介して受信されるコマンドに基づいて、当該特定された種類の電子部品に関する電子部品制御を、当該特定された端子に対して実行する、
制御システム。
【請求項７】
請求項１乃至６のいずれか１項に記載の制御システムにおいて、
前記サーバシステムは、
所定の判定基準に基づいて、前記ユーザ端末から送信されたコマンドが適切であるか否かを判定する判定手段と、
前記判定手段の判定結果に基づいて、前記コマンド中継手段による前記基礎パーツへのコマンドの送信を制限する制限手段と、を含む、
制御システム。
【請求項８】
請求項１乃至７のいずれか１項に記載の制御システムにおいて、
前記基礎パーツは、前記電子部品を接続可能な端子を含み、
前記基礎パーツでは、個々の端子ごとにモータドライバとバススイッチとが接続され、
前記基礎パーツの前記制御部は、前記端子に接続された電子部品の種類に基づいて選択される前記モータドライバと前記バススイッチとのうちの一方を介して、当該端子に接続された電子部品を制御する、
制御システム。
【請求項９】
請求項８に記載の制御システムにおいて、
前記基礎パーツの前記制御部は、
前記端子に接続された電子部品を動作させるために必要な電圧又は電流が所定の基準未満である場合に、当該端子に接続された前記バススイッチを介して、当該端子に接続された電子部品を制御し、
前記端子に接続された電子部品を動作させるために必要な電圧又は電流が前記所定の基準以上である場合に、当該端子に接続された前記モータドライバを介して、当該端子に接続された電子部品を制御する、
制御システム。
【請求項１０】
請求項１乃至９のいずれか１項に記載の制御システムにおいて、
前記基礎パーツは、前記電子部品を接続可能な端子を含み、
前記基礎パーツの前記制御部は、第１プロセッサと第２プロセッサとを含み、
前記第１プロセッサは、前記端子に接続された電子部品に対する制御を実行し、
前記第２プロセッサは、前記端子の状態を監視し、当該監視の結果を前記第１プロセッサに提供し、
前記第１プロセッサは、前記第２プロセッサから提供された前記監視の結果に応じた制御を実行する、
制御システム。
【請求項１１】
請求項１０に記載の制御システムにおいて、
前記第２プロセッサは、前記第１プロセッサの状態を監視し、前記第１プロセッサが不調状態になった場合に、前記第１プロセッサによる前記端子に接続された電子部品に対する制御を制限する、
制御システム。
【請求項１２】
請求項１乃至１１のいずれか１項に記載の制御システムにおいて、
前記サーバシステムの前記コマンド中継手段は、前記ユーザ端末から受信されたコマンドをバイトコードのコマンドに変換して前記基礎パーツに送信する、
制御システム。
【請求項１３】
請求項１乃至１２のいずれか１項に記載の制御システムにおいて、
前記基礎パーツの前記制御部は、前記通信部を介して前記サーバシステムに通信接続要求を送信し、
前記通信接続要求に応じて、前記基礎パーツと前記サーバシステムとの間で通信接続が確立され、前記基礎パーツが前記通信部を介して前記サーバシステムから前記コマンドを受信可能な状態になる、
制御システム。
【請求項１４】
１又は複数の電子部品を接続することが可能な基礎パーツであって、通信部と、当該基礎パーツに接続された電子部品に関する電子部品制御を実行する制御部とを含む基礎パーツを制御するための制御方法であって、
ユーザ端末が、前記基礎パーツの前記制御部に前記電子部品制御を実行させるためのプログラムの編集を受け付ける受付ステップと、
前記ユーザ端末が、前記プログラムを実行するステップと、
前記ユーザ端末が、前記プログラムの実行に応じて、前記基礎パーツの前記制御部に前記電子部品制御を実行させるためのコマンドをサーバシステムに送信するステップと、
前記サーバシステムが、前記ユーザ端末から送信されたコマンドを受信し、当該コマンドに基づくコマンドを前記基礎パーツに送信するステップと、
前記基礎パーツの前記通信部が、前記サーバシステムから送信されたコマンドを受信するステップと、
前記基礎パーツの前記制御部が、前記通信部によって受信されたコマンドに基づいて、前記電子部品制御を実行するステップと、
を含み、
前記制御方法は、
前記ユーザ端末が、前記基礎パーツの表示部に表示される、当該基礎パーツ固有の識別情報に基づくコード画像を読み取る読取ステップと、
前記ユーザ端末が、前記読取ステップにおいて読み取られた前記コード画像に基づいて、前記識別情報によって識別される前記基礎パーツを制御するための前記プログラムを編集するためのプログラム編集画面を前記ユーザ端末の表示部に表示する表示制御ステップ手段と、をさらに含み、
前記受付ステップでは、前記ユーザ端末が、前記プログラム編集画面を介して前記プログラムの編集を受け付ける、
制御方法。
【請求項１５】
１又は複数の電子部品を接続することが可能な基礎パーツを制御するためのプログラムの編集を受け付けるためのコンピュータであって、
前記基礎パーツに表示される、当該基礎パーツ固有の識別情報に基づくコード画像を読み取る読取手段と、
前記読取手段によって読み取られた前記コード画像に基づいて、前記識別情報によって識別される前記基礎パーツを制御するための前記プログラムを編集するためのプログラム編集画面を表示手段に表示する表示制御手段と、
前記プログラム編集画面を介して前記プログラムの編集を受け付ける受付手段と、
を含むコンピュータ。
【請求項１６】
１又は複数の電子部品を接続することが可能な基礎パーツを制御するための制御プログラムの編集を受け付けるための手段としてコンピュータを機能させるためのプログラムであって、
前記基礎パーツに表示される、当該基礎パーツ固有の識別情報に基づくコード画像を読み取る読取手段、
前記読取手段によって読み取られた前記コード画像に基づいて、前記識別情報によって識別される前記基礎パーツを制御するための前記制御プログラムを編集するためのプログラム編集画面を表示手段に表示する表示制御手段、及び、
前記プログラム編集画面を介して前記制御プログラムの編集を受け付ける受付手段、
として前記コンピュータを機能させるためのプログラム。
【手続補正書】
【提出日】平成31年3月8日(2019.3.8)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
１又は複数の電子部品を接続することが可能な基礎パーツであって、通信部と、当該基礎パーツに接続された電子部品に関する電子部品制御を実行する制御部とを含む基礎パーツと、
サーバシステムと、
ユーザ端末と、を含み、
前記ユーザ端末は、
前記基礎パーツの前記制御部に前記電子部品制御を実行させるためのプログラムの編集を受け付ける受付手段と、
前記プログラムを実行する実行手段と、
前記プログラムの実行に応じて、前記基礎パーツの前記制御部に前記電子部品制御を実行させるためのコマンドを前記サーバシステムに送信するコマンド送信手段と、を含み、
前記サーバシステムは、前記ユーザ端末から送信されたコマンドを受信し、当該コマンドに基づくコマンドを前記基礎パーツに送信するコマンド中継手段を含み、
前記基礎パーツの前記通信部は、前記サーバシステムから送信されたコマンドを受信し、
前記基礎パーツの前記制御部は、前記通信部によって受信されたコマンドに基づいて、前記電子部品制御を実行する、
制御システムであって、
前記ユーザ端末は、
前記基礎パーツの表示部に表示される、当該基礎パーツ固有の識別情報に基づくコード画像を読み取る読取手段と、
前記読取手段によって読み取られた前記コード画像に基づいて、前記識別情報によって識別される前記基礎パーツを制御するための前記プログラムを編集するためのプログラム編集画面を前記ユーザ端末の表示部に表示する表示制御手段と、をさらに含み、
前記ユーザ端末の前記受付手段は、前記プログラム編集画面を介して前記プログラムの編集を受け付ける、
制御システム。
【請求項２】
請求項１に記載の制御システムにおいて、
前記基礎パーツの前記制御部は、操作を受け付ける電子部品、又は、センサである電子部品が前記基礎パーツに接続されている場合に、前記操作の受付結果又は前記センサの検出結果を示す通知を、前記通信部を介して、前記サーバシステムに送信し、
前記サーバシステムは、前記基礎パーツから送信された通知を受信し、当該通知に基づく通知を前記ユーザ端末に送信する通知中継手段を含み、
前記ユーザ端末は、前記サーバシステムから送信された通知を受信する通知受信手段を含み、
前記ユーザ端末の前記コマンド送信手段は、前記通知受信手段によって通知が受信された場合に、当該通知に応じたコマンドを前記サーバシステムに送信する、
制御システム。
【請求項３】
請求項２に記載の制御システムにおいて、
前記ユーザ端末の前記コマンド送信手段は、前記通知受信手段によって通知が受信された場合に、当該通知に応じた前記電子部品制御を前記基礎パーツの前記制御部に実行させるためのコマンドを前記サーバシステムに送信する、
制御システム。
【請求項４】
請求項２又は３に記載の制御システムにおいて、
第１基礎パーツと第２基礎パーツとを含み、
前記第１基礎パーツの前記制御部は、前記操作を受け付ける電子部品、又は、前記センサである電子部品が前記第１基礎パーツに接続されている場合に、前記操作の受付結果又は前記センサの検出結果を示す通知を、前記通信部を介して、前記サーバシステムに送信し、
前記サーバシステムの前記通知中継手段は、前記第１基礎パーツから送信された通知を受信し、当該通知に基づく通知を前記ユーザ端末に送信し、
前記ユーザ端末の前記コマンド送信手段は、前記通知受信手段によって通知が受信された場合に、当該通知に応じた前記電子部品制御を前記第２基礎パーツの前記制御部に実行させるためのコマンドを前記サーバシステムに送信し、
前記サーバシステムの前記コマンド中継手段は、前記通知に応じた前記電子部品制御を前記第２基礎パーツの前記制御部に実行させるための前記コマンドを受信し、当該コマンドに基づくコマンドを前記第２基礎パーツに送信し、
前記第２基礎パーツの前記通信部は、前記サーバシステムから送信されたコマンドを受信し、
前記第２基礎パーツの前記制御部は、前記通信部によって受信されたコマンドに基づき、前記通知に応じた前記電子部品制御を実行する、
制御システム。
【請求項５】
請求項１乃至４のいずれか１項に記載の制御システムにおいて、
前記プログラムは、前記基礎パーツに接続された電子部品の種類を指定する部分を含み、
前記ユーザ端末の前記コマンド送信手段は、前記基礎パーツに接続された電子部品の種類を指定する指定コマンドを前記サーバシステムに送信し、
前記サーバシステムの前記コマンド中継手段は、前記ユーザ端末から送信された指定コマンドを受信し、当該指定コマンドに基づく指定コマンドを前記基礎パーツに送信し、
前記基礎パーツの前記通信部は、前記サーバシステムから送信された指定コマンドを受信し、
前記基礎パーツの前記制御部は、前記通信部によって受信された指定コマンドに基づいて、当該基礎パーツに接続された電子部品の種類を特定し、その後に前記通信部を介して受信されるコマンドに基づいて、当該特定された種類の電子部品に関する電子部品制御を実行する、
制御システム。
【請求項６】
請求項５に記載の制御システムにおいて、
前記基礎パーツは、前記電子部品を接続可能な複数の端子を含み、
前記プログラムは、前記複数の端子のうちの、前記電子部品が接続された端子を指定する部分をさらに含み、
前記ユーザ端末の前記コマンド送信手段は、前記電子部品の種類と、前記電子部品が接続された端子とを指定する前記指定コマンドを前記サーバシステムに送信し、
前記基礎パーツの前記制御部は、前記通信部によって受信された前記指定コマンドに基づいて、前記複数の端子のうちの、前記電子部品が接続された端子と、当該端子に接続された電子部品の種類とを特定し、その後に前記通信部を介して受信されるコマンドに基づいて、当該特定された種類の電子部品に関する電子部品制御を、当該特定された端子に対して実行する、
制御システム。
【請求項７】
請求項１乃至６のいずれか１項に記載の制御システムにおいて、
前記サーバシステムは、
所定の判定基準に基づいて、前記ユーザ端末から送信されたコマンドが適切であるか否かを判定する判定手段と、
前記判定手段の判定結果に基づいて、前記コマンド中継手段による前記基礎パーツへのコマンドの送信を制限する制限手段と、を含む、
制御システム。
【請求項８】
請求項１乃至７のいずれか１項に記載の制御システムにおいて、
前記基礎パーツは、前記電子部品を接続可能な端子を含み、
前記基礎パーツでは、個々の端子ごとにモータドライバとバススイッチとが接続され、
前記基礎パーツの前記制御部は、前記端子に接続された電子部品の種類に基づいて選択される前記モータドライバと前記バススイッチとのうちの一方を介して、当該端子に接続された電子部品を制御する、
制御システム。
【請求項９】
請求項８に記載の制御システムにおいて、
前記基礎パーツの前記制御部は、
前記端子に接続された電子部品を動作させるために必要な電圧又は電流が所定の基準未満である場合に、当該端子に接続された前記バススイッチを介して、当該端子に接続された電子部品を制御し、
前記端子に接続された電子部品を動作させるために必要な電圧又は電流が前記所定の基準以上である場合に、当該端子に接続された前記モータドライバを介して、当該端子に接続された電子部品を制御する、
制御システム。
【請求項１０】
請求項１乃至９のいずれか１項に記載の制御システムにおいて、
前記基礎パーツは、前記電子部品を接続可能な端子を含み、
前記基礎パーツの前記制御部は、第１プロセッサと第２プロセッサとを含み、
前記第１プロセッサは、前記端子に接続された電子部品に対する制御を実行し、
前記第２プロセッサは、前記端子の状態を監視し、当該監視の結果を前記第１プロセッサに提供し、
前記第１プロセッサは、前記第２プロセッサから提供された前記監視の結果に応じた制御を実行する、
制御システム。
【請求項１１】
請求項１０に記載の制御システムにおいて、
前記第２プロセッサは、前記第１プロセッサの状態を監視し、前記第１プロセッサが不調状態になった場合に、前記第１プロセッサによる前記端子に接続された電子部品に対する制御を制限する、
制御システム。
【請求項１２】
請求項１乃至１１のいずれか１項に記載の制御システムにおいて、
前記サーバシステムの前記コマンド中継手段は、前記ユーザ端末から受信されたコマンドをバイトコードのコマンドに変換して前記基礎パーツに送信する、
制御システム。
【請求項１３】
請求項１乃至１２のいずれか１項に記載の制御システムにおいて、
前記基礎パーツの前記制御部は、前記通信部を介して前記サーバシステムに通信接続要求を送信し、
前記通信接続要求に応じて、前記基礎パーツと前記サーバシステムとの間で通信接続が確立され、前記基礎パーツが前記通信部を介して前記サーバシステムから前記コマンドを受信可能な状態になる、
制御システム。
【請求項１４】
１又は複数の電子部品を接続することが可能な基礎パーツであって、通信部と、当該基礎パーツに接続された電子部品に関する電子部品制御を実行する制御部とを含む基礎パーツを制御するための制御方法であって、
ユーザ端末が、前記基礎パーツの前記制御部に前記電子部品制御を実行させるためのプログラムの編集を受け付ける受付ステップと、
前記ユーザ端末が、前記プログラムを実行するステップと、
前記ユーザ端末が、前記プログラムの実行に応じて、前記基礎パーツの前記制御部に前記電子部品制御を実行させるためのコマンドをサーバシステムに送信するステップと、
前記サーバシステムが、前記ユーザ端末から送信されたコマンドを受信し、当該コマンドに基づくコマンドを前記基礎パーツに送信するステップと、
前記基礎パーツの前記通信部が、前記サーバシステムから送信されたコマンドを受信するステップと、
前記基礎パーツの前記制御部が、前記通信部によって受信されたコマンドに基づいて、前記電子部品制御を実行するステップと、
を含み、
前記制御方法は、
前記ユーザ端末が、前記基礎パーツの表示部に表示される、当該基礎パーツ固有の識別情報に基づくコード画像を読み取る読取ステップと、
前記ユーザ端末が、前記読取ステップにおいて読み取られた前記コード画像に基づいて、前記識別情報によって識別される前記基礎パーツを制御するための前記プログラムを編集するためのプログラム編集画面を前記ユーザ端末の表示部に表示する表示制御ステップ手段と、をさらに含み、
前記受付ステップでは、前記ユーザ端末が、前記プログラム編集画面を介して前記プログラムの編集を受け付ける、
制御方法。
【請求項１５】
１又は複数の電子部品を接続することが可能な基礎パーツであって、
表示部と、
サーバシステムと通信するための通信部と、
前記基礎パーツに接続された電子部品に関する電子部品制御を実行する制御部と、
を含み、
前記通信部は、前記基礎パーツの前記制御部に前記電子部品制御を実行させるためのプログラムがユーザ端末によって実行されることによって前記ユーザ端末から前記サーバシステムに送信されるコマンドに基づいて前記サーバシステムから前記基礎パーツに送信される、当該コマンドに基づくコマンドを受信し、
前記制御部は、前記通信部によって受信されたコマンドに基づいて、前記電子部品制御を実行し、
前記表示部は、前記ユーザ端末に備えられる読取手段によって読み取り可能なコード画像を表示し、
前記表示部は、前記コード画像として、前記基礎パーツ固有の識別情報に基づくコード画像であって、当該識別情報によって識別される前記基礎パーツの前記制御部に前記電子部品制御を実行させるための前記プログラムを編集するためのプログラム編集画面を前記ユーザ端末に表示させるためのコード画像を表示する、
基礎パーツ。