【Raspberry Pi Pico WH】1.3インチLCDモジュール(WAVESHARE-19650)をMicroPythonで動かすまで
久しぶりにマイコンボードで遊ぼうと思い、Raspberry Pi Pico WHと、Raspberry Pi Pico用の1.3インチLCDディスプレイモジュール(WAVESHARE-19650)を購入しました。
この記事では、購入した2つの製品の選定理由、MicroPythonでのセットアップ手順、そして遭遇した初期不良(はんだの接触不良)とその対処などを書きました。Picoシリーズをこれから始めたい方や、WaveshareのPico用LCDモジュールの購入を検討している方の参考になればと思います。
結論・全体像
結論から言うと、はんだ付け不要のはずが、結局はんだ付けが必要になりました。 原因はLCDモジュール側の初期不良(はんだの接触不良)で、付け直すことで正常動作しました。一方で、Thonny + MicroPythonでの開発は、マイコンと思えないほど簡単だと感じています。

マイコン開発をしばらくやっていなかったので、劇的に簡単になったなぁという感想です。
購入に至った経緯と選定理由
ワンボードマイコンを久しぶりに購入しようと思い、とりあえず価格の安いRaspberry Pi Picoを購入してみました。ただ、何も周辺を購入しないと「LEDライト点滅」くらいしか遊べなさそうで面白くないので、比較的安かったのでディスプレイモジュールも一緒に購入することにしました。
- Raspberry Pi Pico WHを選択
ピンヘッダーがはんだ付け済みのモデルです。手持ちのハンダごてが年季が入った古いもので、新たに買いたくなかったので、ピンヘッダーがはんだ付けされたこちらを選びました - Pico 2は在庫切れだった
当初はPico 2も候補でしたが、あいにく在庫切れだったためPico WHにしました。遊ぶだけならスペックが低くても十分です。価格は違いますが、そもそも安いので、そこまでの違いは感じません。WiFi付きにしたのは、ネットに繋がった方が楽しそうだったからです。 - WAVESHARE-19650(Pico-LCD-1.3)を選択
240×240の正方形LCDでジョイスティック付き。Picoに直接スタックできるところが良かったのでこれを選びました
補足: LCDモジュール側にメスのピンヘッダーが付いていて、Pico WHのオスのピンヘッダーにそのまま挿すだけで接続できます。
購入した製品のスペック
Raspberry Pi Pico W / WH
Pico WHは、Pico W(RP2040 + 無線モジュール)にピンヘッダーがはんだ付け済みのモデルです。メーカー公式の情報をもとに、候補だったPico 2と比較したのが次の表です。
| 項目 | Pico W / WH | Pico 2 |
|---|---|---|
| MCU | RP2040 | RP2350 |
| CPU | デュアルコア Arm Cortex-M0+ @ 133MHz | デュアルコア Arm Cortex-M33(またはRISC-V Hazard3)@ 150MHz |
| SRAM | 264KB | 520KB |
| フラッシュ | 2MB | 4MB |
| 無線 | 2.4GHz Wi-Fi(802.11 b/g/n)+ Bluetooth 5.2 | なし(Pico 2 Wのみ搭載) |
| GPIO | 26本(うちADC 3ch) | 26本(うちADC 4ch) |
| PWM | 16ch | 24ch |
| 入力電圧 | 1.8〜5.5V DC | 1.8〜5.5V DC |

表は公式サイトの掲載情報をまとめたものです。Pico 2はSRAM・フラッシュが2倍、クロックも高いので、スペック面では明らかに上位ですが、遊び目的ならPico Wでも十分だと思います。
WAVESHARE-19650(Pico-LCD-1.3)
Waveshare公式の主な仕様は次の通りです。
| 項目 | 内容 |
|---|---|
| 画面 | 1.3インチ IPS LCD(65K色) |
| 解像度 | 240×240ピクセル |
| ドライバ | ST7789 |
| インターフェース | 4線式SPI |
| 操作系 | ジョイスティック1個 + ボタン4個(A/B/X/Y) |
| 接続 | Picoのピンヘッダーに直接スタック |
| 動作電圧 | 2.6〜5.5V |
仕様のうち、特に気にしたのはジョイスティックが付いていることと、Picoにスタック接続できることです。

