[ピクトグラミング] ”待ち”の有無を組み合わせて,定義した物体を複製して移動させるテクニック

posted in: 開発者ブログ | 0

ピクトグラミングシリーズでは,スタンプの機能を使って複数の人型ピクトグラムを表示できます.

 

ピクトグラミングシリーズでは,”待ち” をうまく使うことで,さまざまな人型ピクトグラムの動作や図形描画が可能になります.

 

 

さらに.ブロックピクトグラミングとピクトグラミングでは,モノ定義とモノ移動ができます.

これは魚が逆Z型で移動します.

 

この物体移動の命令は,結局消して新しい座標に書くの繰り返しをしているだけなので,

この”待ち”を有無をうまく使って,実は定義した物体を複数表示して制御することもできます.

 

例を示します.

すると魚が2匹時間差で動きます.

待ちの有無を組み合わせることで,もっと複雑な魚の動きの大群を作ることもできます.

[ブロックピクトグラミング] 2021-11-19 ブロックピクトグラミングの学習用テキストを更新しました(ピクトスイミング,物体移動の章の追加)。

ピクトグラミングの学習用テキストを更新しました。一つ前のバージョン20211107に対して、5章を「ピクトスイミング」に変更し,「6章 物体移動」を追加しました。また全体的に説明を追加し,8章を変更しました。

以下のリンクからダウンロードできます.

BlockPictogramming(ブロックピクトグラミング)

BlockPictogramming学習用テキスト(8章 20211119版)

 

ピクトグラミングの学習用テキストのページからもダウンロードできます。こちらのページも更新いたしました。

学習用テキスト(ピクトグラミング,ピクソン,ジャバスクピクト,ブロックピクトグラミング)

引き続きピクトグラミングシリーズをよろしくお願いします。

 

[ピクトグラミングシリーズ] ”複数のプログラミング言語で記述可能なピクトグラムコンテンツ作成環境の提案と実装”の論文PDFをピクトグラミングサイトからダウンロードできるようにしました.

伊藤一成: 複数のプログラミング言語で記述可能なピクトグラムコンテンツ作成環境の提案と実装, 情報処理学会論文誌TCE, Vol.7, No.3, pp.1-11 (2021年10月)に関して,通常情報学広場からの無償ダウンロードは公開後2年経過後です.今回,情報処理学会の論文公開規定に基づき,ピクトグラミングサイトから無償でダウンロードできるようにしました.

ピクトグラミング関係の論文・発表

 

[ピクトグラミング] 2021-11-01 ピクトグラミングの学習用テキストを更新しました。

ピクトグラミングの学習用テキストを更新しました。一つ前のバージョン20210909に対して、「5章 ピクトスイミング」「6章 物体移動」の2章を追加しました。また8章を変更しました。

Pictogramming(ピクトグラミング)

Pictogramming学習用テキスト(英語命令 8章 20211024版)

Pictogramming学習用テキスト(日本語命令 8章 20211024版)

 

ピクトグラミングの学習用テキストのページからダウンロードできます。こちらのページも更新いたしました。

学習用テキスト(ピクトグラミング,ピクソン,ジャバスクピクト,ブロックピクトグラミング)

引き続きピクトグラミングシリーズをよろしくお願いします。

[Block Pictogramming] Block Pictogramming English PC version now supports handling video motion sensor.

posted in: 開発者ブログ | 0

Block Pictogramming (English PC Version) now supports video motion sensor function.

 

There are several icons with radio button. Checked the right most radio button, which is right to video icon.

Then, camera video is overlaid in the pictogram display area.

The block list of the event category is as follows:

 

The block of the event category acts until the execution of surround block “When run button pressed” is completed. Hence, it is good way to put an “wait n seconds” block within it.

The following three types of event blocks for the video motion sensor are available.

 

Execute when the brightness (0 to 255) of a specific part of the body changes by 30 or more.

Executes when the brightness or the red component or the green component or the blue component (0 to 255) of specific part of the body changes above a certain level or changes to above a certain level or changes to below a certain level.

Executes when the brightness or the red component or the green component or the blue component (0 to 255) of specific coordinates changes above a certain level or changes to above a certain level or changes to below a certain level.

Event detection and occurrence timing is every 0.5 seconds.

Below is a program that makes human pictogram happy when you touch his/her left hand.

 

[ブロックピクトグラミング] ビデオモーションセンサーの機能を実装しました.

posted in: 更新情報, 開発者ブログ | 0

ブロックピクトグラミング(日本語PC版)にビデオモーションセンサーの機能を実装しました

 

画面右上にチェック☑を入れて操作するアイコンがあると思います。一番右のビデオのアイコンの右にあるにチェック☑をオンにしましょう。

するとカメラの映像がピクトグラム表示領域にオーバレイされます.

