Raspberry Pi Pico Wでmicropython with Visual Studio Code

Raspberry Pi Pico W でmicropython の開発にVisual Studio Codeを使用する

概要

Raspberry Pi Pico Wでmicropython を使用する際の開発環境(IDE)に 公式では Thonny が推奨されていますが、 Visual Studio Codeを使用することもできます。
このとき、拡張機能 「MicroPico」(旧称Pico-W-Go) を使用します。
ここでは先人の成果をパクり 参照しつつ、なんとなく手順を書いてみることにします。

環境構築

PC側の準備

セットアップ手順は以下が分かりやすい。
Pico W で遊ぼう(環境構築)
ただし、モジュール名が「Pico-W-Go」から「MicroPico」に変更されているので、読み替え必要。

PC側はVisual Studio Code がインストールされていれば 拡張機能で「MicroPico」を検索してインストールするだけ。

本体側の準備

本体側はファームウェアの書き換えを行う。
ファームウェアの最新版は Raspberry Pi Documentation > MicroPython からダウンロードできます。
また、MicroPython > DOWNLOAD > Pico W には、Nightly buildsのバイナリもあったりします。

動作確認

Raspberry pi Pico をPCに接続しておいて、Visual Studio Code を起動。

MicroPython v1.20.0-198-g0eacdeb1c on 2023-06-13; Raspberry Pi Pico W with RP2040
Type "help()" for more information or .cls/.clear to clear the terminal.

>>> 

ここで色々コマンドを入力すれば実行できる

いつでもwifiにつなげるように準備

適当なところにフォルダを作成し(以下の例では「test」)、その下にlibフォルダを作り、 その下にmy_wifi.py として以下のファイルを作成しておく。
1行目~2行目は自分の環境に合わせて変更しておくこと。

    test
     +-- lib
          +-- my_wifi.py
          

my_wifi.py

SSID_NAME = "SSID名"
SSID_PASS = "SSIDパスワード"

import utime
import network

wifi = None
# ==== connecti to wifi access point ============================================
def connect_wifi(ssid, passkey, timeout=10):
    wifi= network.WLAN(network.STA_IF)
    if wifi.isconnected() :
        print('already Connected.    connect skip')
        return wifi
    else :
        wifi.active(True)
        wifi.connect(ssid, passkey)
        while not wifi.isconnected() and timeout > 0:
            print('.', end='')
            utime.sleep(1)
            timeout -= 1
    
    if wifi.isconnected():
        print('\nConnected')
        return wifi
    else:
        print('Connection failed!')
        return None

def isconnected() :
    if wifi :
        return wifi.isconnected()
    return False

def disconnect() :
    if wifi :
        return wifi.disconnect()
    return None

wifi = connect_wifi(SSID_NAME, SSID_PASS)

if wifi :
    print(wifi.ifconfig())

Visual Studio Code のエクスプローラウィンドウで「フォルダを開く」ボタンをクリック (またはメニューの「ファイル」→「フォルダを開く」を選択)し、 上で作成したフォルダ(例ではtest)を開きます。

コマンドパレットで「MicroPico: Upload project to Pico」を選択します。

[!NOTE] 現在書き込まれているファイルをすべて消去するには
コマンドパレットで「MicroPico: Delete all files from board」を選択します。

実際に書き込まれたかはターミナルウィンドウで以下のように実行することで確認できます。

>>> import os
>>> os.listdir('/')
['lib']
>>> os.listdir('/lib')
['my_wifi.py']

または後述の仮想ファイルシステムを使用しても確認できます。

でもって、使用するプログラムでimport my_wifi とやれば接続できます。
なお、my_wifi.isconnected() で接続中かが分かります。 my_wifi.disconnect() でAPから切断できます。

仮想ファイルシステムを使用する

仮想ファイルシステムを使用すると、現在PaspberryPi Pico(W)のストレージに書き込まれているファイルを 直接確認/操作することができます。

ここのファイルを開くとPaspberryPi Pico(W)のストレージにあるファイルを直接参照できます。
また、内容を変更して保存すると PaspberryPi Pico(W)のストレージに直接格納されます。

[!NOTE] PC上のファイルとPaspberryPi Pico(W)のストレージ上のファイルをあちこち弄くると どちらをどう書き換えたか分からなくなるので、できるだけPC上のファイルを書き換えて「Upload project to Pico」で PaspberryPi Pico(W)のストレージを同期するのが良いと思います。

mipコマンドでダウンロードしたモジュールや、プログラムでPaspberryPi Pico(W)のストレージ上に作成したファイルをPCのコピーするには、

仮想ファイルシステムを消すには、

で、エクスプローラウィンドウから「Pico (W) Remote Workspace」が消えます。
(エクスプローラウィンドウの表示が消えるだけで、PaspberryPi Pico(W)のストレージから消えるわけではありません)