Raspberry Pi Pico W でmicropython の開発にVisual Studio Codeを使用する
Raspberry Pi Pico Wでmicropython を使用する際の開発環境(IDE)に 公式では Thonny が推奨されていますが、
Visual Studio Codeを使用することもできます。
このとき、拡張機能 「MicroPico」(旧称Pico-W-Go) を使用します。
ここでは先人の成果をパクり 参照しつつ、なんとなく手順を書いてみることにします。
セットアップ手順は以下が分かりやすい。
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.
>>>
ここで色々コマンドを入力すれば実行できる
適当なところにフォルダを作成し(以下の例では「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)のストレージから消えるわけではありません)