【Raspberry Pi Pico入門 – 応用編】Arduino IDEを使わずにプログラムを書き込む

Raspberry Pi Pico入門,応用編Arduino,Raspberry Pi Pico

概要

Arduino IDEでRaspberry Pi Picoを使っていると、たまにプログラムを上手く書き込めなくなることがあるかと思います。また以前に作ったプログラムを書き込むときに、プログラムを変更する必要がないのにわざわざArduino IDEを準備するのは面倒くさいと感じることがあるかと思います。
そういう時は予めプログラムをコンパイル(機械語に翻訳)したものをArduino IDEを使わずに書き込む方法があります。他のマイコンにも同じように書き込む方法はあるのですが、Raspberry Pi Picoは圧倒的に簡単なので覚えておくと便利です。

実行環境

IDE:Arduino IDE 2.2.1
MCU:Raspberry Pi Pico、Raspberry Pi Pico W

コンパイル

コンパイルとはプログラミング言語を機械語に翻訳して、マイコンで実行できるような形に変換することです。Arduino IDEでは書き込みボタンを押すと「コンパイル」「マイコンを書き込みモードに変更」「書き込み」「書き込み確認」まで自動でやってくれますが、コンパイルだけで止めることも出来ます。

まず書き込みたいプログラムをArduino IDEで開きます。
「スケッチ」→「コンパイル済みバイナリをエクスポート」でコンパイルだけを実行することが出来ます。
右下に「コンパイル完了」とメッセージが出ればOKです。

プログラムを保存しているフォルダを開くと、「build」というフォルダが追加されています。

「build」フォルダの中には「rp2040.rp2040.rpipico」フォルダがあり、その中にはいくつかのファイルが入っています。
この中で「〇〇〇〇.uf2」という拡張子のファイルがファームウェア(マイコン用の実行ファイル)となります。

「〇〇〇〇.uf2」以外はコンパイルの途中で生成されるもので、書き込みには使わないので削除してもOKです。

Raspberry Pi PicoをUSB大容量デバイスモードで起動する

Raspberry Pi PicoにはFlash領域があり、ここにプログラムを保存しています。またFlash領域をUSBメモリのようにPCに認識させる機能もあります。

まずRaspberry Pi Picoに繋いでいるUSBコネクタを外してマイコンを停止させます。次に「BOOTSEL」と書かれたボタンを押したまま、再度USBコネクタを接続してください。接続したらBOOTSELボタンを離してOKです。
(リセットボタンを追加している場合は、二つとも同時に押した状態にして、リセットボタン→BOOTSELボタンの順に離す、でもOKです)

上手くいけば「RPI-RP2」という名前のUSBメモリのようなものが認識されます。

ファームウェアの書き込み

「RPI-RP2」を開き、先ほどコンパイルした「〇〇〇〇.uf2」という名前のファイルをドラッグ&ドロップで保存します。
保存が成功すると自動的にRPI-RP2が切断されてRaspberry Pi Picoが再起動し、通常モードで書き込んだプログラムがスタートします。