イベントカテゴリのブロック一覧は以下の通りです.

 

イベントカテゴリのブロックは「実行ボタンが押されたとき」のコ型ブロック内の実行が終了するまで有効なので,実行ボタンが押されたときに「n秒まつ」のブロックを入れておくと良いと思います.この点ご注意ください.

ビデオモーションセンサーのブロックは以下の3通りを用意しています.ある特定の座標の色情報の変化が特定の条件を満たすとそのコ型ブロックの内部のプログラムが実行されます.色情報の取得及びプログラムの実行タイミングは0.5秒おきになっています.

 

体の特定の場所の明るさの値が30以上変化したときに実行されるブロック.明るさ(明度)の値は,0(暗い)から255(明るい)の間の整数値をとります.最新の値を取得した際,一つ前(0.5秒前)に取得した値より30以上変化しているときに実行されます.

体の特定の場所の明るさor赤色成分or緑色成分or青色成分(0から255)が一定以上変化or一定以上に変化or一定以下に変化したときに実行されるブロック.特定の座標の色情報は,RGBカラーモデルに基づいて保持されています.RGBカラーモデルでは,それぞれの座標に対して,「赤色成分」「緑色成分」「青色成分」に分割し,それぞれの色成分も明るさと同様に0から255の値をとります.このブロックは,指定した体の特定の場所の座標の明るさあるいは指定した色成分の最新の値を取得した際,一つ前(0.5秒前)に取得した値との比較して条件を満たしたときに実行されます.

特定の座標の明るさor赤色成分or緑色成分or青色成分(0から255)が一定以上変化or一定以上に変化or一定以下に変化したときに実行されるブロック 一つ上のブロックでは,体の特定の場所の座標の値を変化の検知の対象にしていますが,こちらは,指定された特定の座標を対象としています.

イベントの検知及び発生タイミングは0.5秒おきになっています.

下は,人型ピクトグラムの左手を触ってあげると喜ぶプログラムです.

 

とりあえずの実装なので,ご容赦ください.Tentativeバージョンとして,今後改良をしていきます.

ちなみにイベントカテゴリには,キーイベントのブロックも実装してますので,ちょっとしたミニゲームなどを作成することもできます.

 

ビデオ機能のない,一つ前のブロックピクトグラミング(日本語PC版旧版)旧版を使いたい方はこちらからアクセスください.

 

[ピクトグラミングシリーズ] 2021-10-03 タートルグラフィックスの機能に関して泳ぎメタファを導入し,「ピクトスイミング」と以後呼称いたします.

posted in: 更新情報, 開発者ブログ | 0

ピクトグラミングシリーズには,タートルグラフィックスの機能があります.

ピクトググラミングシリーズ独自の特徴として

1. 移動や進行方向の変化に時間の概念を取り入れ可能

2. 人型ピクトグラム回転,移動命令と同じく,「待ち」命令を取り入れている.

があります.

 

ブロックピクトグラミングを例にあげます.タートルグラフィックス関係のブロック(命令)は以下のとおりです.

 

 

ピクトグラミングでは,以下の通りです.第2引数に時間を指定できるようになっています.また,後ろにWをつけたFDW,BKW,RTW,LTW命令もあり.Wが付くか付かないかの挙動は,R,RW命令やM,MW命令と同様の対応関係になっています.Picthon(ピクトグラミングPython版)やJavaScpict(ピクトグラミングJavaScript版)でも同様になります.

 

命令の様式 処理
FD arg1 [arg2] 人型ピクトグラムを進行方向にarg2 秒かけて距離 arg1 だけ等速で進める.arg2 が 省略された時は,arg2 に0が入力されているものとして取り扱う.
BK arg1 [arg2] 人型ピクトグラムを進行方向と逆向きにarg2 秒かけて距離 arg1 だけ等速で進める.arg2 が 省略された時は,arg2 に0が入力されているものとして取り扱う.
RT arg1 [arg2] 人型ピクトグラムの進行方向をarg2 秒かけて時計回り方向に角度 arg1 だけ等角速度で回転する.arg2 が 省略された時は,arg2 に0が入力されているものとして取り扱う.
LT arg1 [arg2] 人型ピクトグラムの進行方向をarg2 秒かけて反時計回り方向に角度 arg1 だけ等角速度で回転する.arg2 が 省略された時は,arg2 に0が入力されているものとして取り扱う.
FDW arg1 [arg2] 人型ピクトグラムを進行方向にarg2 秒かけて距離 arg1 だけ等速で進める.移動が終了するまで次の命令は実行されない.arg2 が 省略された時は,arg2 に0が入力されているものとして取り扱う.
BKW arg1 [arg2] 人型ピクトグラムを進行方向と逆向きにarg2 秒かけて距離 arg1 だけ等速で進める.移動が終了するまで次の命令は実行されない.arg2 が 省略された時は,arg2 に0が入力されているものとして取り扱う.
RTW arg1 [arg2] 人型ピクトグラムの進行方向をarg2 秒かけて時計回り方向に角度 arg1 だけ等角速度で回転する.回転が終了するまで次の命令は実行されない.arg2 が 省略された時は,arg2 に0が入力されているものとして取り扱う.
LTW arg1 [arg2] 人型ピクトグラムの進行方向をarg2 秒かけて反時計回り方向に角度 arg1 だけ等角速度で回転する.回転が終了するまで次の命令は実行されない.arg2 が 省略された時は,arg2 に0が入力されているものとして取り扱う.

 

また各言語の表記は以下の通りです.

英語表記 英語 日本語 にほんご
FD Forward
fd
前進 ぜんしん
BK Backward
bk
後進 こうしん
RT RightTurn
rt
右回り みぎまわり
LT LeftTurn
lt
左回り ひだりまわり
FDW ForwardWait
fdw
前進待ち ぜんしんまち
BKW BackwardWait
bkw
後進待ち こうしんまち
RTW RightTurnWait
rtw
右回り待ち みぎまわりまち
LTW LeftTurnWait
ltw
左回り待ち ひだりまわりまち

 

 

今回,以下の変更を行いました.

1. タートル描画に関する命令を使った場合,自動的に大きさ0.1, 線の太さ1, 体に対する描画がonになる.

2. 描画中は人型ピクトグラムが進行方向を向く.

 

1.は,ピクトグラム作成が主題ですので,大きさや線の太さはデフォルトにしています.よってタートル描画をする際,大きさや線の太さを変更する命令を記述することが最初に必要でしたが,これを省略し,描画に集中できるようにしました.

また,ピクトグラミングシリーズは正面からの視点でした.タートルグラフィックスでは上からの視点が望ましいです.2.は,プールや海の上で泳いでいるのを上からの視点で表示しているイメージを想像してもらうために進行方向を向くようにしました.人型ピクトグラムは顔や衣服などがないので,このような泳ぎメタファの導入によって正面視点と上から視点の両方の切り替えが可能となりました.

 

ブロックピクトグラミングを使った例を示します.

まずは正五角形です.

”待ち”のあるなしと時間をうまく組み合わせることにより様々な図形を描画できます.

 

 

今回の変更はピクトグラミングシリーズ全てが対象です.ピクトグラミングのPython言語版Picthonの例です.同じくWと時間をうまく組み合わせることにより様々な図形を描画できます.

for _ in range(4):
    pic.FD(200 * math.pi * 1/4, 2)
    pic.RTW(90, 1)
    pic.LTW(90, 1)
    pic.RT(90)

 

ブロックピクトグラミングのブロックカテゴリ名も,「タートル」から「泳ぎ」(英語版 Swimming)に変更いたします.

 

またタートルグラフィックスの機能に関する名称に関しましても,ピクトグラミングシリーズでは以後,説明で参照する場合を除き,この機能に関しては「ピクトスイミング」という名称を使っていきたいと考えております.これまでも,「私は人型なのになぜ”タートル”なのか」と人型ピクトグラムから常に言われておりました.やっと肩の荷が降りました.このアイデアは,すっとこさまよりいただきました.ありがとうございました.

 

2021-09-14 ピクトグラミングに1. 反転表示,2. 線画オブジェクトのグループ化と移動 の機能を追加しました.

posted in: 開発者ブログ | 0

ピクトグラミングを更新しました.PC・タブレット版,スマートフォン版両方です.

追加した機能は

1. 反転表示

2. 線画オブジェクトのグループ化と移動

です.

いずれもすでに先行してブロックピクトグラミングには反映していましたが,ピクトグラミングにも反映させました.

1. 反転表示

ピクトグラムというとサイン用途で使われるものが有名ですが,コミュニケーション用途で用いるピクトグラムのデザイン指針を定めたJIST0103(コミュニケーション支援用絵記号デザイン原則)およびISO19027(Design principles for communication support board using pictorial symbols)では,サイン用途の配色と反転した,黒背景に白のピクトグラムが推奨されています.そのため「RV」(Reverse)の命令を追加しました.

 

命令の様式 処理
RV 反転モード(Reverse mode)に変更する。

 

英語表記 英語 日本語 にほんご
RV Reverse 反転 はんてん

 

 

 

 

2. 線画オブジェクトの移動

ピクトグラミングシリーズでは,人型ピクトグラム以外のオブジェクトは基本図形(線分または円)の集合で描きます.従来からフレーム単位の描画(Processingで採用されているような描いて全て消すの繰返し)をすればオブジェクトを移動させる(ように見える)ことはできました.しかしより簡便で理解しやすい方法を実装しました.

一つ以上の基本図形から構成されるオブジェクトを定義できる命令,定義されたオブジェクトを等速直線移動する命令を追加しました..

 

 

命令の様式 処理
DO arg1 対応するEND命令までに含まれるL命令,O命令の組み合わせで描かれる線画をarg1という名称で定義する.
MO arg1 arg2 arg3 arg4 arg4 秒かけてx軸正方向に arg2 ピクセル, y軸正方向にarg3 ピクセルだけarg1という名称で定義された線画を等速直線移動する.
MOW arg1 arg2 arg3 arg4 arg4 秒かけてx軸正方向に arg2 ピクセル, y軸正方向にarg3 ピクセルだけarg1という名称で定義された線画を等速直線移動する.直線移動が終了するまで次の命令は実行されない.

 

英語表記 英語 日本語 にほんご
DO DefineObject
defineobject
物定義 ものていぎ
MO MoveObject
moveobject
物移動 ものいどう
MOW MoveObjectWait
moveobjectwait
物移動待ち ものいどうまち

 

ブロックピクトグラミングと,同じ実行結果になるピクトグラミング(日本語版)のプログラムを下に例を示します.「物体を定義するためDO(物定義)命令を使って「りんご」というラベルを設定して定義しています.内部には,円と線分を描く二つの命令があります.これが構成要素となります.平行移動する命令(MO 物移動,MOW 物移動待ち)があり,これにより「りんご」が等速で落下します.オブジェクトの作成を通じて,複数の命令をまとめラベリングする手続き化の処理に慣れ親しんでもらいます

 

反転
回転待ち 右肩 69
回転待ち 右肘 41
物移動 りんご 0 320 0.5

物定義 りんご
円 211 -50 42 42 0
線 211 -55 211 -85
終わり

 

 

 

 

アプリケーション下側の命令入力支援領域のボタンも更新しました.

 

 

作品集のページの「やり投げ」もこの機能を使ったバージョンに更新しました.引き続きピクトグラミングシリーズをよろしくお願いします.

再帰と視点

posted in: 更新情報, 開発者ブログ | 0

関数や手続きの中で自分自身を呼び出す処理を再帰呼出しといいます.

プログラミングを学習する際,この再帰の概念でつまづく人も少なくありません.

 

懸垂を10回するプログラムを例に再帰について考えてみたいと思います.


図 (1)

 


図 (2)

 

これを再帰を使わずにブロックピクトグラミング(ピクトグラミングブロック版)で作成した例です.回数を引数指定して懸垂をする関数(実際は手続き)「懸垂」,図(1)の状態にする手続き「初期状態」と,図(1)→図(2)→図(1)の状態変化をアニメーションで表現する手続き「1回曲げ伸ばし」が定義されておりこちらは折りたたんで表示してあります.人型ピクトグラムとは異なる視点である第三者視点だと,繰返しを使った表現が思いつくでしょう.

 

次に再帰を使って,記述してみます.こちらは関数(実際には手続き)「懸垂」の中で「懸垂」を呼び出しています.皆さん1回懸垂をしては,あと何回だ!がんばろう!と繰り返し念じた経験はないでしょうか?もちろん懸垂以外の,腕立て伏せ,トラック一周,漢字の書き取り…..など繰り返す処理であれば同じことが言えます.これは,実際に懸垂をする人型ピクトグラムになりきって考えた視点と考えられるでしょう.

再帰の考え方を教えるのにご苦労されている先生方多いと思います.ハノイの塔だったり,再帰図形だったりと色々工夫されたりしますが,一度こういうのからスタートするのはいかがでしょうか?いかなる人も反復的な身体動作に関する身体知は有していると思います.

 

Pictogrammingについて

 

 

 

 

 


 

Pictogrammingは、

ためのツールです。

 

ピクトグラムを作る

 

8個の可動パーツに加え、体の向きや色・表情も変更できます。

アニメーションにも対応しているため、幅広い表現が可能です。

プログラミングを
学び始める

 

ピクトグラミングは、テキスト型の擬似言語、ビジュアルブロックに加えPython, JavaScriptなど、複数のプログラミング言語で実行できます。

そのため同じピクトグラムを別言語で作れば、各言語の特徴を実践的に学ぶことができます。

情報デザインを学ぶ

 

ピクトグラムは「インフォグラフィックス」の構成要素の1つです。

ここで言うインフォグラフィックスとは、情報やデータを分かりやすく図示したものです。

情報を分かりやすく伝えるためにどのようなピクトグラムを作るか、それを考えることが情報デザインの学習に直結します。

 

 


 

 

普遍的な記号でありながら私たちの分身でもあるピクトグラムを通して、

 

・社会の諸問題の発見・解決
・自分の内面にある何かを表出
してみませんか?