Raspberry Pi Pico WとMicroPythonを始めよう。

2024年4月27日

【 当サイトには広告リンクが含まれています。 】


「Raspberry Pi Pico W(以下「ラズパイPicoW」)」は、基本ソフト(OS)をインストールして使う「Raspberry Pi 4 Model B(以下「Raspi4B」 )」のようなコンピュータではありませんが、「Raspi4B」と同じようにGPIOピンがあり、センサ等の電子機器の制御を行うことができます。

プログラミング言語「MicroPython」を使って、「ラズパイPicoW」ボード上にあるLEDを制御します。


ハードウェアの準備


「ラズパイPicoW」をプログラミング言語「MicroPython」で制御するための部品や機器を準備します。


Raspberry Pi Pico W(ラズパイPicoW)

「ラズパイPicoW」を起動するための機器と部品を用意します。

部 品 名規 格数 量備 考
Raspberry Pi Pico WHSC0918秋月電子通商
USBケーブルUSB CABLE A-MICROB(2A L0.5m)秋月電子通商
ブレークアウト ボードRaspberry Pi Pico/Pico H/Pico W 用Amazon


「Raspberry Pi Pico WH」はピンヘッダーが取り付けられたタイプです。ご自身でピンヘッダを準備し半田付けをする場合は、ピンヘッダがない「Raspberry Pi Pico W」を用意して下さい。

「Raspberry Pi Pico W」の他にWi-Fi接続のできないタイプ(Raspberry Pi Pico)がありますので注意して下さい。。

ブレークアウト ボードは必要に応じて用意して下さい。


Raspberry Pi Pico Wの主な仕様


項 目説 明
SOCRP2040
CPUCortex M0+、デュアルコア (クロック 133MHz)
メモリー264KB(SRAM)、2MB(フラッシュメモリ)
USBUSB 1.1
汎用入出力多機能 GPIO x 26
※→ 同期式シリアル通信I2C x 2
※→ 同期式シリアル通信SPI x 2
※→ 調歩同期式シリアル通信UART x 2
※→ アナログ・ディジタル変換A-Dコンバータ x 3 (内部温度センサは除く)
※→ パルス幅変調PWM x 12
BluetoothBluetooth 5.2
Wi-Fi2.4GHz IEEE 802.11b/g/n
プログラマブルIOPIO x 2
リアルタイム・クロックRTC (バッテリバックアップなし)
電源定格DC 1.8 ~ 5.5V
消費電流USBポート、GPIO使用の場合は3A
動作温度範囲-20 ~ 70℃
※:汎用入出力の26チャンネルの中で設定します。


Raspberry Pi Pico Wのピン配置




Raspberry Pi 4 Model B(Raspi4B)


コンピュータとしてセットアップした「Raspi4B」にモニター、キーボード、マウス等の周辺機器を接続して、プログラミング言語「MicroPython」でプログラミングするための準備をします。


Thonnyのインストール


「Thonny(ソニー )」は、Pythonや「MicroPython」のプログラミングを行うためのフリーの統合開発環境(IDE)です。


Thonnyの更新と日本語化


「Raspi4B」にはすでに、「Thonny」がインストールされていますが 、バージョンが古いので最新バージョンに更新します。

更新手順


「Raspi4B」を起動します。

「ラズベリーパイのアイコン」をクリックするとドロップダウンメニューが開きますので、「アクセサリ」をクリックして、「LXTerminal」を選択します。


「LXTerminal」が起動しますので、「sudo apt update && sudo apt upgrade -y」を入力します。


更新が完了すると、入力状態に戻ります。


「ラズベリーパイのアイコン」をクリックするとドロップダウンメニューが開きますので、「プログラミング」をクリックして、「Thonny」を選択します。


最新バージョンの「Thonny」が起動します。


日本語化


起動した「Thonny」は言語が英語になっていますので、日本語に変更します。

メニューの「Tools」をクリックするとドロップダウンメニューが開きますので、「Options...」を選択します。


「Thonny options」ダイアログが表示されますので、「General」タブを選択し、Languageを「日本語 [ALPHA]」に選択した後、「OK」をクリックしましす。


トップ画面に戻りますので、右上の「X」をクリックして、「Thonny」を終了します。


