はじめに
AdventCalendar 2018の記事でNumWorks の MicroPythonをとりあげました。本記事では、その後の変化について書きます。
ハードウェアのバージョンアップ
私が所持しているハードウェアのバージョンは N0100 ですが、その後に N0110, N0120 と進化しています。違いは MCU の強化、メモリ増強、外部フラッシュによるストレージ増強です。
N0100 | N0110 | N0120 | |
---|---|---|---|
リリース年 | 2017 | 2019 | 2022 |
MCU | STM32F412 (Cortex-M4) |
STM32F730 (Cortex-M7) |
STM32H725 (Cortex-M7) |
Clock | 100 MHz | 216 MHz | 550 MHz |
RAM | 256 KB | 256 KB | 564 KB |
内蔵フラッシュ | 1 MB | 64 KB | 512 KB |
外部フラッシュ | 8 MB | 8MB |
MicroPython のグラフィック強化
当初は、ピクセルとラインぐらいしかサポートされていなかった MicroPython のグラフィック機能ですが、その後 matplotlib.pyplot
モジュールでグラフを描くのが容易になったり、 turtle
モジュールでタートルグラフィックができるようになりました。
オープン路線はやや後退
NumWorks といえば、ハードウェアもソフトウェアも情報公開していることが特徴です。そのため、 Omegaのような機能拡張したものや、ファミコンのエミュレータが登場したり、Raspberry Pi Zero を合体させるなど、ユーザやコミュニティによる拡張が行われてきました。
ところが、ソフトウェアのバージョン 16 からフラッシュにロックをかけて、ユーザやコミュニティによるソフトウェア更新をできなくしてしましました。
これに反発したコミュニティは脱獄ツール Phiを開発しました。NumWorks ではその後もロックを強化していて、Phi とイタチゴッコが続いています。
Omega について
Omegaは、NumWorks が公開しているソフトウェアのソースコードを元に、機能拡張やリソース削減を施したものです。
NumWorks からの拡張で、特に特徴的なものは以下でしょう。
- シンボリックコンピューテーション(Symbolic Computation)
- 逆ポーランド計算
- 外部アプリ
- デュアルブート
- Nintendo 3DS で動作するエミュレータ
かつては、MicroPython でのキースキャンも Omega 特徴的な機能でしたが、今では NumWorks でも可能です。
おわりに
すみません、MicroPython についてはほとんど書いてませんでした。そのうち、 matplotlib.pyplot
モジュールについて書いてみます。
N0100 だと、リソースの都合で使えない機能も増えてきたので、そろそろ N0120 に買い換えようかなと思いつつ、本記事を終わります。