今年は、この記事を含めて120本のエントリを書きました。
その中では、「MicroPythonのRaspberry Piベアメタルへの移植」が一番大きなトピックでした。
Raspberry Piの基本機能を小さなベアメタルプログラムで確認し、その後MicroPythonへ組み合わせるという流れでいろいろな機能を実装したので、MicroPython、Raspberry Pi、双方についての勉強にもなりました。
着手したのは年明け早々です。
3月くらいまではRaspberry Piそのものやベアメタルプログラミングについてのキャッチアップでしたが、4月~6月にかけて、Pin、Timer、I2C、SPI、SDカードなどの基本的なクラスを実装していきました。
コード自体は継続的にGitHubで公開していましたが、7月にRaspberry Pi Zero版をMicroPython Forumで、12月にPi 2版をこのブログ上でアナウンスしました。
Pi Zero用バイナリも11月にGitHub上でリリースしています。
bare metal Raspberry Pi Zero port – MicroPython Forum
なお、以下の記事にも書きましたが、Raspbianが動くようなパワフルなハードであるRaspberry Piに、わざわざベアメタルでMicroPythonを実装するのは、OSで抽象化されていないハードウェアを直に制御できるところに価値があると思っています。
実装中に一番苦労したのはUSB周りで、CSUDという既存のライブラリを使いましたが、Pi ZeroにUSBキーボードを直結すると動作しない現象に悩まされました。
デバッグには、ロジアナとJTAGが活躍しました。
今年はJTAG経由のオンチップデバッガとロジアナにお世話になりっぱなしだった気がします。
Raspberry Pi+Raspbianの環境はここ数年は使っていなかったのですが、MicroPythonのデバッグなどのために久しぶりに使いました。
その中では、下記のサーボモータを動かす記事がよく参照されています。
Raspberry Pi用のデバイスもいろいろ買いました。
特に、2色電子ペーパーのInky pHATは、専用の画像データ作成ツールを作って公開しました。
MicroPython自体でのプログラミングは大したことはやりませんでしたが、フレームバッファにREPLを表示させるライブラリは使ってくれる方がいたので、GitHubにも専用のリポジトリを設けました。
Raspberry Pi以外では、STM32に比較的よく触りました。
ほとんどはMicroPythonがらみですが、それ以外では、以下のTrueStudioの記事も、単なるチュートリアルなのですがよく参照されました。
あとは、Nucleo-L432KCが小さくて気に入ったので、MicroPythonの設定ファイルを作ってmainlineにマージしてもらったのも小さな成果でした。
M5StackもMaker Fair Tokyoで購入したのですが、ちょっとブロック崩しを移植してみた程度で、結局あまりちゃんと使っていません。
世間には大分置いていかれた感があります・・・。
そのほか、6月にブログシステムをWordPressに移行しました。
主な理由は無料サービスの広告のくどさにウンザリしたからで、移行後は月額料金がちょっぴりかかるようになりましたが、結果には大変満足しています。
2019年もブログのタイトルどおり、楽しいと思えることにいきあたりばったりで手を出していきますが、とりあえず今もうちょっとやりたいなあと思っているのはFPGAやRISC-V、TensorFlowあたりです。
コメント