今回はRaspberry Pi Picoと無線LANを搭載したPico Wのアプリケーションを開発するための開発環境構築方法について解説します。
MicroPythonで記述したプログラムをRaspberry Pi Picoに書き込み、実行をすることができるThonnyのインストール方法についても解説しますので、ぜひ活用してみてください。
MicroPython
MicroPythonは、Pythonの完全な再実装で、組み込みシステムとマイクロコントローラで動作するように最適化されています。以下にその主な特徴と利点を示します。
- 軽量:MicroPythonは、リソースが限られたマイクロコントローラでも動作するように設計されています。そのため、メモリ使用量と処理能力が限られた環境での使用に適しています。
- 対話型プロンプト:MicroPythonは、対話型のREPL(Read-Evaluate-Print Loop)を提供します。これにより、ユーザーはコードを直接入力し、即時に結果を見ることができます。
- ハードウェアアクセス:MicroPythonは、GPIOピン、I2C、SPI、ADCなどのハードウェアリソースに直接アクセスする機能を提供します。
Thonny 統合開発環境
Thonnyは、Pythonの初心者向けの統合開発環境(IDE)です。Python 3.10が組み込まれており、単一のシンプルなインストーラーが必要で、プログラミングの学習にすぐに取り組むことができます。
- 簡単なデバッガ:F5の代わりにCtrl+F5を押すだけで、プログラムをステップバイステップで実行できます。ブレークポイントは必要ありません。大きなステップはF6、小さなステップはF7を押します。ステップはコード行だけでなく、プログラムの構造に従います。
- ステップスルー式の式評価:小さなステップを使用すると、Pythonが式をどのように評価するかを見ることができます。この薄青色のボックスは、Pythonが値を一部ずつ置き換える紙の一部と考えることができます。
- 関数呼び出しの忠実な表現:関数呼び出しにステップインすると、別のローカル変数テーブルとコードポインタを持つ新しいウィンドウが開きます。関数呼び出しがどのように動作するかを理解することは、特に再帰を理解するために非常に重要です。
- シンタックスエラーのハイライト:閉じられていない引用符と括弧は、初心者の最も一般的なシンタックスエラーです。Thonnyのエディタは、これらを簡単に見つけることができます。
- スコープの説明:変数の出現をハイライトすることで、同じ名前が常に同じ変数を意味しないことを思い出させ、タイポを見つけるのに役立ちます。ローカル変数は、グローバル変数から視覚的に区別されます。
Thonnyの導入方法
Windows
- Thonnyの公式ウェブサイト(https://thonny.org/)にアクセスします。
- ページの上部にある「Download version」のリンクをクリックします
Linux
sudo apt update
sudo apt install thonny
Thonnyを使ってRaspberry Pi Picoにプログラムを書き込む手順
Thonnyの画面右下の赤枠の部分をクリックします。

インタプリタ設定
をクリックします。

あなたのコードを実行するために、Thonnyはどの種類のインタープリターを使用する必要がありますか?
という小目で、MicroPython (Raspberry Pi Pico)
を選択します。

ポート
の項目でポートの自動検出を試す
を選択します。
ポートを選択したら、Raspberry Pi PicoのSELボタンを押しながらUSBを差し込み接続します。
その後、右下のInstall or update MicroPython
をクリックします。

SELボタンを押しながら接続し、正しく認識されている場合はTarget volume
の項目でRPI-RP2
が選択できるようになります。
MicroPython variant
の項目でRaspberry Pi・Pico W / Pico WH
を選択します。

インストール
をクリックします。

Raspberry Pi Picoで実行したコードを記述し、ファイル
→名前を付けて保存
をクリックします。

保存先にRaspberry Pi Pico
を選択します。

ファイル名をmain.py
として保存します。

Raspberry Pi Pico起動時にmain.pyというファイル名のファイルが自動的に実行されます。
保存が完了したら、赤枠の実行ボタンをクリックするとプログラムが実行されます。

サンプルプログラム
今回はサンプルとして以下のMicroPythonのコードを作成しました。
基板上のLEDを1秒ごとに点滅させるプログラムです。
通常のPicoとPico WではLEDのピンが異なりますのでご注意ください。
Picoで使用する場合は、ピン番号が25番をしている方のコードをアクティブにしてください。
import machine
import time
# LEDピンを出力として設定
led = machine.Pin("LED", machine.Pin.OUT) #Pico Wの場合
#led = machine.Pin(25, machine.Pin.OUT) #Picoの場合
while True:
# LEDをオン
led.value(1)
# コマンドラインに状態を表示
print("LED is ON")
# 1秒待つ
time.sleep(1)
# LEDをオフ
led.value(0)
# コマンドラインに状態を表示
print("LED is OFF")
# 1秒待つ
time.sleep(1)
実行結果
今回はRaspberry Pi Pico Wを使用して動作確認を行います。
先ほどのmain.py
を実行すると以下のようにLEDが点滅することが確認できました。

発生したエラー
開発時に発生した以下のエラーの対処法です。
エラー1
Couldn't find the device automatically.
Check the connection (making sure the device is not in bootloader mode) or choose
"Configure interpreter" in the interpreter menu (bottom-right corner of the window)
to select specific port or another interpreter.
Process ended with exit code None.
インタプリタの設定でローカルPython3を選択。
エラー2
ModuleNotFoundError: No module named 'machine'
実行→インタプリタの設定→インタプリタでMicroPythonを選択。
まとめ
Raspberry Pi Picoの開発環境について解説しました。
一連の流れを実行することで、コーディングからデバッグまでを行うことができますので、ぜひ挑戦してみてください。
コメント