「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 WH | SC0918 | 1 | 秋月電子通商 |
USBケーブル | USB CABLE A-MICROB(2A L0.5m) | 1 | 秋月電子通商 |
ブレークアウト ボード | Raspberry Pi Pico/Pico H/Pico W 用 | 1 | Amazon |
「Raspberry Pi Pico WH」はピンヘッダーが取り付けられたタイプです。ご自身でピンヘッダを準備し半田付けをする場合は、ピンヘッダがない「Raspberry Pi Pico W」を用意して下さい。
「Raspberry Pi Pico W」の他にWi-Fi接続のできないタイプ(Raspberry Pi Pico)がありますので注意して下さい。。
ブレークアウト ボードは必要に応じて用意して下さい。
項 目 | 説 明 |
---|---|
SOC | RP2040 |
CPU | Cortex M0+、デュアルコア (クロック 133MHz) |
メモリー | 264KB(SRAM)、2MB(フラッシュメモリ) |
USB | USB 1.1 |
汎用入出力 | 多機能 GPIO x 26 |
※→ 同期式シリアル通信 | I2C x 2 |
※→ 同期式シリアル通信 | SPI x 2 |
※→ 調歩同期式シリアル通信 | UART x 2 |
※→ アナログ・ディジタル変換 | A-Dコンバータ x 3 (内部温度センサは除く) |
※→ パルス幅変調 | PWM x 12 |
Bluetooth | Bluetooth 5.2 |
Wi-Fi | 2.4GHz IEEE 802.11b/g/n |
プログラマブルIO | PIO x 2 |
リアルタイム・クロック | RTC (バッテリバックアップなし) |
電源定格 | DC 1.8 ~ 5.5V |
消費電流 | USBポート、GPIO使用の場合は3A |
動作温度範囲 | -20 ~ 70℃ |
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に入力し、点灯や消灯できることを学びました。