週末から思い立って、Ruby製のコマンドラインツールを作り始めています。企業研修のお仕事(と趣味)で、Raspberry Pi Pico Wを触っています。MicroPythonの体験が良い(=ツールが使いやすい、サンプルが豊富な)ので特に不満はなく、冷静に振り返ってみると、つい魔がさした、という以上の理由が見つかりません(笑)例えば、Thonny(エディタ)を使っていれば、ボードを選んで実行ボタンを押すだけでプログラミングを開始できますし、Macなどでは、以下のようなコマンドラインツールで簡単に書き込んで実行できます。
mpremote cp myapp.py :main.py
Rubyでも同じことがしたい!と作り始めたのがprremoteです。
prremote deploy myapp.rb
着想を得たのは、(少し昔、発展途上だった頃の)ChatGPTとの会話です。「Rubyでマイコン開発できないの?」って聞いたら、「できますよー!」って調子よく返ってきた時に紹介してくれたのが上記のコマンドなんですが、どこを確認してもハルシネーション(笑)。もちろん私の調査能力不足の可能性もあるのですが、多分、PythonやCで出来てることを勝手に書き換えてるだけだろうと結論づけ、mrubycの習作を作ったりしながら、Claudeに妄想の実現を相談してたら、あっという間に土台が出来ちゃった、という顛末です。RubyGems.orgへのリリースも先ほど済ませました。インストールしたら早速不具合が見つかったので、次のリリースを(Claudeに)準備してもらいつつ、これを書いてます。
I2Cの実装が出来てないし、その他のクラスもAI任せでざっと書いちゃっただけなので、まだまだ実装&検証が必要なところは残っています。その次の目標は、拙著、Dive into Raspberry Pi 2026のPico Wパートをprremoteベースで書き換えちゃうことです。