2018年の振り返り

今年は、この記事を含めて120本のエントリを書きました。

その中では、「MicroPythonのRaspberry Piベアメタルへの移植」が一番大きなトピックでした。
Raspberry Piの基本機能を小さなベアメタルプログラムで確認し、その後MicroPythonへ組み合わせるという流れでいろいろな機能を実装したので、MicroPython、Raspberry Pi、双方についての勉強にもなりました。

着手したのは年明け早々です。

ベアメタルRaspberry Pi版MicroPythonにREPLを追加してみました
先日書いた、ベアメタルRaspberry Piで動作するMicroPythonですが、このままだと対話的に使用することができないので、REPLを使えるように改造してみました。 改造にあたっては、以前紹介したunicorn用MicroPyth...

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

Raspberry Pi 2でMicroPythonを体験しよう
★この記事はMicroPython Advent Calendar 2018に参加しています。★ この1年の締めくくりとして、Raspberry Pi 2で使えるMicroPythonお試し環境を作ってみたので紹介します。 USBキーボード...
Initial Release: MicroPython for bare metal Raspberry Pi Zero
ベアメタルRaspberry Pi Zero/Zero W用のMicroPythonのコンパイル済みバイナリを以下で公開しました。 Release Initial Release · boochow/micropython-raspberr...

なお、以下の記事にも書きましたが、Raspbianが動くようなパワフルなハードであるRaspberry Piに、わざわざベアメタルでMicroPythonを実装するのは、OSで抽象化されていないハードウェアを直に制御できるところに価値があると思っています。

なぜRaspberry PiにMicroPython?
Raspberry Piでは、Raspbian上で普通のPythonを使ってI/Oを制御することができます。 なのに敢えて、ベアメタルでMicroPythonを実装することにどんな意味があるのか、最近思っていることをちょっと書いておきます。...

実装中に一番苦労したのはUSB周りで、CSUDという既存のライブラリを使いましたが、Pi ZeroにUSBキーボードを直結すると動作しない現象に悩まされました。

Raspberry PiベアメタルプログラミングでのUSBキーボード入力の調査
以前、Raspberry PiベアメタルでMicroPythonの調査をしたときに ステップとしてはまずUARTからREPLを叩けるようにし、そのあと画面出力、次にUSBへと進んでいくべきでしょう。 と書きましたが、UARTからREPLを叩...
Raspberry Pi用ベアメタルUSBデバイスドライバ「csud」の調査(4)
ベアメタルRaspberry PiのUSBドライバの続きです。 csudで、Raspberry Pi Zero Wに直接接続したキーボードを取り外すと処理が正しく行えない問題を修正しました。 root hubからデバイスを取り外した際の「変...

デバッグには、ロジアナとJTAGが活躍しました。
今年はJTAG経由のオンチップデバッガとロジアナにお世話になりっぱなしだった気がします。

700円ロジアナでUSBパケットを観測してみた
昨日使ってみたロジアナですが、Saleae Logicのプロトコル解析機能にはUSBもあることに気付きました。これはAnalog Discoveryには無い機能です。 この機能を使えば、先日Raspberry Piのベアメタルプログラミング...
Raspberry Pi ZeroでのJTAGデバッグ
Raspberry Pi ZeroをJTAG接続デバッグするのを試したことが無かったなあと思い、やってみました。 以前Interface誌の記事を見ながらRaspberry Pi2をJTAGデバッグしてみたときは、結構苦労した記憶があるので...

Raspberry Pi+Raspbianの環境はここ数年は使っていなかったのですが、MicroPythonのデバッグなどのために久しぶりに使いました。
その中では、下記のサーボモータを動かす記事がよく参照されています。

Raspberry PiのGPIO操作(2)サーボモータを動かす
Arduinoでもおなじみのサーボモータ「SG-90」の制御をRaspberry Piでも試してみました。 SG-90は5V動作ですが、制御信号は3.3Vでもなんとか動作するようです。 ただし、Raspberry Piのピンヘッダの5VはU...

Raspberry Pi用のデバイスもいろいろ買いました。
特に、2色電子ペーパーのInky pHATは、専用の画像データ作成ツールを作って公開しました。

電子ペーパーディスプレイInky pHATを買ってみた
pimoroniから販売されているRaspberry Pi用のe-inkディスプレイ「Inky pHAT」に以前から興味があったので、買ってみました。 解像度は212×104ピクセルで、白黒赤の3色表示です。ちょっと珍しいですね。 表示面積...
Inky pHATのための画像変換ツールを作ってみた
先日届いたpimoroni Inky pHATですが、記事にも書いたようにPythonライブラリで扱える画像ファイルは、ちょっと特殊な形式をしています。 そこで、普通のJPEG画像等から、Inky pHAT用のPNGファイルを生成するための...

MicroPython自体でのプログラミングは大したことはやりませんでしたが、フレームバッファにREPLを表示させるライブラリは使ってくれる方がいたので、GitHubにも専用のリポジトリを設けました。

MicroPythonのREPLをOLED出力(改良版)
以前作成した、MicroPythonのREPLをOLEDに出力するツールを少し改良し、以前はできなかった行の途中での編集の表示ができるようにしました。今回は動作はESP32-DevKitCで確認しています。 改良版は以下のリポジトリにアップ...

Raspberry Pi以外では、STM32に比較的よく触りました。
ほとんどはMicroPythonがらみですが、それ以外では、以下のTrueStudioの記事も、単なるチュートリアルなのですがよく参照されました。

TrueSTUDIO for STM32を動かしてみた
最近STMicro社が買収して、無料で配布されるようになったIDE「Atollic TrueSTUDIO for STM32」を動かしてみました。 買収により、「Pro Versionが無料で使用できるようになる」そうです。 TrueSTU...

あとは、Nucleo-L432KCが小さくて気に入ったので、MicroPythonの設定ファイルを作ってmainlineにマージしてもらったのも小さな成果でした。

新しいボードへMicroPythonを対応させる方法をざっくり解説
★この記事はMicroPython Advent Calendar 2018に参加しています。★ NUCLEO-L432KCは、STM32L4シリーズのMCUを使った、Arduino Nanoサイズの小型ボードです。 写真のように、他のNU...

M5StackもMaker Fair Tokyoで購入したのですが、ちょっとブロック崩しを移植してみた程度で、結局あまりちゃんと使っていません。
世間には大分置いていかれた感があります・・・。

M5Stack Fireを買ってみた
ESP32はRAMが少ないので、これまでSTM32やRaspberry Pi Zeroを主に使ってきたのですが、外付けRAMで容量アップできるというのを見てちょっと興味が湧いてきました。 外付けRAMがついているものということで調べたところ...
PlatformIO+M5Stackを使ってみた
先日購入したM5Stack FIREですが、最近気になっていたクロスプラットフォームのIDE「PlatfomIO」をこのM5Stackで試してみることにしました。 PlatformIOはMicrosoftのエディタVisual Studio...

そのほか、6月にブログシステムをWordPressに移行しました。
主な理由は無料サービスの広告のくどさにウンザリしたからで、移行後は月額料金がちょっぴりかかるようになりましたが、結果には大変満足しています。

サーバをWordPressへ移行しました
このサイトは、2011年からSeesaa blogの無料プランを使わせていただいていましたが、このたびlolipopのサーバを借りてWordPressへ移行しました。 主な目的はスマホからの閲覧におけるUX向上です。 lolipopのサーバ...

2019年もブログのタイトルどおり、楽しいと思えることにいきあたりばったりで手を出していきますが、とりあえず今もうちょっとやりたいなあと思っているのはFPGAやRISC-V、TensorFlowあたりです。

コメント