(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2024-03-21
(45)【発行日】2024-03-29
(54)【発明の名称】プログラミング装置
(51)【国際特許分類】
G09B 9/00 20060101AFI20240322BHJP
A63H 33/04 20060101ALI20240322BHJP
A63H 11/00 20060101ALI20240322BHJP
A63H 30/00 20060101ALI20240322BHJP
A63H 30/02 20060101ALI20240322BHJP
G06F 8/34 20180101ALI20240322BHJP
【FI】
G09B9/00 Z
A63H33/04 A
A63H11/00 Z
A63H30/00 Z
A63H30/02 Z
G06F8/34
(21)【出願番号】P 2023014068
(22)【出願日】2023-02-01
【審査請求日】2023-02-03
(73)【特許権者】
【識別番号】597033650
【氏名又は名称】有限会社シグナリス
(74)【代理人】
【識別番号】100185270
【氏名又は名称】原田 貴史
(74)【代理人】
【識別番号】100225347
【氏名又は名称】鬼澤 正徳
(72)【発明者】
【氏名】小林 郁夫
【審査官】鈴木 崇雅
(56)【参考文献】
【文献】中国特許出願公開第113160661(CN,A)
【文献】特開2021-140124(JP,A)
【文献】特開2001-228963(JP,A)
【文献】特開2018-163547(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G09B 9/00
G09B 19/00
A63H 11/00-20
A63H 33/04-14
A63H 30/00-04
G06F 8/00-77
(57)【特許請求の範囲】
【請求項1】
ボード上にブロックを配置させることによってプログラムを学ぶプログラミング装置であって、
前記ボード上に配置させた複数のブロックのインピーダンスを測定するインピーダンス測定部と、
前記インピーダンスからコマンドを指定するコマンド指定部と、
前記指定されたコマンドからプログラムコードを作成するプログラムコード作成部と、前記ボードの下層に位置する基板に制御部と、セレクタと、抵抗/機能参照テーブルと、を備え、
前記制御部は、測定された各インピーダンスを前記抵抗/機能参照テーブルにおいて最も近い抵抗値に変換して、抵抗値を確定し、
前記コマンド指定部は、前記ブロックの変換された前記抵抗値を前記抵抗/機能参照テーブルを参照し、前記抵抗値に対応するコマンドを指定し、
前記制御部により前記ボードに接続された通信装置から前記プログラムコードを送信し、ロボット玩具を遠隔で動作させるプログラミング装置。
【請求項2】
プログラムコードの作成開始スイッチとプログラム実行スイッチを備える請求項1に記載のプログラミング装置。
【請求項3】
プログラムコードとプログラミング処理のフローとを表示する表示装置を備える請求項1または請求項2に記載のプログラミング装置。
【請求項4】
入力装置を備える請求項3に記載のプログラミング装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、プログラミング装置およびプログラムに関する。
【背景技術】
【0002】
近年の小学校のプログラミング教育義務化などにより、オンライン上で行われるプログラミング学習ツールに関心が高まっている。また、プログラミングが可能なロボット玩具なども販売されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1には、「アクティブ信号入力に応じてコマンドを出力する複数のブロックユニットと、前記ブロックユニットが複数着脱可能でかつ前記ブロックユニットの共通バスに接続されたコントローラを搭載した基板と、出力装置と、を備え、前記ブロックユニットは、隣接する前記ブロックユニット又は前記コントローラから前記アクティブ信号を受け、前記コマンドを前記共通バスに出力し、前記コントローラは、前記共通バスより読み出した前記コマンドに従って前記出力装置の状態を変更あるいは保持することを特徴とする、プログラミング装置。」と記載されている。
しかし、特許文献1は、イベント会場などで多くの子供たちがプログラミングを学べるものではない。また、ブロックに抵抗値を持たせ、ブロックを組み合わせることで、プログラミングを行い、遠隔でロボット玩具を動作させるものでもない。
【課題を解決するための手段】
【0005】
本開示の一実施形態であるプログラミング装置は、ボード上にブロックを配置させることによってプログラムを学ぶプログラミング装置である。
プログラミング装置は、ボード上に配置させた複数のブロックのインピーダンスを測定するインピーダンス測定部と、抵抗値からコマンドを指定するコマンド指定部と、
指定されたコマンドからプログラムコードを作成するプログラムコード作成部とを備える。また、プログラミング装置は、制御部によりボードに接続された通信装置からプログラムコードを送信し、ロボット玩具を遠隔で動作させるプログラミング装置である。
【発明の効果】
【0006】
本開示の一実施形態であるプログラミング装置によれば、幼児レベルの段階からブロックを組み合わせることで、楽しみながらプログラミングに必要な知識を身に付けることができるという効果を有する。
【図面の簡単な説明】
【0007】
【
図1】本開示の一実施形態におけるプログラミング装置システム1に関する概略図である。
【
図2】本開示の一実施形態におけるプログラミング装置システム1の構成図である。
【
図3】本開示の一実施形態におけるプログラミング装置システム1のHW構成図である。
【
図4】本開示の一実施形態におけるプログラミング装置100のブロック図である。
【
図5】本開示の一実施形態におけるプログラミング装置100におけるブロック110である。
【
図6】本開示の一実施形態における抵抗/動作参照テーブルである。
【
図7】本開示の一実施形態における抵抗値測定回路の一例である。
【
図8】本開示の一実施形態における抵抗測定器の一例である。
【
図9】本開示の一実施形態におけるプログラミング装置100のフローチャートである。
【
図10】本開示の一実施形態におけるプログラミング装置100の実施例1である。
【
図11】本開示の一実施形態におけるプログラミング装置100の実施例2である。
【
図12】本開示の一実施形態におけるプログラミング装置100の実施例3である。
【発明を実施するための形態】
【0008】
以下、本開示を実施するための形態について図を参照しながら説明する。なお、これはあくまでも一例であって、本開示に係る発明の技術的範囲はこれに限られるものではない。また、実施の形態を説明するための全図において、同一部には原則として同一の符号を付し、その繰り返しの説明は省略する。
【0009】
[1.構成]
本開示の一実施形態であるプログラミング装置100は、ボード120上にブロックを配置させることによってプログラムを学ばせるものである。プログラミング装置100は、ボード120上に配置させた複数のブロック110のインピーダンスを測定するインピーダンス測定部105と、インピーダンスからコマンドを指定するコマンド指定部106と、指定されたコマンドからプログラムコードを作成するプログラムコード作成部107とを備える。プログラミング装置100は、制御部101により前記ボード120に接続された通信装置130から前記プログラムコードを送信し、ロボット玩具200を遠隔で動作させるプログラミング装置100である。
また、プログラミング装置100は、ボード120上プログラムコード作成の開始スイッチとプログラム実行スイッチを備えていてもよい。
さらに、プログラミング装置100は、プログラムコードとプログラミング処理のフローとを表示する表示装置を備えていてもよい。プログラミング装置100は、表示装置に表示されたプログラムやプログラミング処理のフローを修正するための入力装置を備えていてもよい。
【0010】
図1は、本開示の一実施形態におけるプログラミング装置システム1に関する概略図である。
本開示にかかるプログラミング装置システム1は、プログラミング装置100と、通信装置130と、ロボット玩具200を備えている。
通信装置130は、専用の通信機器(リモコン)でもよいし、ゲームのコントローラでもよいし、スマホやタブレットなどの通信機能を備えているものでもよい。ロボット玩具200は、人型でも、動物でも、恐竜でも、車でも、飛行機でも、船でもよい。ロボット玩具200は、プログラム可能なロボット玩具であり、本開示にかかる専用アプリケーションやプログラムを予めダウンロードしておくことで動作する。
また通信装置130は、「リモコン」で動作するものであるならば、テレビやエアコン、室内の照明など玩具以外の機器であっても赤外線パターン送出機能を付加し、コード変換のプログラムを予めダウンロードすることで機器を操作できる。
【0011】
プログラミング装置100は、ブロック110と、ボード120とを備えている。また、プログラミング装置100は、プログラムコード読込スイッチ121と、プログラム実行スイッチ122とを備えていてもよい。その他、リセットスイッチなどを有していてもよい。
【0012】
本開示の一実施形態におけるプログラミング装置100は、複数のブロック110を組み合わせる。ブロック110は、固有のインピーダンスを備えている。本開示の一実施形態として、以下インピーダンスを抵抗に置き換えて説明する。
ブロック110に仕込まれた抵抗値を測定することで、その抵抗値に対応するコマンドを指定する。コマンドに対応するプログラムコードを作成し、通信装置130でプログラムコードをロボット玩具200に送り、ロボット玩具200を動作させるものである。
ボード120上に配置させられたブロック110は、
図1の左から右に順に時系列が構成される(
図11、12においては、上から下)。
図1でいうと、ブロック110が2つ、1つ、3つの順に時系列が構成される。
【0013】
ブロック110にキャパシタやインダクタなどのインピーダンス素子を用いた場合には、数ミリ秒間隔で固定抵抗の両端電圧を測定し、その指数関数的な電圧値の対数を求め、最小二乗法などで一次関数近似する。その一次関数の傾きから時定数を計算することでキャパシタンス、もしくはインダクタンスを求める。
このように、抵抗値の代わりにキャパシタンスやインダクタンスなど一般的なインピーダンス値を用いることも可能であるが、時間的な変化を計測する必要があることから、一度のAD変換で電圧値から抵抗値を求めることができる抵抗ブロックの方が、簡便である。以上のことから、本開示の実施形態として抵抗ブロックを用いた場合で説明する。
【0014】
図2は、本開示の一実施形態におけるプログラミング装置システム1の構成図である。プログラミング装置システム1は、プログラミング装置100と、通信装置130と、通信ネットワーク150と、ロボット玩具200とを備えている。
【0015】
プログラミング装置100は、本開示の一実施形態であり、プログラミングに必要な知識を身に付けることができる装置である。具体的には、プログラミング装置100は、プログラミング教育用の超小型コンピュータ(ラズベリーパイなど)をベースに作成された装置である。
【0016】
通信ネットワーク150は、インターネット、イントラネット、無線LAN、4Gや5G携帯電話システムネットワークや、Bluetooth(登録商標)、赤外線通信などの近距離無線により構成される。
【0017】
図3は、プログラミング装置システム1のHW構成図である。ボード120の上層に位置するブロック板上に抵抗ブロック110を配置する。ブロック板上には、入力部108として、プログラムを読込/実行のスイッチが備えられていてもよい。また、プログラムの読込やプログラムの実行が正常に行われた場合、OK表示が表示装置140やプログラミング装置100の表示部104に表示されてもよい。プログラムの読込やプログラムの実行が失敗した場合、表示装置140やプログラミング装置100の表示部104にエラー表示が表示されてもよい。
【0018】
ボード120の下層に位置する基板に制御部101と、セレクタ170と、抵抗機能参照テーブルと、AD変換などを備えている。
プログラム読込処理でエラーが生じた場合には、プログラミングの指導者がコードを編集することができるように、ブロック110の配列とプログラムコードを表示部104に表示してもよい。表示部104に表示されたプログラムコードを入力装置であるキーボードやマウスで編集し、プログラムを実行することができる。
通信装置130は、ロボットを制御するプログラムコードを送信する装置である。通信装置130は、ゲームのコントローラであってもよい。
【0019】
図4は、プログラミング装置100のブロックである。
図4に示されているように、プログラミング装置100は、制御部101と、記憶部102と、通信部103と、表示部104と、インピーダンス測定部105と、コマンド指定部106と、プログラムコード作成部107と、入力部108とを備えている。
【0020】
制御部101は、主にCPUである。制御部101は、プログラミング装置100にインストールされたアプリケーションやプログラムを実行して、プログラミング装置100を統括制御する。
制御部101は、記憶部102に格納された情報を読み込む指令を行う。制御部101は読み込まれた情報を表示部104に表示する指令などを行う。
また、制御部101は、通信部103に接続された通信装置130からロボット玩具200に対して、プログラムコードを送信する制御を行う。
【0021】
記憶部102は、表示部104に表示する文字情報、画像情報等のデータを格納する。記憶部102には、一時記憶としてメモリがあり、永久記憶としてHDDやSSDがある。
メモリは、制御部101が処理を行う際のワークエリアとして機能するものである。メモリは、例えば、ダイナミックランダムアクセスメモリ(DRAM)及び静的ランダムアクセスメモリ(SRAM)などである。
本開示においては、記憶部102には、ブロック110と抵抗値の関係、抵抗値と動作の対応表、作成されたプログラムコードなどが格納されている。
【0022】
通信部103は、プログラミング装置100がプログラミング装置100の外部と情報のやり取りを行うものである。具体的には、通信部103は、インターネット、無線LAN、Bluetooth、赤外線通信などでプログラミング装置100の外部と接続される。
通信部103は、主にプログラムコードをプログラミング装置100からロボット玩具200に送信する。通信部103は、通信機能を備えている通信装置(コントローラ)を介して、プログラムコードをロボット玩具200に送信する。また、通信部103は、ロボット玩具200からエラーを受信することも可能である。エラーの内容としては、障害物センサによるエラーなどである。
【0023】
表示部104は、記憶部102に格納されたテキストデータ、画像データなどを出力する。表示部104は、具体的には、液晶ディスプレイなどである。
本開示の一実施形態におけるプログラミング装置100では、表示部104は、プログラミング装置100に接続される表示装置140の液晶ディスプレイなどである。
また、表示部104として液晶ディスプレイの画面に、ブロック配列から読み取ったプログラムやプログラムのフローチャートなどを表示することで、より発展的な学習指導が可能となる。
【0024】
インピーダンス測定部105は、インピーダンス(抵抗値)を測定する。具体的には、インピーダンス測定部105は、マルチプレクサにより個々の抵抗を切り替えて、抵抗値を測定する。
【0025】
コマンド指定部106は、測定された抵抗値に基づき、「抵抗値と動作の対応表」を参照して、測定された抵抗値に対応するコマンドを特定する。
実際には、抵抗値は、温度湿度その他の要因により必ずしも正確に測ることができない。コマンド指定部106は、算出した抵抗値の結果を四捨五入処理や、切り捨て処理を行ってもよい。コマンド指定部106は、測定された抵抗値に対して、記憶部102に格納されている「抵抗値と動作の対応表」を参照し、「抵抗値と動作の対応表」の中で最も近い抵抗値を選定してもよい。例えば、「抵抗値と動作の対応表」にある抵抗値と算出された抵抗値との差の絶対値が最も小さい抵抗値が最近接の抵抗値と考えられる。
【0026】
プログラムコード作成部107は、抵抗値に対応するコマンドを所定の方向から見て、上から下に順にコマンドを並べ、これを時系列と認識する。プログラムコード作成部107は、この順で並べたコマンドに基づき、プログラムコードを自動で作成する。
【0027】
入力部108は、プログラミング装置100に外部から入力するための装置である。具体的には、マウス、キーボード、スイッチ等である。
スイッチとは、ボード120上のプログラム読込スイッチ121とプログラム実行スイッチ122である(
図1参照)。
プログラム読込スイッチ121が押下されると、インピーダンス測定部105は、ブロック110の抵抗値を測定する。その後、コマンド指定部106は、抵抗値に対応するコマンドを指定する。そして、プログラムコード作成部107は、プログラムコードを自動で作成する。
プログラム実行スイッチ122が押下されると、制御部101は、通信部103に接続されている通信装置130からロボット玩具200に対して、プログラムコードを送信し、実行する。
なお、ボード120は、様々な電子部品が搭載されている多層のプリント基板をベースにして、加工したものである。また、ボード120はブロック110とコネクタ端子などにより接続させることが可能なものである。
【0028】
原則として、特定のプログラミング装置100により特定のロボット玩具200が動作する。プログラミング装置100とロボット玩具200とは、事前にモード(暗号)を決めておくことが可能である。例えば、プログラミング装置100は、プログラムコードを送る前に、プリアンブルを送り、動作するとロボット玩具200を特定しておくことが可能である。また、プログラミング装置100とロボット玩具200の間で、暗号モードをあらかじめ設定しておき、暗号モードが一致する場合のみ、ロボット玩具200が動作する仕組みでもよい。
ただし、あるプログラミング装置100が複数のロボット玩具200を動かすことも可能である。
【0029】
図5は、本開示の一実施形態におけるブロック110である。ブロック110は、複数の抵抗値ブロックを備えている。
ブロック110のサイズは、原則として同じ縦横高である。抵抗値は、100Ω、150Ω、200Ω、300Ω、・・・、5kΩ、10kΩ、50kΩ、100kΩなどである。それぞれのブロックを区別するため、ブロックの色を変えてもよい。例えば、100Ω(白色)、150Ω(黒色)、200Ω(橙色)、300kΩ(藍色)、5kΩ(赤色)、10kΩ(青色)、50kΩ(緑色)、100kΩ(黄色)である。
また、ブロック110の色違いに変えて、ブロック110の手触りを変えてもよいし、ブロック110の重さを変えてもよい。
【0030】
ブロック110の所定の面には、コネクタ端子115が備え付けられており、ボート120と接続をすることが可能である。
ボード120に複数のブロック110を配置し、組み合わせることで様々なコマンドを作成することができる。
【0031】
図6は、本開示の一実施形態における「抵抗/機能参照テーブル」である。
例えば、抵抗値が300kΩおよび400kΩでは、if条件 else文なども定義しており、複雑なプログラムを作成することが可能となる。
図6(a)において、ブロック110は、各行の先頭に置かれたブロック110を「述語」ブロックとし、その「述語」の意味・内容に応じて「目的語」ブロック110が右に配置されるものとする。
例えば、「変数代入」という述語では、代入する変数を表すブロック110と、代入される値のブロック110とが、右につながる。「If条件」のブロック110では、「目的語」ブロックは「条件」になる。
「抵抗/機能参照テーブル」は、使用言語に応じて差異はあるものの、C言語型の場合にも、Python型の場合にも対応できるようにしてある。
【0032】
図6(b)は、機能・動作のコマンド一覧表である。
図6(b)において、抵抗値が10kΩであれば、「(n秒間)前に進む」と定義する。nは任意の自然数であり、例えば、n=3である。
抵抗値が15kΩであれば、「(n度)右回転する」と定義する。nは任意の自然数であり、例えば、n=90である。
抵抗値が35kΩであれば、「右腕を上げる」と定義する。人型ロボットなどでは問題ないが、車や航空機の場合には、「右側ドアを開ける」などに対応付ける。
図6の抵抗値の対応表は、これに限定されず、柔軟に、かつ、適宜更新される。
なお、ユーザは、「抵抗/機能参照テーブル」と同等の情報を印刷物やスマホ上の電子ファイルを有している。
【0033】
プログラム実行に関する処理に応じたLED126は、ボード120上のプログラム読込スイッチ121が押下されると、インピーダンス測定部105は、ブロック110の抵抗値を測定する。その後、コマンド指定部106は、抵抗値に対応するコマンドを指定する。そして、プログラムコード作成部107は、プログラムコードを自動で作成する。
特に問題なくプログラムコードが作成された場合には、表示部104にOKの表示をしてもよい。また、何らかの不具合が生じた場合には、表示部104にNGの表示をしてもよい。
ボード120上のプログラム実行スイッチ122が押下されると、制御部101は、通信部103に接続された通信装置130からプログラムコードをロボット玩具200に対して送信し、プログラムコードを実行する。特に問題なくプログラムコードが実行された場合には、表示部104にOKの表示をしてもよい。また、何らかの不具合が生じた場合には、表示部104にNGの表示をしてもよい。
【0034】
イベント会場などで多数の子どもたちがプログラミングを試す場合、わずかなブロックの配置ミスでプログラムが動作しないと、子どもによってはトラウマを残し逆効果になる場合がある。このような場合に、制御装置100にマウスやキーボードなどの入力装置が接続されている場合には、指導者等がディスプレイなどの表示装置140に表示されたブロックプログラムを修正することが可能である。ブロックの配置ミスにも関わらず、プログラム動作するように修正し、子どもにポジティブな学習記憶、効果を残すことが可能である。
【0035】
図7は、本開示の一実施形態における抵抗値測定回路である。
抵抗値測定回路は、電源電圧Vcc(5V)と、固定抵抗器160と、行セレクタと列セレクタからなるマルチプレクサ170とから構成される。
マルチプレクサ170は、行セレクタと列セレクタによりブロック110を1つ選ぶ。抵抗値測定回路は、固定抵抗とブロック110を含む直列回路を形成する。
固定抵抗器160は、予め直列に接続した「固定抵抗」の値を選択できる。固定抵抗とは抵抗値が予め分かっている抵抗である。この固定抵抗を利用し、マルチプレクサで切り替えられたブロック110の抵抗の両端の電圧をAD変換する。具体的には、抵抗値測定回路により、固定抵抗の電圧を測定する。オームの法則により電圧の比が抵抗値の比となるため、ブロック110の抵抗値を測定できる。
【0036】
図8は、抵抗値測定回路における固定抵抗器を示した図である。
誤差を最小限するため固定抵抗器160には、100Ω、1kΩ、10kΩ、100kΩの4種類の固定抵抗が備え付けられている。スイッチで切り替えることが可能である。
通常、抵抗の抵抗値は、数%の誤差が生じる。例えば、固定抵抗を1kΩで、ブロック110の抵抗値が50kΩの場合、5%の誤差が生じると、2.5kΩとなる。これは固定抵抗1kΩに対して誤差が大きくなるため望ましくない。固定抵抗を10kΩ、または100kΩに切り替えて、ブロック110の抵抗値を測定すると誤差は、相対的に小さくなる。
【0037】
抵抗値を測定する方法は、固定抵抗をブロック110と直列でつなぎ、固定抵抗の電圧をAD変換することで求めることができる。例えば、AD変換の結果、固定抵抗の電圧が1Vであった場合、全体が5Vであるから、直列抵抗の比が電圧の比になるため、1対4となる。
【0038】
複数のブロック110がボード上に配置され、制御部101の指令によりマルチプレクサ170による切り替えが行われ、インピーダンス測定部105は、自動または手動で各ブロック110の抵抗値が測定する。各ブロック110の抵抗値が測定されると、コマンド指定部106は、制御部101からの指令により、記憶部102に格納されている「抵抗/機能参照テーブル」を参照して、測定された抵抗値に対応する機能、動作、コマンドに変換することで、各ブロック110の役割が定まる。ここで、ブロックは、各行の先頭に置かれたブロックを「述語」ブロックとし、「目的語」ブロックが右に配置されるものとする。その「述語」の意味・内容に応じてこれを所定の方向からみて左上から右方向に読み、下へ行き右方向に読み、右下へ順に読むことでプログラムとして認識される。
【0039】
図9は、本開示の一実施形態におけるプログラミング装置100のフローチャートである。
ロボット玩具200を動作させたいブロック110を配置する(S100)。
プログラム読込スイッチを押下すると(S110)、インピーダンス測定部105は、マルチプレクサ170を切り替えて、順次各ブロック110の抵抗値を測定する(S120)。
制御部101は、測定された各抵抗値を「抵抗/機能参照テーブル」において最も近い抵抗値に変換して、抵抗値を確定する(S130)。
コネクタ端子115の接触や接続ミスなどにより、ブロック110の抵抗値が測定できない場合には、制御部101は、表示部104にエラー表示をしてもよい(S140)。
【0040】
コマンド指定部106は、ブロック110の変換された抵抗値を記憶部102に格納された「抵抗/機能参照テーブル」を参照し、抵抗値に対応するコマンドを指定する(S150)。
配置されたすべてのブロック110について同様の処理を繰り返し行う。
【0041】
プログラム実行スイッチ122が押下されると、プログラムコード作成部107は、ボード120上に設置されているブロック110の上から順にコマンドを読み込む。コマンド全体として、ロボット玩具200を動作させるための所望のプログラムコードを作成する(S160)。
【0042】
プログラムコードの作成に関して特に問題なければ、制御部101は、表示部104にOKの表示をしてもよい。制御部101は、プログラムコードを通信部103から通信装置130を経由して、ロボット玩具200に送信する(S180)。プログラムコードの作成に関して、プログラムエラーが発生した場合には、制御部101は、表示部104にNGの表示をさせてもよい(S190)。
【0043】
通信装置130は、専用の通信機器コントローラでもよいし、専用アプリケーションをダウンロードしたスマホやタブレットなどの通信機能を有する装置でもよい。
通信装置130は、プログラミング装置100の通信部103に有線で接続されてもよいし、WiFiやBluetoothなどの無線を介して接続されてもよい。
通信装置130は、ロボット玩具200が赤外線リモコン等で操作される、テレビやエアコンなどの機器である場合、赤外線の送出装置でもよい。
【0044】
ロボット玩具200にプログラミング装置100からプログラムコードが受信されば、制御部101は、ロボット玩具200内で自動的にプログラムコードを実行させる。実行されたプログラムコードにより、ロボット玩具200は、動作する(S200)。
ロボット玩具200にプログラミング装置100からプログラムコードが受信できない場合、また一定時間経過してもロボット玩具200が動作しない場合、赤外線センサにより障害物を検知した場合、その他何らかの問題があった場合、ロボット玩具200は、プログラミング装置100にエラーを送信してもよい。そして、プログラミング装置100は、エラーを表示部104に表示をしてもよい(S210)。
【0045】
図10は、本開示の一実施形態におけるプログラミング装置100のフローチャートとそのフローチャートの各ステップに対応するブロック110の配列である。
具体的には、ブロック110の配列とは、
図10(b)のように最上部に3kΩのブロックと、1kΩのブロックと、100Ωブロックとを並べ、その下に200kΩのブロックと、150Ωのブロックと、200Ωブロックとを並べ、その下に15kΩのブロックと、600Ωのブロックとなどを並べることを指す。
インピーダンス測定部105は、制御部101の指令により、それぞれのブロック110の抵抗値を測定する。コマンド指定部106は、制御部101の指令により、測定した抵抗値に対応するコマンドを記憶部102に格納してある「抵抗/機能参照テーブル」から読み出し、変換する。
プログラムコード作成部107は、コマンドに基づきプログラムコードを作成する。コマンドは、同列を左から右に読み、上から下に逐次読むものとする。
【0046】
最上部に3kΩのブロックと、1kΩのブロックと、100Ωブロックは、定義「変数A=0」となる(S300)。
次に、200kΩのブロックと、150Ωのブロックと、200Ωブロックは、12回反復するという繰り返しコマンドとなる(S320)。
15kΩのブロックと、600Ωのブロックは、90(=15×6)度の右回転の動作となる(S340)。
10kΩのブロックと、200Ωのブロックは、2(=1×2)秒間の前進の動作となる(S360)。
300kΩのブロックと、500kΩのブロックは、障害物センサに反応があったか否かの判断となる(S380)。障害物センサに反応がある場合には、1kΩブロックでプログラムの実行を終了する(S400)。障害物センサに反応がなかった場合には、400kΩブロックで、処理を継続する。
2kΩのブロックは、「モジュール呼び出し」であり、1kΩのブロックは呼び出されるモジュールで、「目的語」として認識され「モジュールA」と解釈される(S420)。
150kΩブロックでif文の処理を終了する。また、次の150kΩブロックで繰り返しの処理を終了する。(S440)。
【0047】
プログラミング装置100は、ブロック110の配置により、またif文より複雑な条件を設定し、ロボット玩具200に対して様々な動作をさせることが可能である(
図11)。
他の実施例として、プログラミング装置100は、家電の操作をプログラミングすることも可能である。例えば、照明の点灯や消灯、テレビの起動、チャネルの選択、音量の設定などをプログラミングで制御することも可能である(
図12)。
【0048】
[2.効果]
本開示の一実施形態であるプログラミング装置によれば、幼児レベルの段階からブロックを組み合わせることで、楽しみながらプログラミングに必要な知識を身に付けることができるという効果を有する。
【符号の説明】
【0049】
1 プログラミング装置システム
100 プログラミング装置
101 制御部
102 記憶部
103 通信部
104 表示部
105 インピーダンス測定部
106 コマンド指定部
107 プログラムコード作成部
108 入力部
110 ブロック
115 コネクタ端子
120 ボード
121 プログラム読込スイッチ
122 プログラム実行スイッチ
130 通信装置
140 表示装置
150 通信ネットワーク
160 固定抵抗器
170 マルチプレクサ
200 ロボット玩具
【要約】
【課題】 本開示によれば、幼児レベルの段階からブロックを組み合わせることで、楽しみながらプログラミングに必要な知識を身に付けることができるという効果を有するプログラミング装置を提供することである。
【解決手段】 本開示の一実施形態であるプログラミング装置100は、ボード上にブロックを配置させることによってプログラムを学ばせるものである。プログラミング装置100は、ボード120上に配置させた複数のブロック110のインピーダンスを測定するインピーダンス測定部105と、インピーダンスからコマンドを指定するコマンド指定部106と、指定されたコマンドからプログラムコードを作成するプログラムコード作成部107とを備える。プログラミング装置100は、制御部101により前記ボード120に接続された通信装置130から前記プログラムコードを送信し、ロボット玩具200を遠隔で動作させるプログラミング装置100である。
【選択図】
図1