「Thonny」を起動し、メニューが日本語になっていることを確認します。



Thonnyを使ってみる


「Thonny」の初期状態はPythonのプログラムを実行するようになっています。(MicroPhytonではありません。)

簡単なプログラムをPythonで記述し、「Thonny」で実行し動作を確認します。


Thonnyの画面構成


「Thonny」はメニュー、エディタ、シェルの三つのエリアで構成されています。


  • メニューはThonnyで使用できる主なアクション(新規ファイルの作成、保存、コードの実行など)のための大きなボタンが一列に並んでいます。

  • エディタはPythonコードを書く場所です。複数のファイルを別のタブで開くことができます。

  • シェルは、スクリプトの結果を表示したり、Pythonコマンドを直接実行したりする場所です。


ThonnyでPythonコードの実行と保存


print("Hello Python!")を「エディタ」に入力するか、コピーして貼り付けて、「現在のスクリプトを実行」ボタンをクリックすると結果(Hello Python!)がシェルに表示されます。



「Raspi4B」上の「Thonny」は日本語入力ができませんので、日本語入力が必要な場合は、テキストエディタ等に入力しコピー、貼り付けを行います。


「保存」ボタンをクリックすると、「Save as」ダイアログが表示されますので、「名前:」に任意の名前(Hello Python)を入力し、「OK」ボタンをクリックします。


Pythonはファイルの拡張子として、通常「.py」を付けることを案内されますので、「Yes」をクリックします。


「LXTerminal」を起動し、python3 HelloPython.py(HelloPython.pyは保存したファイル名)を入力し、「Enter」キーを押すと結果(Hello Python!)が表示されます。


保存したフォルダが自身のユーザフォルダ(ホームディレクトリ)以外の場合は、フォルダ名を指定して実行します。

次のコードは、ホームディレクトリ下のダウンロードディレクトリに保存した場合の実行例です。


確認後、「LXTerminal」と「Thonny」を終了します。

MicroPythonファームウェアの追加


MicroPythonファームウェアは、「ラズパイPicoW」などの基本ソフト(OS)を必要としないマイコン上で動作する、Python 3とほぼ互換性のあるプログラミング言語です。

プログラムコードを「ラズパイPicoW」で実行する機能の他、キーボードで入力したコマンドを即座に実行できる、対話型プロンプト(REPL:Read-Eval-Print Loop)も用意されています。

Raspberry Pi PicoWでMicroPythonを使ったことがない場合は、MicroPythonファームウェアを追加する必要があります。


追加の手順


「Raspi4B」が起動されていない場合は起動します。

USBケーブルを「ラズパイPicoW」のUSB端子に差し込み、「BOOTSEL」ボタンを押し続けます。

USBケーブルの片方を「Raspi4B」のUSB端子(黒、青どちらでも良いです)に差し込み、押し続けていた「ラズパイPicoW」の「BOOTSEL」ボタンを離します。

「Raspi4B」の画面に「リムーバブルメディアの挿入」ダイアログが表示されますので、「OK」をクリックします。


「ラズパイPicoW」はリムーバブルメディア(media/ユーザ/RPI-RP2)として認識され、内容がファイルマネージャに表示されます。

確認後、右上の「X」をクリックしてファイルマネージャを終了します。


「Raspi4B」で「Thonny」を起動し、「ツール」、「オプション」をクリックします。


Thonnyオプションダイアログが表示されますので、「インタープリタ」タブを選択します。

「which kind of interpreter should Thonny use for runnning your code?」を「MicroPhyton (Raspberry Pi Pico)」に設定し、「Install or update MicroPython」をクリックします。


Install MicroPythonダイアログが表示されますので、「MicroPython variant」を「Raspberry Pi・Pico W / Pico WH」に設定し、「インストール」をクリックします。


インストールが終了すると「Done」が表示されますので、「閉じる」をクリックして終了します。


Thonnyオプションダイアログに戻りますので、「OK」をクリックします。


「Thonny」のトップ画面に戻り、「シェル」に「MicroPython v1.23.0 on 2024-06-02; Raspberry Pi Pico W with RP2040」が表示されます。


「Thonny」はREPL(read-eval-print loop)を使って「ラズパイPicoW」と通信できるようになり、「シェル」に直接コマンドを入力することで、「ラズパイPicoW」上でコマンドが実行されます。