セットアップ手順
1. MicroPythonファームウェアの書き込み
今回はMicroPythonで試す予定なので、まずファームウェアをダウンロードしました。
https://micropython.org/download/RPI_PICO_W
書き込み手順は次の通りです。
- BOOTSELボタンを押しながらPico WHをPCにUSB接続する
- ドライブ(フォルダ)として認識されるので、ダウンロードした
uf2ファイルをドラッグ&ドロップする - ドライブが消えたら書き込み完了

2. Thonnyのインストールと設定
エディタとしてThonnyをダウンロードしてインストールしました。
インストール後、右下のインタプリタ表示をRaspberry Pi Picoに切り替えます。接続先(COMポート)は自動判定されます。
3. LEDチカテスト
まずは定番のLED点滅テストを実行しました。Thonnyのエディタに以下のコードを貼り付け、緑の実行(▶)ボタンで実行します。
from machine import Pin
import time
led = Pin("LED", Pin.OUT) # Pico W/WHのオンボードLED
while True:
led.toggle() # LEDのON/OFFを切り替え
time.sleep(0.5) # 0.5秒待つ実行すると、基板上のLEDが0.5秒間隔で点滅します。問題なく動作しました。

ここまでは、いろんなサイトに載っている、とりあえず動かす方法と同じです。
PCから外しても動くようにするには、このコードをPico本体に保存します。Thonnyで「ファイル → 名前を付けて保存」を選び、保存先で「Raspberry Pi Pico」を選択します。
- 「ファイル → 名前を付けて保存」をクリック
- 保存先として「Raspberry Pi Pico」を選ぶ
- ファイル名を
main.pyにして保存
main.pyは起動時に自動実行されるファイル名です。保存後、USBケーブルを抜いて電源を入れ直すと、PCなしの単体で点滅が始まります。止めたいときは、もう一度PCに接続してmain.pyを削除(または上書き)します。
4. LCDとコントローラーの動作確認
WaveshareのWikiからデモプログラムを確認します。
https://www.waveshare.com/wiki/Pico-LCD-1.3
「Demo Download」の手順に従ってダウンロードし、PythonフォルダにあるPico-LCD-1.3.pyを読み込んで実行してみました。

トラブル:ジョイスティックの左とAボタンが効かない
ここでトラブルが発生しました。コントローラーの左方向とAボタンが反応しないのです。
放置しようかと思いましたが、とりあえずAボタンと左方向がどこに繋がっているかを調べてみると、これらはGPIOの15番(Aボタン)と16番(左方向)に対応し、ピン位置は20ピンと21ピンだということが分かりました。この2つは近くのピンなので「ピンが浮いているのか」とあたりをつけ、そこを触ってみました。ピンを触ってあげるとたまに入力できる状態で、どうやらはんだの接触不良のようです。
テスターが手元になかったため、とりあえずWAVESHARE-19650側のはんだを付け直してみると、正常に動作するようになりました。初期不良だったようです。

はんだ付けが不要な製品を買ったのに、結局はんだ付けをすることになりました。電子工作では、こうした想定外も起こるものだと学びました。電子工作あるあるですね。
今回の教訓
- 「はんだ付け不要」と購入しても、結局はんだ付けが必要になる場合がある
今回はLCDモジュール側の接触不良でした。この手のトラブルはある程度「ある前提」にした方が良いと思いました。 - やっぱり、テスターとかはんだごてとかは必要
最近、電子工作をしていないため、この手のものを持っていないのですが、やはり最低限のテスターとはんだごては必要だと思いました。
まとめ
最後に、この記事で覚えておきたいポイントをまとめます。
- Thonny + MicroPythonは、マイコンと思えないほど簡単
Arduinoなども使ったことがありますが、マイコン開発もずいぶん簡単になったと感じます - Picoシリーズはピンヘッダー付き(WH)を選ぶと手軽
はんだ付け済みなので、すぐにモジュールをスタックできます - LCDモジュールの初期不良は、はんだ付け直しで解決することもある
ピン配置などをちゃんと確認して類推することで、不良も意外と対応できました
さて、次は何を作ろうか。LCDがあると、表示付きの小さなガジェットが作れて、いっそう遊びの幅が広がりそうです。

