JP2018163546A - Programming device, control program of the same, and method for programming - Google Patents
Programming device, control program of the same, and method for programming Download PDFInfo
- Publication number
- JP2018163546A JP2018163546A JP2017060810A JP2017060810A JP2018163546A JP 2018163546 A JP2018163546 A JP 2018163546A JP 2017060810 A JP2017060810 A JP 2017060810A JP 2017060810 A JP2017060810 A JP 2017060810A JP 2018163546 A JP2018163546 A JP 2018163546A
- Authority
- JP
- Japan
- Prior art keywords
- programming
- block
- unit
- target device
- shape
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Abstract
Description
本発明は、プログラミング装置及びその制御プログラム、プログラミング方法に関する。 The present invention relates to a programming device, a control program thereof, and a programming method.
従来、コンピュータやモバイル端末等の情報通信機器の普及や、これらを含む様々な機器の制御技術の発展に伴い、プログラムの開発技術の重要性が指摘されていた。近年においては、幼児期からのプログラミング教育の重要性が世界的に認知されてきており、義務教育段階からの必修科目として採用する国が増えてきている。我が国においてもプログラミング教育が政策に盛り込まれ、今後はプログラミング教育への関心がより低年齢層にも拡大していくことが予想される。 Conventionally, the importance of program development technology has been pointed out with the spread of information communication devices such as computers and mobile terminals and the development of control technologies for various devices including them. In recent years, the importance of programming education from early childhood has been recognized worldwide, and an increasing number of countries have adopted it as a compulsory subject from the compulsory education stage. In Japan, programming education is included in the policy, and it is expected that interest in programming education will expand to younger age groups in the future.
このようなプログラミング教育への関心の高まりを背景にして、様々なプログラミング教育ツールが開発されている。例えば特許文献1には、物理的なブロック(物体)をユーザが直接手に持って実際に動かすことにより、一次元的、又は、二次元的に連結することでプログラムを生成し、当該プログラムに基づいて実行装置の動作を制御する技術が記載されている。
Various programming education tools have been developed against the background of such increasing interest in programming education. For example, in
また、非特許文献1には、所定のボード上に物理的なブロック(物体)をユーザが直接手に持って実際に動かすことにより、順番に組み付けていくことでプログラムを生成し、走行ロボットの動作を制御する技術が記載されている。また、非特許文献2には、タブレット等の情報端末の画面上でイラストアイコンからなる仮想ブロックを連結することによりプログラミングを行い、画面中のキャラクタの動きを制御する技術が記載されている。
Further, in Non-Patent
これらに記載された技術によれば、連結又は組み付けられた各ブロックに設定された機能を、走行ロボットやキャラクタが順次実行していくことにより、プログラムの構成や実行状況を直感的に学習することができる。本明細書では、特許文献1や非特許文献1のように、物体を直接動かすことでプログラミングすることを、タンジブルなプログラミングという。一方、非特許文献2のように、液晶表示装置などの電子的なディスプレイの画面上に表示された仮想ブロック即ち仮想的なアイコンにタッチして動かすことでプログラミングすることを、ビジュアル・プログラミングという。また、本明細書において、タンジブルであるとは、実体があり、現実空間内において手で触れて実感することができる状態にあることを意味する。しかしながら、液晶表示装置などの電子的なディスプレイ自体はタンジブルであっても、そういったディスプレイ上に電子的に表示されたアイコンなどを、そのディスプレイ画面にタッチすることで操作することは、タンジブルな操作ではない。
According to the techniques described in these, the configuration and execution status of the program can be intuitively learned by the running robot and the character sequentially executing the functions set in each connected or assembled block. Can do. In this specification, as in
一般に、幼児等の年少者に対するプログラミング教育においては、知能の発達の観点から、タンジブルなプログラミング、即ち、現実空間内で実際に物体に触って移動、変形等の操作をしながらプログラミングを行わせる方が、学習効果が高いと考えられている。 In general, in programming education for young children such as infants, from the viewpoint of intelligence development, tangible programming, that is, programming to be performed while actually touching an object in the real space while moving, deforming, etc. However, it is thought that the learning effect is high.
しかしながら、上記の特許文献1や非特許文献1に記載されている技術は、タンジブルなプログラミングではあるものの、機能が設定されたブロックを所定の接合部で連結させたり、所定のボードに順次組み付けさせたりしてプログラミングを行う手法であるため、連結又は組み付けたブロック全体の形状や配置と、実際に動作する実行装置や走行ロボットの進行方向とが無関係になっている。そのため、幼児にはプログラミングの際の操作内容と実行装置の移動との関係が直感的に把握、理解しにくく、プログラミングの学習効果が十分に得られない場合がある。
However, although the techniques described in
また、上記の非特許文献2に記載されている技術は、タンジブルなプログラミングではなくビジュアル・プログラミング、即ち、タブレット等を用いて画面上の操作のみでプログラミングを行う手法であるため、ある程度年長(概ね5歳位以上)の学習者には適しているが、3歳位までの幼児にはプログラミングの際の操作方法や操作内容等が直感的に把握、理解しにくく、プログラミングの学習効果が十分に得られない場合がある。
In addition, the technique described in Non-Patent
このように、従来、幼児向けのプログラミング教育ツールとして、タンジブルなプログラミングを行うものやビジュアル・プログラミングを行うものが知られているが、いずれも、幼児にとってプログラミングの学習効果が十分に得られると言えるものではない。つまり、タンジブルなプログラミングによるプログラミング操作と、その操作により生成されたプログラムに応じた被制御部の移動方向との関連性を、ユーザにとってわかりやすくしたようなプログラミング教育ツールは未だ知られていない。 As described above, there are conventionally known programming education tools for infants that perform tangible programming and those that perform visual programming. It is not a thing. That is, there is not yet known a programming education tool that makes it easy for the user to understand the relationship between a programming operation based on tangible programming and the movement direction of the controlled unit corresponding to the program generated by the operation.
そこで、本発明は、上述したような課題に鑑みて、タンジブルなプログラミングによるプログラミング操作と、その操作により生成されたプログラムに応じた被制御部の移動方向との関連性を、ユーザにとってわかりやすくすることができるプログラミング装置及びその制御プログラム、プログラミング方法を提供することを目的とする。 Therefore, in view of the above-described problems, the present invention makes it easy for the user to understand the relationship between a programming operation based on tangible programming and the movement direction of the controlled unit corresponding to the program generated by the operation. An object of the present invention is to provide a programming device, a control program therefor, and a programming method.
本発明に係るプログラミング装置は、
タンジブルな複数の形状指示部がユーザ操作によって互いに相対的に配置されることで前記複数の形状支持部の相対位置が指示されたことに応じて、前記複数の形状支持部の相対位置に基づいて、第1形状を指示する第1形状指示部と、
前記第1形状指示部により指示された前記第1形状に対応させて被制御部を移動させる命令を生成する命令生成部と、
を備えることを特徴とする。
A programming device according to the present invention includes:
Based on the relative positions of the plurality of shape support portions in response to the relative position of the plurality of shape support portions being instructed by the plurality of tangible shape instruction portions being arranged relative to each other by a user operation. A first shape designating unit for designating the first shape;
A command generation unit that generates a command to move the controlled unit in correspondence with the first shape instructed by the first shape instruction unit;
It is characterized by providing.
本発明に係るプログラミング方法は、
タンジブルな複数の形状指示部がユーザ操作によって互いに相対的に配置されることで前記複数の形状支持部の相対位置が指示されたことに応じて、前記複数の形状支持部の相対位置に基づいて、第1形状を指示し、
前記指示された前記第1形状に対応させて被制御部を移動させる命令を生成する、
ことを特徴とする。
The programming method according to the present invention includes:
Based on the relative positions of the plurality of shape support portions in response to the relative position of the plurality of shape support portions being instructed by the plurality of tangible shape instruction portions being arranged relative to each other by a user operation. Indicate the first shape,
Generating a command to move the controlled portion in correspondence with the instructed first shape;
It is characterized by that.
本発明に係る制御プログラムは、
プログラミング装置を制御するための制御プログラムであって、
前記プログラミング装置は、第1形状指示部と命令生成部とを備え、
前記プログラミング装置を制御するコンピュータに、
タンジブルな複数の形状支持部がユーザ操作によって互いに相対的に配置されることで前記複数の形状支持部の相対位置が指示されたことに応じて、前記複数の形状支持部の相対位置に基づいて、前記第1形状指示部によって第1形状を指示させ、
指示された前記第1形状に対応させて被制御部を移動させる命令を、前記命令生成部によって生成させる、
ことを特徴とする。
The control program according to the present invention is:
A control program for controlling a programming device,
The programming device includes a first shape instruction unit and an instruction generation unit,
A computer for controlling the programming device;
In response to the relative position of the plurality of shape support portions being instructed by the plurality of tangible shape support portions being arranged relative to each other by a user operation, based on the relative positions of the plurality of shape support portions. , Instructing the first shape by the first shape instruction unit,
Generating a command to move the controlled unit in correspondence with the instructed first shape by the command generating unit;
It is characterized by that.
本発明によれば、タンジブルなプログラミングによるプログラミング操作と、その操作により生成されたプログラムに応じた被制御部の移動方向との関連性を、ユーザにとってわかりやすくすることができる。 ADVANTAGE OF THE INVENTION According to this invention, the relevance of the programming operation by tangible programming and the moving direction of the to-be-controlled part according to the program produced | generated by the operation can be made easy to understand for a user.
以下、本発明に係るプログラミング装置及びその制御プログラム、プログラミング方法について、実施形態を示して詳しく説明する。ここでは、説明を簡明にするために、本発明に係るプログラミング装置を適用したプログラミング教育装置を用いて、移動体であるターゲット機器の動作状態を制御するプログラムを生成する場合について説明する。 Hereinafter, a programming device, a control program thereof, and a programming method according to the present invention will be described in detail with reference to embodiments. Here, in order to simplify the description, a case will be described in which a programming education device to which the programming device according to the present invention is applied is used to generate a program for controlling the operating state of a target device that is a moving body.
<第1の実施形態>
(プログラミング教育装置)
図1は、本発明に係るプログラミング装置を適用したプログラミング教育装置の第1の実施形態を示す概略図である。また、図2は、本実施形態に係るプログラミング教育装置に適用される構成例を示す機能ブロック図であり、図3は、本実施形態に係るプログラミング教育装置に適用される他の構成例を示す機能ブロック図である。
<First Embodiment>
(Programming education device)
FIG. 1 is a schematic diagram showing a first embodiment of a programming education device to which a programming device according to the present invention is applied. 2 is a functional block diagram illustrating a configuration example applied to the programming education apparatus according to the present embodiment, and FIG. 3 illustrates another configuration example applied to the programming education apparatus according to the present embodiment. It is a functional block diagram.
第1の実施形態に係るプログラミング教育装置は、例えば図1に示すように、大別して、プログラム制御装置100と、ターゲット機器200とを有している。プログラム制御装置100は、プログラミング教育の対象者であるユーザによる入力操作を受け付け、受け付けた入力操作に応じた情報を取得して、ターゲット機器200の動作状態を制御するプログラムを生成する。また、ターゲット機器200は、タンジブルな、又はタンジブルでない移動体であって、プログラム制御装置100から転送されたプログラムを実行することにより、移動を含む動作状態が制御される以下、プログラム制御装置100及びターゲット機器200について、詳しく説明する。
For example, as shown in FIG. 1, the programming education apparatus according to the first embodiment roughly includes a
(プログラム制御装置)
プログラム制御装置100は、例えば図1に示すように、いずれもタンジブルである、複数のプログラミングブロック120と、コアユニット160と、を有している。
(Program control device)
As shown in FIG. 1, for example, the
(プログラミングブロック120)
プログラミングブロック120は、例えば図1に示すように、現実空間内において物理的に直接触れることができるタンジブルな物体であり、略立方体(又は、略直方体)形状を有し、後述するように、当該立方体形状の各面を介して他のプログラミングブロック120が連結接続される。このプログラミングブロック120を複数個、連結接続することにより形成される集合体の全体配置形状は、ターゲット機器200の移動経路を規定する。すなわち、プログラミングブロック120は、ターゲット機器200を動作させる際の、ターゲット機器200の移動経路を規定するための入力装置として機能する。ここで、複数のプログラミングブロック120の全体配置形状は、二次元形状(すなわち、平面的に配置された形状)を有しているものであってもよいし、三次元形状(すなわち、立体的に配置された形状)を有しているものであってもよい。また、プログラミングブロック120は、ターゲット機器200を動作させる際に、上記の移動経路上でターゲット機器200が実行する特定の機能動作を設定するための入力装置としても機能する。
(Programming block 120)
For example, as shown in FIG. 1, the
なお、プログラミングブロック120は、他のプログラミングブロック120を連結接続した際に、プログラミングブロック120相互間、又は、コアユニット160との間で、後述するブロック情報や連結特定情報の送受信や駆動用の電力の授受を確実に行うことができる程度に、当該接続状態が強固かつ安定して保持されるものであることが好ましい。そのために、例えばプログラミングブロック120相互の接触面となる両面が凹凸形状を有し、互いに着脱可能に係止する構造を有しているものであってもよいし、両面が磁力等により吸着する構造を有しているものであってもよい。
When the
また、本実施形態においては、説明を簡明にするために、プログラミングブロック120が立方体形状を有しているものとして説明するが、本発明はこれに限定されるものではなく、上記のような接続状態を保持できるものであれば、任意の多面体形状を有するものであってもよいし、この例に限られないが略円柱形状や略円錐形状、略裁頭円錐形状、略球形状、略半球形状などのように表面の一部が曲面であるものであってもよい。また、本実施形態においては、ターゲット機器200の移動動作時の始点から終点までの経路(移動経路)を規定する、連結接続された複数のプログラミングブロック120のうち、始点となるプログラミングブロック120を他のプログラミングブロック120と区別するために、便宜的に「スタートブロック120S」と記す。
In the present embodiment, the
プログラミングブロック120は、例えば図2に示すように、ブロックI/F部122と、識別変移部124と、記憶部126と、制御部128と、を有している。また、スタートブロック120Sは、プログラミングブロック120の上記の構成に加え、外部インターフェース部(以下、「外部I/F部」と略記する)130を、さらに有している。
As illustrated in FIG. 2, for example, the
ブロックI/F部122は、連結検知部と、受信部と、送信部とを有している。
連結検知部は、自己のプログラミングブロック120又はスタートブロック120Sと、他のプログラミングブロック120との連結状態を検知する。具体的には、連結検知部は、立方体の6面(便宜的に、前後左右上下の6面とする)のうちのどの面、又は、どの方向に他のプログラミングブロック120が連結接続されているか、という連結状態を特定する情報(連結特定情報)を取得する。ここで、スタートブロック120Sは、立方体の6面のうち特定の一面側の方向が、ターゲット機器200の進行方向に対応する基準方向として設定されていて、他のプログラミングブロック120が連結接続されている面について、当該基準方向(ターゲット機器200の進行方向)に対する相対的な配置(方向や位置関係)が検知される。連結検知部により取得された連結特定情報は、記憶部126の記憶領域に記憶される。
The block I /
The connection detection unit detects a connection state between the
受信部は、自己のプログラミングブロック120に対して、ターゲット機器200の移動経路の終点側となる方向側(以下、便宜的に「後方側」と記す)に連結接続された他のプログラミングブロック120(すなわち、後方側のプログラミングブロック120)から、当該後方側のプログラミングブロック120が有するブロック情報を受信する。ここで、ブロック情報は、プログラミングブロック120に固有の識別情報(ID情報)や、ターゲット機器200に実行させる特定の機能動作を規定する機能情報を有している。また、後方側のプログラミングブロック120が連結特定情報を有している場合、すなわち、後方側のプログラミングブロック120のさらに後方側に他のプログラミングブロック120が連結接続されている場合には、受信部は、当該後方側のプログラミングブロック120が有する連結特定情報を受信する。受信部により受信したブロック情報や連結特定情報は、記憶部126の記憶領域に記憶される。
The receiving unit is connected to another programming block 120 (hereinafter referred to as “rear side” for the sake of convenience) connected to its
送信部は、自己のプログラミングブロック120に対して、ターゲット機器200の移動経路の始点側となる方向側(以下、便宜的に「前方側」と記す)に連結接続された他のプログラミングブロック120(すなわち、前方側のプログラミングブロック120)、又は、スタートブロック120Sに、自己のプログラミングブロック120が有するブロック情報を送信する。また、自己のプログラミングブロック120の後方側に他のプログラミングブロック120が連結接続されている場合には、当該後方側のプログラミングブロック120から受信したブロック情報、及び、連結検知部により取得された、後方側のプログラミングブロック120との連結状態を特定する連結特定情報を、前方側のプログラミングブロック120、又は、スタートブロック120Sに送信する。
The transmitting unit is connected to another programming block 120 (hereinafter, referred to as “front side” for the sake of convenience) that is connected to the
また、各プログラミングブロック120が駆動用の電力を供給する電源部を有していない場合には、ブロックI/F部122は、上記の各構成に加え、給電及び受電機構を有し、複数のプログラミングブロック120を連結接続する際の始点となるスタートブロック120Sから受電した駆動用の電力を後方側のプログラミングブロック120に順次給電する。この場合、スタートブロック120SのブロックI/F部122は、上記の各構成に加え、給電機構を有している。
In addition, when each
このようなブロックI/F部122は、他のプログラミングブロック120やスタートブロック120Sとの間で、上記のブロック情報や連結特定情報を送受信するために、非接触型、又は、接触型のインターフェースを有している。ここで、ブロックI/F部122として、非接触型のインターフェースを適用する場合には、例えば電子マネーカード等に用いられているNFC(Near Field Communication)等の近距離無線通信技術による方式や、赤外線等を用いた光通信方式を適用することができ、また、接触型のインターフェースを適用する場合には、端子電極相互を直接接続する方式を適用することができる。なお、ブロックI/F部122に適用されるインターフェースは、立方体の6面全て(前後左右上下の6面)に個別に設けられるものであってもよいし、6面全てに共通して設けられているものであってもよい。
Such a block I /
識別変移部124は、例えば発光部あるいは表示部を有し、プログラミングブロック120を用いたプログラミング操作の際に、ブロックI/F部122により自己のプログラミングブロック120が他のプログラミングブロック120やスタートブロック120Sに連結接続された状態が検知されると、発光部を所定の発光状態で発光させたり、表示部に表示される画像を変化させたりすることにより、当該プログラミングブロック120を識別可能な状態にする。
The
なお、この識別変移部124に適用される表示部は、電力を使用せずに表示される画像を変化させるものであってもよい。例えば、各プログラミングブロック120の内部には永久磁石が設置され、プログラミングブロック120相互を連結接続することに伴い、それぞれのプログラミングブロック120内の永久磁石間に生じる引力又は反発力によって、表示部が回転することで画像を変化させるというように、磁力を利用したものであってもよい。また、プログラミングブロック120のうち少なくとも他のプログラミングブロック120に連結接続される側に、プログラミングブロック120の内部へ向けて押圧変位される凸部を設けておいてもよい。そして、プログラミングブロック120相互を連結接続することに伴い、プログラミングブロック120の凸部が内方へ押圧変位され、その変位に連動して表示部が回転することで画像を変化させるというように、メカニカルな機構を有するものであってもよい。
Note that the display unit applied to the
また、識別変移部124は、プログラミング操作に基づいて生成されたプログラムを実行して、ターゲット機器200に移動動作させたり、予め設定された特定の機能動作を実行させたりする際に、当該ターゲット機器200の移動位置や機能動作を規定したプログラミングブロック120の発光部を所定の発光状態で発光させたり、表示部に表示される画像を変化させたりすることにより、ターゲット機器200の動作状態に対応するプログラミングブロック120を識別可能な状態にする。
Further, the
ここで、識別変移部124に適用される発光部は、例えば発光ダイオード(LED)を適用することができ、表示部は、例えば液晶や有機EL素子による表示方式を適用することができる。そして、識別変移部124は、プログラミング操作の際やプログラムの実行時に、発光部を所定の発光色や発光強度、発光パターンで発光させたり、表示部に表示される画像を変化させたりすることにより、視覚的に識別可能な状態に変移させる。
Here, for example, a light emitting diode (LED) can be applied to the light emitting unit applied to the
なお、図2においては、識別変移部124として発光部又は表示部を設けた形態を示したが、本発明はこの形態に限定されるものではなく、音響部や振動部をさらに備え、発音や振動させる形態や、当該発音や振動の繰り返し時間や振幅、周波数、パターンを変化させる形態を有しているものであってもよい。これによれば、ユーザの視覚に加え聴覚や触覚を通して、プログラミング操作の対象になっているプログラミングブロック120や、ターゲット機器200の動作状態に対応するプログラミングブロック120が、より確実に識別可能になる。
In FIG. 2, a mode in which a light emitting unit or a display unit is provided as the
記憶部126は、自己のプログラミングブロック120又はスタートブロック120Sに固有のブロック情報を記憶するとともに、後方側に他のプログラミングブロック120が連結接続されている場合には、当該後方側のプログラミングブロック120が有するブロック情報、及び、当該後方側のプログラミングブロック120との連結状態を特定する連結特定情報を記憶する。
The
ここで、記憶部126は、ブロック情報として、自己のプログラミングブロック120又はスタートブロック120Sに固有の識別情報、及び、ターゲット機器200の機能動作を規定する機能情報を記憶する。また、記憶部126は、後方側に他のプログラミングブロック120が連結接続されている場合には、全ての後方側のプログラミングブロック120が有するブロック情報、及び、全ての後方側のプログラミングブロック120の連結状態を特定する連結特定情報を記憶する。本実施形態においては、これらの自己及び後方側に連結接続された全てのプログラミングブロック120に関するブロック情報と連結特定情報とを「入力操作情報」と総称する。したがって、スタートブロック120Sの記憶部126には、連結接続された全てのプログラミングブロック120に関する入力操作情報が記憶されることになる。
Here, the
また、記憶部126は、当該プログラミングブロック120に連結接続された他のプログラミングブロック120から送信された入力操作情報を一時的に記憶領域に記憶する。さらに、記憶部126は、後述する制御部128においてプログラミングブロック120の各部の動作を制御するためのプログラムや各種の情報を記憶するものであってもよい。すなわち、記憶部126は、RAM及びROMを有するものである。
In addition, the
外部I/F部130は、スタートブロック120Sにのみ設けられ、スタートブロック120Sと後述するコアユニット160との間で通信を行い、記憶部126の記憶領域に記憶された入力操作情報(連結接続された全てのプログラミングブロック120が有するブロック情報、及び、連結接続された全てのプログラミングブロック120相互の連結状態を特定する連結特定情報)をコアユニット160に送信する。また、スタートブロック120Sが駆動用の電力を供給する電源部を有していない場合には、外部I/F部130は、受電機構を有し、後述するコアユニット160から受電した駆動用の電力を、ブロックI/F部122を介して後方側のプログラミングブロック120に給電する。
The external I /
このような外部I/F部130は、非接触型、又は、接触型のインターフェースを有している。ここで、外部I/F部130として、非接触型のインターフェースを適用する場合には、例えばNFCやBluetooth(登録商標)、Wi-Fi(Wireless Fidelity;登録商標)等の無線通信方式や、赤外線等を用いた光通信方式を適用することができ、また、接触型のインターフェースを適用する場合には、各種の通信ケーブルを用いた有線通信方式や、端子電極相互を直接接続する方式を適用することができる。
Such an external I /
制御部128は、上記のブロックI/F部122、識別変移部124、記憶部126、外部I/F部130を有するプログラミングブロック120の各部の動作を制御するコンピュータのプロセッサである。特に、プログラミングブロック120の制御部128は、ブロックI/F部122により後方側に他のプログラミングブロック120が連結接続された状態を検知した場合には、当該後方側のプログラミングブロック120が有するブロック情報を受信するとともに、当該後方側のプログラミングブロック120との連結状態を特定する連結特定情報を取得して記憶部126の記憶領域に記憶する。また、プログラミングブロック120の制御部128は、ブロックI/F部122により前方側の他のプログラミングブロック120やスタートブロック120Sに連結接続された状態を検知した場合には、記憶部126の記憶領域に記憶されたブロック情報や連結特定情報を、当該前方側のプログラミングブロック120やスタートブロック120Sに送信するとともに、識別変移部124により自己のプログラミングブロック120を所定の発光状態で発光させたり、表示画像を変化させたりして識別可能な状態にする。
The
一方、スタートブロック120Sの制御部128は、ブロックI/F部122によりプログラミングブロック120が連結接続された状態を検知した場合には、連結接続された全ての後方側のプログラミングブロック120が有するブロック情報、及び、連結接続された全ての後方側のプログラミングブロック120の連結状態を特定する連結特定情報を受信して記憶部126の記憶領域に記憶する。さらに、制御部128は、外部I/F部130を介してプログラミング操作により記憶部126の記憶領域に記憶された各種情報をコアユニット160へ送信する。
On the other hand, when the
(コアユニット160)
コアユニット160は、例えば図1に示すように、一面側(図面、上面)に操作スイッチが配置された直方体形状や平板形状を有している。このコアユニット160は、プログラミングブロック120を用いたプログラミング操作により取得された情報に基づいて、ターゲット機器200を動作させるためのプログラムを生成するとともに、当該プログラムを実行して、ターゲット機器200の動作状態を制御するコントロール装置として機能する。
(Core unit 160)
For example, as shown in FIG. 1, the
コアユニット160は、具体的には、例えば図2に示すように、操作部162と、外部I/F部164と、記憶部166と、通信インターフェース部(以下、「通信I/F部」と略記する) 168と、制御部170と、電源部172と、を有している。
Specifically, the
操作部162は、ユーザが操作を行うことにより上述したプログラミングブロック120を用いたプログラミング操作により取得された情報に基づいてプログラムを生成するとともに、当該プログラムの実行状態を指示する。具体的には、操作部162は、生成したプログラムの実行状態を選択する複数のプッシュスイッチやタッチセンサ、あるいは、タッチパネルを有している。ここで、操作部162には、例えば図1に示すように、後述する制御部170により生成されたプログラム全体を一括して実行する一括実行スイッチ182や、当該プログラムの命令を1ステップずつ実行するステップ実行スイッチ184、実行されているプログラムを停止する実行停止スイッチ186、ターゲット機器200を初期位置(スタート地点)まで戻すホームスイッチ188等のプッシュスイッチが配置されている。そして、操作部162は、ユーザがいずれかのスイッチを押下した状態、又は、スイッチに接触した状態を検出すると、当該スイッチ操作に応じてプログラムの生成及び実行状態を指示する制御信号を後述する制御部170に出力する。
The
外部I/F部164は、コアユニット160とスタートブロック120Sとの間で通信を行い、スタートブロック120Sから送信された入力操作情報を受信する。また、記憶部166は、スタートブロック120Sから外部I/F部164を介して受信した入力操作情報を所定の記憶領域に記憶するとともに、これらの情報に基づいて、後述する制御部170により生成されたプログラムを別の記憶領域に記憶する。また、記憶部166は、制御部170において受信した入力操作情報に基づいてターゲット機器200の動作状態を制御するためのプログラムを生成するためのプログラムや、コアユニット160の各部の動作を制御するためのプログラム、その他、各種の情報を記憶するものであってもよい。すなわち、記憶部166は、RAM及びROMを有するものである。
The external I /
通信I/F部168は、コアユニット160とターゲット機器200との間で通信を行い、記憶部166の記憶領域に記憶されたプログラムをターゲット機器200に送信する。具体的には、通信I/F部168は、非接触型、又は、接触型のインターフェースを有し、非接触型のインターフェースを適用する場合には、例えばWi-Fi(登録商標)やBluetooth(登録商標)等の無線通信方式や、赤外線等を用いた光通信方式を適用することができ、また、接触型のインターフェースを適用する場合には、通信ケーブルを用いた有線通信方式を適用することができる。
The communication I /
制御部170は、上記の操作部162、外部I/F部164、記憶部166、通信I/F部168、及び、後述する電源部172を有するコアユニット160の各部の動作を制御するコンピュータのプロセッサである。特に、制御部170は、操作部162によりプログラムの生成、実行に関するユーザの指示を検出した場合には、スタートブロック120Sから送信される入力操作情報に基づいて、ターゲット機器200の動作状態を制御するプログラムを生成する。
The
具体的には、制御部170は、操作部162において、一括実行スイッチ182又はステップ実行スイッチ184が操作されて押下又は接触状態を検出すると、スタートブロック120Sから送信された入力操作情報(連結接続された全てのプログラミングブロック120のブロック情報及び連結特定情報)に基づいて、ターゲット機器200の動作状態(移動動作及び機能動作)を制御するための命令を有するプログラムを生成する。ここで、プログラミング操作により取得された上記の各情報はプログラムのソースコードに対応し、制御部170は、このソースコードをターゲット機器200において実行可能な機械語からなるプログラムに変換(コンパイル)して、記憶部166の記憶領域に記憶する。なお、この変換処理は、プログラム全体を一括して行うものであってもよいし、プログラムの1ステップの命令ごとに行うものであってもよい。
Specifically, when the
なお、本実施形態においては、コアユニット160に設けた制御部170により、プログラミング操作により取得した入力操作情報に基づいて、ターゲット機器200を動作させるためのプログラムを生成する場合について説明した。本発明はこれに限定されるものではなく、例えば後述するターゲット機器200に設けられた制御部により、コアユニット160から送信される入力操作情報に基づいて、ターゲット機器200内でプログラムを生成するものであってもよい。
In the present embodiment, a case has been described in which the
また、制御部170は、操作部162におけるスイッチ操作に応じて、生成されたプログラムをターゲット機器200に送信してターゲット機器200の動作状態を制御する。さらに、制御部170は、電源部172によりコアユニット160内の各部、及び、スタートブロック120S、プログラミングブロック120への駆動用の電力の供給状態を制御する。
Further, the
電源部172は、コアユニット160内の各部に駆動用の電力を供給する。また、電源部172は、コアユニット160とスタートブロック120Sとを接続することにより外部I/F部164、130を介して、スタートブロック120S内の各部に駆動用の電力を供給する。スタートブロック120Sに供給された電力は、ブロックI/F部122を介して、スタートブロック120Sに連結接続された複数のプログラミングブロック120に順次供給される。ここで、電源部172は、例えば商用交流電源から電力が供給されるものであってもよいし、乾電池等の一次電池やリチウムイオン電池等の二次電池を備えるものであってもよいし、環境発電技術による発電部と二次電池を備えるものであってもよい。
The power supply unit 172 supplies driving power to each unit in the
なお、本実施形態においては、コアユニット160にのみ電源部172を備え、スタートブロック120S及びプログラミングブロック120には電源部を備えていない形態を示した。この形態においては、コアユニット160とスタートブロック120Sとを接続することにより双方の外部I/F部164、130に設けられた給電及び受電機構を介して、コアユニット160からスタートブロック120Sへ駆動用の電力が供給される。さらに、スタートブロック120Sにプログラミングブロック120が連結接続されることにより双方のブロックI/F部122に設けられた給電及び受電機構を介して、スタートブロック120Sからプログラミングブロック120へ駆動用の電力が供給される。ここで、外部I/F部130、164や、ブロックI/F部122に設けられる給電及び受電機構としては、電磁誘導方式等の非接触型、又は、ケーブルや端子電極を直接接続する接触型の機構を適用することができる。
In the present embodiment, only the
また、本発明に適用可能な他の形態としては、例えば図3に示すように、スタートブロック120S及びプログラミングブロック120に各々固有の電源部132を有するものであってもよいし、スタートブロック120Sにのみ固有の電源部132を有するものであってもよい。スタートブロック120Sにのみ固有の電源部132を有する形態においては、ブロックI/F部122に設けられた給電及び受電機構を介して、スタートブロック120Sから連結接続された複数のプログラミングブロック120へ駆動用の電力が順次供給される。ここで、電源部132は、例えばボタン電池等の一次電池やリチウムイオン電池等の二次電池を備えるものであってもよいし、環境発電技術による発電部と二次電池を備えるものであってもよい。
As another form applicable to the present invention, for example, as shown in FIG. 3, the
さらに、本発明に適用可能な他の形態としては、例えば、図2に示したように、コアユニット160にのみ電源部172を備えた形態や、スタートブロック120Sにのみ電源部132を備えた形態において、スタートブロック120Sに連結接続される複数のプログラミングブロック120のうちの、任意のプログラミングブロック120に昇圧回路を備えたものであってもよいし、昇圧機能のみを有するブロックをプログラミングブロック120間に適宜連結接続するものであってもよい。これにより、スタートブロック120Sに複数のプログラミングブロック120が連結接続されている場合であっても、終端側のプログラミングブロック120にまで十分な電力を供給することができる。
Furthermore, as other forms applicable to the present invention, for example, as shown in FIG. 2, a form in which the power supply unit 172 is provided only in the
少なくともスタートブロック120Sが固有の電源部132を有する形態においては、スタートブロック120Sにコアユニット160を接続しない状態においても、ユーザはスタートブロック120S及びプログラミングブロック120を用いてプログラミング操作を行うことができる。また、コアユニット160をスタートブロック120S及びプログラミングブロック120から離間させて独立した状態で(すなわち、コアユニット160単体で)、操作部162の各スイッチを操作することにより、入力操作情報に基づくプログラム生成処理や、ターゲット機器200の動作状態の制御を行うことができる。
In a form in which at least the
(ターゲット機器200)
ターゲット機器200は、ユーザによる入力操作に基づいてプログラム制御装置100により生成されたプログラムの実行対象である。本実施形態ではターゲット機器200として、例えば図1に示すように、現実空間内において地上を走行する実体のある自走式の玩具や、ドローン等の飛行体を適用した場合について示す。しかしながら、ターゲット機器200は当該生成されたプログラムに基づいて動作状態が制御されるものであればよく、タンジブルな移動体の他に、スマートフォンやタブレット等のモバイル端末、パーソナルコンピュータ等の情報通信機器において実行されるアプリケーションソフトウェア、又は、当該アプリケーションソフトウェアにより実現される仮想空間内のオブジェクト、すなわち、タンジブルでない移動体であってもよい。
(Target device 200)
The
ターゲット機器200は、プログラミングブロック120を用いたプログラミング操作において、スタートブロック120Sに連結接続された複数のプログラミングブロック120の集合体の全体配置形状により決定された仮想経路に対応する移動経路に沿って移動する。ここで、ターゲット機器200は、仮想経路を形成する複数のプログラミングブロック120の全体配置形状を第1形状とした場合、当該第1形状を拡大した相似形状である第2形状を有する経路を移動経路として移動する。また、ターゲット機器200は、機能動作が設定されたプログラミングブロック120の連結位置に対応する位置で、当該プログラミングブロック120に設定された機能動作を実行する。
In the programming operation using the
ターゲット機器200は、具体的には、例えば図2に示すように、駆動部202と、機能部204と、通信I/F部206と、記憶部208と、制御部210と、電源部212と、を有している。
Specifically, the
駆動部202は、ターゲット機器200を移動動作させるための駆動輪(タイヤ)やプロペラ等であって、プログラミングブロック120を用いたプログラミング操作において決定された仮想経路に対応する移動経路に沿ってターゲット機器200を移動させる。
The
機能部204は、発光部や表示部、音響部、振動部、撮像部、各種センサ等であって、プログラミング操作においてプログラミングブロック120に設定された機能情報に基づいて特定の機能動作を実行する。ここで、ターゲット機器200に設定される機能動作としては、例えば発光部を所定の発光状態で発光させる動作や、表示部に表示される画像を変化させる動作、音響部により所定の音や楽音を発生する動作、振動部を所定のパターンで振動させる動作、ターゲット機器200を当該位置で回転させたりジャンプさせたりする動作、撮像部により周囲を撮影する動作、各種のセンサによりセンシングする動作等を有する。これらに代表される機能動作は、ターゲット機器200の移動経路のうち、当該機能情報を記憶したプログラミングブロック120の連結位置に対応する位置で、移動経路の進行方向又は逆行方向への移動を伴わない動作(いわゆる、アクション)である。なお、機能情報は、これらの機能動作を単独で実行することを規定するものであってもよいし、複数の機能動作を組み合わせて実行することを規定するものであってもよい。
The
通信I/F部206は、ターゲット機器200とコアユニット160との間で通信を行い、コアユニット160の制御部170により生成されたプログラムを受信する。また、記憶部208は、コアユニット160から通信I/F部206を介して受信したプログラムを所定の記憶領域に記憶する。
The communication I /
制御部210は、上記の駆動部202、機能部204、通信I/F部206、記憶部208、及び、後述する電源部212の各部の動作を制御するコンピュータのプロセッサである。特に、制御部210は、コアユニット160から通信I/F部206を介して受信し、記憶部208の記憶領域に記憶されたプログラムを実行することにより、駆動部202を制御してプログラミング操作により決定された仮想経路に対応する移動経路に沿ってターゲット機器200を移動させるとともに、機能部204を制御してプログラミング操作により設定された機能動作を実行させる。また、制御部210は、コアユニット160における操作部162のスイッチ操作に応じてプログラムの実行状態を制御する。さらに、制御部170は、電源部212によりターゲット機器200内の各部への駆動用の電力の供給状態を制御する。
The control unit 210 is a computer processor that controls the operations of the
電源部212は、ターゲット機器200内の各部に駆動用の電力を供給する。電源部212は、例えば商用交流電源から電力が供給されるものであってもよいし、乾電池等の一次電池やリチウムイオン電池等の二次電池を備えるものであってもよいし、環境発電技術による発電部と二次電池を備えるものであってもよい。
The
なお、本実施形態に適用されるターゲット機器200は、図1に示したように、二次元空間である地上を走行する自走式の玩具や、三次元空間である空中を飛行するドローン等の飛行体に限定されるものではなく、水上を移動する船体であってもよいし、水中を移動する潜水体であってもよい。ここで、ターゲット機器200が飛行体や潜水体の場合には、移動経路の始点で当該ターゲット機器200が地上から一定の高度に上昇、又は、水面から一定の水深に潜水し、移動経路の終点で地上に下降、又は、水面に浮上する動作を行うものであってもよい。
As shown in FIG. 1, the
また、ターゲット機器200として、モバイル端末や情報通信機器において実行されるアプリケーションソフトウェアを適用する場合には、当該アプリケーションソフトウェアにより実現される仮想空間内において、前述のオブジェクト(例えばゲーム画面内のキャラクタやアイテム等)の動作状態を制御して当該仮想空間内の任意の経路で移動させたり、任意の機能を実行させたりする。
In addition, when application software executed on a mobile terminal or information communication device is applied as the
(プログラミング操作及びプログラム生成、実行方法)
次に、本実施形態に係るプログラミング教育装置におけるプログラミング操作及びプログラム生成、実行方法(プログラミング方法)について説明する。
(Programming operation and program generation, execution method)
Next, programming operations, program generation, and execution methods (programming methods) in the programming education apparatus according to the present embodiment will be described.
図4は、本実施形態に係るプログラミング教育装置におけるプログラミング操作及びプログラム生成、実行方法の一例(ノーマルモード)を示すフローチャートである。図5、図6は、本実施形態に適用されるプログラミング操作処理(平面的配置)を説明するための概略図である。図5(a)、(b)及び図6の左図はプログラミング操作を説明するための斜視図であり、同右図はプログラミング操作時のプログラミングブロックの配置形状を示す平面図である。また、図7、図8は、本実施形態に適用されるプログラム生成、実行処理(一括処理)を説明するための概略図であり、図9、図10は、本実施形態に適用されるプログラム生成、実行処理(ステップ処理)を説明するための概略図である。なお、図4に示すフローチャートのうちの、モードの切り換え設定に係る処理動作(ステップS104)については、後述する変形例1において詳しく述べるため、本実施形態では説明を適宜省略する。
FIG. 4 is a flowchart showing an example (normal mode) of programming operation, program generation, and execution method in the programming education apparatus according to the present embodiment. 5 and 6 are schematic diagrams for explaining the programming operation processing (planar arrangement) applied to this embodiment. 5A, 5B, and 6 are left perspective views for explaining a programming operation, and the right figure is a plan view showing an arrangement shape of programming blocks during the programming operation. 7 and 8 are schematic diagrams for explaining program generation and execution processing (collective processing) applied to the present embodiment. FIGS. 9 and 10 are programs applied to the present embodiment. It is the schematic for demonstrating a production | generation and an execution process (step process). Note that the processing operation (step S104) relating to the mode switching setting in the flowchart shown in FIG. 4 will be described in detail in
本実施形態に係るプログラミング教育装置におけるプログラミング操作及びプログラム生成、実行方法においては、大別して、プログラミングブロック120を用いたタンジブルな入力操作によるプログラミング操作処理と、当該プログラミング操作により取得した入力操作情報に基づくプログラム生成処理と、コアユニット160とターゲット機器200とを用いたプログラム実行処理と、が実行される。プログラミング教育装置における、これらの各制御処理は、上述したプログラミングブロック120やコアユニット160、ターゲット機器200に設けられた各制御部において、独立して又は相互に連携して特定の制御プログラムを実行することにより実現されるものである。
The programming operation, program generation, and execution method in the programming education device according to the present embodiment are roughly classified into programming operation processing by tangible input operation using the
(プログラミング操作処理)
本実施形態に係るプログラミング教育装置におけるプログラミング操作処理においては、図4のフローチャート及び図5(a)に示すように、まず、ユーザは、プログラミング教育装置のスタートブロック120Sとコアユニット160とを接続した状態でコアユニット160の電源を投入することによりプログラム制御装置100を起動するとともに、ターゲット機器200の電源を投入して起動する(ステップS102)。
(Programming operation processing)
In the programming operation process in the programming education apparatus according to the present embodiment, as shown in the flowchart of FIG. 4 and FIG. 5A, the user first connects the
次いで、プログラミングブロック120を用いてプログラミング操作処理を実行する。まず、図5(a)、(b)に示すように、ユーザが、ターゲット機器200を動作させる際の移動経路をイメージして、コアユニット160に接続されたスタートブロック120Sを移動経路に対応する仮想経路の始点(スタート)として、当該始点と終点(ゴール)を含む2以上のプログラミングブロック120を順次連結接続する。
A programming operation process is then performed using
ここで、図5(a)、(b)、図6に示すように、スタートブロック120Sを始点として、移動経路の終点側となる方向に、後方側のプログラミングブロック120を順次連結接続し、複数のプログラミングブロック120を二次元空間に平面的に配置する場合には、スタートブロック120Sやプログラミングブロック120の立方体形状の6面のうち、前後左右に相当する側面(図5(a)、(b)、図6右側の平面図における上下左右の4面)のいずれかの面にプログラミングブロック120が連結接続される。これにより、図6に示すように、スタートブロック120Sを始点として終点まで連結接続された複数のプログラミングブロック120の配置形状により、ターゲット機器200の移動経路を規定する平面的な仮想経路が決定される(ステップS106)。なお、本実施形態においては、スタートブロック120Sを始点として連結接続される複数のプログラミングブロック120のうち、終点となるプログラミングブロック120を便宜的に「終端ブロック120G」と記す。
Here, as shown in FIG. 5A, FIG. 5B, and FIG. 6, the
また、ターゲット機器200の移動経路の任意の位置において特定の機能動作を実行させる設定をする場合には、ユーザは、移動経路に対応する仮想経路を形成する複数のプログラミングブロック120のうち、当該機能動作を実行する位置に対応するプログラミングブロック120に、所望の機能動作に関する機能情報を設定する(ステップS108)。ここで、ターゲット機器200の機能動作を設定する手法としては、例えば図5(b)、図6に示すように、予め特定の機能動作に関する機能情報が設定されたプログラミングブロック(以下、「機能設定ブロック」と記す)120Fを用意して、仮想経路を形成する複数のプログラミングブロック120のうちの、当該機能動作を実行する位置に対応するプログラミングブロック120として、上記の機能設定ブロック120Fを連結接続する。なお、ターゲット機器200の機能動作を設定する手法については、この手法に限定されるものではなく、様々な形態を適用することができる。機能動作を設定する他の手法については、詳しくは後述する。
In addition, when setting to execute a specific function operation at an arbitrary position on the movement path of the
なお、プログラミング操作処理において、複数のプログラミングブロック120を連結接続して、ターゲット機器200の移動経路に対応する仮想経路のみを決定し、移動経路上でターゲット機器200に特定の機能動作を実行させない場合には、上記のステップS108の処理動作は省略される。
In the programming operation process, a plurality of programming blocks 120 are connected and connected, only a virtual path corresponding to the movement path of the
上記のステップS106、S108に示したプログラミング操作処理においては、具体的には次のような処理動作が実行される。
図5(a)、(b)、図6に示したように、スタートブロック120Sを始点としてターゲット機器200の移動経路に対応する仮想経路を形成する複数のプログラミングブロック120を連結接続した場合、スタートブロック120Sにおいては、まず、スタートブロック120Sの制御部128がブロックI/F部122の連結検知部により、スタートブロック120Sの立方体形状の側面にプログラミングブロック120が連結接続されているか否かを検知する。プログラミングブロック120が連結接続されている場合には、スタートブロック120Sの制御部128は当該プログラミングブロック120が連結接続されている面について、スタートブロック120Sに対する相対的な配置(すなわち、スタートブロック120Sと後方側のプログラミングブロック120との連結状態)を特定して連結特定情報を取得する。取得した連結特定情報は記憶部126の記憶領域に記憶される。
In the programming operation process shown in steps S106 and S108, specifically, the following processing operation is executed.
As shown in FIGS. 5A, 5B, and 6, when a plurality of programming blocks 120 that form a virtual path corresponding to the movement path of the
次いで、スタートブロック120Sの制御部128は、検知した後方側のプログラミングブロック120に対して、ブロックI/F部122を介してスタートブロック120Sが有するブロック情報(スタートブロックであることを示す固有の識別情報を含む)を送信する。さらに、スタートブロック120Sの制御部128は、後方側のプログラミングブロック120に対して、当該プログラミングブロック120が有するブロック情報や連結特定情報の送信を要求する命令信号を送信して、後方側のプログラミングブロック120からの応答を待機する状態に移行する。次いで、後方側のプログラミングブロック120から応答があり、当該プログラミングブロック120が有するブロック情報や連結特定情報を受信した場合には、スタートブロック120Sの制御部128は、当該プログラミングブロック120のブロック情報や連結特定情報を記憶部126の記憶領域に記憶する。
Next, the
一方、スタートブロック120S又は他のプログラミングブロック120に連結接続された後方側のプログラミングブロック120においては、スタートブロック120S又は前方側のプログラミングブロックから、当該後方側のプログラミングブロック120が有するブロック情報や連結特定情報の送信を要求する命令信号を受信した場合には、当該後方側のプログラミングブロック120の制御部128は、当該後方側のプログラミングブロック120のさらに後方側にプログラミングブロック120が連結接続されているか否かを検知する。さらに後方側にプログラミングブロック120が連結接続されている場合には、当該後方側のプログラミングブロック120の制御部128は、当該後方側のプログラミングブロック120とさらに後方側のプログラミングブロック120との連結状態を特定して、取得した連結特定情報を記憶部126の記憶領域に記憶する。
On the other hand, in the
次いで、後方側のプログラミングブロック120の制御部128は、検知したさらに後方側のプログラミングブロック120に対して、ブロックI/F部122を介して当該後方側のプログラミングブロック120が有するブロック情報(当該プログラミングブロック120であることを示す固有の識別情報を含む)、及び、全ての前方側のプログラミングブロック120に関するブロック情報を送信する。さらに、当該後方側のプログラミングブロック120の制御部128は、さらに後方側のプログラミングブロック120に対して、当該プログラミングブロック120が有するブロック情報や連結特定情報の送信を要求する命令信号を送信して、さらに後方側のプログラミングブロック120からの応答を待機する状態に移行する。次いで、さらに後方側のプログラミングブロック120から応答があり、当該プログラミングブロック120が有するブロック情報や連結特定情報を受信した場合には、後方側のプログラミングブロック120の制御部128は、当該プログラミングブロック120のブロック情報や連結特定情報、さらに後方側のプログラミングブロック120から受信した、全ての後方側のプログラミングブロック120に関するブロック情報及び連結特定情報を、スタートブロック120S又は前方側のプログラミングブロック120へ送信する。
Next, the
また、後方側のプログラミングブロック120のさらに後方側にプログラミングブロック120が連結接続されていない場合には、当該後方側のプログラミングブロック120が終端ブロック120G(すなわち、仮想経路の終点)であるので、当該プログラミングブロック120が有するブロック情報(終端ブロック120Gであることを示す固有の識別情報を含む)や連結特定情報を、スタートブロック120S又は前方側のプログラミングブロック120へ送信する。
In addition, when the
これにより、スタートブロック120Sは、連結接続された全ての後方側のプログラミングブロック120に関するブロック情報及び連結特定情報を受信して記憶部126の記憶領域に記憶する。そして、スタートブロック120Sが有するブロック情報や連結特定情報、後方側のプログラミングブロック120から受信した、全ての後方側のプログラミングブロック120に関するブロック情報及び連結特定情報は、所定のタイミングで外部I/F部130を介してコアユニット160へ送信される。
As a result, the
このとき、スタートブロック120Sとの間で通信を行い、各種情報や信号の送受信を行っている後方側のプログラミングブロック120において、当該プログラミングブロック120の制御部128は、識別変移部124を所定の発光状態で発光させたり、表示画像を変化させたりして、当該プログラミングブロック120の動作状態を視覚的に識別可能な状態に変移させる(図5(b)中では便宜的に濃いハーフトーンで表記)。なお、このとき、スタートブロック120Sにおいても、識別変移部124を所定の発光状態で発光させたり、表示画像を変化させたりして、当該スタートブロック120Sの動作状態を視覚的に識別可能な状態に変移させるものであってもよい。
At this time, in the
ここで、スタートブロック120S及び各プログラミングブロック120の識別変移部124が発光部を有する場合には、スタートブロック120S及び各プログラミングブロック120の制御部128は、例えば、連結接続された各プログラミングブロック120の発光部を所定の発光色や発光強度で常時発光(点灯)させたり、発光色を変化させたり、所定の発光パターンで発光(点減)させたりする動作を継続(保持)する。また、制御部128は、プログラミング操作処理中に、コアユニット160の操作部162に設けられたプログラム確認スイッチ(図示を省略)等を操作したり、一定時間プログラミング操作がなかったりした場合や定期的等の条件をトリガーとして、連結接続されて既に決定された移動経路の順番にしたがって、スタートブロック120S及び各プログラミングブロック120の発光部を時分割で順次発光させる動作を実行する。このように、スタートブロック120S及び各プログラミングブロック120における識別変移部124の変移状態(この場合は発光状態)を保持、又は、特定の条件をトリガーとして所定の変移状態を提示することにより、プログラミング操作の内容や進行状況、当該プログラミング操作により決定された現時点までの移動経路やターゲット機器200の移動順序、機能動作等を視覚的に把握、理解し易くなる。
Here, when the identification block 124 of the
また、制御部128は、プログラミング操作処理中に連結接続したプログラミングブロック120間で正常に情報や信号の送受信が行えない場合や、予め連結接続が禁止されたプログラミングブロック120同士を接続させた場合等、プログラム制御装置100の動作に異常が発生した場合には、スタートブロック120Sや各プログラミングブロック120の発光部を発光させないようにしたり、通常とは異なる発光色や発光パターンで発光させたりする制御を行う。これにより、プログラミング操作時の誤り等をユーザに報知する。さらに、制御部128は、スタートブロック120Sや各プログラミングブロック120の識別変移部124が音響部や振動部を備えている場合には、上記の発光部における発光動作に加え、あるいは、当該発光動作に替えて、音響部や振動部における発音や振動の振幅や周波数、パターンを変化させて、プログラミング操作時の誤り等をユーザに報知するものであってもよい。
In addition, the
本実施形態においては、複数のプログラミングブロック120を連結接続した際の配置形状により、ターゲット機器200の全移動経路に対応する仮想経路を決定し、かつ、仮想経路上の任意の位置に機能設定ブロックを連結接続することにより、移動経路上で実行する全ての機能動作を設定するプログラミング操作が終了するまで、上記のステップS106、S108を繰り返し実行する(ステップS110のNo)。
In the present embodiment, a virtual path corresponding to all the movement paths of the
なお、ステップS106、S108に示したプログラミング操作は、ターゲット機器200の移動経路を順次決定しつつ、ターゲット機器200における機能動作を順次設定するものであってもよいし、後述する機能動作の設定方法に示すように、ターゲット機器200の全移動経路を決定した後、ターゲット機器200における全ての機能動作を設定するものであってもよい。
Note that the programming operation shown in steps S106 and S108 may sequentially set the functional operation in the
そして、図6に示すように、プログラミングブロック120を用いたプログラミング操作処理を終了した状態においては、スタートブロック120S及び各プログラミングブロック120の制御部128は、上記のステップS106、S108に示したように、プログラミング操作により決定された全移動経路に対応し、さらに、ターゲット機器200における機能動作を設定するスタートブロック120S及び各プログラミングブロック120の識別変移部124の変移状態を保持したり、特定の条件をトリガーとして所定の変移状態を提示したりする。これにより、プログラミング操作により決定されたターゲット機器200の全移動経路やその移動順序、全ての機能動作やその実行順序等を視覚的に把握、理解し易くなる。
As shown in FIG. 6, in the state where the programming operation process using the
また、上記のプログラミング操作処理を終了すると(ステップS110のYes)、プログラミングブロック120及びコアユニット160を用いたプログラム生成処理の実行が可能な待機状態に設定される。
When the programming operation process is finished (Yes in step S110), a standby state in which the program generation process using the
そして、図7(a)に示すように、ユーザが、コアユニット160の操作部162に設けられたプログラム実行スイッチ(一括実行スイッチ182又はステップ実行スイッチ184)を操作すると(ステップS112)、ステップS114〜S120のプログラム一括生成、実行処理、又は、ステップS122〜S130のプログラムステップ生成、実行処理が実行される。
7A, when the user operates a program execution switch (
(プログラム一括生成、実行処理)
上記のステップS112において、図7(a)に示すように、ユーザが、コアユニット160に設けられた一括実行スイッチ182をオン操作すると、プログラム一括生成、実行処理が実行される。プログラム一括生成、実行処理においては、まず、コアユニット160の制御部170が、スタートブロック120Sの制御部128に制御信号を送信して、上記のプログラミング操作処理により取得したブロック情報や連結特定情報を有する入力操作情報を一括してスタートブロック120Sから受信する(ステップS114)。受信した入力操作情報は、記憶部166の記憶領域に記憶される。
(Program batch generation, execution processing)
In step S112, as shown in FIG. 7A, when the user turns on the
次いで、制御部170は、スタートブロック120Sから受信した入力操作情報をソースコードとして、ターゲット機器200の動作状態(移動動作及び機能動作)を制御するための命令を有するプログラムを一括して生成する(ステップS116)。具体的には、制御部170は、入力操作情報に含まれる連結特定情報に基づいて、連結接続された複数のプログラミングブロック120の全体配置形状を特定するとともに、入力操作情報に含まれるブロック情報(機能情報)に基づいて、連結接続された各プログラミングブロック120の任意の位置で実行される機能動作を特定する。ここで、連結接続された複数のプログラミングブロック120の全体配置形状は、ターゲット機器200の移動経路を規定する。制御部170は、特定した内容に基づいて、ターゲット機器200が実行可能な形式のプログラムを生成する。制御部170において生成されたプログラムは、コアユニット160の記憶部166の所定の記憶領域に記憶される。
Next, the
次いで、制御部170は、図7(a)に示すように、生成されたプログラムを、通信I/F部168を介して、ターゲット機器200に一括して転送する(ステップS118)。ターゲット機器200の制御部210は、転送されたプログラムを実行して、駆動部202及び機能部204を動作させることにより、図7(a)、(b)、図8に示すように、上述したプログラミングブロック120を用いたプログラミング操作処理において決定された平面的な仮想経路に対応する移動経路(図中、太点線で表記)に沿って順次移動する全体動作を行う(ステップS120)。
Next, as illustrated in FIG. 7A, the
このとき、コアユニット160の制御部170は、通信I/F部168を介して、ターゲット機器200からプログラムの実行状態(すなわち、ターゲット機器200の移動位置や機能動作の実行状態)に関する情報を随時受信し、スタートブロック120S及び各プログラミングブロック120の制御部128にプログラム実行情報として送信する。各制御部128は、コアユニット160から受信したプログラム実行情報に基づいて、図7(a)、(b)、図8に示すように、現在時点におけるターゲット機器200の移動経路上での位置に対応する各プログラミングブロック120の識別変移部124を特定の発光状態で発光させたり、表示画像を変化させたりして視覚的に識別可能な状態に変移させる(図7(a)、(b)中では便宜的に濃いハーフトーン、図8中では便宜的に濃いハッチングで表記)。
At this time, the
また、図8に示すように、ターゲット機器200が、プログラミング操作において特定の機能動作を設定した位置に移動し、当該機能動作を実行している場合には、当該機能動作を設定した機能設定ブロック120Fの制御部128は、ターゲット機器200から受信したプログラム実行情報に基づいて、識別変移部124を特定の発光状態で発光させたり、表示画像を変化させたりして視覚的に識別可能な状態に変移させる。なお、図8においては、ターゲット機器200の機能動作として特定の楽音を発生する場合を示し、当該機能動作に対応する機能設定ブロック120Fを濃いハッチングで表記した。
In addition, as shown in FIG. 8, when the
ここで、プログラミングブロック120の識別変移部124が発光部を有する場合には、プログラミングブロック120の制御部128は、例えば次のように発光状態を制御することにより、ターゲット機器200におけるプログラムの実行状態を視覚的に識別可能にする。これにより、ターゲット機器200におけるプログラムの実行状態等を視覚的に把握、理解し易くなる。
Here, when the
制御部128は、例えば、プログラミング操作により決定された移動経路及び機能動作に対応する全てのプログラミングブロック120の発光部を所定の発光色や発光強度で常時発光させた状態で、プログラム実行情報に基づいて、現在時点におけるターゲット機器200の位置や、ターゲット機器200が実行している機能動作に対応するプログラミングブロック120の発光部を、他のプログラミングブロック120とは異なる発光色や、より高い発光強度、あるいは、発光パターン(例えば、点滅)で発光させる。
The
また、他の形態として、制御部128は、例えば、プログラム実行情報に基づいて、現在時点におけるターゲット機器200の位置や、ターゲット機器200が実行している機能動作に対応するプログラミングブロック120の発光部を所定の発光色や発光強度で発光させ、他のプログラミングブロック120の発光部を発光させない(消灯させる)。
Further, as another form, the
さらに他の形態として、例えば、各プログラミングブロック120の識別変移部124はいずれも、プログラミング操作時の状況を示す第1の発光部とプログラム実行時の状況を示す第2の発光部とを別個に備え、制御部128は、現在時点におけるターゲット機器200の位置や、ターゲット機器200が実行している機能動作に対応するプログラミングブロック120では第1及び第2の発光部をともに発光させ、他のプログラミングブロック120では第1の発光部のみを発光させる。
As yet another form, for example, each of the
また、ターゲット機器200において実行されているプログラムにエラーやバグが発生した場合には、制御部128は、ターゲット機器200から受信したプログラム実行情報に基づいて、当該エラーやバグが発生したプログラミングブロック120を、上記の通常の実行状態とは異なる発光色や発光パターンで発光させる制御を行う。これにより、プログラム実行時の異常をユーザに報知する。ここで、プログラム実行時のエラーやバグとは、例えばターゲット機器200が撮像部を備えていないにも関わらず、撮影を行う命令が実行された場合や、ターゲット機器200がプログラミング操作時には想定されていなかった障害物等に進行方向が阻まれているにも関わらず、障害物の方向にさらに移動する命令が実行された場合等である。
Further, when an error or bug occurs in the program executed in the
(プログラムステップ生成、実行処理)
上述したステップS112において、図9(a)に示すように、ユーザが、コアユニット160に設けられたステップ実行スイッチ184をオン操作すると、プログラムステップ生成、実行処理が実行される。プログラムステップ生成、実行処理においては、まず、コアユニット160の制御部170が、スタートブロック120Sの制御部128に制御信号を送信して、上記のプログラミング操作処理により取得したブロック情報や連結特定情報を有する入力操作情報を一括して、又は、プログラミング操作の一操作(ステップ)ごとに、スタートブロック120Sから受信し(ステップS122)、記憶部166の記憶領域に記憶する。
(Program step generation and execution processing)
In step S112 described above, as shown in FIG. 9A, when the user turns on the
次いで、制御部170は、受信した入力操作情報に基づいてターゲット機器200の動作状態(移動動作及び機能動作)を制御するための命令を有するプログラムを一括して、又は、プログラミング操作の一操作ごとに生成し(ステップS124)、記憶部166の所定の記憶領域に記憶する。ここで、プログラミング操作の一操作とは、1つのプログラミングブロック120を連結接続する操作のことであり、本実施形態のプログラムステップ生成、実行処理における一ステップとは、この一操作により指定されるステップのまとまりのことである。ただし、後述するように、プログラミングブロック120が複数段積み重ねられて、且つ、これらのプログラミングブロック120により指定された複数の機能を同時に実行することが指示されている場合には、それらすべての機能を同時に実行するステップが一ステップとなる。
Next, the
次いで、制御部170は、図9(a)に示すように、生成されたプログラムを一操作分(ステップ単位)のプログラムごとに、通信I/F部168を介して、ターゲット機器200に転送する(ステップS126)。ターゲット機器200は、転送された一操作分のプログラムを実行して、駆動部202及び機能部204を動作させることにより、上述したプログラミング操作処理において決定された仮想経路に対応する移動経路(図中、太点線で表記)に沿って一操作分だけ移動したり、一操作分だけ機能を実行したりするステップ動作を行う(ステップS128)。
Next, as shown in FIG. 9A, the
このとき、コアユニット160の制御部170は、ターゲット機器200に転送した一操作分のプログラムに関する情報(すなわち、ターゲット機器200の移動やターゲット機器200が実行する機能を規定する情報)を、スタートブロック120S及び各プログラミングブロック120の制御部128にプログラム実行情報として送信する。各制御部128は、このプログラム実行情報に基づいて、図9(a)に示すように、現在時点におけるターゲット機器200の移動経路上での位置に対応する各プログラミングブロック120を特定の発光状態で発光させたり、表示画像を変化させたりして視覚的に識別可能な状態に変移させる(図9(a)中では便宜的に濃いハーフトーンで表記)。
At this time, the
また、図10(a)、(b)に示すように、ターゲット機器200が、プログラミング操作において特定の機能動作を設定した位置に移動し、当該機能動作を実行している場合には、当該機能動作を設定した機能設定ブロック120Fの制御部128は、プログラム実行情報に基づいて、当該機能設定ブロック120Fを特定の発光状態で発光させたり、表示画像を変化させたりして視覚的に識別可能な状態に変移させる。なお、図10(b)においては、ターゲット機器200の機能動作として特定の楽音を発生する場合を示し、当該機能動作に対応する機能設定ブロック120Fを便宜的に濃いハッチングで表記した。
Also, as shown in FIGS. 10A and 10B, when the
ステップS128の処理動作を実行した後、コアユニット160の制御部170は、ステップS128においてターゲット機器200に実行させたステップ動作が、プログラミング操作処理により取得した入力操作情報のうちの最後の入力操作情報に対応するものであるか否かを判定する(ステップS130)。すなわち、コアユニット160の制御部170は、ターゲット機器200が移動経路の終点位置まで移動し、且つ、当該終点位置のプログラミングブロック120に設定された機能をターゲット機器200が実行し終わっているか否かを判定する。
After executing the processing operation of step S128, the
コアユニット160の制御部170が、ステップS128においてターゲット機器200に実行させたステップ動作が最後の入力操作情報に対応するものであると判定した場合(ステップS130のYes)には、図4のフローチャートに示したプログラミング操作及びプログラム生成、実行方法に係る一連の処理動作が終了する。一方、制御部170が、ステップS128においてターゲット機器200に実行させたステップ動作が最後の入力操作情報に対応するものでないと判定した場合(ステップS130のNo)には、前述のステップS112へ遷移する。このステップS112では、ユーザが、コアユニット160に設けられた一括実行スイッチ182、又は、ステップ実行スイッチ184のいずれをオン操作したかを判定する。
When the
一括実行スイッチ182がオン操作されたと判定した場合、コアユニット160の制御部170は、プログラミング操作処理により取得した入力操作情報のうち、まだ実行していないすべての入力操作情報について、前述のプログラム一括生成、実行処理を行う(ステップS114〜S120)。すべての入力操作情報に対応する動作を行った後、図4のフローチャートに示したプログラミング操作及びプログラム生成、実行方法に係る一連の処理動作が終了する。また、ステップ実行スイッチ184がオン操作されたと判定した場合、コアユニット160の制御部170は、前述のステップS122〜S130に従って、プログラムステップ生成、実行処理が実行される。なお、本実施形態においては、図4に示した一連の処理動作を、便宜的に「ノーマルモード」と呼称する。
When it is determined that the
このように、本実施形態においては、プログラミングブロック120とコアユニット160とからなるタンジブルなプログラム制御装置を用いて、始点となるスタートブロック120Sにプログラミングブロック120を順次連結接続するプログラミング操作により、スタートブロック120Sを基準とする、その全体配置形状の相対的な配置に基づいて仮想経路を決定することができ、この仮想経路によりターゲット機器200の移動経路を規定することができる。また、ターゲット機器200の移動経路上の任意の位置に対応する仮想経路のプログラミングブロック120に機能情報を設定するプログラミング操作により、当該位置でターゲット機器200に特定の機能動作を実行させることができる。
As described above, in the present embodiment, the tangible program control device including the
また、本実施形態においては、プログラミング操作時に連結接続された複数のプログラミングブロック120の全体配置形状が、ターゲット機器200の移動経路に対応しているので、当該配置形状により移動経路を直感的に把握することができる。さらに、プログラミング操作に基づいて生成されたプログラムの実行時に、又は、プログラムの実行の前後(例えば、プログラミング操作中)に、連結接続された複数のプログラミングブロック120のうち、プログラミング操作やプログラム実行の対象となっているプログラミングブロック120を、視覚的に識別可能な状態に変移させることができる。
In the present embodiment, since the overall arrangement shape of the plurality of programming blocks 120 connected and connected during the programming operation corresponds to the movement path of the
したがって、本実施形態によれば、幼児等の年少者であっても、タンジブルなプログラム制御装置を用いてプログラミングブロック120を平面的に連結接続する簡易な操作により、ターゲット機器200の移動経路を決定することができるとともに、当該移動経路上の任意の位置でターゲット機器200に機能動作を設定するプログラミングを容易に行うことができる。また、プログラミング時の操作内容やターゲット機器200の動作状態を視覚を通して直感的に把握することができ、プログラミングの学習効果の向上を期待することができる。
Therefore, according to the present embodiment, even for a young person such as an infant, the movement path of the
なお、上述したプログラミング操作及びプログラム生成、実行方法においては、プログラミング操作処理の終了後、ユーザが、コアユニット160の操作部162に設けられたプログラム実行スイッチ(一括実行スイッチ182又はステップ実行スイッチ184)を操作することにより、プログラミング操作処理により取得した入力操作情報を、スタートブロック120Sからコアユニット160に送信する形態を示した。本発明はこれに限定されるものではなく、例えば、プログラミング操作処理中にプログラミングブロック120を連結接続することにより新たな入力操作情報を取得するたびに、随時、又は、所定のタイミングや定期的に、当該入力操作情報をコアユニット160に送信するものであってもよい。
In the above-described programming operation and program generation / execution method, the program execution switch (
また、上述したプログラミング操作及びプログラム生成、実行方法においては、プログラミング操作処理において、スタートブロック120Sを始点として、移動経路の終点側となる方向に、後方側のプログラミングブロック120を順次連結接続し、複数のプログラミングブロック120を二次元空間に平面的に配置する場合(図5、図6参照)を示した。本発明はこれに限定されるものではなく、複数のプログラミングブロック120を三次元空間に立体的に配置するものであってもよい。
In the programming operation and program generation and execution method described above, in the programming operation process, the
図11は、本実施形態に適用されるプログラミング操作処理(立体的配置)を説明するための概略図であり、図12は、本実施形態に適用されるプログラム生成、実行処理(一括処理)の他の例を説明するための概略図である。 FIG. 11 is a schematic diagram for explaining a programming operation process (three-dimensional arrangement) applied to the present embodiment, and FIG. 12 is a program generation and execution process (collective process) applied to the present embodiment. It is the schematic for demonstrating another example.
上述したプログラミング操作処理において、スタートブロック120Sを始点として、連結接続される複数のプログラミングブロック120を三次元空間に立体的に配置する場合には、スタートブロック120Sやプログラミングブロック120の立方体形状の全6面(前後左右上下の6面)のいずれかの面にプログラミングブロック120が連結接続される。これにより、図11(a)、(b)に示すように、スタートブロック120Sを始点として連結接続されたプログラミングブロック120が、水平面上だけでなく上下(天地)方向にも配置され、この配置形状に基づいてターゲット機器200の移動経路を規定する立体的な仮想経路が決定される。
In the above-described programming operation process, when a plurality of connected programming blocks 120 are three-dimensionally arranged in the three-dimensional space with the
また、ターゲット機器200の移動経路の任意の位置において特定の機能動作を実行させる設定をする場合には、図11(a)、(b)に示すように、複数のプログラミングブロック120からなる仮想経路のうちの、当該機能動作を実行する位置に対応するプログラミングブロック120として、当該機能動作に関する機能情報が設定された機能設定ブロック120Fを連結接続する。
Further, when setting to execute a specific functional operation at an arbitrary position on the movement path of the
そして、図12(a)に示すように、ユーザが、コアユニット160の操作部162に設けられたプログラム実行スイッチ(例えば、一括実行スイッチ182)を操作すると、プログラム生成、実行処理が実行される。プログラム生成、実行処理においては、まず、コアユニット160がプログラミング操作処理により取得した入力操作情報をスタートブロック120Sから受信し、当該入力操作情報に基づいてターゲット機器200の動作状態(移動動作及び機能動作)を制御するプログラムを生成する。
Then, as shown in FIG. 12A, when the user operates a program execution switch (for example, a batch execution switch 182) provided in the
生成されたプログラムをコアユニット160からターゲット機器200に転送して実行することにより、図12(a)、(b)に示すように、ドローン等のターゲット機器200が上述したプログラミング操作処理において決定された立体的な仮想経路に対応する移動経路(図中、太点線で表記)に沿って順次移動する全体動作を行う(ステップS120)。
By transferring the generated program from the
このとき、ターゲット機器200の移動経路上での位置に対応する各プログラミングブロック120は、例えば特定の発光状態で発光して視覚的に識別可能な状態に変移する(図12(a)中では便宜的に濃いハーフトーンで表記)。また、図12(b)に示すように、ターゲット機器200が移動経路上の所定の位置で機能動作を実行している場合には、当該位置に対応するプログラミングブロック120は、例えば特定の発光状態で発光して視覚的に識別可能な状態に変移する。なお、図12(b)においては、ターゲット機器200の機能動作として特定の位置で旋回する場合を示し、当該機能動作に対応する機能設定ブロック120Fを便宜的に濃いハッチングで表記した。
At this time, each programming block 120 corresponding to the position of the
これによれば、幼児等の年少者であっても、タンジブルなプログラム制御装置を用いてプログラミングブロック120を立体的に連結接続する簡易な操作により、ターゲット機器200の移動経路を決定することができるとともに、当該移動経路上の任意の位置でターゲット機器200に機能動作を設定するプログラミングを容易に行うことができる。また、三次元空間内での動作を対象とする高度なプログラミング技術であっても、プログラミング時の操作内容やターゲット機器200の動作状態を視覚を通して直感的に把握することができ、プログラミングの学習効果の向上を期待することができる。
According to this, even a young person such as an infant can determine the movement path of the
なお、上述したプログラミングブロック120を用いたプログラミング操作処理においては、始点となるスタートブロック120Sについて、立方体の6面のうち特定の一面側の方向が基準方向として設定され、他のプログラミングブロック120が連結接続されている面について、当該基準方向に対する相対的な配置が検知されて、連結特定情報として取得されることを示した。
In the programming operation process using the
そのため、連結接続された複数のプログラミングブロック120により決定される仮想経路は、スタートブロック120Sを基準とする相対的な配置を有している。ここで、プログラミング操作により決定される仮想経路と、ターゲット機器200の実際の移動経路とを対応付けるためには、スタートブロック120Sの基準方向とターゲット機器200の進行方向(又は、前後方向)との関係を明確にしておく必要がある。
Therefore, the virtual path determined by the plurality of connected programming blocks 120 has a relative arrangement with respect to the
図13は、本実施形態に適用されるスタートブロックの外観表記の一例を示す概略図である。
このような仮想経路と移動経路との対応付けを支援、誘導する手段として、例えば図13(a)、(b)に示すように、スタートブロック120Sの立方体の各面に、ターゲット機器200の外観を模し、ターゲット機器200の進行方向を基準方向として明確にしたイラストが表記されている。図13(b)においては、スタートブロック120Sの立方体の6面のうち、例えば上面と前後左右の側面にターゲット機器200である自走式の玩具の上面図と前後側面図、左右側面図がイラストとして表記された例を示す。なお、スタートブロック120Sの外観表記については、ターゲット機器200の進行方向を基準方向として示すものであれば、上記のイラストに限らず、写真画像や記号、文字等を表記するものであってもよい。
FIG. 13 is a schematic diagram illustrating an example of the appearance notation of the start block applied to the present embodiment.
As a means for supporting and guiding the association between the virtual route and the moving route, for example, as shown in FIGS. 13A and 13B, the appearance of the
これにより、スタートブロック120Sの外観表記を視認することにより、ターゲット機器の進行方向との対応付けが直感的に可能になるので、年少者であっても、プログラミング操作の際にスタートブロック120Sに連結接続するプログラミングブロック120の配置(方向や位置関係)を正確に把握、理解して、効率的なプログラミング学習を実現することができる。
This makes it possible to intuitively associate the target device with the direction of travel by visually recognizing the appearance of the
なお、上述したプログラミング操作及びプログラム生成、実行方法においては、ターゲット機器200の機能動作の設定方法として、ターゲット機器200の移動経路に対応する仮想経路を形成する複数のプログラミングブロック120のうち、当該機能動作を実行する位置に対応するプログラミングブロック120に、予め所望の機能動作に関する機能情報を設定する手法を示した。本発明はこの形態に限定されるものではなく、次のような設定方法を適用することができる。
In the above-described programming operation and program generation / execution method, as the function operation setting method of the
図14は、本実施形態に適用されるターゲット機器の機能動作の設定方法の一例を示す概略図である。
ターゲット機器の機能動作の設定方法の一例としては、図14(a)、(b)に示すように、スタートブロック120Sに複数のプログラミングブロック120を順次連結接続することにより、ターゲット機器200の移動経路を規定する仮想経路が決定され、当該複数のプログラミングブロック120のうちの、所望の機能動作を実行する位置に対応するプログラミングブロック120上に、当該機能動作が設定された機能設定ブロック120Fが1又は複数個積み重なるように連結接続される。ここで、スタートブロック120Sに連結接続される複数のプログラミングブロック120は、仮想経路を決定するためだけに使用され、プログラミングブロック120上に積み重なるように連結接続される機能設定ブロック120Fは、機能動作を設定するためだけに使用される。また、機能設定ブロック120Fは、連結接続されるプログラミングブロック120と同一又は同等の外形形状及び寸法を有している。
FIG. 14 is a schematic diagram illustrating an example of a method for setting the functional operation of the target device applied to the present embodiment.
As an example of the setting method of the functional operation of the target device, as shown in FIGS. 14A and 14B, a plurality of programming blocks 120 are sequentially connected and connected to the
このような機能動作の設定方法においては、上述した実施形態と同様に、プログラミング操作処理において、スタートブロック120Sにプログラミングブロック120が連結接続されることにより、ブロックI/F部122を介して後方側のプログラミングブロック120が有するブロック情報や連結特定情報がスタートブロック120Sに送信される。
In such a functional operation setting method, as in the above-described embodiment, in the programming operation process, the
また、所望の機能動作を実行する位置に対応するプログラミングブロック120上に、1又は複数の機能設定ブロック120Fが積み重なるように連結接続されることにより、連結接続されたプログラミングブロック120のブロックI/F部122を介して当該機能設定ブロック120Fが有する機能情報がスタートブロック120Sに送信される。
In addition, by connecting one or a plurality of function setting blocks 120F in a stacked manner on the
これにより、プログラム生成、実行処理において、複数のプログラミングブロック120により決定された仮想経路に対応する移動経路に沿ってターゲット機器200が移動し、機能設定ブロック120Fが積み重ねられたプログラミングブロック120の位置に対応する移動経路上の位置にターゲット機器200が到達すると、機能設定ブロック120Fに設定された1又は複数の機能動作を実行する。ここで、図14(a)においては、一のプログラミングブロック120上に1個の機能設定ブロック120Fが積み重ねられて、ターゲット機器200の機能動作として特定の楽音を発生する場合を示し、図14(b)においては、一のプログラミングブロック120上に2個の機能設定ブロック120Fが積み重ねられて、ターゲット機器200の機能動作として特定の発光色で発光するとともに、特定の位置で回転する場合を示す。
Thereby, in the program generation and execution process, the
なお、図14に示したターゲット機器の機能動作の設定方法においては、仮想経路を形成する任意のプログラミングブロック120上に、同一の外形形状及び寸法を有するとともに、所望の機能動作が設定された機能設定ブロック120Fを積み重ねて連結接続する形態を示した。本発明はこれに限定されるものではなく、プログラミングブロック120上に積み重ねて連結接続される機能設定ブロック120Fと同等の、機能動作を設定する機能を有しているものであれば、プログラミングブロック120と同一の外形形状や寸法を有していないものであってもよい。すなわち、1以上の任意の機能動作を設定するための機能情報と固有の識別情報とを有するとともに、プログラミングブロック120の立方体の各面に対して良好に密着又は吸着して接続され、かつ、視覚的に識別可能な形状や色彩等を有するマーカ等を適用するものであってもよい。
In the method for setting the functional operation of the target device shown in FIG. 14, a function having the same external shape and dimensions and a desired functional operation set on an
また、上記のマーカを利用した形態の他の例として、マーカは固有の識別情報のみを有し、また、仮想経路を形成する複数のプログラミングブロック120とは別の場所に、当該マーカに対応付けて1以上の任意の機能動作を設定するための機能情報を用意しておき、スタートブロック120Sやコアユニット160においてマーカの識別情報を認識することにより、用意された機能情報を受信して、プログラムの生成に使用するものであってもよい。さらに、他の形態として、上記のマーカは実体のある物品でもよいし、例えば任意のプログラミングブロック120の立方体の各面への接触又は押下により、識別変移部124が変移すること(例えば発光や画像の表示)により認識される実体のないものであってもよい。
In addition, as another example of the form using the marker, the marker has only unique identification information, and is associated with the marker in a place different from the plurality of programming blocks 120 forming the virtual path. Function information for setting one or more arbitrary function operations is prepared, and the prepared function information is received by recognizing the marker identification information in the
また、ターゲット機器の機能動作の設定方法の他の例としては、機能設定ブロック120Fとなるプログラミングブロック120の記憶部126に、複数の機能動作を規定する機能情報を予め記憶し、ソフトウェアによる設定変更やプログラミングブロック120の外面に設けられた切替スイッチの操作、重力センサや加速度センサによる傾きや衝撃の検知等により、当該複数の機能動作のうちから所望の機能動作を選択して実行可能なように設定するものであってもよい。なお、この形態においては、各プログラミングブロック120は、図示を省略した切替スイッチや上記の各種センサを予め備えている。
In addition, as another example of the setting method of the function operation of the target device, function information defining a plurality of function operations is stored in advance in the
ここで、複数の機能動作から所望の機能動作を選択して設定する手法としては、例えば、プログラミングブロック120の外面にボタンスイッチやタッチセンサを設け、ユーザによる当該スイッチやセンサへの接触又は押下の回数や、その時間に応じて、機能動作をトグル切り換え(例えば、1つの機能動作のオン、オフ、又は、2つ以上の異なる機能動作の順次切り換え)をする形態を適用することができる。また、他の形態として、ユーザによる外面のボタンスイッチやタッチセンサへの接触又は押下の際の力の大きさや、ダブルクリックなどの操作の種類に応じて、機能動作を切り換えて設定するものであってもよい。
Here, as a method of selecting and setting a desired functional operation from a plurality of functional operations, for example, a button switch or a touch sensor is provided on the outer surface of the
また、さらに他の形態として、例えば立方体形状を有するプログラミングブロック120において、立方体の6面の各々に異なる機能動作を対応付けて、各機能動作を規定する機能情報を記憶部126の記憶領域に記憶した形態を有するものであってもよい。そして、ユーザが当該プログラミングブロック120の任意の面を、前方側のプログラミングブロック120又はスタートブロック120Sに連結接続した状態を、ブロックI/F部122の連結検知部により検知することにより、複数種類の機能動作の中から当該面に対応付けられた機能動作を設定するものであってもよい。
As yet another form, for example, in the
なお、本実施形態においては、コアユニット160にスタートブロック120Sを接続し、当該スタートブロック120Sを始点として、ターゲット機器200の移動経路に対応させて複数のプログラミングブロック120を二次元形状(平面的配置)又は三次元形状(立体的配置)に連結接続する場合について説明した。本発明はこの形態に限定されるものではなく、仮想経路を形成する複数のプログラミングブロック120が直接コアユニット160に接続されているものであってもよい。但し、この場合には、連結接続される複数のプログラミングブロック120の配置形状がコアユニット160に干渉しないことを前提とする。
In the present embodiment, a
なお、本実施形態においては、図1に示したように、コアユニット160としてプログラミングブロック120に非接触型又は接触型のインターフェースを介して接続される専用の装置を適用した場合について説明したが、本発明はこの形態に限定されるものではなく、スマートフォンやタブレット等の汎用のモバイル端末を適用するものであってもよい。すなわち、近年市販されている汎用のモバイル端末は、上述したコアユニット160が有する全ての構成(操作部162、外部I/F部164、記憶部166、通信I/F部168、制御部170、電源部172)を備えている。したがって、このようなモバイル端末に、スタートブロック120S及びプログラミングブロック120により取得された入力操作情報に基づいて、ターゲット機器200の動作状態を制御するためのプログラムを生成するための専用のアプリケーションソフトウェア(コンパイラ)をインストールすることにより、汎用のモバイル端末(命令生成部)を上述したコアユニット160として適用することができる。ここで、コアユニット160として汎用のモバイル端末を適用する場合には、上記のコンパイラに加え、プログラミングブロック120(機能設定ブロック120Fを含む)やターゲット機器200の各種のパラメータを設定するためのソフトウェアや、上記の入力操作情報を汎用言語(テキスト)にコード変換するソフトウェア等をインストールするものであってもよい。
In the present embodiment, as illustrated in FIG. 1, a case has been described in which a dedicated device connected to the
次に、上述した実施形態に係るプログラム制御装置を有するプログラミング教育装置の各種の変形例について説明する。
<変形例1>
図15は、本実施形態に係るプログラミング教育装置におけるプログラミング操作及びプログラム生成、実行方法の変形例(リアルタイムモード)を示すフローチャートである。図16、図17は、本変形例に適用されるプログラミング操作処理及びプログラム生成、実行処理を説明するための概略図である。ここで、上述した実施形態と同等の構成についてはその説明を簡略化する。
Next, various modifications of the programming education apparatus having the program control apparatus according to the above-described embodiment will be described.
<
FIG. 15 is a flowchart showing a modified example (real-time mode) of the programming operation, program generation, and execution method in the programming education apparatus according to the present embodiment. 16 and 17 are schematic diagrams for explaining a programming operation process, a program generation process, and an execution process applied to this modification. Here, the description of the configuration equivalent to the above-described embodiment is simplified.
上述した実施形態に係るプログラミング教育装置におけるプログラミング操作及びプログラム生成、実行方法においては、プログラミング操作処理において、ターゲット機器200の全移動経路を決定するとともに、全ての機能動作を設定した後、プログラム生成処理及びプログラム実行処理を実行するノーマルモードについて説明した。本変形例においては、上述したノーマルモードに加え、プログラミング操作処理において、一操作分の入力操作を行うたびに、当該一操作分のプログラムを生成してターゲット機器200に転送して実行するリアルタイムモードを有し、ユーザが任意のモードを選択してプログラミング学習を行う。
In the programming operation and program generation and execution method in the programming education device according to the above-described embodiment, in the programming operation process, all the movement paths of the
(プログラミング操作処理)
本変形例に係るプログラミング教育装置におけるプログラミング操作処理においては、図15のフローチャートに示すように、まず、ユーザは、スタートブロック120Sとコアユニット160とを接続してプログラム制御装置100を起動するとともに、ターゲット機器200を起動する(ステップS202)。
(Programming operation processing)
In the programming operation process in the programming education device according to this modification, as shown in the flowchart of FIG. 15, first, the user starts the
次いで、コアユニット160の制御部170は、ユーザにより図16(a)に示すようなモード切換スイッチ119が操作されて、ノーマルモードに設定されたか、リアルタイムモードに設定されたかを判定する(ステップS204)。ここで、モード切換スイッチ119は、上述した実施形態に示したノーマルモードでの処理動作、又は、後述するリアルタイムモードでの処理動作のいずれを実行するかを選択するスイッチであって、例えばプッシュスイッチやスライドスイッチが適用される。ここで、モード切換スイッチ119としてプッシュスイッチを適用した場合には、ユーザがモード切換スイッチ119を押下操作しない場合(ステップS204のNo)には、初期設定(デフォルト)であるノーマルモードが保持され、押下操作した場合(ステップS204のYes)には、ノーマルモードからリアルタイムモードに切り換え設定される。また、モード切換スイッチ119は、リアルタイムモードに切り換え設定された状態で、ユーザが押下操作した場合には、リアルタイムモードから再度ノーマルモードに切り換え設定される。すなわち、モード切換スイッチ119は、押下操作のたびにノーマルモードとリアルタイムモードとが交互に切り換え設定される。
Next, the
制御部170は、モード切換スイッチ119によりノーマルモードが設定されたと判定した場合には、上述した実施形態において図4に示したフローチャートのステップS106以降の処理動作を実行する。一方、制御部170は、モード切換スイッチ119によりリアルタイムモードが設定されたと判定した場合には、ステップS206以降の処理動作を実行する。
When it is determined that the normal mode is set by the
なお、このステップS204におけるモードの切り換え設定に係る処理動作は、上述した実施形態に示した図4のフローチャートにおいても同様に実行され、ステップS104においてユーザがモード切換スイッチ119を押下操作しない場合には、初期設定であるノーマルモードが保持されてステップS106以降の処理動作が実行され、ユーザがモード切換スイッチ119を押下操作して、ノーマルモードからリアルタイムモードに切り換え設定された場合には、以下のステップS206以降の処理動作が実行される。
Note that the processing operation related to the mode switching setting in step S204 is executed in the same manner in the flowchart of FIG. 4 shown in the above-described embodiment, and when the user does not press down the
リアルタイムモードが設定された場合には、ユーザは、プログラミングブロック120を用いて、ターゲット機器200の移動経路を決定し、又は、ターゲット機器200における機能動作を設定するプログラミング操作処理を実行する(ステップS206)。
When the real-time mode is set, the user uses the
具体的には、ターゲット機器200の移動経路を決定するプログラミング操作処理においては、図16(a)に示すように、ユーザが、ターゲット機器200を動作させる際の移動経路をイメージして、コアユニット160に接続されたスタートブロック120Sを移動経路に対応する仮想経路の始点(スタート)として、移動経路の終点側となる方向に、ターゲット機器200を一操作分だけ動作させるための移動経路に対応するプログラミングブロック120を連結接続する。また、ターゲット機器200における機能動作を設定するプログラミング操作処理においては、図17(b)に示すように、ユーザが、ターゲット機器200により特定の機能動作を実行する位置に、当該機能動作が設定された機能設定ブロック120Fを連結接続する。
Specifically, in the programming operation process for determining the movement route of the
ユーザが、上記のようなプログラミング操作を行うと、スタートブロック120SのブロックI/F部122により、プログラミングブロック120が連結接続されているか否かを検知し、スタートブロック120Sとプログラミングブロック120との連結状態を特定する連結特定情報を取得することにより、図16(a)に示すように、ターゲット機器200の移動経路の一操作分に対応する仮想経路が決定される。また、スタートブロック120S又は前方側のプログラミングブロック120のブロックI/F部122により、機能設定ブロック120Fが連結接続されているか否かを検知し、機能設定ブロック120Fとの連結状態を特定する連結特定情報、及び、機能設定ブロック120Fが有する機能情報を取得することにより、図17(b)に示すように、ターゲット機器200の移動経路の一操作分に対応する仮想経路が決定されるとともに、ターゲット機器200の機能動作が設定される。
When the user performs a programming operation as described above, the block I /
このとき、スタートブロック120Sの制御部128は、ブロックI/F部122により取得された一操作分のプログラミングブロック120が有するブロック情報と連結特定情報、又は、機能設定ブロック120Fが有するブロック情報と連結特定情報を取得して記憶部126の記憶領域に記憶する。また、制御部128は、当該プログラミングブロック120又は機能設定ブロック120Fの識別変移部124を所定の発光状態で発光させたり、表示画像を変化させたりして視覚的に識別可能な状態に変移させる(図16(a)中では便宜的に濃いハーフトーン、図17(b)中では便宜的に濃いハッチングで表記)。
At this time, the
(プログラム生成、実行処理)
次いで、プログラム生成、実行処理においては、コアユニット160の制御部170が、上述したプログラミング操作処理においてスタートブロック120Sにより取得された一操作分のブロック情報と連結特定情報とを有する入力操作情報を、プログラミング操作の一操作(ステップ)ごとに受信する(ステップS208)。
(Program generation and execution processing)
Next, in the program generation and execution process, the
次いで、コアユニット160の制御部170は、受信した一操作分の入力操作情報に基づいて、ターゲット機器200の動作状態(移動又は機能動作)を制御するための命令を有する一操作分のプログラムを生成する(ステップS210)。
Next, the
次いで、図16(a)、図17(b)に示すように、制御部170が、生成された一操作分のプログラムをターゲット機器200に転送することにより(ステップS212)、ターゲット機器200において、当該一操作分のプログラムが実行されて、ターゲット機器200が移動経路に沿って一操作分だけ移動するステップ動作、又は、ターゲット機器200が移動経路上の特定の位置で一操作分の機能動作を実行するステップ動作が行われる(ステップS214)。
Next, as shown in FIGS. 16A and 17B, the
このようなターゲット機器200の動作状態を制御するためのプログラミング操作処理、及び、プログラム生成、実行処理は、ターゲット機器200が移動経路の終点位置に移動してプログラミング操作が終了するまで、図15(a)、(b)及び図16(a)、(b)に示すように、一操作ごとに繰り返し実行される。(ステップS216)。なお、制御部170は、移動経路の終点(ゴール)が指示されたり、終端ブロック120Gが連結接続されたりしたことに応じて、プログラミング操作が終了したと判定する。他の例では、制御部170は、プログラミング操作中の任意のタイミングで、コアユニット160の実行停止スイッチ186の押下操作を受け付けたことに応じて、プログラミング操作が終了したと判定してもよい。
Such programming operation processing for controlling the operating state of the
このように、本変形例によれば、ノーマルモードとリアルタイムモードとを任意に切り換えることにより、ターゲット機器200の動作状態を制御するためのプログラミング操作処理における操作内容や、プログラムの実行状態を一括して、又は、一操作ごとに視覚を通して把握することができるので、直感的かつ多面的に理解し易くなり、プログラミングの学習効果の向上を期待することができる。
As described above, according to the present modification, the operation content in the programming operation process for controlling the operation state of the
<変形例2>
図18は、本実施形態に係るプログラミング教育装置におけるプログラミング操作に適用される機能動作の変形例(条件分岐、繰り返し、関数、イベント)を示す概略図である。ここで、上述した実施形態と同等の構成についてはその説明を簡略化する。
<
FIG. 18 is a schematic diagram showing a modification (conditional branching, repetition, function, event) of the functional operation applied to the programming operation in the programming education device according to the present embodiment. Here, the description of the configuration equivalent to the above-described embodiment is simplified.
上述した実施形態においては、ターゲット機器200に実行させる機能動作として、移動経路上での移動を伴わない機能動作(アクション)を設定する場合について説明した。本変形例においては、アクション以外の他の機能動作に関する機能情報を、仮想経路上のプログラミングブロック120に設定することにより、ターゲット機器200を多様な動作状態で制御するプログラミング学習を行う。
In the above-described embodiment, a case has been described in which a functional operation (action) that does not involve movement on the movement path is set as the functional operation to be executed by the
本変形例に係るプログラミング操作に適用されるプログラミングブロック120には、上述した実施形態に示した機能動作である「アクション」の他に、「条件分岐」、「繰り返し」、「関数」、「イベント」の4種類の機能動作が設定される。以下、各機能動作について説明する。
The
「条件分岐」が機能動作として設定されたプログラミングブロック(以下、「条件分岐ブロック」と記す)120Aは、図18(a)に示すように、仮想経路を形成する任意のプログラミングブロック120に直接、又は、条件分岐ブロック120Aを任意のプログラミングブロック120上に積み重ねて連結接続して、当該機能動作に関する機能情報を設定することにより、当該プログラミングブロック120に対応する移動経路上の位置におけるターゲット機器200が条件分岐の機能動作を実行するように設定される。ここで、条件分岐とは、当該機能動作に関連して予め指定された条件により、条件分岐ブロック120Aが連結接続された位置以降のプログラムの実行状態が異なるような動作である。例えば図18(a)では、条件に応じて、ターゲット機器200が移動する経路が分岐する。
As shown in FIG. 18A, a programming block in which “conditional branch” is set as a functional operation (hereinafter, referred to as “conditional branch block”) 120A is directly connected to an
条件としては、例えば、ターゲット機器200に備えられた照度センサにより検出された照度が予め定めた値よりも大きいか否かに応じて、異なる動作を行うものであってよい。また、条件分岐ブロック120Aが連結接続されたプログラミングブロック120に対応する位置までターゲット機器200が移動すると、そこでターゲット機器200が一時停止するようにしてもよい。また、ターゲット機器200がマイクロフォンを備えており、その一時停止中にユーザが手を叩いた音を検出し、検出した音の回数に応じて、異なる動作を行うものであってよい。なお、これらは一例に過ぎず、他の条件を適用してよいことは言うまでもない。
As a condition, for example, different operations may be performed depending on whether or not the illuminance detected by the illuminance sensor provided in the
なお、条件の設定方法は、次のようなものを適用することができる。 例えば、条件分岐ブロック120A自体がプログラマブルな構造であり、そこに条件を設定できるような機器、具体的には音を検知するのか光を検知するのか、また音であれば回数に応じてどう動作を行うのかを設定できる機器を用いる。 また、例えば、条件分岐ブロック120Aの上にさらに、上述のような様々な条件のうちのいずれかの条件が予め指定された、別のプログラミングブロック120を積み重ねる。 また、例えば、条件分岐ブロック120A自体に、上述のいずれかの条件が組み込まれているものを用いる。
In addition, the following can be applied as a condition setting method. For example, the conditional branch block 120A itself has a programmable structure, and a device that can set conditions there, specifically, whether to detect sound or light, and how to operate according to the number of times if it is sound Use a device that can set whether to perform. Further, for example, another
「繰り返し」が機能動作として設定されたプログラミングブロック(以下、「繰り返しブロック」と記す)は、仮想経路を形成する任意のプログラミングブロック120に直接、又は、繰り返しブロックを任意のプログラミングブロック120上に積み重ねて連結接続して、当該機能動作に関する機能情報を設定することにより、当該プログラミングブロック120に対応する移動経路上の位置におけるターゲット機器200が繰り返しの機能動作を実行するように設定される。ここで、繰り返しとは、同じ経路を指定回数だけ繰り返し移動する動作である。
A programming block in which “repetition” is set as a functional operation (hereinafter referred to as “repetition block”) is directly stacked on any
なお、繰り返しブロックの構成や設定方法は、次のようなものを適用することができる。 例えば、図18(b)に示すように、繰り返し元ブロック120Bと繰り返し先ブロック120Cとを用い、仮想経路を形成する任意のプログラミングブロック120に直接、又は、当該機能動作に関する機能情報を設定した繰り返し元ブロック120Bと繰り返し先ブロック120Cを任意のプログラミングブロック120上に積み重ねて連結接続することにより、ターゲット機器200が移動経路上の繰り返し元位置まで進んだら、繰り返し先位置へ戻る動作を、指定回数(例えば3回)だけ行う。
In addition, the following can be applied to the configuration and setting method of the repeated block. For example, as shown in FIG. 18B, the repetition source block 120B and the
また、例えば、繰り返し元ブロック120Bのみを用い、仮想経路を形成する任意のプログラミングブロック120を繰り返し元に設定することにより、ターゲット機器200が移動経路上の繰り返し元位置まで進んだら、無条件でスタート位置に戻る動作を、指定回数だけ行う。
Also, for example, by using only the repetition source block 120B and setting any
なお、繰り返し回数の指定方法としては、例えば、予め繰返し回数の規定されている繰り返しブロックを用いる形態や、繰り返しの回数を規定する回数ブロックを用い、繰り返し元ブロック120Bの上に回数ブロックを積み重ねる形態を適用することができる。さらに、別の繰り返し回数の指定方法としては、繰り返しブロックに設けられたダイヤルにより、繰り返し回数を指定する形態や、繰り返しブロックにテンキーと表示画面を設け、繰り返し回数を指定する形態、繰り返しブロックにカウンターボタンと表示画面を設け、カウンターボタンを押下することにより、繰り返し回数を指定する形態等を適用することができる。 As a method for specifying the number of repetitions, for example, a form using a repetition block in which the number of repetitions is defined in advance, or a form in which the number of blocks defining the number of repetitions is used and the number of blocks is stacked on the repetition source block 120B. Can be applied. Furthermore, as another method of specifying the number of repetitions, a form in which the number of repetitions is specified by a dial provided in the repetition block, a form in which a numeric keypad and a display screen are provided in the repetition block, the number of repetitions is specified, and a counter in the repetition block By providing a button and a display screen and pressing the counter button, a form for designating the number of repetitions can be applied.
「関数」が機能動作として設定されたプログラミングブロック(以下、「関数ブロック」と記す)120Dは、図18(c)に示すように、仮想経路を形成する任意のプログラミングブロック120に直接、又は、関数ブロック120Dを任意のプログラミングブロック120上に積み重ねて連結接続して、当該機能動作に関する機能情報を設定することにより、当該プログラミングブロック120に対応する移動経路上の位置におけるターゲット機器200が関数の機能動作を実行するように設定される。ここで、「関数」とは例えば、上述した実施形態に示したような様々な「アクション」の1つ以上をひとまとまりにしたものである。関数の機能動作の実行が設定されたプログラミングブロック120に対応する移動経路上の位置へターゲット機器200が移動したときに、その位置において、そのひとまとまりの「アクション」がまとめて実行される。具体的には、例えば、「その場で90°右へ回転する」、「予め定めた楽音を鳴らす」、「撮影する」、「その場で90°左へ回転する」という4つの「アクション」がひとまとまりになって一つの「関数」が構成されていて、ターゲット機器200が上記の位置へ移動すると、その位置でこれら4つの「アクション」を順次実行する。
A
このような「関数」の具体的内容は、例えば図18(c)に示すように、連結接続されたプログラミングブロック120の集合体とは別の場所で、任意の「アクション」が設定された1以上の機能設定ブロック120Fを接続(連結配置)するというプログラミング操作により指定される。このように別の場所で連結配置されたひとまとまりの1以上のプログラミングブロック120のことを、関数本体142という。関数本体142は、始点ブロックBLsと終点ブロックBLeとを含み、それらの間に、ユーザが所望する「アクション」を指定する1以上の機能設定ブロック120Fが連結配置されている。プログラミング実行時にはターゲット機器200は、始点ブロックBLsと終点ブロックBLeとの間に配置された「アクション」をそれらの並び順に実行する。
For example, as shown in FIG. 18C, the specific content of such a “function” is 1 in which an arbitrary “action” is set at a place different from the assembly of the connected programming blocks 120. The function setting block 120F is specified by a programming operation of connecting (linking arrangement). A group of one or more programming blocks 120 connected and arranged at different locations in this way is called a
なお、図18(c)に示すように、プログラミング操作により仮想経路を形成する、連結接続された複数のプログラミングブロック120のうちの2以上のプログラミングブロック120に、同一の関数ブロック120Dを連結接続してもよい。これにより、プログラミング実行時に移動経路上の異なる位置で複数回にわたって、同じひとまとまりのアクションをターゲット機器200に実行させたい場合、一つの関数をプログラミングして、且つ、上記の異なる位置に対応する複数のプログラミングブロック120に、そのひとまとまりのアクションに対応する関数ブロック120Dを連結接続するだけでよい。このため、同じひとまとまりのアクションを複数回プログラミング操作する必要がなく、プログラミング時の操作量が低減されるとともに、関数を使ったプログラミングの学習効果の向上を期待することができる。
As shown in FIG. 18C, the
また、互いに異なる内容を指定する二種以上の関数ブロック120Dを、仮想経路を形成する2以上のプログラミングブロック120にそれぞれ連結接続してもよいし、一つのプログラミングブロック120に同じ又は異なる関数ブロック120Dを複数連結接続してもよい。上述のように二種以上の関数ブロック120Dを用いてプログラミング操作を行う場合は、プログラミング操作時に、各関数ブロック120Dと少なくとも各始点ブロックBLsとを互いに無線又は有線によりペアリングする操作を行う。これにより、プログラミング実行時に、各関数ブロック120Dにペアリングされた始点ブロックBLsを含む関数本体142の機能設定ブロック120Fにより指定されたひとまとまりのアクションを、ターゲット機器200に実行させることができる。
In addition, two or more types of
なお、仮想経路を形成する複数のプログラミングブロック120と、これらのプログラミングブロック120とは別の場所に配置される関数本体142の機能設定ブロック120Fとは非接触型又は接触型のインターフェースを介して接続されて、関数本体142の機能情報がプログラミングブロック120又はスタートブロック120Sに送信される。そして、コアユニット160において、プログラミングブロック120を用いたプログラミング操作により取得した入力操作情報とともに、当該機能情報を加味したプログラムが生成される。
The plurality of programming blocks 120 forming the virtual path and the function setting block 120F of the function
「イベント処理」は割り込み処理とも言われ、ターゲット機器200の動作状態を制御するプログラムの実行中の任意のタイミングで、何らかのイベントが発生したことに応じて、ターゲット機器200が実行する処理のことである。そのようなイベントとしては、例えば、ターゲット機器200がプログラム通り動いている途中で障害物等にぶつかったことや、ユーザが「止まれ。」や「進め。」などの音声を発したこと、又は、ターゲット機器200の周囲が急に暗くなったことなどが挙げられるが、これらの例に限られるものではないことは言うまでもない。これら例示したような様々なイベントのいずれかが発生したことをターゲット機器200が検出したことをトリガーとして、そのイベントに対応させて予め設定した機能動作を、ターゲット機器200が実行する。なお、ターゲット機器200だけに限らず、プログラミングブロック120やコアユニット160のいずれかによりイベントの発生を検出する構成であってもよい。
“Event processing” is also referred to as interrupt processing, and is processing performed by the
イベント処理は、図18(d)に示すように、仮想経路を形成する複数のプログラミングブロック120とは別の場所で、任意の「アクション」が設定された複数の機能設定ブロック120Fを連結接続するプログラミング操作により実現される。ここで、図18(d)においては、ターゲット機器200がユーザの拍手を検出するとLED等の発光部を点灯させるイベント処理を示す。このように別の場所で連結配置されたひとまとまりの1以上のプログラミングブロック120のことを、イベント処理本体144という。このイベント処理本体144の具体的構成は、上述した関数本体142と同様であるので詳細な説明を省略する。関数ブロック120Dの場合と同様に、互いに異なる内容を指定する二種以上のイベントブロック120Eを、仮想経路を形成する2以上のプログラミングブロック120にそれぞれ連結接続してもよいし、一つのプログラミングブロック120に同じ又は異なるイベントブロック120Eを複数連結接続してもよい。
In the event processing, as shown in FIG. 18D, a plurality of function setting blocks 120F in which arbitrary “actions” are set are connected and connected at a place different from the plurality of programming blocks 120 forming the virtual path. Realized by programming operations. Here, FIG. 18D shows event processing for turning on a light emitting unit such as an LED when the
なお、仮想経路を形成する複数のプログラミングブロック120と、これらのプログラミングブロック120とは別の場所に配置されるイベント処理本体144の機能設定ブロック120Fとは非接触型又は接触型のインターフェースを介して接続されて、イベント処理本体144の機能情報がプログラミングブロック120又はスタートブロック120Sに送信される。そして、コアユニット160において、プログラミングブロック120を用いたプログラミング操作により取得した入力操作情報とともに、当該機能情報を加味したプログラムが生成される。
A plurality of programming blocks 120 forming a virtual path and a function setting block 120F of the
このように、本変形例によれば、プログラミングブロック120を用いたプログラミング操作において、仮想経路を形成する任意のプログラミングブロック120に直接、又は、上記の機能動作が設定された各ブロック120A〜12Fを任意のプログラミングブロック120上に積み重ねて連結接続する簡易な操作により、「アクション」の「逐次実行」に加え、「条件分岐」、「繰り返し」、「関数」、「イベント」の抽象度がより高い各機能動作をターゲット機器200に実行させるように設定することができる。
As described above, according to the present modification, in the programming operation using the
これにより、幼児等の年少者であっても、ターゲット機器200の移動と各種の機能動作を組み合わせたプログラミングを、タンジブルなプログラム制御装置を用いて容易に行うことができるとともに、その操作内容やターゲット機器200の動作状態を視覚を通して直感的に把握し易くすることができ、抽象度がより高いプログラミングの学習効果の向上を期待することができる。
Thereby, even a young person such as an infant can easily perform programming combining the movement of the
なお、本変形例においては、プログラミングブロック120に設定される機能動作として、「条件分岐」、「繰り返し」、「関数」、「イベント」を個別に示して説明したが、これらは任意に組み合わせて設定するものであってもよい。
In this modification, “conditional branch”, “repetition”, “function”, and “event” are individually shown and described as functional operations set in the
<変形例3>
図19は、本実施形態に係るプログラミング教育装置に適用される構成の変形例を示す機能ブロック図であり、図20は、本変形例に適用されるプログラム生成、実行処理の一例を説明するための概略図である。ここで、上述した実施形態と同等の構成についてはその説明を簡略化する。
<
FIG. 19 is a functional block diagram illustrating a modified example of the configuration applied to the programming education apparatus according to the present embodiment, and FIG. 20 illustrates an example of program generation and execution processing applied to the modified example. FIG. Here, the description of the configuration equivalent to the above-described embodiment is simplified.
上述した実施形態においては、スタートブロック120Sを始点として、複数のプログラミングブロック120を順次連結接続するプログラミング操作処理により取得した入力操作情報(ブロック情報や連結特定情報)に基づいて、ターゲット機器200の動作状態を制御するプログラムが生成される。そして、このプログラムを実行することにより、プログラミング操作時に連結接続されたプログラミングブロック120の集合体の全体配置形状により決定された仮想経路に対応する移動経路に沿って、ターゲット機器200を移動させる制御方法について説明した。本変形例においては、上述した実施形態に示した制御方法により生成されたプログラムを実行することにより、移動経路に沿って移動するターゲット機器200に対して、当該プログラムの実行中に連結接続されたプログラミングブロック120の集合体の傾きや角度(方向)を変化させることにより、ターゲット機器200をより複雑な動作状態で制御するプログラミング学習を行う。
In the above-described embodiment, the operation of the
本変形例に係るプログラミング教育装置においては、例えば図19に示すように、上述した実施形態に示したプログラム制御装置100のスタートブロック120Sが、加速度センサ134をさらに備えた形態を有している。ここで、加速度センサ134は、スタートブロック120Sの傾きや角度(方向)を随時検出する。スタートブロック120Sの制御部128は、加速度センサ134からの検出信号の変化を監視して、スタートブロック120Sの傾きや角度(方向)に関するブロック傾斜情報を生成して記憶部126の記憶領域に記憶する。
In the programming education device according to the present modification, for example, as shown in FIG. 19, the
本変形例に係るプログラミング操作処理においては、上述した実施形態と同様に、ユーザがターゲット機器200の移動経路をイメージして、始点となるスタートブロック120Sに対して複数のプログラミングブロック120を順次連結接続する。これにより、スタートブロック120Sの制御部128は、連結接続された全てのプログラミングブロック120に関するブロック情報及び連結特定情報を受信して記憶部126の記憶領域に記憶する。
In the programming operation processing according to this modification, the user imagines the movement path of the
このプログラミング操作処理においては、スタートブロック120Sの制御部128は、加速度センサ134からの検出信号を監視しない状態、又は、加速度センサ134の検出動作自体を停止した状態を保持する。これにより、ユーザがスタートブロック120Sにプログラミングブロック120を連結接続する際に、スタートブロック120Sを持ち上げたり、移動させたりすることによりスタートブロック120Sの傾きや角度(方向)が著しく変化する状態を検出しないようにする。
In the programming operation process, the
次いで、プログラム生成、実行処理においては、プログラミング操作処理により取得された入力操作情報に基づいて、コアユニット160の制御部170によりターゲット機器200の動作状態を制御するプログラムを生成して、ターゲットに転送する。ターゲット機器200は、転送されたプログラムを実行して、図20(a)に示すように、プログラミング操作処理において決定された仮想経路に対応する移動経路A(図中、細い点線で表記)に沿って移動する。また、ターゲット機器200の移動経路上での移動に伴って、現在時点の移動位置に対応するプログラミングブロック120が発光して視覚的に識別可能な状態になる。
Next, in the program generation and execution processing, a program for controlling the operation state of the
このプログラム実行処理においては、スタートブロック120Sの制御部128は、加速度センサ134からの検出信号を監視し、検出信号に変化が生じた場合には、スタートブロック120Sの傾きや角度(方向)の変化量を含むブロック傾斜情報を生成してコアユニット160に送信する。コアユニット160の制御部170は、ブロック傾斜情報を受信すると、当該ブロック傾斜情報に含まれるスタートブロック120Sの傾きや角度(方向)の変化量を加味した新たなプログラム、又は、修正プログラムを生成してターゲットに転送する。ターゲット機器200は、現在実行中のプログラムを転送されたプログラムに更新することにより、図20(b)に示すように、現在実行中のプログラムで設定されていた移動経路Aから、現在時点以降、更新後のプログラムで設定される移動経路B(図中、太い点線で表記)に沿って移動する。
In this program execution process, the
なお、スタートブロック120Sの傾きや角度(方向)に変化がない場合には、ターゲット機器200は、現在実行中のプログラムを継続して、図20(a)に示したように、当該プログラムで設定された移動経路Aに沿って終点位置まで移動する。
When there is no change in the inclination or angle (direction) of the
ここで、本変形例に示した制御方法は、ターゲット機器200においてプログラム実行中に、スタートブロック120Sに連結接続された複数のプログラミングブロック120の集合体の傾きや角度(方向)が変化した場合に、ターゲット機器200の動作状態をどのように変化させるかという処理動作を行うものであり、これは上述した変形例2に示したイベント処理の機能動作に相当するものである。この場合は、イベント処理本体として、加速度センサによるスタートブロック120Sの傾きや角度(方向)の変化の検出、当該変化量に応じたプログラムの生成、ターゲット機器200における実行プログラムの更新、の各機能動作が予め設定されることになる。
Here, the control method shown in the present modification example is performed when the inclination or angle (direction) of the assembly of the plurality of programming blocks 120 connected and connected to the
このように、本変形例によれば、ターゲット機器200のプログラム実行中に、仮想経路を形成する複数のプログラミングブロック120の集合体を持ち上げたり移動させたりして、その傾きや角度(方向)を変化させることにより、ターゲット機器200の移動経路を含む動作状態を変化させることができる。このとき、イベント処理等の高度な機能動作を含むプログラミングを、タンジブルなプログラム制御装置を用いて容易に行うことができるとともに、その操作内容やターゲット機器200の動作状態を視覚を通して直感的に把握し易くすることができ、プログラミングの学習効果の向上を期待することができる。
As described above, according to the present modification, during execution of the program of the
なお、上述した各実施形態においては、年少の幼児を対象とするプログラミング教育装置について説明したが、本発明はこれに限定されるものではない。本発明は、タンジブルな入力操作、及び、視覚を通して操作内容やターゲット機器の動作状態を把握、理解できる特徴を有していることから、例えばプログラミングの初心者を対象とするものであってもよいし、身体の機能回復のためのリハビリテーションを必要とする人を対象とするものであってもよい。 In each of the above-described embodiments, the programming education device for young children has been described, but the present invention is not limited to this. Since the present invention has a feature that makes it possible to grasp and understand the operation content and the operating state of the target device through tangible input operations and visual senses, for example, it may be intended for a programming beginner. It may be intended for a person who needs rehabilitation for physical function recovery.
以上、本発明のいくつかの実施形態について説明したが、本発明は、上述した実施形態に限定されるものではなく、特許請求の範囲に記載された発明とその均等の範囲とを含むものである。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
As mentioned above, although several embodiment of this invention was described, this invention is not limited to embodiment mentioned above, It includes the invention described in the claim, and its equivalent range.
Hereinafter, the invention described in the scope of claims of the present application will be appended.
(付記)
[1]
タンジブルな複数の形状指示部がユーザ操作によって互いに相対的に配置されることで前記複数の形状支持部の相対位置が指示されたことに応じて、前記複数の形状支持部の相対位置に基づいて、第1形状を指示する第1形状指示部と、
前記第1形状指示部により指示された前記第1形状に対応させて被制御部を移動させる命令を生成する命令生成部と、
を備えることを特徴とするプログラミング装置。
(Appendix)
[1]
Based on the relative positions of the plurality of shape support portions in response to the relative position of the plurality of shape support portions being instructed by the plurality of tangible shape instruction portions being arranged relative to each other by a user operation. A first shape designating unit for designating the first shape;
A command generation unit that generates a command to move the controlled unit in correspondence with the first shape instructed by the first shape instruction unit;
A programming device comprising:
[2]
前記複数の形状指示部のうちのいずれかの形状指示部に対応付けて前記被制御部における機能を設定する機能設定部をさらに備え、
前記命令生成部は、
前記命令に応じて前記被制御部が前記いずれかの形状指示部に対応する位置へ移動したときに、前記機能設定部により設定された前記機能を前記被制御部に実行させる命令を生成することを特徴とする[1]に記載のプログラミング装置。
[2]
A function setting unit that sets a function in the controlled unit in association with any one of the plurality of shape instruction units;
The instruction generator is
Generating a command to cause the controlled unit to execute the function set by the function setting unit when the controlled unit moves to a position corresponding to any of the shape instruction units in accordance with the command; [1] The programming device according to [1].
[3]
前記複数の形状指示部のうちのいずれかの形状指示部は、前記機能の設定を受け付ける機能受付部をさらに備え、
前記命令生成部は、
前記命令に応じて前記被制御部が前記いずれかの形状指示部に対応する位置へ移動したときに、前記機能受付部が受け付けた前記機能を該被制御部に実行させる命令を生成することを特徴とする[1]又は[2]に記載のプログラミング装置。
[3]
Any one of the plurality of shape instruction units further includes a function reception unit that receives the setting of the function,
The instruction generator is
Generating a command to cause the controlled unit to execute the function received by the function accepting unit when the controlled unit moves to a position corresponding to any of the shape designating units according to the command. The programming device according to [1] or [2], which is characterized.
[4]
前記第1形状に対応して移動する前記被制御部を、さらに備えることを特徴とする[1]乃至[3]に記載のプログラミング装置。
[4]
The programming device according to any one of [1] to [3], further including the controlled unit that moves corresponding to the first shape.
[5]
タンジブルな複数の形状指示部がユーザ操作によって互いに相対的に配置されることで前記複数の形状支持部の相対位置が指示されたことに応じて、前記複数の形状支持部の相対位置に基づいて、第1形状を指示し、
前記指示された前記第1形状に対応させて被制御部を移動させる命令を生成する、
ことを特徴とするプログラミング方法。
[5]
Based on the relative positions of the plurality of shape support portions in response to the relative position of the plurality of shape support portions being instructed by the plurality of tangible shape instruction portions being arranged relative to each other by a user operation. Indicate the first shape,
Generating a command to move the controlled portion in correspondence with the instructed first shape;
A programming method characterized by that.
[6]
プログラミング装置を制御するための制御プログラムであって、
前記プログラミング装置は、第1形状指示部と命令生成部とを備え、
前記プログラミング装置を制御するコンピュータに、
タンジブルな複数の形状支持部がユーザ操作によって互いに相対的に配置されることで前記複数の形状支持部の相対位置が指示されたことに応じて、前記複数の形状支持部の相対位置に基づいて、前記第1形状指示部によって第1形状を指示させ、
指示された前記第1形状に対応させて被制御部を移動させる命令を、前記命令生成部によって生成させる、
ことを特徴とする制御プログラム。
[6]
A control program for controlling a programming device,
The programming device includes a first shape instruction unit and an instruction generation unit,
A computer for controlling the programming device;
In response to the relative position of the plurality of shape support portions being instructed by the plurality of tangible shape support portions being arranged relative to each other by a user operation, based on the relative positions of the plurality of shape support portions. , Instructing the first shape by the first shape instruction unit,
Generating a command to move the controlled unit in correspondence with the instructed first shape by the command generating unit;
A control program characterized by that.
100 プログラム制御装置
120 プログラミングブロック(形状指示部、第1形状指示部)
120F 機能設定ブロック(機能設定部)
120S スタートブロック(第1形状指示部)
120G 終端ブロック
122 ブロックI/F部(機能受付部)
124 識別変移部
126 記憶部
128 制御部
130 外部I/F部
132 電源部
134 加速度センサ
160 コアユニット(命令生成部)
162 操作部
164 外部I/F部
166 記憶部
168 通信I/F部
170 制御部
200 ターゲット機器(被制御部)
202 駆動部
204 機能部
206 通信I/F部
208 記憶部
210 制御部
100
120F Function setting block (Function setting part)
120S start block (first shape designator)
120G Terminal block 122 Block I / F part (function accepting part)
124
162
202
Claims (6)
前記第1形状指示部により指示された前記第1形状に対応させて被制御部を移動させる命令を生成する命令生成部と、
を備えることを特徴とするプログラミング装置。 Based on the relative positions of the plurality of shape support portions in response to the relative position of the plurality of shape support portions being instructed by the plurality of tangible shape instruction portions being arranged relative to each other by a user operation. A first shape designating unit for designating the first shape;
A command generation unit that generates a command to move the controlled unit in correspondence with the first shape instructed by the first shape instruction unit;
A programming device comprising:
前記命令生成部は、
前記命令に応じて前記被制御部が前記いずれかの形状指示部に対応する位置へ移動したときに、前記機能設定部により設定された前記機能を前記被制御部に実行させる命令を生成することを特徴とする請求項1に記載のプログラミング装置。 A function setting unit that sets a function in the controlled unit in association with any one of the plurality of shape instruction units;
The instruction generator is
Generating a command to cause the controlled unit to execute the function set by the function setting unit when the controlled unit moves to a position corresponding to any of the shape instruction units in accordance with the command; The programming device according to claim 1.
前記命令生成部は、
前記命令に応じて前記被制御部が前記いずれかの形状指示部に対応する位置へ移動したときに、前記機能受付部が受け付けた前記機能を該被制御部に実行させる命令を生成することを特徴とする請求項1又は2に記載のプログラミング装置。 Any one of the plurality of shape instruction units further includes a function reception unit that receives the setting of the function,
The instruction generator is
Generating a command to cause the controlled unit to execute the function received by the function accepting unit when the controlled unit moves to a position corresponding to any of the shape designating units according to the command. The programming device according to claim 1 or 2, characterized in that
前記指示された前記第1形状に対応させて被制御部を移動させる命令を生成する、
ことを特徴とするプログラミング方法。 Based on the relative positions of the plurality of shape support portions in response to the relative position of the plurality of shape support portions being instructed by the plurality of tangible shape instruction portions being arranged relative to each other by a user operation. Indicate the first shape,
Generating a command to move the controlled portion in correspondence with the instructed first shape;
A programming method characterized by that.
前記プログラミング装置は、第1形状指示部と命令生成部とを備え、
前記プログラミング装置を制御するコンピュータに、
タンジブルな複数の形状支持部がユーザ操作によって互いに相対的に配置されることで前記複数の形状支持部の相対位置が指示されたことに応じて、前記複数の形状支持部の相対位置に基づいて、前記第1形状指示部によって第1形状を指示させ、
指示された前記第1形状に対応させて被制御部を移動させる命令を、前記命令生成部によって生成させる、
ことを特徴とする制御プログラム。 A control program for controlling a programming device,
The programming device includes a first shape instruction unit and an instruction generation unit,
A computer for controlling the programming device;
In response to the relative position of the plurality of shape support portions being instructed by the plurality of tangible shape support portions being arranged relative to each other by a user operation, based on the relative positions of the plurality of shape support portions. , Instructing the first shape by the first shape instruction unit,
Generating a command to move the controlled unit in correspondence with the instructed first shape by the command generating unit;
A control program characterized by that.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017060810A JP6910592B2 (en) | 2017-03-27 | 2017-03-27 | Programming device and its control program, programming method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017060810A JP6910592B2 (en) | 2017-03-27 | 2017-03-27 | Programming device and its control program, programming method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2018163546A true JP2018163546A (en) | 2018-10-18 |
JP6910592B2 JP6910592B2 (en) | 2021-07-28 |
Family
ID=63860138
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017060810A Active JP6910592B2 (en) | 2017-03-27 | 2017-03-27 | Programming device and its control program, programming method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6910592B2 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109407582A (en) * | 2018-10-31 | 2019-03-01 | 陈黎明 | A kind of machine programming method for visualizing |
KR20210000555A (en) * | 2019-06-25 | 2021-01-05 | 주식회사 씨앤알테크 | Unplugged Real Coding Block with blocks capable of multi-directional insertion |
WO2023279699A1 (en) * | 2021-07-06 | 2023-01-12 | 上海商汤智能科技有限公司 | Experiment generation methods and apparatus, electronic device, storage medium and program |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH088864A (en) * | 1994-06-21 | 1996-01-12 | Nec Corp | Program preparation device |
JP2001228963A (en) * | 2000-02-17 | 2001-08-24 | Kaikousha:Kk | Panel recognizing device |
US20050026537A1 (en) * | 2003-08-01 | 2005-02-03 | Hsieh Jennifer Chia-Jen | Physical programming toy |
JP3206586U (en) * | 2016-07-13 | 2016-09-23 | 株式会社テクノサイト | Command execution toys |
US20160284221A1 (en) * | 2013-05-08 | 2016-09-29 | Matternet, Inc. | Route planning for unmanned aerial vehicles |
US20160364004A1 (en) * | 2015-06-11 | 2016-12-15 | Intel Corporation | Drone controlling device and method |
US20170007915A1 (en) * | 2015-07-10 | 2017-01-12 | Play Works Studio, Inc. | Systems and methods for an interactive robotic game |
JP2017506781A (en) * | 2013-03-12 | 2017-03-09 | シィ, ヅェンSHI, Zheng | System and method for computer programming with physical objects in interactive surfaces |
-
2017
- 2017-03-27 JP JP2017060810A patent/JP6910592B2/en active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH088864A (en) * | 1994-06-21 | 1996-01-12 | Nec Corp | Program preparation device |
JP2001228963A (en) * | 2000-02-17 | 2001-08-24 | Kaikousha:Kk | Panel recognizing device |
US20050026537A1 (en) * | 2003-08-01 | 2005-02-03 | Hsieh Jennifer Chia-Jen | Physical programming toy |
JP2017506781A (en) * | 2013-03-12 | 2017-03-09 | シィ, ヅェンSHI, Zheng | System and method for computer programming with physical objects in interactive surfaces |
US20160284221A1 (en) * | 2013-05-08 | 2016-09-29 | Matternet, Inc. | Route planning for unmanned aerial vehicles |
US20160364004A1 (en) * | 2015-06-11 | 2016-12-15 | Intel Corporation | Drone controlling device and method |
US20170007915A1 (en) * | 2015-07-10 | 2017-01-12 | Play Works Studio, Inc. | Systems and methods for an interactive robotic game |
JP3206586U (en) * | 2016-07-13 | 2016-09-23 | 株式会社テクノサイト | Command execution toys |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109407582A (en) * | 2018-10-31 | 2019-03-01 | 陈黎明 | A kind of machine programming method for visualizing |
KR20210000555A (en) * | 2019-06-25 | 2021-01-05 | 주식회사 씨앤알테크 | Unplugged Real Coding Block with blocks capable of multi-directional insertion |
KR102268888B1 (en) | 2019-06-25 | 2021-06-24 | 주식회사 씨앤알테크 | Unplugged Real Coding Block with blocks capable of multi-directional insertion |
WO2023279699A1 (en) * | 2021-07-06 | 2023-01-12 | 上海商汤智能科技有限公司 | Experiment generation methods and apparatus, electronic device, storage medium and program |
Also Published As
Publication number | Publication date |
---|---|
JP6910592B2 (en) | 2021-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11688299B2 (en) | Programming device and recording medium, and programming method | |
US11113036B2 (en) | Programming device and recording medium, and programming method | |
JP6077016B2 (en) | Board assembly used with toy pieces | |
EP2744580B1 (en) | Baseplate assembly for use with toy pieces | |
US20160361662A1 (en) | Interactive lcd display back light and triangulating toy brick baseplate | |
CN110832439A (en) | Light emitting user input device | |
CN210200069U (en) | Programmable robot | |
US20170053550A1 (en) | Education System using Connected Toys | |
US20190022520A1 (en) | System of distributed interactive objects | |
JP6290467B1 (en) | Information processing method, apparatus, and program causing computer to execute information processing method | |
JP6910592B2 (en) | Programming device and its control program, programming method | |
JP2019101050A (en) | Program for assisting in performing musical instrument in virtual space, computer-implemented method for assisting in selecting musical instrument, and information processor | |
US11541322B1 (en) | Mat controllable by remote computing device | |
JP6910593B2 (en) | Program processing device | |
US11498014B1 (en) | Configurable devices | |
US20190105579A1 (en) | Baseplate assembly for use with toy pieces | |
WO2021092679A9 (en) | Augmented reality system | |
JP2019170544A (en) | Action device, action toy and system | |
US20170065878A1 (en) | Block, method and user terminal for providing a game by setting control relation between the block and a toy | |
US20140243102A1 (en) | System and methods for tele-interactive play items | |
KR20210020192A (en) | Module-type Drone | |
KR20210011591A (en) | Termianl connected to action robot and operating method thereof | |
KR20180013484A (en) | ROBOT SYSTEM for SOFTWARE EDUCATION |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200109 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20201126 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20201225 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210205 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20210607 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210620 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6910592 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |