パソリッチとナンバーバンク

パソリッチとナンバーバンクというのは、Scratch3.0拡張機能のことです。

グラフィカルプログラミング環境のScratch3.0用拡張機能について、このブログで幾度か書いてきました。

小学校家庭科[消費生活・環境]とプログラミング教育
スマートカードとScratch 3.0と教育と
PaSoRich – ICカードリーダーをScratch3.0で

プログラミング体験やら教育やらの話題を見れば、算数や理科における単元内の例示に始まって、シングルボードコンピュータと呼ばれるmicro:bitなどの利用、各種ロボット教材の導入、双方向ネットワークを扱う教材や注目を集める機械学習やAI技術をモチーフにした取組みなど、実に賑やかです。

それぞれに良さがあるのは承知していますが、それらに加えて、家庭科教育で消費生活システム(たとえば電子決済システム)を学ぶ視点から深堀りしていったほうが面白いのではないか、と投げ掛けたのが最初の記事でした。

そして、Scratch3.0でICカード(スマートカード)リーダーが読めたら面白いよね、という発想からでき上がったのが「PaSoRich」でした。

スマートカードをScratch3.0で
https://con3.com/sc2scratch/

カードを識別することで、それぞれに紐付いた情報を処理するプログラムを書くことが出来るようになります。最近話題のAI・機械学習系だと、画像を識別するのに応じた処理をするプログラムを組むことになりますが、いわば、その前段レベルが可能というわけです。

PaSoRichのおかげでリーダーをつなげた端末でカードを読み取れるようになりました。それをもとに電子決済シミュレーションのプロジェクト(プログラム)も作成しました。

けれど、あくまで1台の端末の範囲内。

識別情報を読み取れるようになったけれど、情報を書き込めるようになったわけではないし、また、情報がネットで共有されているわけでもありませんでした。

たとえば、模擬店での決済を例に考えると、あるお店の端末で決済処理をしたあと、別のお店の端末で新たな決済処理をしても、前の決済処理の結果が伝わらないので、現在残高が分からず減らせないし、ポイントも継続的に増やせません。

見かけだけ電子マネーの真似はできても、実際のところ電子決済システムを再現できていたわけではないということです。

そこで、今回新たに開発したのが「NumberBank」です。

NumberBank
https://con3.com/numberbank/

Scratchの中上級者であれば「クラウド変数」と呼ばれるものに近いと思っていただければと思います。

本家Scratch3.0の変数作成画面

数字をサーバーに保存するという点では同じですが、NumberBankは、変数というよりも連想配列(Key-Value)と呼ばれるものに近い入れ物です。

もとはPaSoRichで読み込まれたカード識別番号をキーにして数字を紐付け保存することを目的としていたことから、そのような形式になっています。この連想配列(または辞書型配列とも呼ばれています)によって、たくさんのデータを効率的に扱えるのです。

これによって、ようやく電子決済システムをScratch上で再現することが可能になります。

さらにNumberBankは、2つのキーを組み合わせて数字と紐付けるように設計しました。たとえば、私たちの日常では同じおサイフケータイを使うにしても支払い方式を選ぶ場面があります。それと同じで、同じカード識別番号でも違う扱いをしたい場合のために、もう一つキーを組み合わせる造りにしました。

たとえば決済システム、場合によってはポイントシステム、場面が変われば出欠確認にも使うでしょうし、電子スタンプラリーをする場合もあるかも知れない。それら複数の目的にも同じカードが使えるようにできます。

というわけで、Scratch3.0拡張機能であるパソリッチとナンバーバンクが揃いました。これを使った新たなプロジェクトをいろいろ作ってみたいと思います。

ご関心ある方々や、ご協力いただける皆さんへの情報提供の準備もしなければなりませんし、まだまだ改善改良が必要なシステムのため、ご意見やフィードバックを得て修正しなければなりません。

いろいろ教えていただけると幸いです。