1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PicoRubyをESP32マイコン上で動かすR2P2-ESP32のはじめかた

Last updated at Posted at 2025-02-28

R2P2 はRaspberry Pi Pico上で動作する PicoRuby で書かれたシェルシステムです。

私はこのR2P2をESP32という別のマイコンで動作させる取り組みをしています。先日、 R2P2-ESP32 という名前でGitHubリポジトリも公開しました。

本記事では「ESP32でも動くならちょっと試してみようかな」と思った方向けに、R2P2-ESP32のはじめかたをまとめようと思います。

準備物

R2P2-ESP32をはじめるにあたり次のものを準備してください

  • PC
    • MacOSおよびUbuntuでビルド・書き込みができることを確認しています
  • ESP32マイコンボード

開発環境の構築

R2P2-ESP32はESP-IDFと呼ばれるESP32向けの公式開発環境を用いて開発しています。現時点ではビルド済みのイメージは公開していないですし、ビルドなしで任意の .rb .mrb といったファイルを実機上に配置する手段も用意できていないため、ESP-IDFを用いた開発環境を構築いただく必要があります。

こちらのドキュメントを参考に、環境を構築してください。ESP-IDFのバージョンはv5.4で動作確認ができています。

上記に加えて、PCにRubyをインストールしておいてください。

コードの取得とセットアップ

開発環境を構築できたらソースコードを入手してセットアップをしてください。次のコマンドをPCで実行します。

$ git clone --recursive https://github.com/picoruby/R2P2-ESP32.git
$ cd R2P2-ESP32
$ rake setup_esp32   # ESP32-DevKitCをお使いの場合
$ rake setup_esp32c3 # M5Stamp C3 Mateをお使いの場合

rake setup_esp32 コマンドではR2P2-ESP32が内包しているPicoRubyのビルドを行っています。

もしここでエラーが出る場合、ESP-IDFの環境変数が設定できていない可能性が高いです。こちらの手順 を参考に、以下のコマンドを実行した上で再度実行するようにしてください。

$ . $(ESP-IDFのインストール先)/export.sh

ビルド・書き込み・シリアル接続

ESP32マイコンボードをPCに接続した状態で rake を実行すれば、ビルド・書き込み・シリアル接続まで全自動で実行できます。

個別に実行したい場合のコマンドも併記しますので適宜活用ください。

rake       # ビルド->書き込み->シリアル接続

rake build   # ビルドのみ
rake flash   # 書き込みのみ
rake monitor # シリアル接続

起動確認

ここまでの手順を正常に実施できていれば、次のような見慣れたロゴが出力されるはずです。

idf_py_monitor.png

使い方

irbを起動する

R2P2と同様、irbが使えます。シリアル接続したときに表示されたプロンプトに対して irb と入力してみてください。

rake.png

.rb .mrbを書き込む

前述の通り、現時点ではビルドを経由しないとESP32マイコンボードにスクリプトを書き込むことができません。プロジェクト直下の storage/home 配下にファイルを格納して、ビルド・書き込みを実行することで書き込みができます。

$ cat storage/home/sample.rb
message1 = 'Hello'
message2 = 'World!'
puts [message1, message2].join(' ')

$ rake build flash

書き込んだファイルは ls コマンドで確認でき、 ./(ファイル名) にて実行ができます。

idf_py_monitor.png

ちなみに、 app.rb または app.mrb という名前のファイルを /home 直下に格納すると、起動時に自動的に実行されるようにしています。(両方のファイルが同時に存在する場合 .mrb のみを実行)

まとめ

このように必要最低限の動作はするようになりましたが、ペリフェラルは現時点でGPIOのみ実装した状況ですし、まだまだポーティングすべき機能は山ほどあります。

興味を持っていただけた方はぜひお試しいただき、もしよければフィードバックやコントリビュートを頂けると大変嬉しいです...!

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?