Pico2が発表されました。Picoとどう違う?はSwitchScience のサイトをご覧ください。
例によってこのてのデバイスの場合、新しいバージョンは前バージョンに比べて倍かそれ以上のアップグレードになることが多いので使う価値はあります。
ラズパイに開発環境を作ってやってみます。
Rspberry Pi 4 Model B+ 4GB
2つのOSを使ってみます。
Ubuntu (24.04.1 LTS) のOS環境でやってみる
Raspberry Pi OS (Bullseye)にArduino IDEをインストールしてやってみる
どちらのOSもRaspberry Pi Imager にあるのでMicroSDカードに焼いてお使いください。
ついでにPythonも…..。
OS : Ubuntu 24.04.1 LTS (Desktop )
サンプルコードをクローンして、rp2350をオプションにして、実行コード作成してみます。
仮想環境を作成(やってもやらなくてもいいですけど)
1 2 3 4 5 |
sudo apt install python3.12-venv python3 -m venv test-env source test-env/bin/activate |
Raspberry Pi Pico 2の開発環境
コンパイラなどの必要なパッケージをインストールしておきます。
1 2 |
sudo apt install cmake gcc-arm-none-eabi libnewlib-arm-none-eabi libstdc++-arm-none-eabi-newlib sudo apt install build-essential |
GitHubで管理されている「Raspberry Pi Pico SDK」のGitリポジトリをホームディレクトリの直下にクローンします。
1 2 3 |
sudo apt install git git clone https://github.com/raspberrypi/pico-sdk.git |
任意のエディタで「.bashrc」を開きます。
sudo nano .bashrc
以下の行を追加して、環境変数を設定
export PICO_SDK_PATH=$HOME/pico-sdk
「ホームディレクトリ/pico-sdk」に移動してサブモジュールをアップデートして環境構築は完了
1 2 3 |
cd pico-sdk git submodule update --init |
PICO_SDK_PATH=$HOME/pico-sdkを1回実行
Raspberry Pi開発チームが公開しているサンプルリポジトリに含まれる「blink」というプログラムをビルドして使います。
1 2 3 |
cd ~/ git clone https://github.com/raspberrypi/pico-examples.git |
再起動しておきます。
仮想環境起動
source test-env/bin/activate
「ホームディレクトリ/pico-examples」に移動してプログラムをビルドします。
RP2350のArmコア向けのプログラムをビルドしたいので、Cmakeのオプションで3タイプのPicoに対応したアプリをビルドできます。
pico ー> 「-DPICO_PLATFORM=rp2040 -DPICO_BOARD=pico ..」
pico w ー>「-DPICO_PLATFORM=rp2040 -DPICO_BOARD=pico2_w ..」
Pico2 ー>「-DPICO_PLATFORM=rp2350 -DPICO_BOARD=pico2 ..」
を指定
ビルドに成功すると、「ホームディレクトリ/pico-examples/build/blink」に「blink.uf2」というファイルが出力されます
1 2 3 4 5 6 7 8 9 10 11 |
cd pico-examples mkdir build cd build cmake -DPICO_PLATFORM=rp2350 -DPICO_BOARD=pico2 .. cd blink make |
Pico2のBOOTSELボタンを押しながらUSBケーブルでラズパイと接続します。
Pico2はストレージとして認識されますので、以下のようなフィルダーなっています。
blink.uf2ファイルをここにドラッグ・ドロップすると自動でストレージが解除されて、アプリが実行されます。
Pico2のオンボードLEDが点滅するはずです(即じっこいしない場合はUSBを挿し直してみてください)。
OS : Raspberry Pi OS ( Bullseye Desktop 32-bit )
rp2350ボードを選択して実行コード作成します。
Earle Philhower版のボードマネージャーを使います。
Arduino IDE にEarle Philhowerコアをインストール。
ファイルー>環境設定
「追加のボードマネージャーのURL」に以下を追加
https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json
Earle Philhower版のボードマネージャーを追加します。
ツールー>ボードー>ボードマネージャーを選択
picoで検索してリストに表示
「Raspberry Pi Pico/Rp2040/RP2350」を選択してインストール。
ボードマネージャーからPico2を使えるようにします。
ツール ー> ボード ー> ボードマネージャーでRaspberry Pi RP2040を選択 ー> Raspberry Pi Pico2を読み込みます。
ツールからターゲットのシリアルポートを選択
ArduinoからPico2にアプリを書き込むために、Pico2のBOOTSELボタンを押しながらUSBケーブルでラズパイと接続します。
Pico2はストレージとして認識されますので、以下のようなウィンドウが開きます。OKをクリック。
サンプルのスケッチからLチカ(Blink)を選択。
ソースコードが開きます。変更する必要がなければこのままビルドして書き込みます。
書き込みが終了したら、Pico2のオンボードLEDが点滅するはずです。
MicroPython
ここではPythonを使ってLチカしてみます。Pico2のようなサイズのデバイスではMicroPythonなどを使います。
MicroPythonの実行環境をPico2に作ります。ラズパイのOSはRaspberry Pi OS です。
MicroPython公式からPico2用のファームウェアをダウンロードしておきます。
v1.24.0-preview.201.g269a0e0e1 (2024-08-09) .uf2
Pico2をストレージモードで開きます。
BOOTSELボタンを押しながらラズパイに接続するとストレージウィンドウが開きます。
ファームウェアをコピー。
ストレージモードが解消されてウィンドウは勝手に閉じます。
ラズパイ標準のPython開発環境のThonnyを開いて、右下のボタンでPico2に接続します。
メニュー>プログラミングー>Thonny
Lチカ用のコードを記述して実行します。
1 2 3 4 5 6 7 8 9 10 |
from machine import Pin from time import sleep led = Pin('LED', Pin.OUT) while True: led.on() sleep(0.25) led.off() sleep(0.75) |
Pico2のオンボードLEDが点滅するはずです。
このままだと、開発環境からPico2を外すと、Lチカはもう実行されません。
実行用のファイルをPico2に恒久的に置いておく必要があります。
Saveします。
どこに保存するか聞いてくるので、Pico2にします。
保存するファイル名はmain.pyにします(こうしないと実行されません)。
これで一度ケーブルを抜き差しすればLEDが点滅します。
Appendix
MicroPythonから派生したCircuitPythonのファームウェア
Appendix2
Pi Pico でボタンを押してLEDを点灯(Arduino IDE / MicroPython)メモ
Pi PicoにMicroPythonをセットアップして実行してみる(メモ)
Leave a Reply