Closed22

Raspberry Pi Pico・PiroRubyでLチカする

yana-giyana-gi

このスレの目標

  • MicroPythonでLチカする
  • PicoRubyでLチカする

最終的にはPicoRubyでやりたいけど、情報がありそうなMicroPythonから始めた方がいいのかな〜

yana-giyana-gi

Raspberry Pi Picoを買うぞ

秋月電子が親切そうなのでここで探して買ってみる

yana-giyana-gi

今回選んだもの

Raspberry Pi Pico 2 WH

  • ラズパイの種類

    • 買った本で利用されており、安くて始めそうなPicoにする
    • いずれはサーバー用途としてZeroも欲しい
  • 無印か2か

    • 違いがよく分からなかったが最新が最高精神で2にしてみる
  • W

    • Wifiに繋げたいのでWの方で
  • H

    • はんだ付けでつまづきたくないのでピンヘッダーが取り付けられたものにする
yana-giyana-gi

せっかくなのでブレッドボードなども買っておく

  • ブレッドボードとジャンパーワイヤー

    • ブレッドボードが秋月電子だと本に載っている形のものが売り切れだったので、Amazonでジャンパーワイヤーとセットのものにしてみた
  • 温湿度センサー モジュール AHT25

    • これははんだ付けいらなそう?
yana-giyana-gi
  • 抵抗内蔵5mmLED
    • 光らせたい
    • 20円とかの商品を数個だけ買うの嫌がらせにならないのか?
yana-giyana-gi

光った!
初めてのLチカ

MicroPythonのファ ー ムウェアを書き込んで動かしてる
Thonnyという開発ツールでコードを書いて実行した

yana-giyana-gi

Lチカのコードを実行中の場合、Devise is busyでファイルも保存できない

実行を停止してからだとファイルが保存できる

ラズパイのメモリが小さいから?と思ったけど、chatGPTに聞いたらUSBインターフェースの競合やロックの問題っぽい?

yana-giyana-gi

Lチカするpythonファイルをmain.pyで保存すると、Picoが電源を入れた時にプログラムが実行される

一度PCの接続を外してもう一度接続したら確かに実行された
今度はPC接続ではなく電源に繋いでも実行された おお

当たり前だけどただのファイルが書き込めるUSBメモリなのではなくプログラムを実行できるコンピューターなんだな

しちゃったの!?「組み込み」ってやつ

yana-giyana-gi
  • BOOSTELボタンを押して接続するとブートモード
    • USBマスストレージデバイス?として振る舞う
      • USB経由で接続できる、保存メディアとして使える機器
      • USBのプロトコルの一種 Mass Storage Class (MSC)
    • finderなどでデバイスが表示される(外付けドライブとしてマウントされる)
  • BOOSTELボタンを押さずに接続すると通常の動作モードになる
    • シリアル通信(REPL)として認識される
      • REPL (Read-Eval-Print Loop)
        • 入力・評価・出力を対話的に実行できる環境
        • Rubyでいうirb
      • シリアル通信(REPL)ポート
yana-giyana-gi

ラズパイPico W かんたんIoT電子工作レシピ の3章を参考にLEDを光らせてみた。
いよいよ電子工作っぽい


配線図の見本をもとにそのまま配線したので、電子回路や抵抗の話など何もわかっていない。
何もわかっていないけど光ったのでラッキー
己の手で光らせるって楽しいね

これはピンセットが必要ですね。

yana-giyana-gi

https://github.com/picoruby/R2P2 をpico Wに保存する

R2P2とは

  • picoruby/picoruby
    • PicoRuby本体
  • picoruby/R2P2
    • R2P2 (Ruby Rapid Portable Platform) is a shell system runs on Raspberry Pi Pico written in picoruby/picoruby.

    • picorubyで書かれたRaspberry Pi Picoのシェルシステム
yana-giyana-gi

uf2ファイルを入れても反応しないと思ったらインストールするファイルを間違えてた
Pico2 Wに対応下バージョンを入れたら想定通りアンマウントされた

yana-giyana-gi

Macでシリアル通信をする

Pi Picoのデバイス名を確認する

ls /dev/cu.usbmodem*
/dev/cu.usbmodem1201

screen コマンドでで接続
115200 はデフォルトボーレート(1秒間に何ビット送受信するか)

screen /dev/cu.usbmodem1201 115200
$TERM too long - sorry.

$TERM が理解できずにエラー

  1. TERMを一時的に変えてから起動
TERM=xterm screen /dev/cu.usbmodem1201 115200

で起動できた 👌

yana-giyana-gi
Starting shell...
$> irb
irb> puts 'Hello world'
                                                                                                                                                           Hello world
          => nil

記念すべきHello World
改行が本当に変なのはなんで(PiroRubyのAAも表示されず)

yana-giyana-gi

Tutorial short clips をみながらLチカを試みる

irb> led = GPIO.new(25,GPIO::OUT)
=> #<GPIO:0x20016a8c @open_drain=false, @alt_function=nil, @dir=2, @pin=25>
irb> led.write 1

光らない。

GPTに雑に聞いてみたら、オンボードLEDはRP2350(Pico2 W)ではGPIO25で光らないとのこと。

Raspberry Pi Documentation - Raspberry Pi Pico and Pico W
https://www.raspberrypi.com/documentation/microcontrollers/raspberry-pi-pico.html
に書いてあるピンは配置を見比べてみると確かに違う

Raspberry Pi Pico 2

Raspberry Pi Pico 2 W

yana-giyana-gi

次にやりたいこと

  • PicoRubyでwifi接続もしてみたい
  • 何か一つ作品をつくる
    • MicroPythonで作る→PicoRubyで動くようにする
このスクラップは3ヶ月前にクローズされました