投稿日:2025年8月12日
前回まではRaspberry Pi Zero 2 W(以下、Zero 2 W)で防犯カメラを作ってみました。
Zero 2 W用のカメラ を購入し、QRコードリーダーを作ろうと検証してました。
ネットワーク経由でデータベースのフィールド値を変更できるか検証してましたが、Zero 2 Wではブラウザを起動するにも数分かかり、とてもじゃぁありませんが実用的ではありません。
代わりになるものを物色してたところRaspberry Pi Pico というものを見つけました。
購入したものはRaspberry Pi Pico WH
Pici WにGPIOピンヘッダがハンダ付けされたものになります。
基本、ラズパイはシングルボードコンピューター(single-board computer、SBC)になりますが、Picoシリーズはマイコンボードになります。
システムインストールからプログラム作成、実行まで単体で動かすことができるSBCに対し、マイコンボードは単体では実行できません。
母艦になるパソコンからプログラム作成、実行する必要があります。
作成したプログラムをマイコンボードに保存し、電源ONとともに実行するような使い方ができます。

▲Pico W本体。小さく軽いです。

▲表はこのようになっています。
Pico Wのデータシートドキュメント(英語版)はこちら です。
Pici WHはPici WにGPIOピンヘッダがハンダ付けされたものです。
Wi-FiチップにはBluetooth 5.2も内蔵されています。
内蔵LEDは後述するLチカプログラムで点滅させることができます。

▲裏面。ピンヘッダで隠れていますがGPIO(汎用入出力)ピンの名称が書かれています。

▲技適マークのシールが同梱されてきます。
無線通信機器には必要なものなのでなくさないようにしましょう。
基盤上、配線がないのでPico Wの裏面に貼っておいても良いでしょう。
接続とセットアップ

▲PC側にUSB Type-Bケーブルを接続し、続いてBOOTSELボタンを押しながらPico W側にケーブルを接続します。

▲Pico Wがマウントされます。
セットアップに必要なMicroPython UF2 ファイルをRaspberry Pi公式サイト からダウンロードします。

▲Raspberry Pi公式サイト のMicroPythonダウンロードページ

▲Pico Wをクリックしてダウンロードします。

▲ダウンロードしたMicroPython UF2 ファイルをマウントしたPico Wにコピーします。
コピーが終わると自動でマウントが切れます。
これでセットアップは完了です。
Thonnyのダウンロードと設定
Pico WはMicroPythonでプログラミングします。
MicroPythonとはPythonと互換性のある初心者向けのIDE(開発環境)です。
Thonny というソフトをダウンロードします。

▲右上のターゲットマシーンをクリックするとダウンロード画面が開きます。
今回はMac版を選択します。
ダウンロードしたpkgファイルを展開し画面の指示に沿ってインストールします。

▲インストールしたThonny。

▲起動すると画面が開くので上図のように設定します。

▲Thonny画面
ここにMicroPythonを記述します。

▲ツール > オプションを開きます。

▲インタプリタ タグで対象のラズパイを選択します。
フォントやテーマなどもカスタマイズできるので必要に応じて設定しましょう。
これで一通りの準備が完了です。
Lチカ
内蔵LEDをチカチカさせてみましょう
MicroPythonのプログラムは下記になります。
import machine
import time
led= machine.Pin('LED', machine.Pin.OUT)
while (True):
led.on()
time.sleep(0.5)
led.off()
time.sleep(0.5)

▲記述したら実行ボタンを押します。
下の動画のように点滅します。
▲Lチカが実行されました。

▲保存します。
保存先を聞かれるので任意の場所に保存します。
今回はRaspberry Pi Picoを選択します。

▲任意のファイル名で保存します。
重要なのは、任意のファイル名で保存した場合にはパソコンにPicoを接続、Thonnyを起動して実行、といった流れが必要になります。
Pico Wはマイコンボードなのでスタンドアローンな状態で動作しなければなりません。
スタンドアローンな状態で動作させるにはファイル名を main.py とし、Pico Wに保存する必要があります。
main.pyで保存しモバイルバッテリーに接続してみました。
下の動画になります。独立して動作しています。
ネットワークに接続
せっかくWi-Fiが付いているので試してみたいと思います。
インターネット接続の公式ドキュメントはこちら になります。
以下のソースコードを記述します。

▲実行するとシェルに結果が出力されます。
# ネットワークに接続
import network
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect('Wireless Network', 'The Password')
▲1〜5行目。
ネットワークに接続します。
5行目の 'Wireless Network', 'The Password'
にネットワーク名と接続パスワードを記述します。
import urequests
▲8行目。MicroPythonのurequestsライブラリをインポートします。
r = urequests.get("https://onebitious.net/pico_w_test.html")
▲9行目。リクエストで https://onebitious.net/pico_w_test.html
から取得した内容を変数 r
に格納。
print("httpステータスコード:", r.status_code) #httpステータスコード
print("HTTPステータスコードのReason:", r.reason) #HTTPステータスコードのReason
print("文字コード:", r.encoding) #文字コード
print("ヘッダ情報:", r.headers) #ヘッダ情報
print("本文:", r.text) #本文(文字列)
print("本文:", r.content) #本文(バイト列)
r.close() #最後に閉じる
▲10〜16行目取得した内容の情報を出力。
status_code(ステータスコード)が200と表示されれば接続成功です。
他はコメント通りの出力がされます。
以上が接続の基本になります。
色々と、他のユーザー様の記事を参考に検証してみました。
思っていたよりも簡単に動かすことができ可能性を感じます。
以降はブレッドボードやモジュールなどを購入したいと思います。
データベースにも接続したいと思ってますが、どうもPicoシリーズは接続するためのpymysqlが使えないようです。。。
色々と試してみたいと思います。
最後まで読んでいただき、ありがとうございました。