3
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#2 - rbファイル実行【2025年7月版】

Last updated at Posted at 2025-07-28

速習PicoRubyシリーズ【2025年7月版】

この記事の目標

Raspberry Pi Picoの中に保存したRubyスクリプトを実行する

VSCodeをつなげる

前回の記事でirbでのLチカ実行は達成できましたが、毎回irbに1行づつコードを書きたくないですね。
R2P2には /home/ ディレクトリにあるrubyコードを実行する機能があります。
そして、R2P2が導入されたRaspberry Pi Picoはフラッシュメモリとして継続して認識されます。
つまり、VSCodeで編集することができます!(もちろん他のエディタでも大丈夫です)
いつも通りVSCodeを立ち上げて、R2P2と書かれたドライブを開きましょう
image.png

Lチカスクリプトを作成

VSCodeでドライブ直下を開くと /home/ ディレクトリが見つかります(なければ初期化に失敗しているので何度か電源を入れ直して1分待つのを繰り返してくださいください)
/home/test.rb を作成し、以下のコードを書き込んでください。

注意:ファイル名はなんでもいいんですが、app.rbだけは特別な名前で、電源投入後に自動実行されるのでスタンドアロンで動かせる反面、バグがあるとクラッシュしてflash_nuke.uf2するしかなくなるので今はapp.rbと名付けるのはやめましょう。

/home/test.rb
# :pico_1_base #=> 無印
# :pico_1_wifi #=> Wi-Fiモデル
PICO_MODEL = :pico_1_base

WAIT_TIME = 0.3 # 0.3sec

HIGH = 1
LOW  = 0

led = case PICO_MODEL
when :pico_1_base then GPIO.new(25, GPIO::OUT)
when :pico_1_wifi then CYW43.init; CYW43::GPIO.new(CYW43::GPIO::LED_PIN)
end

loop do
  led.write(HIGH)
  sleep(WAIT_TIME)
  led.write(LOW)
  sleep(WAIT_TIME)
end

Lチカスクリプトを実行

PuTTYやscreenなどで接続し、前記事のirbの直前のコマンド待機状態までもっていきます。
接続状態で /home/ ディレクトリにいるはずなので(pwdコマンドで確認できます)./test.rbで実行できます。
前回同様にUSB横のLEDでLチカができればOKです。
終わるときはCtrl+Cで終了できます。

注意:現在、定数(大文字から始まる変数)は電源投入単位で共有されるため、Ctrl+Cで止めた後にもう一度実行するとwarning: already initialized constant.という警告が出ますが、問題はありません。
Rubyは定数の再定義、再代入が許可されており、問題なく新しい代入が機能します。
Rubyにおける定数とは再代入時に警告が出る程度の存在で、実質的に変数です。
image.png

前後の記事

3
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
3
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?