RP2040(Pico/Zero) + CircuitPython 始め方ガイド

RP2040-Zero(または、これの互換で上位機種の RP2350-Zero)をcircuit pythonで操作できるようにするまでのセットアップガイドです。

この記事の手順を完了すれば、自分好みの自作キーボードや、触れるだけで音が鳴るユニークな電子楽器など、世界に一つだけのUSBガジェットを誰でも自由自在に作れるようになります。

RP2040のセットアップマニュアルのサムネイル

RP2040

ラズパイzeroの互換基板です。自作キーボードなどに最適。

RP2040

RP2040

ラズパイzeroの互換基板でそれなりに安価で手に入ります

広告

RP2350

2024年に、RP2040の上位モデルとして RP2350 が登場しました。今回の記事では安価で手に入りやすいRP2040を使用しセットアップを紹介しますが、セットアップ手順は同じです。値段は数倍しますが、その分高性能なので、マイクのリアルタイム処理や少し複雑な処理ができるガジェットを作りたいという場合は、こっちを購入してみてもいいかもしれません。

項目RP2040RP2350 (最新)
CPUコアCortex-M0+ (133MHz)Cortex-M33 (150MHz) + RISC-V
SRAM (メモリ)264KB520KB (約2倍)
浮動小数点演算ソフトウェア処理ハードウェア・アクセラレータ搭載
セキュリティ基本機能のみTrustZone / セキュアブート対応
RP2350

RP2350

RP2040の上位モデル

広告

環境構築-1 Thonny IDE

 circuit pythonで環境を作るにあたり、PCと基板で通信ができる(type-cケーブルで接続し通信できる)ようにしないといけません。

まずは、pythonのシリアル通信ができる環境を作ります。

Thonny IDEは、PC側でコードを書き、RP2040のシリアル通信(print出力など)を確認するためのツールです。

公式サイトからインストーラをダウンロードして環境構築します。

thonny home page

thonny home page

pythonでシリアル通信するIDE

thonny.org

インストーラの起動画面

手順にしたがいセットアップすれば大丈夫です。

環境構築2 circuit pythonをセットアップ

 Thoonyは、PC側の設定だったので、RP2040の方を「Pythonが動くマイコン」にします。

1. CircuitPythonのダウンロード

公式サイトから最新の .uf2 ファイルをダウンロードします。

ダウンロードページへのリンク

ダウンロードページへのリンク

circuitpythonの公式ページ

circuitpython.org

2. RP2040にインストール

RP2040をPCに接続すると F:ドライブなどドライブとして表示されます。

ここに先ほどダウンロードした。”.uf2ファイル”をドラッグアンドドロップします。すると自動的に、セットアップされて、再読み込みされます。読み込みが成功したら、CIRUITPY(F:)のような表示に変わります。

デモプログラムで接続チェック

RP2040のセットアップができたら、Thonnyを起動して、接続チェックします。

Thonnyを起動したら、”ファイルを開く”から、RP2040のcode.pyを開きます。
RP2040は起動したら自動的に “code.py“という名前のファイルを実行してくれるので、Thonnyを毎回起動しなくても書いたとおりに動作してくれます。

thoony-open code.py file
circuit pythonでセットアップしたRP2040のデフォルトフォルダ構成

開くとデフォルトで helloWorldをプリントする記述がされているはずです。

print("Hello World!")

デフォルト code.py

1. テスト回路の準備

今回は、右上の 0番ピン(GP0)1番ピン(GP1) を使って入力をテストします。 特別なスイッチがなくても、ジャンパー線(あるいは金属のピンセットなど)で、0番ピン(または1番ピン)とGNDピンをショートさせる(つなぐ)だけでテスト可能です。

2. テスト用コードの書き込み

Thonnyで code.py を開き、以下のコードをコピー&ペーストして保存(Ctrl+S)してください。保存した瞬間にRP2040が再起動し、プログラムが走り出します。

import board
import digitalio
import time

# 0番ピンと1番ピンを入力モードで設定
# 内部プルアップ(何もしてないときは1、GNDに繋ぐと0になる設定)を有効にします
sw0 = digitalio.DigitalInOut(board.GP0)
sw0.direction = digitalio.Direction.INPUT
sw0.pull = digitalio.Pull.UP

sw1 = digitalio.DigitalInOut(board.GP1)
sw1.direction = digitalio.Direction.INPUT
sw1.pull = digitalio.Pull.UP

print("--- 接続テスト開始 ---")
print("GP0 または GP1 を GND と繋いでみてください")

while True:
    if not sw0.value: # 0番ピンがGNDに触れた(Falseになった)時
        print("Switch 0: ON!")
    
    if not sw1.value: # 1番ピンがGNDに触れた時
        print("Switch 1: ON!")
    
    time.sleep(0.1)

1番と0番ピンをGNDと短絡させて、Thonnyの下部にある「シェル」ウィンドウに “Switch 0: ON!” と表示されれば成功です! これで、あなたのPCとRP2040がPythonを通じて完全につながりました。


ライブラリ libフォルダ

外部基板やキーボードとして使いたい場合は、それぞれに応じたライブラリをダウンロードして、libフォルダ配下に配置する必要があります。ここでは、詳しく紹介しませんが、libフォルダの位置を確認しておきましょう。

circuit pythonでセットアップしたRP2040のデフォルトフォルダ構成

ライブラリフォルダ lib

(このサイトで公開しているRP2040の開発記事では、どこからどのライブラリを取ってきたかは説明しています。)

まとめ:開発のベースが完成!

お疲れ様でした!ここまでで以下のことができるようになりました。

  1. RP2040を「Pythonが動く脳みそ」にする
  2. Thonnyを使って、PCから直接コードを書き込む
  3. 現実世界のスイッチ(入力)をプログラムで受け取る

C言語やVHDLのような難しいコンパイル作業は不要です。コードを書き換えて保存した瞬間に反映されるこのスピード感こそが、CircuitPython最大の魅力です。

このベースさえあれば、LEDを光らせたり、センサーで温度を測ったり、はたまた自作の楽器を作ったりと、アイデア次第で無限のガジェットが生み出せます。

次のステップ:この基板で何を作る?

ベースが整ったところで、さっそく面白いものを作ってみましょう。 当ブログでは、このRP2040を使っていろいろ作って公開中です。(随時追加予定)

rp2040で作る自作キーボードの記事サムネイル 2 記事
シリーズ

RP2040で作る自作キーボード

RP2040(ラズパイゼロ互換)基板で自作キーボードを作ってみる。

静電容量センサと銅箔テープで作ったタッチパネルを使い、タッチコントローラを作ってみた記事のサムネイル

【RP2040/Raspberry Pi】タッチセンサモジュールMPR121の使い方!配線とライブラリ導入、感度設定まで解説

ラズパイやRP2040で12個のタッチ入力を実現!静電容量センサ「MPR121」の使い方を徹底解説します。I2C接続の基本から、複数台接続のアドレス設定、CircuitPythonでの十字キー自作まで、初心者でも分かりやすくステップバイステップで紹介します。