JP7132557B1 - デバイス制御システム - Google Patents

デバイス制御システム Download PDF

Info

Publication number
JP7132557B1
JP7132557B1 JP2021142088A JP2021142088A JP7132557B1 JP 7132557 B1 JP7132557 B1 JP 7132557B1 JP 2021142088 A JP2021142088 A JP 2021142088A JP 2021142088 A JP2021142088 A JP 2021142088A JP 7132557 B1 JP7132557 B1 JP 7132557B1
Authority
JP
Japan
Prior art keywords
gui
program
information processing
server
unit
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.)
Active
Application number
JP2021142088A
Other languages
English (en)
Other versions
JP2023035318A (ja
Inventor
あずさ 高橋
寛樹 高橋
貴之 鈴木
Original Assignee
アドバンスデザインテクノロジー株式会社
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by アドバンスデザインテクノロジー株式会社 filed Critical アドバンスデザインテクノロジー株式会社
Priority to JP2021142088A priority Critical patent/JP7132557B1/ja
Application granted granted Critical
Publication of JP7132557B1 publication Critical patent/JP7132557B1/ja
Publication of JP2023035318A publication Critical patent/JP2023035318A/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

【課題】さまざまなデバイス装置に柔軟に対応可能なデバイス制御技術を提供する。【解決手段】 デバイス制御システムは、複数のデバイス装置と、デバイス装置と接続されるシングルボードコンピュータと、シングルボードコンピュータと接続されるクライアント端末と、クライアント端末と接続されるサーバを備える。サーバは、GUIプログラムを生成するGUIプログラム生成部と、GUIプログラムを変換することにより、前記第1の情報処理装置の実行プログラムを生成する実行プログラム生成部と、生成された実行プログラムをシングルボードコンピュータに送信する送信部を含む。シングルボードコンピュータは、実行プログラムにしたがってデバイス装置を制御する。【選択図】図10

Description

特許法第30条第2項適用 令和3年3月5日にhttps://www.cosmo-potech.com/にて公開。令和3年5月10日にhttps://www.fukuri.jp/demoより会員情報を入力することによりアクセス可能なサイトにて公開。令和3年6月9日にプログラミング教室「ぽてっく」にて公開。令和3年6月23日にプログラミング教室「ぽてっく」にて公開。令和3年8月4日にプログラミング教室「ぽてっく」にて公開。
本発明は、デバイスの制御、特に、プログラミングによるデバイス制御技術、に関する。
IoT(Internet of Things)化の推進にともない、ますます多くの製品がインターネットを介してつながっていくことは確実である。IoT時代において重要な役割を果たすと考えられているのが、ラズベリーパイ(Raspberry Pi)などのシングルボードコンピュータである。
シングルボードコンピュータは、プリント基板上にMPU(Micro-Processing Unit)と最小限の周辺機器をむき出しのまま取り付けただけの小型コンピュータである。シングルボードコンピュータは、低価格、低消費電力であり、コンピュータプログラムを実行することでさまざまなデバイス装置を制御できる。
特開2019-191829号公報
センサ、アクチュエータ、スピーカ、ライトなどのさまざまなデバイス装置を組み合わせてIoT製品を設計する上で、「ものをつくる能力」と「ものを動かす能力」の両方を備える人材は大変貴重である。
デバイス設計が得意なハードウェア・エンジニアには、Pythonなどの比較的高度なプログラミング言語を苦手とする人も多い。プログラミングを勉強する人は増えているが、実際には、途中で脱落してしまう人も多い。一方、プログラミングに精通するソフトウェア・エンジニアには、ものづくりの体験の豊富な人が少ない。
本発明は、上記背景に基づいて完成された発明であり、その主たる目的は、さまざまなデバイス装置に柔軟に対応可能なデバイス制御技術、を提供することにある。
本発明のある態様におけるデバイス制御システムは、1以上のデバイス装置と、1以上のデバイス装置と接続される第1の情報処理装置と、第1の情報処理装置と接続される第2の情報処理装置と、を備える。
第2の情報処理装置は、デバイス装置の操作命令を視覚化したGUI(Graphical User Interface)コードの入力を受け付けることにより、GUIプログラムを生成するGUIプログラム生成部と、GUIプログラムを変換することにより、第1の情報処理装置の実行プログラムを生成する実行プログラム生成部と、生成された実行プログラムを第1の情報処理装置に送信する送信部と、を含む。
第1の情報処理装置は、第2の情報処理装置から実行プログラムを受信する受信部と、実行プログラムにしたがって1以上のデバイス装置を制御するデバイス制御部と、を含む。
本発明の別の態様におけるデバイス制御システムは、複数の端子と、複数の端子のいずれかと接続される1以上のデバイス装置と、複数の端子と接続される第1の情報処理装置と、第1の情報処理装置と接続される第2の情報処理装置と、を備える。
第2の情報処理装置は、端子とデバイス装置の対応を指定した上で1以上のデバイス装置を制御するソースプログラムがユーザにより作成されたあと、ソースプログラムを変換することにより、第1の情報処理装置の実行プログラムを生成する実行プログラム生成部と、生成された実行プログラムを第1の情報処理装置に送信する送信部と、を含む。
第1の情報処理装置は、第2の情報処理装置から実行プログラムを受信する受信部と、実行プログラムにしたがって1以上のデバイス装置を制御するデバイス制御部と、を含む。
本発明によれば、さまざまなデバイス装置に柔軟に対応ししながらデバイス装置を制御しやすくなる。
デバイス制御システムのハードウェア構成図である。 工作キットのハードウェア構成図である。 サーバおよびクライアント端末の機能ブロック図である。 シングルボードコンピュータの機能ブロック図である。 電子工作品を完成させるまでの作業の流れを示すフローチャートである。 GUIプログラムによりデバイス装置を制御する仕組みを示す概念図である。 デバイス装置とGUIコードセットの関係を示す概念図である。 テーマ選択画面の画面図である。 課題選択画面の画面図である。 プログラム作成画面の第1の画面図である。 プログラム作成画面の第2の画面図である。 プログラム作成画面の第3の画面図である。 拡張ソケットと拡張デバイスとの接続を示す模式図である。 図13に示した拡張デバイスを制御するGUIプログラムの一例である。
本実施形態におけるデバイス制御システムの利用場面としては、主に、2種類の場面を想定している。
1つ目は教育である。センサやモーターなどのさまざまなデバイス装置を組み合わせて作品(以下、「電子工作品」とよぶ)を作り、プログラムを組んで電子工作品を実際に動かしてみることで、IoT製品に対するユーザの理解を深めることを第1の目的とする。
2つ目は試作である。エンジニアがデバイス装置を組み合わせて電子工作品を作り、プログラムを組んで電子工作品を動かしながら新しいIoT製品の可能性を探ることを第2の目的とする。
以下においては、小学生程度の子どもがIoT製品に対する理解を深めるための教育を想定して説明する。
図1は、デバイス制御システム200のハードウェア構成図である。
デバイス制御システム200において、サーバ100とクライアント端末104はインターネット102を介して相互に接続される。クライアント端末104は、ユーザ(生徒、エンジニア等)により使用される通信端末であり、スマートフォン、タブレットコンピュータ、デスクトップPC、ラップトップPCなど通信機能と表示機能を有する任意のコンピュータであればよい。本実施形態におけるクライアント端末104は、デスクトップPCであると想定して説明する。
サーバ100は、IoT製品の教育および試作のためのサービスとして「デバイス制御サービス」を提供する。ユーザは、あらかじめユーザIDとパスワードをサーバ100に登録しておく。サーバ100は、ユーザIDとパスワードに基づいてユーザのアカウントを管理する。
クライアント端末104は、USB(Universal Serial Bus)ケーブル124により工作キット106と接続される。工作キット106は複数のデバイス装置をシングルボードコンピュータに接続することで、電子工作品のハードウェアを製作(以下、「ハードウェア設計」とよぶ)するための機材である(後述)。また、電子工作品を制御するためのコンピュータプログラムを作成することを「ソフトウェア設計」とよぶ。ハードウェア設計およびソフトウェア設計をまとめていうときには「電子工作」とよぶ。
工作キット106は「第1の情報処理装置」に対応し、サーバ100およびクライアント端末104は「第2情報処理装置」に対応する。
図2は、工作キット106のハードウェア構成図である。
工作キット106においては、プリント基板122上にさまざまな装置が搭載される。工作キット106は、プリント基板122のほか、シングルボードコンピュータ108、拡張ソケット110、LED112、スイッチ114、モーター116およびモニタ118を搭載する。上述したように、シングルボードコンピュータ108は、USBケーブル124を介してクライアント端末104と接続される。シングルボードコンピュータ108は、ARM社のプロセッサ(MPU)を搭載した600円から1000円程度の簡易な小型コンピュータである。シングルボードコンピュータ108はOS(Operating System)を搭載し、オブジェクトコードとして構成される実行プログラムにしたがってデバイス装置を制御する。
LED112、スイッチ114、モーター116およびモニタ118は、いずれもシングルボードコンピュータ108と接続される「デバイス装置」である。本実施形態における「デバイス装置」とは、シングルボードコンピュータ108とのデータ送受が可能な電子部品である。たとえば、LED112は、シングルボードコンピュータ108から点灯命令を受信したときに点灯する。スイッチ114は、押しボタン式のスイッチであり、スイッチ114が押されたときにはスイッチ114からシングルボードコンピュータ108に「オン信号」が送信される。
モーター116は、シングルボードコンピュータ108から回転角度、回転数、回転速度等を指定する制御命令を受信し、制御命令にしたがって回転する。モニタ118は、小型の表示装置であり、シングルボードコンピュータ108から指定されたデータを画面表示させる。LED112、スイッチ114、モーター116、モニタ118のようにあらかじめプリント基板122に搭載されているデバイス装置のことを「基本デバイス120」とよぶ。サーバ100およびシングルボードコンピュータ108には、プリント基板122にどのような基本デバイス120が搭載されているかが初期登録されている。
拡張ソケット110は、10種類の入出力用の端子を含む。端子は、端子IDにより識別される。ユーザは、拡張ソケット110の端子に任意のデバイス装置を追加接続できる。拡張ソケット110に追加接続されるデバイス装置のことを「拡張デバイス」とよぶ。ユーザは、拡張デバイスを使用するときには、拡張デバイスを接続した端子の端子IDをシングルボードコンピュータ108に認識させる必要があるが、詳細は後述する。
図3は、サーバ100およびクライアント端末104の機能ブロック図である。
サーバ100およびクライアント端末104の各構成要素は、CPU(Central Processing Unit)および各種コプロセッサ(co-processor)などの演算器、メモリやストレージといった記憶装置、それらを連結する有線または無線の通信線を含むハードウェアと、記憶装置に格納され、演算器に処理命令を供給するソフトウェアによって実現される。コンピュータプログラムは、デバイスドライバ、オペレーティングシステム、それらの上位層に位置する各種アプリケーションプログラム、また、これらのプログラムに共通機能を提供するライブラリによって構成されてもよい。
以下に説明する各ブロックは、ハードウェア単位の構成ではなく、機能単位のブロックを示している。図4に示すシングルボードコンピュータ108についても同様である。
(サーバ100)
サーバ100は、通信部130、データ処理部132およびデータ格納部134を含む。
通信部130は、クライアント端末104との通信処理を担当する。データ格納部134は、各種のデータを格納する。データ処理部132は、通信部130により取得されるデータおよびデータ格納部134に格納されるデータに基づいて各種処理を実行する。データ処理部132は、通信部130およびデータ格納部134のインタフェースとしても機能する。
通信部130は、クライアント端末104に各種情報を送信する送信部136と、クライアント端末104から各種情報を受信する受信部138を含む。
データ処理部132は、GUIプログラム生成部140、ソースプログラム生成部142、実行プログラム生成部144、課題提示部146、言語管理部264、回答提示部148および進捗管理部150を含む。
GUIプログラム生成部140は、GUI(Graphical User Interface)コードをユーザが入力することによりGUIプログラムを作成するためのユーザインタフェースを提供する。GUIコードは、デバイス装置に対する命令をScratch言語と同様の方式で視覚化した画像コードであるが詳細は後述する。GUIプログラム生成部140は、ユーザからのGUIコードの入力にしたがってGUIプログラムを生成する。
ソースプログラム生成部142は、GUIコードをソースコードに変換することにより、GUIプログラムからソースプログラムを生成する。ソースプログラムは、Python、C言語、Javaなどの一般的な高級プログラム言語である。ユーザはソースプログラムを編集・作成することもできる。実行プログラム生成部144は、ソースプログラムから実行プログラム(オブジェクトコード)を生成するコンパイラ(Compiler)として機能する。
課題提示部146は、電子工作に習熟するためにあらかじめ用意された各種課題を提示する。回答提示部148は、課題に対する回答を提示する。進捗管理部150は、ユーザごとに課題の進捗率を管理する。課題と回答、進捗率については図8以降に関連して後述する。言語管理部264は、表示言語を設定する。言語設定に関しては図10に関連して後述する。
(クライアント端末104)
クライアント端末104は、ユーザインタフェース処理部152、データ処理部154、データ格納部156および通信部158を含む。
ユーザインタフェース処理部152は、キーボード、マウス、タッチパネル等の入力デバイスを介してユーザからの操作を受け付けるほか、画像表示や音声出力など、ユーザインタフェースに関する処理を担当する。通信部158は、サーバ100および工作キット106との通信処理を担当する。データ格納部156は各種データを格納する。データ処理部154は、ユーザインタフェース処理部152からの入力、通信部158の受信データおよびデータ格納部156に格納されているデータに基づいて各種処理を実行する。データ処理部154は、通信部158、ユーザインタフェース処理部152およびデータ格納部156のインタフェースとしても機能する。
ユーザインタフェース処理部152は、入力部160および出力部162を含む。
入力部160は、ユーザからの各種入力を受け付ける。出力部162は、ユーザに対して各種情報を出力する。出力部162は、モニタに各種情報を表示するとともに、各種音声を出力する。
通信部158は、各種データを送信する送信部164とデータを受信する受信部166を含む。
図4は、シングルボードコンピュータ108の機能ブロック図である。
シングルボードコンピュータ108は、通信部170、デバイス制御部172およびデータ格納部174を含む。
通信部170は、クライアント端末104との通信処理を担当する。データ格納部174は、実行プログラム等の各種のデータを格納する。デバイス制御部172は、クライアント端末104から提供される実行プログラムにしたがって各種デバイス装置180を制御する。デバイス制御部172は、通信部170およびデータ格納部174のインタフェースとしても機能する。
通信部170は、各種データを送信する送信部176とデータを受信する受信部178を含む。
図5は、電子工作品を完成させるまでの作業の流れを示すフローチャートである。
ユーザは、拡張デバイスを選び、選んだ拡張デバイスを拡張ソケット110に接続することでハードウェア設計を行う(S10)。なお、基本デバイス120のみを使う場合には、S10の作業は不要である。次に、ユーザはクライアント端末104からサーバ100にアクセスし、GUIプログラムを作成する(S12)。具体的には、ユーザはウェブブラウザを介してサーバ100にログインし、GUIプログラム生成部140はGUIプログラムを作成するための画面(後述)をサーバ100に表示させる。GUIプログラム生成部140は、ユーザからの入力にしたがってGUIプログラムを作成する。
ソースプログラム生成部142は、GUIプログラムからソースプログラムを生成する(S14)。ユーザはソースプログラムを編集することもできる。更に、実行プログラム生成部144は、ソースプログラムから実行プログラムを生成する(S16)。実行プログラムは、サーバ100からクライアント端末104にダウンロードされ、クライアント端末104から工作キット106のシングルボードコンピュータ108に送られる。シングルボードコンピュータ108は実行プログラムにしたがって、デバイス装置180を制御する(S18)。
図6は、GUIプログラムによりデバイス装置180を制御する仕組みを示す概念図である。
上述したように、ユーザは、まず、GUIプログラムを作成する。GUIプログラムの詳細については図10に関連して説明する。ソースプログラム生成部142は、GUIプログラムからソースプログラムを生成する。ユーザは、生成後のソースプログラムを加筆・修正してもよい。実行プログラム生成部144は、ソースプログラムを変換して実行プログラムを生成する。実行プログラムは、シングルボードコンピュータ108において実行可能なオブジェクトファイルとして構成される。
実行プログラムは、クライアント端末104からUSBケーブル124を経由して工作キット106のシングルボードコンピュータ108に送信される。シングルボードコンピュータ108は、MPU192とOS194を含む。MPU192およびOS194は「デバイス制御部172」として実行プログラムを実行する。
シングルボードコンピュータ108には多数のデバイス装置180が接続される。デバイス装置180は、基本デバイス120および拡張デバイス190の2種類である。拡張デバイス190は、拡張ソケット110を介してシングルボードコンピュータ108と接続される。シングルボードコンピュータ108は、実行プログラムにしたがって、デバイス装置180に制御命令を送信し、デバイス装置180から計測値、制御状態等を示すデータを取得する。
図7は、デバイス装置180とGUIコードセット210の関係を示す概念図である。
デバイス装置180には、デバイス装置180を制御するためのGUIコードセット210があらかじめ対応づけられている。たとえば、デバイス装置180がLEDであれば、「LEDを点灯させる」「LEDを消灯させる」「LEDを点滅させる」などの制御に対応するLED専用のGUIコードがあらかじめ用意される。GUIコードセット210は、サーバ100のデータ格納部134に登録される。
サーバ100は、すべての基本デバイス120に対応するGUIコードセット210を格納する。たとえば、デバイス装置180a(スイッチW1)に対してはGUIコードセット210a、デバイス装置180b(モニタD1)に対してはGUIコードセット210bが登録される。基本デバイス120として搭載されていない新規のデバイス装置180xを拡張デバイス190として使いたいときには、デバイス装置180xの開発者またはサーバ100の運営者は、デバイス装置180xのためのGUIコードセット210xを用意する。
たとえば、新規のリニアエンコーダが開発されたとき、拡張デバイス190としてこのリニアエンコーダを使用可能とするためには、開発者はリニアエンコーダ用のGUIコードセット210も開発し、サーバ100に登録しておく。より具体的には、リニアエンコーダの移動量を指定する命令、リニアエンコーダの計測値を読み取る命令などがGUIコードセット210として用意される。ユーザは、リニアエンコーダを拡張ソケット110に接続したときには、リニアエンコーダ用のGUIコードをつかってリニアエンコーダを制御する。
図8は、テーマ選択画面220の画面図である。
ユーザは、クライアント端末104からサーバ100にログインしたとき、サーバ100の送信部136はテーマ選択画面220に対応するウェブページをクライアント端末104に送信する。テーマ選択画面220は、さまざまなデバイス装置180を制御する方法を学習するための画面である。
テーマ選択画面220には、6種類のテーマに対応して6種類のテーマボタン222が表示される。ここでいう「テーマ」とは「光の制御」「音の制御」「表示の制御」「動きの制御」「センサの制御」「ガジェット作り」のように、ハードウェア設計およびソフトウェア設計に習熟するために必要と考えられる科目を意味する。
ユーザは、6種類のテーマボタン222のいずれかを選択することにより、次に示す課題選択のための課題選択画面230を表示させることができる。テーマボタン222の中央には進捗率グラフ224が示される。進捗管理部150は、進捗率に応じて進捗率グラフ224を変化させる。進捗率は、課題の達成度を意味する。たとえば、「光の制御」というテーマについては6種類の課題が用意されており(後述)、ユーザはそのうち3種類の課題を達成したときには、進捗管理部150は進捗率を50(%)(=3÷6)と算出する。
図9は、課題選択画面230の画面図である。
テーマ選択画面220において、ユーザが「光の制御」のテーマボタン222を選択したとき、サーバ100は課題選択画面230をクライアント端末104のウェブブラウザに表示させる。課題選択画面230においては、「光の制御」に関する6種類の課題が提示される。「光の制御」の課題は、「(1)LEDを点けてみよう」「(2)LEDを消してみよう」「(3)LEDを点滅させてみよう」「(4)LEDの明るさを変えてみよう」「(5)スイッチを押したらLEDが点くようにしてみよう」「(6)LEDの色を変えてみよう」の6種類である。課題選択画面230には、6種類の課題に対応して6種類の課題領域232が表示される。
課題領域232の中央には達成マーク234が表示される。課題が達成済みのときには、進捗管理部150は達成マーク234の色を白色から黄色に変化させる。ユーザは学習ボタン236を選択することで、課題実行のためのプログラム作成画面240を表示させることができる。
図10は、プログラム作成画面240の第1の画面図である。
課題選択画面230において、ユーザが「LEDを点けてみよう」を選択したとき、サーバ100は図10に示すプログラム作成画面240をクライアント端末104に表示させる。課題選択画面230は、メニュー領域242、コード選択領域244、プログラム領域246およびコメント領域248を含む。
メニュー領域242は、電子工作のための各種メニューを表示する。メニュー領域242は、ホームボタン250、実行ボタン252、ソースコードボタン254、セーブボタン256、ロードボタン258、相談ボタン260および表記変更ボタン262を含む。
ホームボタン250が選択されたとき、サーバ100はホーム画面(不図示)を表示させる。ユーザは、ホーム画面からテーマ選択画面220等の各種画面を呼び出すことができる。実行ボタン252が選択されたとき、プログラム領域246において作成されるGUIプログラムが実行され、デバイス装置180が制御される。より具体的には、実行ボタン252が選択されたとき、GUIプログラムに基づいて実行プログラムが生成され、サーバ100からクライアント端末104を経由してシングルボードコンピュータ108に実行プログラムが送信され、シングルボードコンピュータ108のデバイス制御部172は実行プログラムにしたがってデバイス装置180を制御する。
ソースコードボタン254が選択されたとき、ソースプログラム生成部142はGUIプログラムに対応するソースプログラムを画面表示させる。ソースプログラムの画面表示については図12に関連して後述する。セーブボタン256が選択されたとき、GUIプログラム生成部140はGUIプログラムをデータ格納部134に保存する。データ格納部134においてはユーザごとにGUIプログラムが保存されている。セーブボタン256が選択されたときには、データ格納部134に保存されているGUIプログラムがプログラム領域246にロードされる。相談ボタン260が選択されたときには、ユーザと指導員のチャット画面が表示される。
表記変更ボタン262が選択されたとき、言語管理部264は各画面における表示言語を変更する。具体的には、表記変更ボタン262が選択されたとき、言語管理部264は「漢字可否」を確認するダイアログボックス(不図示)を表示させる。ユーザが小学校低学年のときには「ひらがな・カタカナ(漢字不可)」と設定すれば「ひらがな・カタカナ」のみの表記となる。言語表記を変更可能とすることにより、低年齢のユーザであっても電子工作を楽しむことができる。
コード選択領域244は、GUIコード300を選ぶためのボタン群を含む。コード選択領域244は、基本ボタン270~関数ボタン298の15種類のボタンを含む。基本ボタン270が選択されたとき、拡張デバイス190と端子IDの対応づけなど、工作キット106の制御において基本となるGUIコード300がコード選択領域244のとなりに一覧表示される。ユーザは、一覧表からGUIコード300を選択してプログラム領域246に置く。
光ボタン272はLED、音ボタン274はスピーカ、スイッチボタン276はスイッチ、モーターボタン278はモーター(アクチュエータ)、センサボタン280はセンサ、モニタボタン284はモニタ(ディスプレイ)を制御するためのGUIコード300を一覧表示させる。時間ボタン282は、日時設定、待ち時間設定など時間制御に関するGUIコード300を一覧表示させる。
文字ボタン286は、印刷制御、テキスト文の入力などに関する。数字ボタン288は、数式演算、数値設定、乱数生成などに関するGUIコード300に対応する。ロジックボタン290は、条件文(if文)などの論理式に関するGUIコード300に対応する。ループボタン292は、繰り返し制御(for文)に関するGUIコード300に対応する。リストボタン294は、ソート、配列などのリスト構造の制御に関する。変数ボタン296は変数、関数ボタン298は関数の制御に関するGUIコード300に対応する。
ユーザは、コード選択領域244からGUIコード300を選んでプログラム領域246に配列することで、GUIプログラムを作成する。ユーザは、プログラミング言語のScratchに類似したユーザインタフェースにてGUIプログラムを作成できる。
「LEDを点けてみよう」という課題に対して、図10ではユーザは「キットをつかう」「LEDを点ける」「LEDを消す」「処理を1秒待つ」などのGUIコード300を選んでいる。ユーザはこれらのGUIコード300をパズルのように組み合わせながら「LEDを点灯させる」という課題を達成できるGUIプログラムを作成する。
課題提示部146は、ステップ・バイ・ステップにてユーザを課題に導くためのコメントをコメント領域248に表示させる。ユーザは、コメント領域248を参照しながら、GUIプログラムを作成する。
図11は、プログラム作成画面240の第2の画面図である。
ユーザは、課題に対応するGUIプログラムを作成したあと、実行ボタン252を選択してGUIプログラムを実行させる。最後にユーザは「答え合わせ」を行う。ユーザが次ボタン302を選択したとき、回答提示部148はあらかじめ登録されている課題達成のためのお手本となるGUIプログラムをプログラム領域246に表示させる。
図11では、「キットをつかう」という初期化のためのGUIコード300a(基本ボタン270に対応)、「LEDを点ける」という点灯制御のためのGUIコード300b(光ボタン272に対応)、「処理を1秒待つ」という時間制御のためのGUIコード300c(時間ボタン282に対応)という3種類のGUIコード300をつなげることによりGUIプログラムが形成されている。ユーザは、「LEDを点けてみよう」という課題を達成できたとき、あるいは、理解できたときには図示しない「できた」ボタンを選択する。このとき、進捗管理部150はユーザが課題を達成したと判定し、進捗率を更新する。
図12は、プログラム作成画面240の第3の画面図である。
ソースプログラム生成部142はプログラム領域246において作成中のGUIプログラムからソースプログラムを生成する。ユーザがソースコードボタン254を選択したとき、ソースプログラム生成部142はプログラム作成画面240の上にソースプログラム画面310を表示させる。ソースプログラム画面310は、オリジナルコード領域312および変更コード領域314を含む。
オリジナルコード領域312にはソースプログラムが表示される。ユーザは、オリジナルコード領域312においてソースプログラムを自由に編集できる。ソースプログラム生成部142は、変更後のソースプログラムを変更コード領域314に表示される。すなわち、オリジナルコード領域312はソースプログラムの初期状態を示す領域であり、変更コード領域314はソースプログラムを編集するための領域である。
ユーザは、ソースプログラム画面310を参照することにより、GUIプログラムから生成されるソースプログラムを確認できる。ユーザは自分で作成したGUIプログラムを通してソースプログラムを学ぶことができる。ユーザはソースプログラムを直接編集することもできる。たとえば、ユーザはGUIコード300を使ってGUIプログラムを作成し、GUIプログラムから生成されるソースプログラムに対して細かな加筆・修正作業をすることもできる。直感的でわかりやすいGUIコード300を組み合わせることで基本的なアルゴリズムを作った後に、ソースプログラムを編集することによりアルゴリズムを細かく調整できるので、ソースプログラムを一から作るよりもコード生産性が高くなる。
図13は、拡張ソケット110と拡張デバイス190との接続を示す模式図である。
上述したように、ユーザはデバイス装置180を「拡張デバイス190」として拡張ソケット110に接続できる。図13においては、拡張ソケット110の端子ID=1の端子(以下、「端子(1)」のように表記する)には光センサ320が接続され、端子(2)にサーボモータ322、端子(9)にモニタ324が接続されている。光センサ320、サーボモータ322およびモニタ324はいずれも拡張デバイス190である。
光センサ320は、A社が最近発売した新型のデバイス装置180であるとする。この場合、A社は光センサ320に対応するGUIコードセット210をサーバ100に登録しておく。サーバ100の運営者が光センサ320用のGUIコードセット210をサーバ100に登録してもよい。ユーザは、端子(1)と光センサ320が接続されていることをGUIコード300によりシングルボードコンピュータ108に認識させ(後述)、光センサ320用のGUIコード300をつかって光センサ320を制御する。
図14は、図13に示した拡張デバイス190を制御するGUIプログラムの一例である。
ここでは、サーボモータ322を50(度)回転させ、光センサ320の計測値をモニタ324に表示させる処理を想定して説明する。まず、GUIコード300dで初期化(開始宣言)をしたあと、光センサ320が接続される端子(1)(GP1)をGUIコード300eにより「入力端子」に設定する。GUIコード300eにおいては、端子ID、入出力などの変数を自由に選ぶことができる。
GUIコード300fは、端子(1)に光センサ320が接続されていることをシングルボードコンピュータ108に認識させる。300gは、変数M1に端子(1)からの入力値を設定する。GUIコード300e、GUIコード300fにより、シングルボードコンピュータ108は端子(1)には光センサ320が接続され、端子(1)から光センサ320の計測値を取得できることを認識する。また、光センサ320の計測値は変数M1に代入される。
次に、GUIコード300hにより、端子(2)を「出力端子」に設定する。GUIコード300jは、端子(2)にサーボモータ322が接続されていることをシングルボードコンピュータ108に認識させる。GUIコード300jはサーボモータ322を50(度)回転させる。GUIコード300h、300i、300jにより、サーボモータ322の回転制御が行われる。
GUIコード300kは、端子(9)を「出力端子」に設定する。GUIコード300lは、端子(9)にモニタ324が接続されていることをシングルボードコンピュータ108に認識させる。GUIコード300mは、モニタ324の画面座標(15,20)に変数M1、すなわち、光センサ320の計測値を表示させる。
GUIコード300d、300e、300h、300kは、基本ボタン270に対応する基本制御となるGUIコード300である。GUIコード300fは、光ボタン272に対応する光センサ320のためのGUIコード300である。300gは、変数ボタン296に対応するGUIコード300である。GUIコード300i、300jは、モーターボタン278に対応するサーボモータ322のためのGUIコード300である。GUIコード300l、300mは、モニタボタン284に対応する進捗率グラフ224を制御するためのGUIコード300である。ユーザは、さまざまな拡張デバイス190を拡張ソケット110に自由に接続し、各拡張デバイス190に対応してあらかじめ用意されるGUIコード300を組み合わせながらGUIプログラムを作成する。
[総括]
以上、実施形態に基づいてデバイス制御システム200を説明した。
ユーザは、制御文としてあらかじめ用意されているGUIコード300と、デバイス装置180ごとにあらかじめ用意されているGUIコードセット210により、GUIプログラムを作成できる。パズルのようにGUIコード300を選んで組み合わせることでGUIプログラムを生成できるので、本格的にプログラミングを勉強していないユーザでも手軽にデバイス装置180を制御できる。
Python、Javaなどの本格的なプログラミング言語に苦手意識をもつユーザであっても、GUIプログラムによって基本的なアルゴリズムを組むことができる。自分が作成したGUIプログラムからどのようなソースプログラムが生成されるのかを確認できるので、PythonやJavaなどのプログラミング言語に対してユーザはより興味をもって理解を深めることができる。
ユーザは、ソースプログラムを修正することもできる。ユーザは、いったんGUIプログラムを作成して基本的なアルゴリズムを設計したあと、ソースプログラムを修正することでアルゴリズムを細かく調整できるので、プログラムを作成するときの生産性が向上する。たとえば、エンジニアは、イメージするIoT製品に必要な拡張デバイス190を集めてハードウェア設計をしたあと、GUIプログラミングにより試作品としての電子工作品を動作確認し、その後に、ソースプログラムを本格的に修正することでソースプログラムの質を効率的に高めることができる。
本実施形態においては、ユーザはウェブブラウザにより、サーバ100が提供するデバイス制御サービスを利用できる。サーバ100は、ユーザのアカウントを管理し、ユーザごとにGUIプログラムを保存する。このため、ユーザはクライアント端末104があれば、自宅以外でもいつでも自作のGUIプログラムを利用できる。
新しくデバイス装置180xが開発されたとき、デバイス装置180xに対応するGUIコードセット210xも同時に用意しておけば、ユーザはすぐにデバイス装置180xを試すことができる。デバイス開発者は、デバイス装置180と同時にGUIコードセット210xも用意しておくことで、多くのユーザにデバイス装置180xの長所や短所についてのフィードバックを早期かつ大量に得やすくなる。また、ユーザが他のデバイス装置180と組み合わせていろいろな電子工作品を開発することで、デバイス開発者が想定していなかったデバイス装置180xの使い途や可能性が発見されるかもしれない。
サーバ100は、テーマ別に課題を提供することにより、ユーザを少しずつデバイス装置180の制御に馴染ませることができる。特に、子どもにとっては簡単な課題から少しずつ難しい課題にチャレンジすることで、デバイス装置180を動かす楽しさや難しさに気づくことができるので、プログラミング学習を効率的に進めることができる。
小学生などの低年齢のユーザは、自由にデバイス装置180を組み合わせながら、電子工作品を動かすためのGUIプログラムもつくる。ハードウェア設計とソフトウェア設計を通して、自分でつくった電子工作品を動かす楽しさを提供できる。現在、プログラミング教育の重要性が認識されつつあるが、プログラミングの勉強だけでは飽きてしまう子どもも多い。デバイス制御システム200によれば、ユーザはオリジナルの電子工作品を動かすためにGUIプログラムを作るので、自分の作品がイメージ通りに動くという感動を味わうことができる。また、このような自由と感動を与えることにより、ユーザの学習意欲や挑戦意欲を高めることができる。
ユーザは、工夫次第でいろいろな電子工作品をつくることができる。たとえば、土中の水分含有量を計測可能な特殊なセンサがあるとする。このようなセンサを鉢植えに差し込み、土中の水分含有量が減ったときにモニタに「水が欲しい」と表示される電子工作品を作ることもできる。新型のセンサの使い方を電子工作品という実例で示すことができるので、デバイス開発者はセンサなどの新型のデバイス装置180を販売しやすくなる。
他の例として、4つのモーターにペットボトルのキャップを「タイヤ」として取り付けることにより、工作キット106を自走可能な電子工作品とすることもできる。このように、デバイス装置180にボトルキャップのような他の部材を接続することで電子工作品に更に多様性をもたせることができる。このほか、気温センサの計測値に基づいてプロペラの回転速度を自動的に調整する扇風機、多数のスイッチに音を割り当てることによって構成される電子ピアノなど、工夫次第でさまざまな電子工作品を作ることができる。
新しいデバイス装置180が開発されるほどIoT製品の可能性も広がるので、デバイス制御システム200はいろいろな発明を生み出すプラットフォームになる可能性がある。
ソフトウェアをつくる楽しさとハードウェアをつくる楽しさを一体として味わうことができるので、デバイス制御システム200は今後需要が高まるIoTエンジニアの育成にも寄与すると考えられる。
なお、本発明は上記実施形態や変形例に限定されるものではなく、要旨を逸脱しない範囲で構成要素を変形して具体化することができる。上記実施形態や変形例に開示されている複数の構成要素を適宜組み合わせることにより種々の発明を形成してもよい。また、上記実施形態や変形例に示される全構成要素からいくつかの構成要素を削除してもよい。
1つのクライアント端末104と1つのサーバ100によりデバイス制御システム200が構成されるとして説明したが、クライアント端末104の機能の一部はサーバ100により実現されてもよいし、サーバ100の機能の一部または前部がクライアント端末104に割り当てられてもよい。また、クライアント端末104やサーバ100以外の第3の装置が、サーバ100またはクライアント端末104の機能の一部を担ってもよい。1つまたは複数のハードウェアに対して、本発明を実現するために必要な複数の機能をどのように配分するかは、各ハードウェアの処理能力やデバイス制御システム200に求められる仕様等に鑑みて決定されればよい。
[変形例]
シングルボードコンピュータ108としての機能の全部または一部がクライアント端末104に割り当てられてもよい。たとえば、クライアント端末104はシングルボードコンピュータ108を介することなく直接デバイス装置180を制御してもよい。
本実施形態においては、課題を提示し、課題に対応するGUIプログラムを作成する場面を想定して説明したが、ユーザは課題に関わりなく自由にGUIプログラムをつくることもできる。
GUIプログラミングは必須ではない。たとえば、ユーザはクライアント端末104においてGUIプログラムを経由することなく、直接ソースプログラムを作成してもよい。
言語管理部264は、漢字使用可否以外にも、ユーザに合わせて言語レベルを設定してもよい。たとえば、ユーザが小学校1年生のときには、言語管理部264は小学校1年生で学習する常用漢字のみを使用し、それ以外の漢字はひらがなにて表記するとしてもよい。同様に、ユーザが小学校2年生のときには、言語管理部264は小学校2年生で学習する常用漢字のみを使用するとしてもよい。このほか、言語管理部264は日本語、英語、中国語などの使用言語をユーザからに指定にしたがって変更してもよい。
100 サーバ、102 インターネット、104 クライアント端末、106 工作キット、108 シングルボードコンピュータ、110 拡張ソケット、112 LED、114 スイッチ、116 モーター、118 モニタ、120 基本デバイス、122 プリント基板、124 USBケーブル、130 通信部、132 データ処理部、134 データ格納部、136 送信部、138 受信部、140 GUIプログラム生成部、142 ソースプログラム生成部、144 実行プログラム生成部、146 課題提示部、148 回答提示部、150 進捗管理部、152 ユーザインタフェース処理部、154 データ処理部、156 データ格納部、158 通信部、160 入力部、162 出力部、164 送信部、166 受信部、170 通信部、172 デバイス制御部、174 データ格納部、176 送信部、178 受信部、180 デバイス装置、190 拡張デバイス、192 MPU、194 OS、200 デバイス制御システム、210 GUIコードセット、220 テーマ選択画面、222 テーマボタン、224 進捗率グラフ、230 課題選択画面、232 課題領域、234 達成マーク、236 学習ボタン、240 プログラム作成画面、242 メニュー領域、244 コード選択領域、246 プログラム領域、248 コメント領域、250 ホームボタン、252 実行ボタン、254 ソースコードボタン、256 セーブボタン、258 ロードボタン、260 相談ボタン、262 表記変更ボタン、264 言語管理部、270 基本ボタン、272 光ボタン、274 音ボタン、276 スイッチボタン、278 モーターボタン、280 センサボタン、282 時間ボタン、284 モニタボタン、286 文字ボタン、288 数字ボタン、290 ロジックボタン、292 ループボタン、294 リストボタン、296 変数ボタン、298 関数ボタン、300 GUIコード、302 次ボタン、310 ソースプログラム画面、312 オリジナルコード領域、314 変更コード領域、320 光センサ、322 サーボモータ、324 モニタ

Claims (9)

  1. 1以上のデバイス装置と、
    前記1以上のデバイス装置と接続される第1の情報処理装置と、
    前記第1の情報処理装置と接続される第2の情報処理装置と、を備え、
    前記第2の情報処理装置は、
    前記デバイス装置の操作命令を視覚化したGUI(Graphical User Interface)コードの入力を受け付けることにより、GUIプログラムを生成するGUIプログラム生成部と、
    前記GUIプログラムを変換することにより、前記第1の情報処理装置の実行プログラムを生成する実行プログラム生成部と、
    複数のテーマを示すテーマ選択画面を表示させ、前記テーマ選択画面からユーザによりいずれかのテーマが選択されたとき、前記選択されたテーマに対応する複数の課題を示す課題選択画面を表示させる表示部と、
    前記課題選択画面からユーザによりいずれかの課題が選択されたとき、前記選択された課題を提示する課題提示部と、
    前記提示された課題にしたがってユーザにより作成されたGUIプログラムとは別に前記提示された課題に対応する手本となるGUIプログラムを提示する回答提示部と、
    ユーザのプログラミング学習の進捗をテーマごとに管理する進捗管理部と、
    前記生成された実行プログラムを前記第1の情報処理装置に送信する送信部と、を含み、
    前記第1の情報処理装置は、
    前記第2の情報処理装置から前記実行プログラムを受信する受信部と、
    前記実行プログラムにしたがって前記1以上のデバイス装置を制御するデバイス制御部と、を含み、
    前記進捗管理部は、前記手本となるGUIプログラムの提示後、前記提示された課題が達成されたか否かを判定し、前記提示された課題が達成されたときには、前記提示された課題に対応づけられるテーマの進捗度を更新し、
    前記表示部は、前記テーマ選択画面においてテーマごとに進捗度を表示させる、デバイス制御システム。
  2. 前記課題提示部は、前記課題として、電子工作品のハードウェア設計と、前記電子工作品を制御するためのソフトウェア設計の双方を含む課題をユーザに提示する、請求項1に記載のデバイス制御システム。
  3. 表示言語を設定する言語管理部、を更に備え、
    前記言語管理部は、ユーザの言語レベルに応じて、画面において使用可能な漢字の範囲を変化させる、請求項1に記載のデバイス制御システム。
  4. 前記第2情報処理装置は、サーバおよびクライアント端末を含み、
    前記サーバは、前記GUIプログラム生成部、前記実行プログラム生成部を含み、
    前記サーバは、1以上のデバイス装置について、デバイス装置と前記デバイス装置を制御するための専用のGUIコードをあらかじめ対応づけて記憶し、
    前記サーバの前記GUIプログラム生成部は、前記クライアント端末に対して、GUIプログラムを作成するための編集画面とともに複数のデバイス装置を制御するためのGUIコードを提供することによりGUIプログラムを生成し、
    前記サーバの前記実行プログラム生成部は、前記生成されたGUIプログラムから実行プログラムを生成し、前記実行プログラムを前記クライアント端末に送信し、
    前記クライアント端末は、前記サーバから受信した前記実行プログラムを前記第1情報処理装置に送信し、更に、
    前記サーバは、新規のデバイス装置の登録に際しては、前記新規のデバイスを制御するための専用のGUIコードの登録を受け付ける、請求項1に記載のデバイス制御システム。
  5. 前記第2情報処理装置は、サーバおよびクライアント端末を含み、
    前記サーバは、前記GUIプログラム生成部および前記実行プログラム生成部と、
    GUIプログラムを変換することにより、所定のプログラミング言語によるソースプログラムを生成するソースプログラム生成部、を含み、
    前記サーバの前記GUIプログラム生成部は、前記クライアント端末に対して、GUIプログラムを作成するための編集画面を提供することによりGUIプログラムを生成し、
    前記サーバの前記ソースプログラム生成部は、前記クライアント端末に対して、前記GUIプログラムから生成されたソースプログラムを編集するための編集画面を提供し、
    前記サーバの前記実行プログラム生成部は、編集後のソースプログラムを変換することにより実行プログラムを生成し、前記実行プログラムを前記クライアント端末に送信し、
    前記クライアント端末は、前記サーバから受信した前記実行プログラムを前記第1情報処理装置に送信する、請求項1に記載のデバイス制御システム。
  6. 前記第1の情報処理装置は、シングルボードコンピュータである、請求項1に記載のデバイス制御システム。
  7. 前記第1の情報処理装置は、更に、複数の端子と接続されており、
    前記複数の端子のいずれかとセンサが接続されたときには、前記第2の情報処理装置において、前記センサの接続先となる端子の識別番号を設定する第1のGUIコードと、前記識別番号の接続先のデバイス装置からデータを取得する第2のGUIコードにより、前記センサの計測値を取得するGUIプログラムを作成可能である、請求項1に記載のデバイス制御システム。
  8. 前記複数の端子のいずれかとアクチュエータが接続されたときには、前記第2の情報処理装置において、前記アクチュエータの接続先となる端子の識別番号を設定する第3のGUIコードと、前記識別番号の接続先のデバイス装置に制御命令を送信する第4のGUIコードにより、前記アクチュエータを制御するGUIプログラムを作成可能である、請求項7に記載のデバイス制御システム。
  9. 前記複数の端子のいずれかと表示装置が接続されたときには、前記第2の情報処理装置において、前記表示装置の接続先となる端子の識別番号を設定する第5のGUIコードと、前記識別番号の接続先のデバイス装置に表示命令を送信する第6のGUIコードにより、前記表示装置の表示内容を制御するGUIプログラムを作成可能である、請求項7に記載のデバイス制御システム。
JP2021142088A 2021-09-01 2021-09-01 デバイス制御システム Active JP7132557B1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2021142088A JP7132557B1 (ja) 2021-09-01 2021-09-01 デバイス制御システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021142088A JP7132557B1 (ja) 2021-09-01 2021-09-01 デバイス制御システム

Publications (2)

Publication Number Publication Date
JP7132557B1 true JP7132557B1 (ja) 2022-09-07
JP2023035318A JP2023035318A (ja) 2023-03-13

Family

ID=83191750

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021142088A Active JP7132557B1 (ja) 2021-09-01 2021-09-01 デバイス制御システム

Country Status (1)

Country Link
JP (1) JP7132557B1 (ja)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019074558A (ja) 2017-10-12 2019-05-16 株式会社島津理化 プログラミング教育用教材
JP2019191829A (ja) 2018-04-23 2019-10-31 合同会社スイッチオン シングルボードコンピュータ用アダプタ
JP2019211823A (ja) 2018-05-31 2019-12-12 オムロン株式会社 サポート装置およびサポートプログラム
CN111880783A (zh) 2020-07-01 2020-11-03 腾讯科技(深圳)有限公司 一种设备控制方法、系统、电子设备及存储介质
KR102211271B1 (ko) 2020-03-20 2021-02-03 주식회사 코더블 교육용 마이크로 컨트롤러 보드
JP2021056286A (ja) 2019-09-27 2021-04-08 株式会社ミクシィ プログラミング学習支援システム及びプログラミング学習支援方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018072726A (ja) * 2016-11-02 2018-05-10 吉川 直人 プログラム学習用アプリケーション及びプログラム学習システム
JP7025397B2 (ja) * 2019-11-14 2022-02-24 株式会社Signate 教育支援システム、教育支援方法および教育支援プログラム

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019074558A (ja) 2017-10-12 2019-05-16 株式会社島津理化 プログラミング教育用教材
JP2019191829A (ja) 2018-04-23 2019-10-31 合同会社スイッチオン シングルボードコンピュータ用アダプタ
JP2019211823A (ja) 2018-05-31 2019-12-12 オムロン株式会社 サポート装置およびサポートプログラム
JP2021056286A (ja) 2019-09-27 2021-04-08 株式会社ミクシィ プログラミング学習支援システム及びプログラミング学習支援方法
KR102211271B1 (ko) 2020-03-20 2021-02-03 주식회사 코더블 교육용 마이크로 컨트롤러 보드
CN111880783A (zh) 2020-07-01 2020-11-03 腾讯科技(深圳)有限公司 一种设备控制方法、系统、电子设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
小山 博史,すぐ試せるサンプルがいっぱい 楽しいラズパイプログラミング,日経Linux,日本,日経BP社,2016年04月12日,第18巻 第5号,第140-145頁,特に「LEDやスイッチを使おう」の項から「LEDを点灯させよう」の項、図、表等参照。

Also Published As

Publication number Publication date
JP2023035318A (ja) 2023-03-13

Similar Documents

Publication Publication Date Title
Noble Programming interactivity
US20020130834A1 (en) System and method for universal control of devices
Berdahl et al. Satellite CCRMA: A Musical Interaction and Sound Synthesis Platform.
Perenc et al. Teaching programming using dedicated Arduino educational board
US20130019019A1 (en) Cloud servicing system configured for servicing smart phone or touch pad circuit applications and consumer programmable articles
Taylor Develop Microsoft hololens apps now
JP2006510496A (ja) ロボットを制御するためのシステム及び方法
US20140047406A1 (en) Path driven programming method and programming tool
TWI590088B (zh) 結合程式包創設新行動應用程式的方法、行動裝置及系統
Junior et al. Bipes: Block based integrated platform for embedded systems
Fraietta et al. Rapid composition for networked devices: HappyBrackets
Dow Internet of things programming projects: build modern IoT solutions with the Raspberry Pi 3 and Python
Devine et al. Plug-and-play physical computing with Jacdac
JP7132557B1 (ja) デバイス制御システム
Tapper et al. Adobe Flex 3: training from the source
Fernandez Corona SDK Mobile Game Development: Beginner's Guide
Mourouzis et al. A novel design approach for multi-device adaptable user interfaces: Concepts, methods and examples
Rizzo et al. UAPPI: A platform for extending app inventor towards the worlds of IoT and machine learning
Rizzo et al. The design of udoo boards: contributing to the appropriation of digital technology
Jeong et al. M. Integrator: a maker’s tool for integrating kinetic mechanisms and sensors
KR102251102B1 (ko) 프로그램의 가상 구현 장치
Bolanakis Microcontroller Prototypes with Arduino and a 3D Printer: Learn, Program, Manufacture
Garza Guardado “Sudo make me a smart device”: Accelerating and automating the end-to-end design of smart devices.
Berdahl et al. 2011: Satellite CCRMA: A Musical Interaction and Sound Synthesis Platform
Rizzo et al. UDOO App Inventor: Introducing Novices to the internet of things

Legal Events

Date Code Title Description
A80 Written request to apply exceptions to lack of novelty of invention

Free format text: JAPANESE INTERMEDIATE CODE: A80

Effective date: 20210915

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220207

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20220207

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220419

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220608

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: 20220809

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220817

R150 Certificate of patent or registration of utility model

Ref document number: 7132557

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150