「シェル」にprint("Hello Pico W")を入力し、「Enter」キーを押すと、Hello Pico Wが出力されます。


一度、MicroPythonファームウェアを追加すれば、次回からは、BOOTSELボタンを押さずにコンピュータに接続するだけで使うことができます。


「Thonny」を終了します。


ラズパイPicoWボード上のLEDを制御


「MicroPython」には、「ラズパイPicoW」を制御する、machineのようなハードウェア固有のモジュールが追加されています。

machineモジュールを使って、「ラズパイPicoW」ボード上のLEDを制御します。


LEDを点灯させます


「Thonny」を起動します。

次のコードを「シェル」に入力し、「Enter」キーを押すと、LEDが点灯します。

from machine import Pin
led = Pin('LED', Pin.OUT)
led.value(1)



LEDを消灯させます


「LEDを点灯させます」コード内のled.value(1)led.value(0)に変更し、「Enter」キーを押すと、LEDが消灯します。

キーボードの上矢印(↑)を使い、上の行に移動しled.value(1)をled.value(0)に変更して、「Enter」キーを押します。


from machine import Pin
led = Pin('LED', Pin.OUT)
led.value(0)


「Thonny」を終了します。

実行ボタンをクリックするたびに、LEDを点灯・消灯させます


「シェル」は、すべてが機能していることを確認したり、コマンドを試したりするのに便利ですが、長いプログラムは修正等が必要になる場合がありますので、ファイルに保存したほうが便利です。

「Thonny」は「MicroPython」プログラムを直接「ラズパイPicoW」に保存して実行することができます。


プログラム


「Thonny」を起動します。

次のコードを「エディタ」に入力します。

from machine import Pin
led = Pin('LED', Pin.OUT)
led.toggle()




「現在のスクリプトを実行」ボタンをクリックするたびに、LEDが点灯・消灯します。


ファイルの保存


「保存」ボタンをクリックすると「Where to save to?」ダイアログが表示されますので、「Raspberry Pi Pico」をクリックします。



「Raspberry Pi Picoを保存」ダイアログが表示されますので、ファイル名に任意の名前(bink.py)を入力し「OK」をクリックします。


保存したファイルを「MicroPython」ファイルとして「Thonny」が認識するためには、拡張子.pyを入力する必要があります。

「Thonny」を終了します。


LEDを一定間隔で点灯・消灯させます


Timerモジュールを使うと、任意の関数を一定間隔で実行するタイマーを設定することができます。

「Thonny」を起動し、「LEDを実行ボタンをクリックするたびに点灯・消灯させます」で保存したファイル(bink.py)を開き、コードを改造します。

ファイルを開く


「ファイルを開く...」をクリックすると、「Where to ...en from?」ダイアログが表示されますので、「Raspberry Pi Pico」をクリックします。



「Raspberry Pi Picoを開く」ダイアログが表示されます。

保存したファイル(bink.py)をクリックすると「ファイル名:」に表示されますので、確認後、「OK」をクリックします。



「エディタ」に新たにファイル名(bink.py)のタブが追加され、保存したコードが表示されます。



コードを次にように変更し、「現在のスクリプトを実行」ボタンをクリックすると、500ミリ秒(0.5秒)間隔で点灯・消灯を繰り返します。

from machine import Pin, Timer
led = Pin('LED', Pin.OUT)
timer = Timer()

def blink(timer):
    led.toggle()

timer.init(period=500, mode=Timer.PERIODIC, callback=blink)



「停止/リスタート バックエンド」ボタンをクリックし、停止します。



まとめ


Raspberry Pi Pico W(ラズパイPicoW)をMicroPhytonで制御するための開発環境として、Raspberry Pi 4 Model B(Raspi4B)にインストールされているThonnyの基本的な使い方を学びました。

初期状態のThonnyではMicroPhytonを実行できないため、ラズパイPicoWとRaspi4BをUSBケーブルで接続し、MicroPhytonファームウェアを追加する方法を学びました。

ラズパイPicoWのボード上にあるLEDを制御するために、簡単なプログラムコードをThonnyに入力し、点灯や消灯できることを学びました。