(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-02-27
(45)【発行日】2024-03-06
(54)【発明の名称】プログラム実行システム、制御装置及び制御プログラム
(51)【国際特許分類】
G06F 9/455 20180101AFI20240228BHJP
G06F 8/34 20180101ALI20240228BHJP
G06F 11/36 20060101ALI20240228BHJP
【FI】
G06F9/455
G06F8/34
G06F11/36 196
(21)【出願番号】P 2020214624
(22)【出願日】2020-12-24
【審査請求日】2022-12-12
【早期審査対象出願】
(73)【特許権者】
【識別番号】520509845
【氏名又は名称】株式会社AVAD
(74)【代理人】
【識別番号】100141106
【氏名又は名称】池田 清志
(72)【発明者】
【氏名】谷山 詩温
(72)【発明者】
【氏名】長澤 悠介
【審査官】渡辺 一帆
(56)【参考文献】
【文献】特開2002-120174(JP,A)
【文献】特開平09-062537(JP,A)
【文献】石井モルナ ほか著,"第1章 ちいさなマイコンmicor:bit"及び"第2章 MakeCodeでらくらくプログラミング",かしこくカワイイmicro:bit入門,第1版,株式会社リックテレコム,2018年,pp. 1-38,ISBN 978-4-86594-137-1
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/455
G06F 8/34
G06F 11/36
(57)【特許請求の範囲】
【請求項1】
複数の発光素子が配置された表示ボードを備えた被制御装置と、前記被制御装置を制御するコンピュータプログラムの実行が可能な制御装置とを備えるプログラム実行システムであって、
前記制御装置は、
画像を表示可能な表示部と、
前記コンピュータプログラムを実行して前記被制御装置を制御する
ために逐次送信される命令の単位で、1以上の命令の組み合わせである実行命令を、前記被制御装置へ送信する命令実行手段と、
前記被制御装置を制御する実行命令を模擬実行して、前記被制御装置の状態を前記表示部に表示させる模擬実行手段と、
前記コンピュータプログラムを実行して前記被制御装置を制御する実行命令を、
前記発光素子の点灯または消灯を表現した画像ブロックとして前記表示部に表示させる実行表示手段と
を備え、
前記被制御装置は、
前記制御装置から受信した実行命令を実行する手段を備える
ことを特徴とするプログラム実行システム。
【請求項2】
請求項1に記載のプログラム実行システムであって、
前記実行表示手段は、
前記被制御装置にて実行されている実行命令に該当する前記画像ブロックの表示色を変更して表示する
ことを特徴とするプログラム実行システム。
【請求項3】
請求項1に記載のプログラム実行システムであって、
前記被制御装置は、画像情報を取得するカメラと前記画像情報を表示するモニタとを備え、
前記制御装置は、
前記実行命令が画像情報取得および取得した画像情報の使用を含む命令単位の命令である場合に、前記カメラに画像情報を取得させると共に、前記取得した画像情報を前記実行命令に付加し、
前記模擬実行手段は、前記実行命令を模擬実行して、前記画像情報を前記表示部に表示させると共に、前記被制御装置の状態を前記表示部に表示させ、
前記被制御装置は、前記制御装置から受信した実行命令を実行すると共に、前記モニタに前記画像情報を表示させる
ことを特徴とするプログラム実行システム。
【請求項4】
複数の発光素子が配置された表示ボードを備えた被制御装置を制御するコンピュータプログラムの実行が可能な制御装置であって、
表示部に画像を表示させる手段と、
前記コンピュータプログラムを実行して前記被制御装置を制御する
ために逐次送信される命令の単位で、1以上の命令の組み合わせである実行命令を、前記被制御装置へ送信する手段と、
前記被制御装置を制御する実行命令を模擬実行して、前記被制御装置の状態を前記表示部に表示させる手段と、
前記コンピュータプログラムを実行して前記被制御装置を制御する実行命令を、
前記発光素子の点灯または消灯を表現した画像ブロックとして前記表示部に表示させる手段と
を備えることを特徴とする制御装置。
【請求項5】
複数の発光素子が配置された表示ボードを備えた被制御装置を制御するコンピュータプログラムの実行が可能で、表示部に画像を表示させることが可能なコンピュータにて実行される制御プログラムであって、
コンピュータに、
前記コンピュータプログラムを実行して前記被制御装置を制御する
ために逐次送信される命令の単位で、1以上の命令の組み合わせである実行命令を、前記被制御装置へ送信するステップと、
前記被制御装置を制御する実行命令を模擬実行して、前記被制御装置の状態を前記表示部に表示させるステップと、
前記コンピュータプログラムを実行して前記被制御装置を制御する実行命令を、
前記発光素子の点灯または消灯を表現した画像ブロックとして前記表示部に表示させるステップと
を実行させることを特徴とする制御プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
被制御装置と、被制御装置を制御するコンピュータプログラムの実行が可能な制御装置とを備えるプログラム実行システム、そのようなプログラム実行システムにて用いられる制御装置、及びそのような制御装置を実現する制御プログラムに関する。
【背景技術】
【0002】
コンピュータプログラミング(以下、プログラミングという)の普及に伴い、プログラミングを学習するための様々な方法が提案されている。例えば、非特許文献1では、実行される命令を抽象化した画像を組み合わせる専用のプログラム言語にてプログラミングを行うシステムを公開している。
【先行技術文献】
【特許文献】
【0003】
【文献】micro:bit、[online]、[令和2年12月21日検索]、インターネット<URL:https://makecode.microbit.org/>
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、非特許文献1に記載されているようなシステムでは、入力したコンピュータプログラムの実行状況を十分に把握することができないという問題がある。
【0005】
本発明は斯かる事情に鑑みてなされたものであり、コンピュータプログラムの実行状況の把握が容易なプログラム実行システムの提供を目的とする。
【0006】
また、本発明は、本発明に係るプログラム実行システムにて用いられる制御装置の提供を他の目的とする。
【0007】
また、本発明は、本発明に係る制御装置を実現するための制御プログラムの提供を更に他の目的とする。
【課題を解決するための手段】
【0008】
上記課題を解決するために本願記載のプログラム実行システムは、被制御装置と、前記被制御装置を制御するコンピュータプログラムの実行が可能な制御装置とを備えるプログラム実行システムであって、前記制御装置は、画像を表示可能な表示部と、コンピュータプログラムを実行して前記被制御装置を制御する実行命令を、前記被制御装置へ送信する命令実行手段と、前記被制御装置を制御する実行命令を模擬実行して、前記被制御装置の状態を前記表示部に表示させる模擬実行手段と、実行しているコンピュータプログラムを前記表示部に表示させる実行表示手段とを備え、前記被制御装置は、前記制御装置から受信した実行命令を実行する手段を備えることを特徴とする。
【0009】
また、前記プログラム実行システムにおいて、前記制御装置は、コンピュータプログラムの入力を受け付ける手段を備えることを特徴とする。
【0010】
また、前記プログラム実行システムにおいて、前記制御装置が実行するコンピュータプログラムは、複数の命令を順次実行するインタプリタ型言語で示されており、前記制御装置は、コンピュータプログラムを、順次実行する命令単位で、前記被制御装置が実行可能な実行命令に変換する手段を備え、前記命令実行手段は、変換した実行命令を順次送信するようにしてあり、前記模擬実行手段は、前記命令実行手段が実行命令を送信する毎に、模擬実行することを特徴とするプログラム実行システム。
【0011】
また、前記プログラム実行システムにおいて、前記被制御装置は、自機の仕様を示す装置情報を前記制御装置へ送信する手段を備え、前記制御装置が備える模擬実行手段は、受信した装置情報に基づいて、実行命令を模擬実行することを特徴とする。
【0012】
更に、本願記載の制御装置は、被制御装置を制御するコンピュータプログラムの実行が可能な制御装置であって、表示部に画像を表示させる手段と、コンピュータプログラムを実行して前記被制御装置を制御する実行命令を、前記被制御装置へ送信する手段と、前記被制御装置を制御する実行命令を模擬実行して、前記被制御装置の状態を前記表示部に表示させる手段と、実行しているコンピュータプログラムを前記表示部に表示させる手段とを備えることを特徴とする。
【0013】
更に、本願記載の制御プログラムは、被制御装置を制御するコンピュータプログラムの実行が可能で、表示部に画像を表示させることが可能なコンピュータにて実行される制御プログラムであって、コンピュータに、コンピュータプログラムを実行して前記被制御装置を制御する実行命令を、前記被制御装置へ送信するステップと、前記被制御装置を制御する実行命令を模擬実行して、前記被制御装置の状態を前記表示部に表示させるステップと、実行しているコンピュータプログラムを前記表示部に表示させるステップとを実行させることを特徴とする。
【発明の効果】
【0014】
本発明に係るプログラム実行システム、制御装置及び制御プログラムは、コンピュータプログラムに基づいて、被制御装置に実行命令を送信し、実行命令を模擬実行して被制御装置の状態を表示させ、実行しているコンピュータプログラムを表示させる。これにより、コンピュータプログラムの確認が容易である等、優れた効果を奏する。
【図面の簡単な説明】
【0015】
【
図1】本願記載のプログラム実行システムの構成例を概念的に示す説明図である。
【
図2】本願記載のプログラム実行システムにて用いられる各種装置の構成例を示す概略ブロック図である。
【
図3】本願記載のプログラム実行システムが備える制御装置及び被制御装置の処理の一例を示すフローチャートである。
【
図4】本願記載の制御装置が備える表示部から表示される画像の一例を示す説明図である。
【
図5】本願記載の制御装置が備える表示部から表示される画像の一例を示す説明図である。
【
図6】本願記載のプログラム実行システムにて用いられる被制御装置が備える出力部の状態を示す概略説明図である。
【
図7】本願記載のプログラム実行システムが備える制御装置及び被制御装置の処理の一例を示すフローチャートである。
【発明を実施するための形態】
【0016】
以下、本発明の実施形態について詳述する。なお、以下の実施形態は、本発明を具現化した一例であって、本発明の技術範囲を限定する性格のものではない。
【0017】
<適用例>
本願記載のプログラム実行システムは、例えば、コンピュータプログラミング(以下、プログラミングという)の学習として使用可能なシステムである。プログラム実行システムでは、コンピュータプログラムを実行する制御装置及び制御装置にて制御される被制御装置を用いる。以下では、図を用いて、制御装置1及び被制御装置2を備えるプログラム実行システムの例について説明する。
【0018】
<システム構成例>
図1は、本願記載のプログラム実行システムの構成例を概念的に示す説明図である。制御装置1は、タブレット型コンピュータ、高機能携帯電話(所謂、スマートフォン)、ノート型コンピュータ、デスクトップ型コンピュータ等のコンピュータを用いて構成される。ここでは、制御装置1として、タブレット型コンピュータを用いた例について説明する。被制御装置2は、コンピュータプログラムを実行する制御装置1にて制御される装置である。被制御装置2は、制御装置1にて認識可能な所定の規格に準拠していれば様々な装置を用いることが可能である。ここでは、LED(Light Emitting Diode)等の発光素子を8×8のマトリクス状に配置したLEDボードを、マイコンボードに取り付けた被制御装置2を用いる例について説明する。なお、被制御装置2としては、LEDボードに限らず、8セグメントのLED、命令に基づく画像を表示する装置、命令に基づく音声を出力する装置、命令に基づく動作を行う玩具用又は産業用ロボット等の様々な装置を被制御装置2として用いることが可能である。制御装置1及び被制御装置2は、有線又は無線の通信方法で通信することが可能である。有線通信としては、例えば、USB(Universal Serial Bus)、IEEE(Institute of Electrical and Electronics Engineers)1394等の様々な規格に準拠した通信方法を用いることが可能である。無線通信としては、IEEE802.11(所謂、Wi-Fi)等の様々な規格に準拠した通信方法を用いることが可能である。
【0019】
<各種装置のハードウェア構成>
次に、本願記載のプログラム実行システムにて用いられる各種装置のハードウェア構成の例について説明する。
図2は、本願記載のプログラム実行システムにて用いられる各種装置の構成例を示す概略ブロック図である。
【0020】
制御装置1は、制御部10、記録部11、表示部12、入力部13、通信部14等の各種構成を備えている。
【0021】
制御部10は、装置全体を制御する処理を実行するCPU(Central Processing Unit )等のプロセッサであり、情報処理回路、計時回路、レジスタ回路等の各種回路を備えている。
【0022】
記録部11は、ハードディスクドライブ、ソリッドステートドライブ、フラッシュメモリ等の不揮発性メモリ、及び各種RAM(Random Access Memory)等の揮発性メモリを用いて構成される回路である。記録部11には、基本プログラム(OS:Operating System)、基本プログラム上で動作する応用プログラム(アプリケーションプログラム)等のプログラムが記録されている。応用プログラムとしては、本願記載の制御装置1を実現するための制御プログラム110、被制御装置2を制御するために入力されたコンピュータプログラム(以下、入力プログラム110dという)等の各種プログラムが記録される。
【0023】
制御装置1の記録部11に記録された制御プログラム110は、アプリケーションモジュール110a、シミュレーションモジュール110b、エディタモジュール110c等の各種モジュールを含んでいる。アプリケーションモジュール110aは、入力プログラム110dを実行し、被制御装置2を制御する実行命令を送信するモジュールである。シミュレーションモジュール110bは、実行命令を模擬実行(シミュレート)し、被制御装置2の状態を表示させるモジュールである。エディタモジュール110cは、入力プログラム110dの入力、編集等の処理を受け付けるモジュールである。
【0024】
制御装置1の記録部11に記録された入力プログラム110dは、被制御装置2を制御するためのプログラムであり、複数の命令を順次実行するインタプリタ型言語にて示されている。入力プログラム110dは、ソースコードとして入力を受け付け、被制御装置2にて実行可能な形式に、命令単位で適宜変換される。本願でいう命令単位とは、被制御装置2を制御するために順次送信される命令の単位である。例えば、命令単位は、「所定のLEDを点灯」等の1つのステップを規定した命令でもよく、また、「所定のLEDを点灯」し、「1000ミリ秒停止」等の実質的に一つの処理として実行される複数の連続した命令群であってもよい。
【0025】
表示部12は、画像を表示する液晶ディスプレイ等のデバイスである。入力部13は、使用者(プログラマ)の操作入力を受け付けるタッチパネル等のデバイスである。ここでは、表示部12及び入力部13として、薄板状をなすタッチパネル及び液晶ディスプレイを積層して一体化した液晶タッチパネルを用いた例について説明する。なお、入力部13としては、制御装置1に接続されるキーボード、マウス等のデバイスを用いてもよく、更には、記録媒体又は他の装置に記録されている入力プログラム110dを読み取る各種ポートを用いてもよい。
【0026】
通信部14は、有線又は無線にて被制御装置2と通信するUSBポート、アンテナ等のハードウェア及び制御回路を用いたデバイスである。
【0027】
以上のように構成されたタブレット型コンピュータ等のコンピュータは、記録部11に記録されている制御プログラム110に含まれる各種ステップを、制御部10の制御にて実行することにより、制御装置1として動作する。
【0028】
被制御装置2は、制御部20、出力部21、通信部22等の各種構成を備えている。
【0029】
制御部20は、装置全体を制御するマイコンボード等のマイクロコンピュータ、その他各種制御回路を用いて構成される。制御部20は、制御装置1から送信される実行命令を受信し、受信した実行命令を実行することにより、出力部21を制御する。
【0030】
出力部21は、LED等の発光素子を8×8のマトリクス状に配置したLEDボードである。
【0031】
通信部22は、有線又は無線にて制御装置1と通信する回路であり、例えば、制御部20であるマイコンボードに付属の回路を用いて構成される。
【0032】
本願では、マイコンボードにLEDボードを組み合わせた被制御装置2を例示して説明するが、前述のように、被制御装置2としては、他の配置のLED、画像を表示する装置、音声を出力する装置、ロボット等の各種装置を被制御装置2として用いることが可能である。例えば、画像を表示する装置を被制御装置2として用いる場合、モニタが出力部21となる。音声を出力する装置を被制御装置2として用いる場合、スピーカが出力部21となる。ロボットを被制御装置2として用いる場合、モータ、モニタ、スピーカ等の出力デバイスだけでなく、センサ、カメラ、マイク等の入力デバイスを出力部21としてもよい。
【0033】
<各種装置のソフトウェア処理>
次に、本願記載のプログラム実行システムにて用いられる各種装置の処理について説明する。
図3は、本願記載のプログラム実行システムが備える制御装置1及び被制御装置2の処理の一例を示すフローチャートである。制御装置1は、制御プログラム110を実行する制御部10の制御により、各種処理を実行する。制御装置1は、制御プログラム110を実行することにより、アプリケーションモジュール110a、シミュレーションモジュール110b、エディタモジュール110c等の各種モジュールが起動し、制御部10の制御により、制御プログラム110に含まれる各種モジュールが実行される。
【0034】
制御装置1及び被制御装置2の間の通信が確立することにより、以降の処理が開始される。制御装置1及び被制御装置2の間の通信は、例えば、制御装置1及び被制御装置2の間を、所定の通信規格に準拠した通信線で接続したことをトリガとし、通信に関するペアリング等の処理を実行することで確立される。制御装置1との通信が確立した被制御装置2の制御部20は、通信部22から装置に関する仕様、その他被制御装置2の制御に必要な事項を示す装置情報を、制御装置1へ送信する(ステップS1)。
【0035】
制御装置1の制御部10は、被制御装置2から送信された装置情報を通信部14にて受信し、アプリケーションモジュール110aの実行により、装置情報を認識し、更に、装置情報をシミュレーションモジュール110bに渡す(ステップS2)。
【0036】
シミュレーションモジュール110bの実行により、制御部10は、装置情報に基づいて、被制御装置2の状態を模擬表示するシミュレータを表示部12に表示させる(ステップS3)。ステップS3にて表示されるシミュレータとは、被制御装置2の状態を模擬表示する画像であり、例えば、8×8のマトリクス状に配列されたLEDの画像が表示部12に表示される。
【0037】
使用者は、表示部12に表示された画像を確認し、制御装置1を操作して入力プログラム110dを入力する。
【0038】
図4は、本願記載の制御装置1が備える表示部12から表示される画像の一例を示す説明図である。
図4は、入力プログラム110dを入力している状態を示している。
図4に例示する入力プログラム110dは、学習用に構成された専用のプログラム言語にて記述されている。
図4に例示するプログラム言語では、実行する命令を抽象化した画像ブロックを組み合わせて入力プログラム110dを構成する。入力プログラム110dの入力は、新たな入力プログラム110dの入力、記録部11に記録されている入力プログラム110dの読込、読み込んだ入力プログラム110dの編集等の方法にて行われる。更に、入力プログラム110dの入力は、USBメモリ等の記録媒体、通信部14にて接続される他の装置等の外部に記録されている入力プログラム110dの読取、読み取った入力プログラム110dの編集等の方法であってもよい。また、入力プログラム110dは、文字、数字、符号等のテキストデータにて構成されるプログラム言語にて記述されていてもよい。
【0039】
図4に例示する入力プログラム110dは、被制御装置2の出力部21であるLEDボードを構成する発行素子のうち「○」の表示に用いられる12個の発光素子を点灯し、1000ミリ秒停止し、「×」の表示に用いられる8個の発光素子を点灯し、1000ミリ秒停止し、発光素子を消灯する処理を10回繰り返す処理を記述している。本願記載のプログラム実行システムにおいて、入力プログラム110dは、発光素子の表示等の命令の直後に、「XXXXミリ秒停止」等の待機命令を追加することにより、全体の実行速度を調整して入力プログラム110dの実行状況を確認しやすくすることが可能である。
【0040】
図3のフローチャートに戻り、エディタモジュール110cの実行により、制御部10は、入力部13から入力プログラム110dの入力を受け付ける(ステップS4)。使用者は、入力プログラム110dの入力を終了後、入力プログラム110dの入力が終了したことを示す所定の操作を行う。
【0041】
入力プログラム110dの入力が終了後、アプリケーションモジュール110aの実行により、制御部10は、入力された入力プログラム110dを要求し、エディタモジュール110cから入力プログラム110dを受け取る(ステップS5)。ステップS5にて受け取る入力プログラム110dは、画像ブロック形式で入力されたソースコードである。
【0042】
アプリケーションモジュール110aの実行により、制御部10は、入力プログラム110dのソースコードの形式を変換する(ステップS6)。ステップS6では、画像ブロック形式のソースコードを、アプリケーションモジュール110aにて実行可能なテキスト形式のソースコードに変換する。ソースコードに変換された入力プログラム110dは、複数の命令を順次実行するインタプリタ型言語にて示される。ステップS6のソースコードの形式変換処理は、アプリケーションモジュール110aの処理として実行してもよく、また、エディタモジュール110cの処理として実行してもよい。
【0043】
アプリケーションモジュール110aの実行により、制御部10は、変換後のソースコードにて記述された入力プログラム110dの命令を読み込む(ステップS7)。ステップS7では、複数の命令にて構成される入力プログラム110dのうち、最初に実行する命令単位を読み込む。前述のように、命令単位とは、被制御装置2を制御するために逐次送信される命令の単位である。例えば、
図4に例示した入力プログラム110dであれば、「『○』の表示に用いられる12個の発光素子を点灯」させる一つの命令を命令単位としてもよく、「『○』の表示に用いられる12個の発光素子を点灯」し、「1000ミリ秒停止」する2つの命令の組み合わせを命令単位としてもよい。
【0044】
アプリケーションモジュール110aの実行により、制御部10は、命令単位で読み込んだ命令をエディタモジュール110cに渡す(ステップS8)。
【0045】
エディタモジュール110cの実行により、制御部10は、表示部12に表示されている入力された入力プログラム110dのうち、受け取った命令にて実行される箇所の命令の表示を変更する(ステップS9)。ステップS9の表示の変更とは、例えば、対応する命令を示す画像ブロックの表示色の変更、点滅等の処理である。
【0046】
ステップS8にて、命令を渡した後、アプリケーションモジュール110aを実行する制御部10は、ステップS7にて読み込んだ命令を、被制御装置2にて実行することが可能な実行命令に変換する(ステップS10)。
【0047】
アプリケーションモジュール110aの実行により、制御部10は、ステップS10にて変換した実行命令を通信部14から被制御装置2へ送信する(ステップS11)。
【0048】
通信部22にて実行命令を受信した被制御装置2の制御部20は、受信した制御命令を出力部21で実行する(ステップS12)。例えば、「『○』の表示に用いられる12個の発光素子を点灯」させるという実行命令を受信した場合、被制御装置2は、ステップS12として、出力部21である8×8のLEDボードが備える発光素子のうち命令された12個の発光素子を点灯させる。また、実行命令として2つの命令の組み合わせである「『○』の表示に用いられる12個の発光素子を点灯」及び「1000ミリ秒停止」という実行命令を受信した場合、被制御装置2は、ステップS12の処理として、12個の発光素子を点灯した状態で1000ミリ秒待機する。
【0049】
ステップS11にて、実行命令を送信した後、アプリケーションモジュール110aを実行する制御部10は、ステップS10にて変換した実行命令をシミュレーションモジュール110bに渡す(ステップS13)。
【0050】
シミュレーションモジュール110bの実行により、制御部10は、受け取った実行命令を模擬実行し、ステップS3で表示部12に表示しているシミュレータ上に、被制御装置2の状態を模擬表示する(ステップS14)。ステップS14では、例えば、表示部12に模擬表示した8×8のマトリクス状に配列されたLEDの画像のうち、「○」の表示に用いられる12個の発光素子に対応する画像を、発光を示す画像に変更する。
【0051】
図5は、本願記載の制御装置1が備える表示部12から表示される画像の一例を示す説明図である。
図5は、ステップS9の表示変更及びステップS14の模擬表示をした段階で表示部12に表示される画像の一例を示している。
図5に例示する画像では、
図5に向かって左側に、エディタモジュール110cがステップS9にて表示変更した画像が表示されており、右側にシミュレーションモジュール110bがステップS14にて模擬表示した被制御装置2の状態を示す画像が表示されている。
【0052】
エディタモジュール110cによる左側の画像は、順次実行される複数の命令のうち、「○」の表示に用いられる12個の発光素子を点灯させる命令を示す画像ブロックの表示色が変更されている。エディタモジュール110cにて表示される画像から、被制御装置2にて現在実行されている命令が12個の発光素子を点灯させる命令であることが確認できる。なお、実際には、発光素子を点灯させる命令を実行後、すぐに1000ミリ秒停止の命令に遷移するが、例えば、点灯命令及び待機命令を命令単位として実行させる場合には、1000ミリ秒停止中の状態であっても、点灯命令が実行されているとして表示変更してもよい。また、点灯命令及び待機命令をそれぞれ別の命令単位として実行させる場合であっても、待機命令を実行中は、直前の点灯命令が実行されているとして表示変更してもよい。
【0053】
シミュレーションモジュール110bによる右側の画像は、被制御装置2の出力部21の状態として、模擬表示した8×8の発光素子のうち「○」の表示に用いられる12個の発光素子が点灯している画像を表示している。
【0054】
図6は、本願記載のプログラム実行システムにて用いられる被制御装置2が備える出力部21の状態を示す概略説明図である。
図6は、ステップS12にて制御命令を実行した状態の出力部21を示している。
図6では、出力部21である8×8のLEDボードが備える発光素子のうち命令された12個の発光素子が点灯している状態を示している。
【0055】
図5に例示した制御装置1の表示部12に表示される画像及び
図6に例示した被制御装置2の出力部21を比較することにより、本願記載のプログラム実行システムでは、入力プログラム110dのうちの実行中の命令の確認、被制御装置2がどのように制御されているかという実機での確認及びシミュレータでの確認をリアルタイムで行うことができる。リアルタイムで比較しながら確認することにより、入力プログラム110dの実行状況の把握が容易であり、プログラミングの学習効果を高めることが可能となる。
【0056】
図3のフローチャートに戻り、ステップS13にて実行命令を渡した後、アプリケーションモジュール110aを実行する制御部10は、次に実行すべき命令の有無を判定する(ステップS15)。
【0057】
ステップS15において、次に実行すべき命令があると判定した場合(ステップS15:YES)、アプリケーションモジュール110aを実行する制御部10は、ステップS7へ戻り、複数の命令にて構成される入力プログラム110dのうち、次に実行する命令を読み込み(ステップS7)、以降の処理を繰り返す。
【0058】
ステップS7~S15の処理を繰り返し実行することにより、アプリケーションモジュール110aを実行する制御部10は、ソースコードから変換された実行命令を被制御装置2へ順次送信する。また、シミュレーションモジュール110bを実行する制御部10は、実行命令を送信する毎に、被制御装置2の状態を表示部12に模擬表示する。更に、エディタモジュール110cを実行する制御部10は、実行中の命令を変更表示する。従って、本願記載のプログラム実行システムは、複数の命令を順次実行するインタプリタ型言語で記述される入力プログラム110dを、実行中の命令を確認しながら状況を把握することが可能である。
【0059】
ステップS15において、次に実行すべき命令がないと判定した場合(ステップS15:NO)、アプリケーションモジュール110aを実行する制御部10は、処理を終了する。
【0060】
被制御装置2が、センサ、カメラ、マイク等の入力デバイスを伴う出力部21を備える場合は、出力部21に情報を取得する実行命令を送信し、命令実行に伴い取得した情報の取得及びシミュレーションモジュール110bへの反映が必要なときがある。例えば、被制御装置2がカメラ及びモニタを含む出力部21を備えている場合に、被制御装置2に、カメラの撮影による画像情報の取得及び取得した画像情報に基づくモニタへの画像表示という命令単位の実行命令を実行させる場合である。このような場合、制御装置1のシミュレータに撮影を行ったことだけでなく、取得した画像情報を表示させる必要が生じる。次に、情報取得を伴う実行命令を実行する場合の例について説明する。
【0061】
図7は、本願記載のプログラム実行システムが備える制御装置1及び被制御装置2の処理の一例を示すフローチャートである。
図7は、
図3のフローチャートにおいて、ステップS10にて変換した実行命令が、情報取得及び取得した情報の使用を含む命令単位の命令であると判定した場合の処理を例示している。
【0062】
ステップS11にて通信部22にて実行命令を受信した被制御装置2の制御部20は、受信した実行命令を出力部21で実行し(ステップS12)、実行した実行命令に伴い情報を取得する(ステップS16)。ステップS12にて実行する命令が情報取得及び取得情報の使用を含む命令である場合、ステップS16にて情報を取得する処理を実行する。ステップS16では、例えば、センサによる検出対象の情報の取得、カメラの撮影よる画像情報の取得、マイクによる音声情報の取得等の処理が実行される。
【0063】
被制御装置2の制御部20は、ステップS16にて取得した取得情報を通信部22から制御装置1へ送信する(ステップS17)。
【0064】
アプリケーションモジュール110aの実行により、通信部14にて取得情報を受信した制御装置1の制御部10は、必要に応じて、受信した取得情報を、ステップS10で変換した実行命令に付加する(ステップS18)。例えば、カメラの撮影にて画像情報を取得し、取得した画像情報をモニタに表示するという実行命令に、取得情報としての画像情報を付加する。
【0065】
そして、制御装置1の制御部10は、アプリケーションモジュール110aが取得情報を付加した実行命令をシミュレーションモジュール110bに渡し、シミュレーションモジュール110bが受け取った実行命令を模擬実行し、シミュレータ上に、被制御装置2の状態を模擬表示するという
図3を用いて説明したステップS13以降の処理を実行する。
【0066】
このように、実行命令が命令取得を伴う命令単位の命令である場合、被制御装置2が取得した取得情報を制御装置1へ送信することにより、シミュレーションモジュール110bに反映させることが可能となる。例えば、被制御装置2に取得した画像を表示させると共に、シミュレータにも同様の画像を表示させるという処理を実現することができる。なお、実行命令が情報取得のみの命令であり、取得した情報をすぐに使用することがない場合、アプリケーションモジュール110aは、ステップS17にて取得情報を受信した後、取得情報を記録部11に記録し、実行命令への付加は行わずに以降の処理を行うことになる。
【0067】
以上詳述した如く、本願記載のプログラム実行システムは、順次実行される複数の命令を含む入力プログラム110dを実行し、入力プログラム110dのうちの実行中の命令の確認、被制御装置2実機での確認及びシミュレータでの模擬表示の確認をリアルタイムで行うことができる。リアルタイムで比較しながら確認することにより、入力プログラム110dの実行状況の把握が容易であり、プログラミングの学習効果を高めることが可能となる等、優れた効果を奏する。しかも、これらの確認は、順次実行される命令単位で行うことが可能であるので、プログラミングの学習効果を高めることができる。しかも、本願記載のプログラム実行システムは、プログラミングの学習に限らず、入力プログラム110dのデバッグ、入力プログラム110dの実行内容の確認等、プログラミングに関する様々な確認に適用することが可能である等、優れた効果を奏する。
【0068】
また、本願記載のプログラム実行システムでは、入力プログラム110dに対し、発光素子の表示等の命令の直後に、待機命令を追加することにより、全体の実行速度を調整して、更に様々な確認を容易にすることが可能である等、優れた効果を奏する。更に、本願記載のプログラム実行システムは、インタプリタ型言語の入力プログラム110dを扱うので、入力プログラム110dの実行中に、一時停止、再開等の割込処理が可能であり、様々な確認を容易にすることが可能である等、優れた効果を奏する。
【0069】
本発明は、以上説明した実施形態に限定されるものではなく、他のいろいろな形態で実施することが可能である。そのため、かかる実施形態はあらゆる点で単なる例示にすぎず、限定的に解釈してはならない。本発明の範囲は請求の範囲によって示すものであって、明細書本文には、なんら拘束されない。更に、請求の範囲の均等範囲に属する変形や変更は、全て本発明の範囲内のものである。
【0070】
例えば、前記実施形態では、実行する命令を抽象化した画像ブロックを組み合わせたインタプリタ型言語の入力プログラム110dに適用する形態を例示したが、本発明はこれに限るものではなく、様々な入力プログラム110dに適用することが可能である。例えば、テキスト形式で記述された入力プログラム110dに適用する形態、更には、コンパイラ型の言語で記述された入力プログラム110dを受け付け、インタプリタ型言語のソースコードで記述されたソースコードに変換する形態等、様々な形態に展開することが可能である。
【0071】
また、前記実施形態では、制御装置1及び被制御装置2が別体として構成された形態を示したが、本発明はこれに限らず、制御装置1及び被制御装置2が一体化した形態等、様々な形態に展開することが可能である。更には、制御装置1を複数台のコンピュータにて構成し、アプリケーションモジュール110aと、シミュレーションモジュール110b及びエディタモジュール110cとをそれぞれ異なるコンピュータにて実行する等、様々な形態に展開することが可能である。
【符号の説明】
【0072】
1 制御装置
10 制御部
11 記録部
110 制御プログラム
110a アプリケーションモジュール
110b シミュレーションモジュール
110c エディタモジュール
110d 入力プログラム(コンピュータプログラム)
12 表示部
13 入力部
14 通信部
2 被制御装置
20 制御部
21 出力部
22 通信部