(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024064332
(43)【公開日】2024-05-14
(54)【発明の名称】モジュールの制御方法及びモジュールの制御システム
(51)【国際特許分類】
G06F 8/33 20180101AFI20240507BHJP
G09B 23/18 20060101ALI20240507BHJP
G09B 19/00 20060101ALI20240507BHJP
【FI】
G06F8/33
G09B23/18 B
G09B19/00 Z
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2022172841
(22)【出願日】2022-10-28
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.JAVA
(71)【出願人】
【識別番号】521364476
【氏名又は名称】株式会社スクーミー
(74)【代理人】
【識別番号】100119297
【弁理士】
【氏名又は名称】田中 正男
(74)【代理人】
【識別番号】100112140
【弁理士】
【氏名又は名称】塩島 利之
(74)【代理人】
【識別番号】100122312
【弁理士】
【氏名又は名称】堀内 正優
(72)【発明者】
【氏名】塩島 諒輔
(72)【発明者】
【氏名】戸田 達昭
(72)【発明者】
【氏名】今吉亮
(72)【発明者】
【氏名】濱田紗綾子
【テーマコード(参考)】
2C032
5B376
【Fターム(参考)】
2C032BD13
5B376BC08
5B376BC16
5B376BC45
5B376BC50
5B376BC52
(57)【要約】 (修正有)
【課題】プログラミングの知識がなくてもプログラムを作成できる制御システムを提供する。
【解決手段】モジュールの制御システムは、仮想モジュール230、仮想モジュールが装着される仮想制御装置220、仮想制御装置のブロックプログラム、ブロックプログラムの作成を支援するブロックエディター201とブロックプログラムのエラーをチェックするエラーチェッカー203とを有するブロックシステム200及びブロックプログラムの不具合の解消を支援するコーチングアバター210を備え、ユーザがネットワークを介して接続する仮想空間20と、ブロックプログラムを現実空間に配置された実制御装置が実行可能な実行プログラムに変換するプログラム変換ツール130と、変換した制御プログラムが格納される実制御装置120と、仮想空間において仮想制御装置に装着された仮想モジュールと同様に実制御装置に装着される実モジュール140と、を備える。
【選択図】
図1
【特許請求の範囲】
【請求項1】
複数の仮想モジュールと、前記仮想モジュールが装着される仮想制御装置と、プログラムの作成支援ツールであるブロックエディターと、前記ブロックエディターで作成されたブロックプログラムのエラーをチェックするエラーチェッカーと、前記ブロックプログラムの不具合の解消を支援するコーチングアバターとを備えた仮想空間に、ネットワークを介して接続し、
前記ブロックエディターにより、前記仮想モジュールを所望に制御するブロックプログラムを作成し、
前記エラーチェッカーにより前記ブロックプログラムのエラーがチェックされ、前記エラーがあった場合は前記エラーを解消し、
前記ブロックプログラムが、プログラム変換ツールにより現実空間に配置された実制御装置が実行可能な実行プログラムに変換され、ネットワークを介して前記実制御装置に格納され、
前記仮想モジュールの装着と同様に現実空間において実モジュールを前記実制御装置に装着し、
前記実制御装置により前記実モジュールを制御し、
前記制御に不具合があった場合は、前記仮想空間において、前記ブロックプログラムを前記コーチングアバターの支援により修正し、
前記ブロックプログラムが前記プログラム変換ツールにより実行可能な実行プログラムに変換され、前記実制御装置に格納され、前記実モジュールが所望に制御されることを特徴とする仮想空間において作成したプログラムによる現実空間における実モジュールの制御方法。
【請求項2】
前記コーチングアバターは、ユーザ情報及びブロックエディターで作成されたブロックプログラムの不具合情報と不具合解消情報とを学習した既生成人工知能モデルであることを特徴とする請求項1に記載の仮想空間において作成したプログラムによる現実空間における実モジュールの制御方法。
【請求項3】
前記ブロックプログラムの作成に併せて、前記仮想モジュールの装着状態を表示する仮想モジュール装着状態表示部を備えたことを特徴とする請求項2に記載の仮想空間において作成したプログラムによる現実空間における実モジュールの制御方法。
【請求項4】
複数の仮想モジュールと、前記仮想モジュールが装着される仮想制御装置と、プログラムの作成支援ツールであるブロックエディターと、前記ブロックエディターで作成されたブロックプログラムのエラーをチェックするエラーチェッカーと、前記ブロックプログラムの不具合の解消を支援するコーチングアバターとを備え、ユーザがネットワークを介して接続する仮想空間と、
前記ブロックプログラムを現実空間に配置された実制御装置が実行可能な実行プログラムに変換するプログラム変換ツールと、
前記プログラム変換ツールにより変換された実行プログラムが格納される実制御装置と、
前記仮想空間におい前記仮想制御装置に装着された前記仮想モジュールと同様に前記実制御装置に装着される実モジュール
とを備えたことを特徴とする仮想空間において作成したプログラムによる現実空間における実モジュールの制御システム。
【請求項5】
前記コーチングアバターは、ユーザ情報及びブロックエディターで作成されたブロックプログラムの不具合情報と不具合解消情報とを学習した既生成人工知能モデルであることを特徴とする請求項4に記載の仮想空間において作成したプログラムによる現実空間における実モジュールの制御システム。
【請求項6】
前記ブロックプログラムの作成に併せて、前記仮想モジュールの装着状態を表示する仮想モジュール装着状態表示部を備えことを特徴とする請求項5に記載の仮想空間において作成したプログラムによる現実空間における実モジュールの制御システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、仮想空間で作成するモジュール(電子機器)の制御プログラム(本明細書では実行プログラムともいう)が、ネットワークを介して実空間に配置された制御装置に格納され、ユーザが想定した通りに実空間でモジュールが稼働するモジュールの制御方法、及びその方法を利用したモジュールの制御システムに関する。
【背景技術】
【0002】
ICTの急速な進歩は、私たちのライフスタイル、ワークスタイルの幅広い場面において変化をもたらしている。ICTリテラシーは職場のみならず、学校教育現場においても必須科目として、初等教育の段階から授業として行われている。また、従来は手の届かなかったコンピュータや様々なモジュール(電子機器)も、比較的簡単に入手できるようになってきている。
【0003】
こうしたことから日常生活において、あれば便利なシステムを自作したいと考える人が増えてきている。しかし、様々なモジュール(電子部品)を組合わせ、日常生活に役立つ便利なツール(システム)をつくるには、プログラミングの知識や、電子回路等の専門的な知識に加え、電子部品を組み立てるための電線やはんだ付け等の材料、そして工具が必要であり、誰もが簡単に日常生活に便利なシステムを自作することは容易ではない。
【0004】
下記特許文献1は、児童や生徒の学習に用いられるプログラミング学習用電子機器、及び、プログラミング学習用キットに関するものである。特許文献1に記載の電子機器とプログラミング学習用キットによれば、児童や生徒は電子回路に接続されたLEDの点灯、消滅がプログラミングによって操作されていること、スイッチ制御部でLEDの点灯、消滅の実行処理が行われていることを学習できる。
【0005】
しかし、特許文献1に記載の学習電子機器及びプログラミング学習用キットでは、プログラミングや電子回路について理解することはできても、日常生活において作ってみたいシステムや、あったら面白いと思われるシステムをつくることができない。
【0006】
下記特許文献2は、従来、自作したプログラムを実行させるためには、プログラムを制御装置に書き込む必要があり、ユーザにとってはかかる書き込みは簡単ではなく、作成したプログラムを実行させ難い、という問題があった。かかる課題を解決し、基礎パーツ(制御装置:マイクロコンピュータ)に接続された電子部品(モジュール)をユーザが作成したプログラムに従って制御する(稼働させる)技術が開示されている。
【0007】
しかし、下記特許文献2では、HTMLコードとJavaスクリプトでプログラムを作成する必要があり、JavaスクリプトやHTMLコードの知識(プログラム言語に関する知識)が無くてはプログラムを作成することができない。このため、誰でも簡単に便利なシステムをつくることは容易ではない、という問題がある。
【0008】
また、プログラム言語に関する専門知識があり、一通りプログラムが作成できたとしても、かかるプログラムを格納した制御装置により所定のモジュールが、思い通りに動くまでにはモジュールの実動作の確認、プログラムの修正、あるいは配線間違いの修正等、多くの労力と時間(膨大なコスト)がかかる、という問題がある。
【0009】
下記非特許文献1は、HTMLコードや、Javaスクリプトの知識がなくてもプログラムが作成できる、プログラムの作成支援ツールであるブロックエディターと、作成したプログラムによりモジュールを制御する制御装置(マイクロコンピュータ)が開示されている。下記非特許文献1によれば、プログラム言語に関する専門知識がなくても簡単にプログラムを作成でき、また、複雑な配線やハンダ付けをしなくても制御装置(マイクロコンピュータ)にモジュールを装着でき、モジュールを制御することができる。
【0010】
しかし、ブロックエディターのダウンロードや、ブロックエディターで作成したブロックプログラムを制御装置が実行可能なプログラムに変換し、パソコンと制御装置とを所定の接続器具で接続し、変換した実行プログラムを実行プログラムを制御装置に転送する、といった煩雑な作業が行わなければならない。
【0011】
さらに、モジュールの実動作に不具合があればその原因を究明し、ブロックエディターにより修正し、再度、モジュールの実動作を確認する等、仮想空間で作成したプログラムにより実空間のモジュールが思い通りに動くまでには、多くの労力と時間(多大なコスト)がかかる、という問題がある。
【0012】
下記非特許文献2に記載の技術も非特許文献1と同様に、プログラムの作成支援ツールを備え、プログラム言語に関する知識がなくてもプログラムを作成でき、かかるプログラムを制御装置(マイクロコンピュータ)に格納することでモジュールを制御することができる。しかし、モジュールと制御装置との接続には配線作業が必要であり、また拡張パーツに制約があり、思いついたアイディアを形にするのは容易ではない、という問題がある。また、下記非特許文献3には、通称、ラズベリーパイと呼ばれる制御装置(マイクロコンピュータ)が開示されているが、この制御装置のボードは電源を備えておらず電源配線が必要であり、また拡張パーツの接続に別途配線が必要という問題がある。
【先行技術文献】
【特許文献】
【0013】
【特許文献1】特許第7049804号公報
【特許文献2】特許第6439954号公報
【0014】
【非特許文献1】https://schoomy.com/
【非特許文献2】https://makecode.microbit.org/?lang=j
【非特許文献3】https://ja.wikipedia.org/wiki/Raspberry_Pi
【発明の概要】
【発明が解決しようとする課題】
【0015】
そこで、本発明の課題は、日常生活においてあれば便利なシステムを思いついたとき、誰でもそのシステムを直感的につくり始めることができるモジュールの制御システムを提供することにある。より具体的にはプログラミングの知識がなくても、プログラムを作成することができ、電子回路やコネクター、モジュール等の知識がなくても、また、配線やはんだ付け等の材料や、そのための工具がなくても電子部品を組み立てることができる。そして、つくりあげたシステムが思った通りに稼働しないといった不具合があった場合でも、短時間の作業で不具合を解消することができるモジュールの制御システムを提供することにある。
【課題を解決するための手段】
【0016】
上記課題を解決するため本発明の第一は、複数の仮想モジュールと、前記仮想モジュールが装着される仮想制御装置と、プログラムの作成支援ツールであるブロックエディターと、前記ブロックエディターで作成されたブロックプログラムのエラーをチェックするエラーチェッカーと、前記ブロックプログラムの不具合の解消を支援するコーチングアバターとを備えた仮想空間に、ネットワークを介して接続し、
前記ブロックエディターにより、前記仮想モジュールを所望に制御するブロックプログラムを作成し、
前記エラーチェッカーにより前記ブロックプログラムのエラーがチェックされ、前記エラーがあった場合は前記エラーを解消し、
前記ブロックプログラムが、プログラム変換ツールにより現実空間に配置された実制御装置が実行可能な実行プログラムに変換され、ネットワークを介して前記実制御装置に格納され、
前記仮想モジュールの装着と同様に現実空間において実モジュールを前記実制御装置に装着し、
前記実制御装置により前記実モジュールを制御し、
前記制御に不具合があった場合は、前記仮想空間において、前記ブロックプログラムを前記コーチングアバターの支援により修正し、
前記ブロックプログラムが前記プログラム変換ツールにより実行可能な実行プログラムに変換され、前記実制御装置に格納され、前記実モジュールが所望に制御されることを特徴とする仮想空間において作成したプログラムによる現実空間における実モジュールの制御方法である。
【0017】
ユーザは、所定の認証を得て仮想空間に入り、例えば、仮想空間内の工作室においてプログラムの作成支援ツールであるブロックエディターを使ってブロックプログラムを作成する。ブロックエディターの詳細は後述するが、ブロックエディターによるブロックプログラムの作成は、プログラム言語に関する知識がなくても誰でも直感的に作成することができる。
【0018】
ユーザが作成したブロックプログラムは、エラーチェッカーによりエラーの有無がチェックされる。各ブロックは所定の凹又は凸の嵌合形状を備えており、かかる嵌合形状に適合しないブロックの組合せはエラーとなる。ユーザはエラーチェッカーにより表示される嵌合形状の適合しない箇所のブロックの組合せを修正することでエラーを解消できる。エラーが解消されたブロックプログラムは、ネットワークを介してプログラム変換ツールにより実制御装置が実行可能な実行プログラムに変換され、ネットワークを介して実空間に配置される実制御装置(マイクロコンピュータ)に格納される。
【0019】
ユーザは、仮想空間における仮想モジュールの装着と同様に、実モジュールを実制御装置に装着し稼働させ、その実動作を確認する。ここで、ユーザが仮想空間で想定した仮想モジュールの動作と、実空間での実モジュールの動作とに相違(不具合)が確認された場合、ユーザは仮想空間においてその不具合状況を音声、テキスト、あるいは動画等により、コーチングアバターに伝え不具合解消の支援を受けることができる。これにより迅速に不具合を解消することができる。
【0020】
仮想空間のコーチングアバターとしては、ユーザ情報やこれまでブロックエディターで作成されたブロックプログラムの不具合情報とこれを解消した方法・手順(不具合解消情報)を学習した既生成人工知能モデルがあげられる。具体的には、仮想空間内のプロセッサが、多数の不具合情報とその解消情報(学習データ)を利用し、学習アルゴリズムにより、ユーザの不具合解消の問合せに対応できるように学習することで、コーチングアバターの役割を果たすことができる。また、コーチングアバターは、仮想空間に入室する他のユーザのアバター、あるいはブロックエディターの指導者のアバターであっても良い。
【0021】
コーチングアバターの支援により不具合が解消されたブロックプログラムは、エラーチェッカーによりブロックの組合せのエラーが再チェックされ、プログラム変換ツールにより実行プログラムに変化され、ネットワークを介して実制御装置に格納される。これらにより仮想空間で作成したプログラム(ブロックプログラム)により、現実空間の実モジュールを思った通りに制御することができる。
【0022】
上記課題を解決するため、本発明の第二は、複数の仮想モジュールと、前記仮想モジュールが装着される仮想制御装置と、プログラムの作成支援ツールであるブロックエディターと、前記ブロックエディターで作成されたブロックプログラムのエラーをチェックするエラーチェッカーと、前記ブロックプログラムの不具合の解消を支援するコーチングアバターとを備え、ユーザがネットワークを介して接続する仮想空間と、
前記ブロックプログラムを現実空間に配置された実制御装置が実行可能な実行プログラムに変換するプログラム変換ツールと、
前記プログラム変換ツールにより変換された実行プログラムが格納される実制御装置と、
前記仮想空間におい前記仮想制御装置に装着された前記仮想モジュールと同様に前記実制御装置に装着される実モジュール
とを備えたことを特徴とする仮想空間において作成したブロックプログラムによる現実空間における実モジュールの制御システムである。
【0023】
仮想空間のコーチングアバターとしては、例えば、ユーザ情報やこれまでブロックエディターで作成されたブロックプログラムの不具合情報とこれを解消した方法・手順(不具合解消情報)を学習した既生成人工知能モデルである。具体的には、仮想空間内のプロセッサが、多数の不具合情報とその解消情報(学習データ)を利用し、学習アルゴリズムにより、ユーザの不具合解消の問合せに対応できるように学習することで、コーチングアバターの役割を果たすことができる。また、コーチングアバターは、仮想空間に入室する他のユーザのアバター、あるいはブロックエディターの指導者のアバターであっても良い。
【0024】
ブロックエディターによるブロックプログラムの作成にあわせて、仮想制御装置に装着される仮想モジュールの装着状態を表示する仮想モジュール装着状態表示部を備えることは好適である。かかる仮想モジュール装着状態表示部により、ブロックプログラムの組合せを視覚的に把握することができる。
【発明の効果】
【0025】
本発明によれば、日常生活において、あれば便利だと思うシステムを思いついたとき、誰でもそのシステムをつくり始めることができる。即ち、プログラミングの知識がなくても、プログラムを作成することができ、電子回路等の知識がなくても、また、配線やはんだ付け等の材料や、そのための工具がなくても電子部品を組み立てることができ、つくりあげたシステムに不具合があっても、短時間の作業で不具合を解消できる。
【発明を実施するための形態】
【0026】
本発明の実施の形態について、図面を参照しながら詳細に説明するが、本発明はこれに限定されるものではない。
図1は本発明のシステムの全体図、即ち、仮想空間において作成したブロックプログラムによる現実空間に配置された実モジュールの制御システムの全体図である。本発明は、現実空間10と仮想空間20とがあり、現実空間10にはユーザ110と、実制御装置120、プログラム変換ツール130、実モジュール140、ルータ150がある。仮想空間20には、ブロックエディター201と、プロダクトデータベース202と、エラーチェッカー203とを備えるブロックシステム200、ブロックプログラムの不具合の解消を支援するコーチングアバター210、仮想モジュールが装着される仮想制御装置220、仮想モジュール230、そしてユーザ管理データベース250がある。
【0027】
ブロックシステム200を構成するブロックエディター201は、プログラム言語に関する知識がなくてもプログラムの作成を可能とするプログラムの作成支援ツールである。その詳細については後述するが、例えば、所定の時間になったらブザーを鳴動させたいプログラムを作成するには、現在時刻を入手するブロックと、現在時刻を表示するブロックと、鳴動させたいブザーを装着する仮想制御装置の場所を明示する場所ブロックとをベースブロックに組み合わせることでプログラムが作成できるツールである。
【0028】
ブロックエディター201を使ったプログラムの作成にあたっては、これまでにブロックエディターを使って既に作成されているブロックプログラムを再利用するなかで作成しても良い。作成済みのブロックプログラムはプロダクトデータベース202に格納されている。ブロックエディター201は複数のブロックから構成されているが、各ブロックは端部に所定の形状の凸部と凹部の嵌合部を有している。かかる所定の形状の凸部と嵌合する凹部の形状を有するブロックとを組合わせてブロックブログラムを作成するのであるが、嵌合形状が合わない組合せはブロックプログラムのエラーとなる。かかるエラーをチェックするのがエラーチェッカー203である。
【0029】
図2はユーザが本制御システムを利用する際の一連の手続きの流れと機器との関係を示すシーケンス図である。この制御システムを利用するにあたっては、先ずユーザ110は、自前のパソコンやスマートフォンにより仮想空間20にアクセスし、ユーザ管理データベース250により利用許可のチェックを受け、仮想空間20に入室する。仮想空間20には複数のユーザと、ブロックエディター201の使い方や、ブロックプログラムの作成と不具合の解消を支援するコーチングアバター210が入室している。
【0030】
ここでコーチングアバター210は、例えば、ユーザ情報やこれまでの不具合情報とこれを解消した方法・手順(不具合解消情報)を学習した既生成人工知能モデルである。具体的には、多数の不具合情報とその解消情報(学習データ)を利用し、学習アルゴリズムにより、ユーザの不具合解消の問合せに対応できるように学習した仮想空間内のプロセッサである。また他の一例として、仮想空間に入室している他のユーザのアバター、あるいはブロックエディターの指導者のアバターであっても良い。
【0031】
ユーザ110は、仮想空間20の例えば工作室において、所望のモジュールを制御するブロックプログラムをブロックエディター201を使って作成する。ブロックプログラムの作成にあたっては、上述したようにプロダクトデータベース202に格納されている作成済みのブロックプログラムと組合わせて作成しても良い(S1)。作成したブロックプログラムはエラーチェッカー203によりブロックの組合せにエラーが無いかエラーチェックが行われ(S2)、エラーが検出されると(S3)、ブロックの組合せに間違がある箇所がユーザに表示され、ユーザはかかるエラー箇所のブロックの組合せを修正する(S3)。
【0032】
エラーチェッカー203が検出するエラーは、ユーザ自身で修正できるものがほとんどであるが、戸惑う場合はコーチングアバター210に支援をもとめ、エラーの修正を行っても良い。コーチングアバター210への支援要請は、テキスト文により支援を求めるフラグ(Help Flag)を挙げる、あるいは音声にて支援を求めればよい。エラーチェッカー203によりエラーの解消されたブロックプログラムは、ブログラム変換ツール130により実制御装置120が実行可能な実行プログラムに変換され(S4)、実行プログラムはルータ150とWi-Fiで接続する実制御装置120のメモリーにネットワークを介して格納される(S5)。ユーザ110は、仮想制御装置220に装着された仮想モジュール230と同様に、実モジュール140を実制御装置120に装着する。
【0033】
実制御装置120への実モジュール140の装着の完了後、実モジュールの実動作を確認する(S7)。実モジュールの実動作(稼働)が、予定した通りの稼働でない、例えばユーザの想定は現在時刻を表示し所定の時刻になったらLEDが点滅する、といったものであるのに対し、実稼働は表示器に現在時刻が表示され所定の時刻にLEDが点灯するが点滅しない、といった不具合である。こうした不具合は上述したエラーチェッカー203のエラーチェックでは検出されない。
【0034】
かかる不具合が生じた場合には、支援を求めるフラグ(Help Flag)を挙げて、不具合の内容を音声、テキスト文により伝える。あるいは実モジュールの稼働の動画等をコーチングアバター210に送り、不具合解消の支援を受け、ブロックエディター201によりブロックプログラムの修正を行う(S8)。
【0035】
不具合の修正されたブロックプログラムは、エラーチェッカー203により再度エラーチェックが行われ、プログラム変換ツール130により実行プログラムに変換され実制御装置120のメモリーに格納される(S2~S5)。そして実モジュール140の実動作を確認し、不具合がなければ完成プロダクトとなる(S9)。不具合が解消されていなければ、再度、S1のステップからS5のステップを繰り返す。これにより、仮想空間において作成したブロックプログラムにより、現実空間に配置された実モジュール140をユーザが思った通りに制御することができる。
【実施例0036】
図3は本発明の一実施例であるブロックエディター201を使って作成したブロックプログラムの一例である。このブロックプログラムは小学生が登校のため家を出る時間(午前7時15分)になったらLEDが5回点滅し、そのときの気温がディスプレイに表示される。LEDの点滅と気温の表示は、小学生が停止スイッチを押下するまで繰り返される、というブロックプログラム2000である。
【0037】
図3に示す通り、ブロックプログラム2000は、
図3(a)のメインブロックプログラム2100、
図3(b)の呼出ブロックプログラム2200、そして
図3(c)の設定ブロックプログラム2300とから構成されている。設定ブロックプログラム2300は、ルータ150との接続設定等、最初に1回設定するインターネット接続を規定する設定ブロックである。呼出ブロックプログラム2200は、メインブロックプログラム2100から呼び出され、LEDを点滅させるサブルーチンブロックである。
【0038】
図4はメインブロックプログラム2100を構成する各ブロックの組合せを示した図であり、
図5はブロックエディター201のブロックの分類の一例を示した図である。ブロックエディター201を構成する複数のブロックは、
図5に示すように1)ルーチンブロック、2)モジュールブロック、3)データ操作ブロック、4)インターネット通信ブロック、以上4つに大別される。ルーチンブロックは、メインルーチンブロックとサブルーチンブロック等とから構成される。モジュールブロックはセンサーモジュールブロック、スイッチモジュールブロック等から構成され、データ操作ブロックは変数設定ブロック、数字ブロック等から構成され、インターネット通信ブロックは、時間指定ブロック、API(Application Programming Interface)ブロック等から構成される。
【0039】
これらのブロックを複数組合わせて作成した
図4に示すメインブロックプログラム2100について以下説明する。先ず、メインルーチンブロック2101にボードブロック2102を組合わせ、実空間で使用する実制御装置120のタイプ(制御装置はその機能・仕様により複数のタイプがある)を特定する。例えば、インターネット接続機能を備えた実制御装置120であれば、ボードブロック2102であり、インターネット接続機能を備えていない実制御装置120であればボードブロック2102aを組合わせる(
図5には図示していない)。また、装着する実モジュール数(制御装置が備える実モジュールの接続インターフェイス(実施例ではUSB接続端子)の数により特定する実制御装置120が異なるので、それに対応するボードブロックを選定し組合わせる。本実施例では、インターネット接続機能有り、接続する実モジュール数は4個の実制御装置120とした。
【0040】
次にデータ操作ブロックの変数設定ブロック2103に1をセットし、メインルーチンブロック2101に組合わせる。次にインターネット通信ブロックの分類に属する時間APIブロック2118に時間指定ブロック2106を組合わせる。ここで指定した時刻は2022年10月15日7時15分(小学生が家を出る時間)であり、この時刻にLEDが点灯する。
【0041】
次にLEDの点灯を停止し、停止スイッチが押されたら初期状態にリセットするため、モジュールブロックに属するスイッチモジュールブロック2107にスイッチを装着する実制御装置120の場所(左上)を指定する装着場所指定ブロック2108を組合わせ、これに初期化ブロック2110を組合わせる。
【0042】
次に、LEDを5回点滅させるプログラムとして、サブルーチンブロック2111に5回点滅を繰返すための数値ブロック2113を組わせる。また、LEDを点滅させる呼出ブロックプログラム2200を呼び出すブロック2114をサブルーチンブロック2111に組合わせ、これらを時間APIブロック2118と組み合わせる。
【0043】
次に、時間を表示するモジュールブロックに属するディスプレイ表示ブロック2116に気温を測定するセンサーモジュールブロック2117を組合わせ、これらを時間APIブロック2118と組み合わせる。そして時間APIブロック2118をメインルーチンブロック2101に組合わせることでメインブロックプログラム2100が完成する。
【0044】
図6は設定ブロックプログラム2300を構成する各ブロックの組合せと、呼出ブロックプログラム2200を構成する各ブロックの組合せを示した図である。
図6(a)に示す設定ブロックプログラム2300は、セットアップブロック2305にWi-Fiのパスワード等を設定するWi-Fiブロック2301とを組合わせることで設定できる。
【0045】
呼出ブロックプログラム2200は、先ず、呼出名ブロック2201と、LEDを装着する実制御装置の場所(実施例では右下)を指定する装着場所指定ブロック2203と、LEDを光らせるLED点灯モジュール2204とを自作ブロック2208と組合せる。
【0046】
次にディレイブロック2206により1000ミリ秒光らせるブロックを組合わせ、これらを自作ブロック2208と組み合わせる。同様にしてLEDが光らないブロックの組合せをつくり(
図6(d)には図示していない)、自作ブロック2208と組み合わせる。そしてメインルーチンブロック2101が呼出ブロックプログラム2200を呼び出すことができるように呼出名ブロック2201を自作ブロック2208に組合わせることで呼出ブロックプログラム2200が完成する。
【0047】
図7はブロックプログラムの作成にあわせて仮想モジュールが仮想制御装置220に装着される状態を表示する仮想モジュール装着状態表示部を示した図である。ブロックエディター201によるブロックプログラムの作成に併せて、仮想制御装置220の右上に気温のセンサーモジュール140-2、右下にLEDモジュール140-3、左上に停止モジュール140-1、左下に温度表示モジュール140-4の装着状態が、逐次、表示される。かかる仮想モジュール230の仮想制御装置220への装着状態を表示する仮想モジュール装状態着表示ツールにより、ユーザはブロックプログラムの作成状況を視覚的に認識することができる。
【0048】
このようにして、例えば、小学生が登校の時間である2022年10月15日7時15分になると、実制御装置120の右下に装着されたLEDが点灯し、実制御装置120の左下に装着されたディスプレイに、実装着装置120の右上に装着された気温センサーが検知した気温が表示され、小学生が実制御装置120の左上に装着された停止スイッチを押すまでLEDの点滅が繰り返され、現在の気温がディスプレイの表示される。即ち、仮想空間20において作成したブロックプログラムにより、現実空間10に配置された実モジュール140を思った通りに制御することができる。
【0049】
図8はブロックエディターで作成したブロックプログラムが、プログラム変換ツール130により、どのように実行プログラムに変換されるのかを説明するブロックプログラム変換説明図である。メインルーチンブロック2101にボードブロック2102を組合わせると、プログラム変換によりvoid setup(){ },void loop(){ }とキャラクターコーディングされる。これは初回1度setup内処理が実行され、その後loop処理を永続的に実行させることを意味する。ボードブロック2102をメインルーチンブロック2101に組合わせることで、実制御装置120の装置仕様を認識させるキャラクターコードがコーディングされる。
【0050】
LEDブロック2202に装着場所指定ブロック2203と光るブロックとを組合わせると、LEDの装着場所は実制御装置120の右下の接続端子(USB)を指定したことになり、プログラム変換により実制御装置120のピン番号の指定としてpinMode(10,output)とキャラクターコーディングされる。また、プログラム変換ツールによりLEDが光る、LED光らないのモジュールの組合せにより、LEDが光るは「digitalWrite(10,Low)」、LEDが光らないは「digitalWrite(10,High)とキャラクターコーディングされる。ブロックプログラムの作成にあわせて、
図7に示すように仮想モジュール230が、逐次、仮想制御装置220に装着される。
【0051】
図9は、本発明の一実施例である実制御装置120のブロック構成とその外観を示した図である。実制御装置120は手のひらサイズのマイクロコンピュータである。
図9(a)のブロック図に示す通り、実制御装置120は制御部121と、通信部122と電源部123、そして外部インターフェースである接続端子124とを備えている。制御部121はCPUとメモリ(ROM,RAM)、そして入出力部(IO)を備えている。
【0052】
通信部122は、Wi-Fi等によりインターネットとの接続を行い、制御部121に命令により実行プログラムをメモリーに格納する。電源部123は
図9(b)に示すように、制御部121等が形成されている基板の裏側に一体的に設けられ、乾電池2本が電源となっている。外部インターフェースである接続端子124は4個のUSBを備え、4個のモジュールを接続することができる。なお、本実施例の実制御装置120の接続端子は4個であるが、制御したいモジュール数に応じた制御装置を選ぶことで4個以上のモジュールを制御することもでき、その制御装置の特定は、ボードブロックにより行うことができる。