Try Kernel を eclipse 抜きでビルドする(1)

CQ出版のインターフェース誌7月号で「ラズパイPicoで1500行 ゼロから作るOS」という特集記事があり、面白そうなので購入してみた。

https://interface.cqpub.co.jp/magazine/202307/

Raspberry Pi pico にRTOSを自前で実装しようという試みで、ブートストラップの流れもていねいに書かれており、RTOSの勉強にもなるし、理解があやふやだったマイコンの起動の仕組みもわかるかと思い、書籍に従って実験しようと思った。

ただ、読み進めていくと開発環境として Windows 上の eclipse を使うことが書かれている。医者に eclipse の使用を固く禁じられている身としては同じように試せない。そこで、eclipse を使わず、ubuntu 22.04 上でビルドする方法を考えてみた。

続きを読む →

micro:witch v1.3.3 公開

micro:bit のためのブロック型プログラミング環境である micro:witch の最新版を公開した。

https://github.com/EiichiroIto/microwitch/releases/tag/v1.3.3

前回から micro:bit のシミュレータを取り除いており、子どもたちの反応や評価をふまえて若干の修正を行った。

具体的な修正点は以下の通り。

  • プロジェクト名を表示するようにした。
  • ストップボタンを追加した。
  • スタートボタンを追加した。
  • ファイルがある場合だけファームウェアを読み込むようにした。
  • 変数ブロックをクリックしたときにエラーになるバグを修正した。
  • 変数の初期化コードを除去した。
  • 変数のウオッチャーを取り除いた。
  • ストップボタンを押してもブロックパレット内のブロックが元に戻らないバグを修正した。
  • 接続待機中にストップできるようにした。
  • HuskyLensのpythonスクリプトバグを修正した。

ステージをまるごと取り除いた関係で、プロジェクト名や一部のボタンがなくなっていた。これに不満を訴える児童が多かったので、少し機能を変更した上で再登場させた。

また、初期化の際に micro:bit のファームウェアファイルを毎回読み込むが、ファームウェアファイルが存在しない(見つけられない)とエラーが発生するため、ファイルがなければイメージ内のものを使うように修正した。(2023.6.6追記 このバグは対応できていなかった)

あとは、起動に使っていた Scratch.exe の名前を microwitch.exe に変更した。

中級者課題の顛末

お手伝いしているロボット講座で、以前から参加している児童のための中級者課題を5回(5週×1時間)にわたって実施した。

新メンバーが入るタイミングでは新たなロボット作りに入れないので、昨年までは手持ち無沙汰な児童が多かったが、今回の課題のおかげで一定のスキル向上と、児童に集中して取り組ませることができたと思う。

あわせて micro:witch の改造(v1.3.0)に対する評価もたくさんもらい、かなり改善に貢献してもらった。

  • AボタンとBボタン:4つ
  • ドット描画:4つ
  • tickタイマー:4つ
  • 無線通信:4つ
  • micro:maqueen:7つ

中級者課題は主に上記から成っている。

出題側としてはまんべんなくチャレンジして欲しかったのだが、1つずつ順番に取り組む児童が結構いて面白かった。そのせいか、無線通信とmicro:maqueen の課題に取り組んだ児童の少なかったのが残念だった。

これらの課題の裏テーマは「いかに変数を効率よく使うか?」で、その点につまづく児童が多かった。彼らに状態遷移図のアイデアを紹介したところ、(全員ではないが)そのアイデアを理解し活用していった。変数の使い方について、一定の理解をもたらしたのではないかと思う。

今回はこれで中級者課題は終わりになるが、時間が空いたときにはまた取り組んでもらうつもり。コンパスや加速度センサなど、使っていない機能についても充実させていきたい。

ThunderbirdでGmailが遅い

メインマシンではThunderbirdでメールを吸い上げているんだけど、ときどきGmailの反応が悪くなって、メールを読み込めなかったりしていた。

調べてみたら設定変更でなおりそうだ。

https://life-of-retirees.com/2022/05/20/imap-reception-is-slow/

具体的な設定方法は、

設定エディターで、mail.check_all_imap_folders_for_new を true に設定した上で、アカウント設定→サーバー設定→詳細→アカウントの詳細設定で、サーバーへの最大同時接続数を5から2に変更した。

設定がどのように働いているのかは未確認だが、遅延なくメールを受信できるようになった。

Pharo 11 早くなった

新しくリリースされた Pharo 11 を試すために、NovaStelo を使ってみたんだけど、めっちゃ早くなってる。手元のPCでライフゲーム(01-lifegame)がPharo 10で 12〜15fps だったのに、Pharo 11 では 22fps 以上になった。

ArrayedCollection のプラグインが早くなったのだろうか。

micro:witch 中級者向け課題

お手伝いをしているロボット講座に新しい児童が入ってきたので、もともといた児童向けに課題集を作った。

ロボット講座が始まって4年目となり、当初からずっと関わっている児童がいる一方、昨年の年度途中で加わった児童もいるので、学年に関係なくスキルレベルはばらついている。また、一通り使えるようになると、知っているブロックだけで世界が閉じてしまい、なかなか発展性がない。

そのため、今年度は新しく入った児童の入門と平行して、元からの児童向けトレーニングを行うことになり、新たなスキルを獲得してもらうために、この課題集を作った次第である。明示してはいないが、課題の狙いとしては、変数の効果的な使用にある。

ほとんどの課題はコード例のない「これ作って」的なものなので、micro:witch に限らず micro:bit 全般で利用できるんじゃないかと思い、Slide Share で公開してみた。

続きを読む →

Pharo 11 がリリースされた

Pharo 11 がリリースされた。

さっそく試してみたところ、FloatArray がなくなってたのにはビビった。実際のところ Float64Array が追加されたことにより、FloatArray が Float32Array に変わっただけのようだけれども。

NovaStelo とか Gratch とか FloatArray を多用しているアプリはかなりの修正が必要になりそう。

ともあれ無事にリリースされてよかった。

Pharo 11 のダウンロードはこちら。

https://pharo.org/download