picoRuby


ESP32を使うときには,私は主にmicropythonを使っていた. C言語よりはpythonの方が楽なので. micropythonでは,binaryを書き込んだら,pythonのコードをマイコンが実行してくれる.

esp32ではmrubyというrubyを使うことも出来るが,rubyのコードをPC側でコンパイルしてマイコンに書き込む必要がある. 手順も複雑なので,素人向では無いと感じて,手を出さなかった. mrubyも進化しているようで,mruby/cという小さなRAMで動かせるものも開発されているが,大まかな使い方はmrubyと同じようである.

mruby/cについて調べていたら,picoRubyというものもあることを知った. microの次はnanoなのに,それを飛ばしてpicoになったのは何故かなと思ったら,raspberry pi pico用に開発されたものだからのようだ. 使い方はmrubyと似ているのかなと予想したが,micropythonと同じように使うことができる. それなら使ってみようかなということで,試してみることにした.

raspberry pi picoが必要だが,手元にあるRP2040-zeroを使うことにした. まず,binaryをここから最新のものをdownloadして,展開する. pico用とpico2用があるが,今回は前者に対応しているのでそれを選ぶ. daily buildなどは無いようなので,最新のコードのbinaryが必要な場合は,自分でbuildしないといけない. BOOTを押しながらUSBに接続すると,RPI-RP2というmediaがマウントされるので,そこにuf2ファイルをコピーする. インストールはこれで終了である.

しばらく待ってからRESETを押すと,/dev/ttyACM0が出来ているので,ターミナルソフトで接続する. linuxだと,例えば以下のコマンドである.

gtkterm -p /dev/ttyACM0 -s 115200

lsなどの簡単なコマンドや,rubyを使うためのirbが使える. まずは簡単な計算をやってみて,micropythonと同じ感覚で使えることを感じた. Lチカをしようと思ったけど,RP2040のLEDは簡単では無いようなので,電圧のON/OFFをやってみた.

pin = GPIO.new(1, GPIO::OUT)
10.times{pin.write(1);sleep 1;pin.write(0);sleep 1}

esp32用のpicorubyもあるけど,binaryが無かったので,今回は見送った. binaryも公開して貰えると,素人でも始めやすくなって,使う人が増えると思うので,公開してくれると助かるけどな. しかし,esp32用のpicorubyは,netには対応していないようである. esp32のwifiが使えるようになったら,micropythonの代わりにpicorubyを使って行きたい. 開発が進むのを待つことにしよう.