ゆく年 2023

2023年中は大変お世話になりました。

生成AIに明けて暮れる2023年でしたね。りん研究室も、関係する原稿を執筆する機会などがありました。

日常的には、検索するための予備的準備のツールとしてChatGPTを利用するようになり、プログラミングではGitHub Copilotなどがかなり役立ってくれています。

2023年はコロナ禍明けのタイミングともなりました。社会経済活動もずいぶんと以前のように自由が利くようになってきました。それはよかったなぁと思います。

様々なことが元に戻り始めてはいるものの、さて、また同じ場所に戻るべきなのか。いやいや、生成AIひとつとってもかなりの変化。ずいぶんといろんなことが変わっていますから、戻りようもない。

というわけで、間もなくりん研究室は、徳島時代に区切りをつけます。

徳島時代にお世話になった皆様にあらためて感謝申し上げます。

それではよいお年をお迎えください。

ICカードとクラウドをScratchで

2023年も残り僅かな時期となりましたが、私自身はここしばらく、プログラミング環境であるScratch3.0向けに開発した拡張機能を更新する作業をしていました。プログラミング環境のためのプログラミングというちょっと面白い作業です。

更新したのはScratchからICカードリーダーを使える拡張機能と、クラウドにデータを保存できる拡張機能です。前者を「パソリッチ」(PaSoRich)、後者を「ナンバーバンク」(NumberBank)と名付けています。

2つの拡張機能は、やりたかったことを実現するために突貫的に開発したものでした。

そのため、複雑なことに利用しようとすると、いろいろと機能不足や安定性に欠けるところがあり、多くの皆さんに使ってもらう水準には達していなかったというのが正直なところでした。

ずっと改修する機会をうかがっていたのですが、本業やら状況やらが目まぐるしかったこともあり、なかなか作業に取りかかれずに放置した状態となっていました。

そして、今回、その機会がやってきたというわけです。しかも、2023年は生成AI元年ともいうべき年であり、プログラミング作業においても生成AI技術が支援してくれるようになったことで、拡張機能の改修作業も効率的に達成することが可能となりました。

というわけで、2つの拡張機能は揃ってバージョン2.0にアップすることとなりました。

パソリッチは、ソニー社製ICカードリーダーPaSoRiをScratch3.0環境から操作して、ICカードのIDm(識別番号)を読み取ることができます。(※書き込みはできません)

ICカードのIDmを読み取れると何が嬉しいのでしょうか。

IDmごとに異なる表示や動きなどを実行できるようになります。つまり、かざしたカードによってプログラムの処理を変えることができるということです。電子マネーや会員カードのようなものがつくれます。

今回の2.0では…

  • 新しい型番のICカードリーダーに対応した
  • ICカードリーダーを複数接続して利用できるようになった
  • カードの読み取りに反応するブロックが利用できるようになった
  • デバイスのリセットができるようになった
  • 安定性を向上させた

などの改善改良を施しました。

1.0を開発した時点で対応していたPaSoRi(ICカードリーダー)は当時販売されていたRC-S380という型番のみでした。それが2年前(2021年)に新たな型番RC-S300に販売製品が置き換えられたため、新たに拡張機能を利用したいと思った方々が対応カードリーダーを入手できない状態になっていました。

新しい型番への対応は、挑戦してくださる利用者を増やすためにも重要な課題だったので、今回のバージョンアップで達成できたのはよかったです。

さらに、複数のICカードリーダーを接続したときや複数のプロジェクトからICカードを利用するときに生ずる様々な課題についても今回の更新作業で対応を試みました。

ナンバーバンクは、Scratchプロジェクトで扱っているデータをクラウド上のデータベースに保管することができます。Scratchの公式サイトで提供されているクラウド変数のようなものです。

クラウド上に保管できると何ができるのでしょうか。

プロジェクトで使っていたデータを、終了したあとでも後日再利用することができたり、他の人たちのプロジェクトと共有することができます。データの受け渡しで通信するようなこともできます。

今回の2.0では…

  • 動作の安定性と信頼性の向上
  • データの書き込みが発生したら反応するブロックが利用できるようになった

などの改良改善を行ないました。

ナンバーバンクは、Firebaseというサービスのデータベース機能を利用しています。このサービスを自分自身で登録してデータ保存に利用することもできます。

1.0まで、単純素朴なデータ保存で利用する分には問題はなかったのですが、連続して頻繁にデータ保存の処理を実行しようとすると呼び出しのコンフリクトや安定性に欠けていたのです。これを内部設計を見直して、発生した処理をこなせるように改修しました。

また、クラウド上にデータを読み書きできるのですが、1.0まではクラウド上のデータが書き込まれたタイミングを確認する方法がありませんでした。今回2.0で、特定の保管場所に書き込みが発生したら反応するハットブロックというものを追加しました。データの共有や受け渡しをする際に便利です。

ちなみに、先ほど書いた「Firebaseを自分自身で登録して…」という話は、自分自身でFirebaseサービスに登録して作成したデータベースのAPIキーを預けて、マスターキーを介して利用できるようにするMasterkeyBankという仕組みが用意されています。

これら2つの拡張機能を利用したい場合、すでに用意されている環境を利用するのが便利です。

ストレッチ3(Stretch3)環境は、豊富な拡張機能を用意してくれているScratch3.0環境で、利用者も多い人気のサイトです。他の拡張機能とも連携させながら挑戦してみてください。

なお、これらはSC2Scratchというサイトで情報をご紹介していますが、新しいバージョンを提供できるようになったので、対応した情報を更新する作業はこれから本格的に取りかかります。説明不足なところが多いかとは思いますが、いろいろ自由に試行錯誤して利用してみてください。