ラズパイPicoの使い方を3つの開発環境Python、ArduinoIDE、PlatformIOで紹介

ラズパイ(Raspberry Pi) PicoRspberry Pi(ラズパイ)
スポンサーリンク

既にパソコンと化した「ラズベリーパイ(Raspberry Pi)」
組み込み系が好きな私的には「コスパ最強ミニサーバー」という位置付けで「自宅サーバー」や「IoT」に使うものという理解で、一通り遊んでからかれこれ1年以上触ってません・・・。

制御系も色々できるものの「作ってる」というより「使ってる」という感じで面白みがなく、完全に遠ざかってましたが、ずっと気になってたラズパイのマイコンボード版「Raspberry Pi Pico」

Wi-Fi通信ができないので無線LAN付きの「Raspberry Pi Pico W」の販売(技適取得)を待ってましたが、まだのようなので先に「Raspberry Pi Pico」の基本的な使い方を紹介しておきたいと思います。

ここでは「Raspberry Pi Pico」の開発環境として「Python(MicroPython)」と「C言語(Arduino)」両方の言語での開発環境の構築方法から使い方を紹介しています。
動作確認として、LEDを点灯させる基本の「Lチカ」までできるようになるので、お好きな言語で一緒にやっていきましょう。

1.ラズパイ(Raspberry Pi)Picoとは

「Raspberry Pi Pico」とは、イギリスを拠点とする慈善団体によって若者のプログラミング学習を目的に開発されたもので、OSを搭載してパソコンのように使える他の「Raspberry Piシリーズ」とは異なり、OSを搭載する機能はありません。

その代わり、電源投入ですぐに使用でき、スイッチやLEDランプ、モーター、各種センサー、通信機器を接続して、それらを制御するプログラムを簡単に作成して動作確認できるため、組み込み(制御)系プログラミングの学習に最適です。

メイン処理装置のマイコン(マイクロコントローラ)には同財団で開発された「RP2040」が使用されており、USBコネクタや電源回路、スイッチ、LED等と合わせて1枚の基板に実装されています。
このようにマイクロコントローラーと周辺回路が実装された基板をマイコンボードと呼びます。

2.外観

「Raspberry Pi Pico」の外観は下画像のようになります。

ラズパイ(Raspberry Pi) Pico外観

プログラムの書込みと電源供給のためのMicro USB Type-Bが実装されており、プログラムで使用できる緑色のLEDが1個、書込みモード切替用のボタンが1個、入出力端子(電源等含む)として使用できる端子が40ピン、デバッグ(ステップ実行やブレーク等)を行うための端子が3ピンあります。


入出力端子のピン(ピンヘッダー)は基本的に付属も実装もされてませんので別途購入して以下のようにハンダ付けで実装する必要があります。
ハンダ付けが苦手な方は実装済みのものもありますのでそちらを購入しましょう。

ラズパイ(Raspberry Pi) Pico 端子ハンダ付け

入出力端子部に実装するピンヘッダーは上画像のようになります。
ピンヘッダー(細ピンがおすすめ)1列x20 2個
デバッグ端子を使用する場合は1列x3 1個(今回は使用しないので実装しません。)

ラズパイ(Raspberry Pi) Pico 端子ハンダ付け

上画像のようにピンヘッダーをブレッドボードに固定しておくとハンダ付けしやすいです。

ラズパイ(Raspberry Pi) Pico 端子ハンダ付け

上画像のようにはんだ付けします。

ラズパイ(Raspberry Pi) Pico 端子ハンダ付け

ブレッドボードで固定しておけば真っ直ぐハンダ付けできます。

3.基本仕様

「Raspberry Pi Pico」の基本仕様は以下表のようになります。

項目詳細
コントローラRP2040
クロック最大133MHz
(デュアルコア Arm Contrex M0+プロセッサ)
Flash / SRAM2MB / 264kB
電源電圧(VBUS)DC5V±10%
USBMicro USB Type-B
入出力多機能GPIO x 26
通信機能UART x 2 / I2C x 2 / SPI x 2
その他機能ADC(12bitアナログコンバータ) x 3
PWM x 16
動作温度範囲-20℃〜85℃(自己発熱含む)
※最大温度は推奨70℃
寸法21 x 51 (mm)

4.端子配列

端子配列は以下のようになります。(公式サイトより抜粋

ラズパイ(Raspberry Pi) Pico 端子配列

5.端子機能詳細(入出力/通信/ADC)

「4.端子配列」の中の各端子の機能について、端子記号ごとに以下表にまとめました。

記号機能詳細
GP0〜22,
26〜28
入出力入力端子、出力端子としてプログラムで設定できます。
プルアップ抵抗無し、プログラムでプルアップ指定可
ADC0〜2AD変換12bit アナログデジタルコンバータ
I2C0,1同期通信I2C通信用端子で、以下の2つの信号線を使って通信を行います。
・SDA:データ送受信用
・SCL:クロック(通信タイミング)信号用
マスター側から送信したクロック信号のタイミングでスレーブ側と通信するため、
同期通信と呼ばれます。
SPI0,1同期通信SPI通信用端子で、以下の4つの信号線を使った通信を行います。
・TX:データ送信用
・RX:データ受信用
・SCK:クロック(通信タイミング)信号用
・CSn:スレーブが複数ある場合の通信先選択用
通信したいスレーブ機器のCS(SS)端子をLowに制御して通信を行います。
I2Cと同じ同期通信ですが、データ信号線とクロック信号線が別なのでI2Cより高速な同期通信が可能です。
UART0,1非同期通信UART通信用端子で、SPI/I2C通信とは異なり、通信タイミングに必要なクロック信号が無いため、非同期通信と呼ばれます。
UART通信では以下の2つの信号線を使って通信を行います。
・TX:データ送信用
・RX:データ受信用
2つのデバイス間で、送信端子と受信端子を互い違いに接続します。
I2CやSPI通信とは異なり、マスター/スレーブのような関係はありません。
クロック信号が無いので、送受信するデバイス間で同じ通信速度(ボーレート)を
設定しておく必要があります。
よく使用される通信速度は以下になります。
1200 /2400 /4800 /9600 /19200 /38400 /57600 /115200 (単位:bps)
VBUSUSB電源USBのDC電圧が出力されます。
VSYS内部制御用3.3V
電源生成用電源
制御用の3.3V電源生成用の電圧(1.8V〜5.5V)を別電源から供給したい場合に使用。
内部バックブーストコンバータ(RT6150B-33GQW)の入力電源。
3V3_EN内部制御用3.3V
電源生成有効無効選択
未接続で有効、GNDに接続で無効。
3V3(OUT)内部制御用3.3V
電源外部出力
3.3Vの外部出力電源として使用可能。
(最大出力電流はRP2040負荷とVSYS電圧に依存します。このピンの負荷は300mA未満。)
ADC _VREFAD変換基準電圧アナログデジタル変換の基準電圧として使用可。

6.動作確認の準備

動作確認ではサンプルプログラムを使用して、内蔵のLED(緑)を点滅させる「Lチカ」の動作確認を行います。
これだけであれば、基板だけで(ピンヘッダーをハンダ付けしなくでも)できますが、せっかくなのでスイッチを追加して、スイッチONでLEDが点灯、スイッチOFFでLEDが消灯する動作も確認してみましょう。

このためには、下画像のように「ブレッドボード」と「ジャンパー線」を使用して「スイッチ」を外付けして準備しておきましょう。

ラズパイ(Raspberry Pi) Pico Lチカ動作確認

ブレッドボードには画像のように穴がたくさん空いていて基板を差し込んで使用します。
空いている穴は上画像の場合、隣り合った縦1列(A〜F、G〜L)がそれぞれ内部で繋がっています。

このブレッドボードを使用して「Raspberry Pi Pico」の出力端子「GP20」とスイッチ端子、「GND」とスイッチのもう片方の端子を接続します。これで準備完了です。

7.開発環境別初期設定、Lチカで動作確認

プログラムを書き込むためには開発環境を準備する必要があります。
「Raspberry Pi Pico」の開発環境はいくつかありますがプログラミング言語として「Python(MicroPython)」と「C言語」の開発環境として以下の3種類の使用方法を紹介します。

・Thonny
プログラミング言語:Python(MicroPython)
※MicroPythonとはマイクロコントローラ上で最適に動作するように開発された「Python3」
と高い互換性を持つ言語です。
OS搭載のラズベリーパイに標準搭載されている開発環境です。
プログラムのコンパイル(書込み)が不要で作成したプログラムをすぐに動作確認できます。

・ArduinoIDE
プログラミング言語:C言語
マイコンボード「Arduino」の開発環境で「Raspberry Pi Pico」でも同じように使用できます。
情報量も多く、これからC言語を勉強してみようって方にもおすすめです。

・ PlatformIO
プログラミング言語:C言語
いろいろなマイコンの統合開発環境です。準備が大変ですが個人的には最もおすすめです。
高機能エディタ「Visual Studio Code(VSCode)」の中で使用することができるため、
プログラムの編集機能が豊富で慣れてしまうと他の環境には戻れません。
何より書込み速度がダントツで速いのでストレスなくプログラムの作成に集中できます。


・Thonny(Python:MicroPython)

「Thonny」を使用した「Python(MicroPython)」での開発環境の準備から「Lチカ」の動作確認まで紹介します。

作業の流れは以下のようになります。
①ファームウェアファイルのダウンロード。
②パソコンと「Raspberry Pi Pico」を接続しファイルを「ドラッグ&ドロップで「Raspberry Pi Pico」内にコピーしてセットアップが完了するのを待ちます。
③開発環境「Thonny」をダウンロードして初期設定を行います。
④サンプルプログラムを実行して動作確認します。

①ファームウェアファイルのダウンロード

まずは以下のリンクをクリックして「Raspberry Pi」公式サイトの「MicroPython」のページにアクセスしてください。

以下のページが表示されるので、少し下にスクロールします。

ラズパイ(Raspberry Pi) Pico Python準備

以下のような画面の中の「Raspberry Pi Pico」の部分をクリックします。

ラズパイ(Raspberry Pi) Pico Python準備

ファイルのダウンロードが始まるので少し待ちます。
ダウンロードが終了したらファイルを開いたり、実行するのではなく、保存したフォルダを開きましょう。
下画像はブラウザが「Chrome」の場合の例です。
「ダウンロード」フォルダに保存されているので、直接「ダウンロード」フォルダを開いてもOKです。

ラズパイ(Raspberry Pi) Pico Python準備

下画像のようにダウンロードフォルダを開いたらファイル「rp2-pico-20220618-v1.19.uf2(バージョンの数字は異なる場合があります。)」があるのを確認します。

ラズパイ(Raspberry Pi) Pico Python開発環境準備

②ラズパイPicoとパソコンの接続

次に「Raspberry Pi Pico」とパソコンをUSBケーブルで接続します。

接続する時は下画像のように「BOOTSEL」ボタンを押しながら接続しましょう。
接続したらちょっと(数秒)待ってからボタンを離しましょう。
ラズパイ(Raspberry Pi) Pico Python開発環境準備

「BOOTSEL」ボタンを押しながら接続して、パソコンに認識されると下画像のように「RPI-RP2」フォルダが開きます。

ラズパイ(Raspberry Pi) Pico Python開発環境準備

フォルダが開いたら下画像のように「ダウンロード」フォルダから、先程ダウンロードしたファイルをドラッグ&ドロップで「RPI-RP2」フォルダにコピーします。

ラズパイ(Raspberry Pi) Pico Python開発環境準備

すると下画像のような表示が画面右下に表示されます。

ラズパイ(Raspberry Pi) Pico Python開発環境準備

ラズパイが認識されセットアップが始まるのでしばらく待ちましょう。(私の環境では1分以上待ちました。)

ラズパイ(Raspberry Pi) Pico Python開発環境準備

セットアップが完了すると上画像のような表示が画面右下に出ます。
この表示が確認できたらパソコンとの接続は完了です。

うまくいかない場合はUSBケーブルを抜いて再度「BOOTSEL」ボタンを押しながらUSBを接続するところからやり直してみましょう。
それでもダメなら、既にセットアップが完了しているかもしれませんので「BOOTSEL」ボタンを押さずにUSBでパソコンと接続して次に進みましょう。
この作業は基本的に最初の1回だけ行います。次回以降は「BOOTSEL」ボタンを押さずにUSBを接続すれば使用できます。
使用できない場合はもう一度ここの工程をやり直してみましょう。

③開発環境「Thonny」のダウンロードと初期設定

次に「Thonny」をダウンロードしていきます。

まずは以下のリンクをクリックして、ダウンロードページを開きましょう。

下画像のようなページが表示されるので、画面上あたりの「Download」からパソコン環境に合わせてクリックしてダウンロードしてください。(WindowsならWindowsをクリック)

ラズパイ(Raspberry Pi) Pico Thonnyのインストール

ファイルのダウンロードが始まるので少し待ちます。ダウンロードが終了したらファイルを開きましょう。
下画像はブラウザが「Chrome」の場合の例です。
「ダウンロード」フォルダに保存されているので、直接「ダウンロード」フォルダから実行してもOKです。

ラズパイ(Raspberry Pi) Pico Thonnyのインストール

下画像のようなウインドウが開くので矢印の箇所をクリックします。
(クリックするのは「自分にだけインストール(推奨)」するというものです。全てのユーザーに対してインストールする場合はその下をクリックしてください。)

ラズパイ(Raspberry Pi) Pico Thonnyのインストール

下画像のようにインストール画面が表示されますが基本的には「Next」をクリックしていくだけです。

デスクトップにショートカットを置くためのチェックはしておいた方が良いので5ページ目のチェックボックスはチェックしてから進めましょう。
ラズパイ(Raspberry Pi) Pico Thonnyのインストール
ラズパイ(Raspberry Pi) Pico Thonnyのインストール
ラズパイ(Raspberry Pi) Pico Thonnyのインストール
ラズパイ(Raspberry Pi) Pico Thonnyのインストール
ラズパイ(Raspberry Pi) Pico Thonnyのインストール

上画像の画面ではチェックボックスをチェックして、アイコンをデスクトップに置くようにしましょう。

ラズパイ(Raspberry Pi) Pico Thonnyのインストール

上画像の画面で「Install」をクリックするとインストールが始まります。

ラズパイ(Raspberry Pi) Pico Thonnyのインストール
ラズパイ(Raspberry Pi) Pico Thonnyのインストール

最後に「Finish」をクリックして終了です。


次に「デスクトップ」に下画像のようなアイコンがあるのでクリックします。

ラズパイ(Raspberry Pi) Pico Thonnyの使い方

「Thonny」が起動するので下画像のように初期設定を行います。

ラズパイ(Raspberry Pi) Pico Thonnyの使い方

「Language」を「日本語」に、「Initial settings」を「Raspberry Pi」に設定します。

ラズパイ(Raspberry Pi) Pico Thonnyの使い方

上画像のように設定できたら「Let`s go!」をクリックします。

下画像のように「Thonny」の開発画面が表示されるので、右下の「Python 3.7.9(バージョンの数字は異なる場合があります。)」をクリックします。

ラズパイ(Raspberry Pi) Pico Thonnyの使い方

下画像のようなメニューが表示されるので「MicroPython(Raspberry Pi Pico)」をクリックします。

ラズパイ(Raspberry Pi) Pico Thonnyの使い方

下画像のようにウインドウの右下が「MicroPython(Raspberry Pi Pico)」になっていれば初期設定完了です。

ラズパイ(Raspberry Pi) Pico Thonnyの使い方

④サンプルプログラムの実行、動作確認

開発環境の準備が整いましたので早速プログラムを実行していきましょう。

最初のプログラムとしてLEDを点滅させるサンプルプログラムを以下に準備しましたのでコピペ(コピー&ペースト)で「Thonny」に貼り付けましょう。

プログラムのコピーは下の黒塗り部の右上アイコンクリックでもできます。

from machine import Pin  # 入出力モジュールを準備
import utime  # タイマーモジュールを準備

led = machine.Pin(25, machine.Pin.OUT)  # GP25をLedとして出力端子に設定
while True:  # ずっと繰り返し
    led.value(1)      # LEDを点灯
    utime.sleep(0.5)  # 0.5秒待つ
    led.value(0)      # LEDを点灯
    utime.sleep(0.5)  # 0.5秒待つ

コピーしたら下画像のように「Thonny」に貼り付けましょう。
貼り付ける箇所をクリックして「Ctrl + V」で貼り付けられます。

ラズパイ(Raspberry Pi) Pico Thonnyの使い方

貼り付けて[実行]ボタンを押すと下画像のようなウインドウが表示されます。
ここでは作成したファイルの保存先を指定します。
[This computer]を選択するとパソコンに保存され[Raspberry Pi Pico]を選択するとラズパイ基板に保存しておくことができます。

これは好みですが今回は[Raspberry Pi Pico]を選択してみましょう。

下画像のようなファイルに名前をつけて保存するウインドウが表示されるので「File name」欄に「blink(何でもいいです)」と打ち込んで[OK]ボタンを押しましょう。

単体で電源を入れた時に自動実行させたい場合は「main.py」として保存しましょう。
ラズパイ(Raspberry Pi) Pico Thonnyの使い方

下画像のような画面になり実行完了です。

ラズパイ(Raspberry Pi) Pico Thonnyの使い方

下画像のようにラズパイ基板上のLEDが0.5秒ごとに点滅するのが確認できると思います。

LED点灯
LED消灯

プログラムについては上コードのコメントを参照してください。
LEDを点灯させるプログラムについて簡単に紹介します。

led.value(1) # LEDを点灯
 カッコ内の数値が1で点灯、0で消灯です。
utime.sleep(0.5) # 0.5秒待つ
 カッコ内の数値で待機時間を設定できるため、この数値を変更するとLEDの点滅間隔を設定できます。

「Raspberry Pi Pico」で使用できる「MicroPython」についての詳細は以下のサイトで確認できます。当サイトでも少しづつ紹介していきたいと思います。

Quick reference for the RP2 — MicroPython 1.19.1 documentation

次にボタンを押したらLEDが点灯するプログラムの動作を確認してみましょう。

まずは、今実行しているプログラムを[STOP]ボタンを押して停止させましょう。
停止したら[New]ボタンを押してください。

ラズパイ(Raspberry Pi) Pico Thonnyの使い方

下画像のように新しく<untitled>タブが作成されます。

ラズパイ(Raspberry Pi) Pico Thonnyの使い方

前回同様にサンプルプログラムを以下に準備しましたのでコピペ(コピー&ペースト)で「Thonny」に貼り付けましょう。

プログラムのコピーは下の黒塗り部の右上アイコンクリックでもできます。

from machine import Pin  # 入出力端子モジュールを準備

led = machine.Pin(25, machine.Pin.OUT)  # GP25をledとして出力端子に設定
sw = Pin(20, Pin.IN, Pin.PULL_UP)  # GP20をswとして入力端子(プルアップ)に設定
while True:  # ずっと繰り返し
    if sw.value() == 0:  # swがONなら
        led.value(1)     # LEDを点灯
    else:                # swがONでなければ
        led.value(0)     # LEDを消灯

コピーしたら下画像のように「Thonny」に貼り付けましょう。
貼り付ける箇所をクリックして「Ctrl + V」で貼り付けられます。

ラズパイ(Raspberry Pi) Pico Thonnyの使い方

以降は前回と同じ作業で、貼り付けて[実行]ボタンを押すと下画像のようなウインドウが表示されますのでファイルの保存先を指定します。

下画像のように「File name」欄に「Lchika(何でもいいです)」と打ち込んで[OK]ボタンを押しましょう。

単体で電源を入れた時に自動実行させたい場合は「main.py」として保存しましょう。
ラズパイ(Raspberry Pi) Pico Thonnyの使い方

下画像のような画面になり実行完了です。

ラズパイ(Raspberry Pi) Pico Thonnyの使い方

下画像のようにブレッドボード上のボタンを押すとラズパイ基板上のLEDが点灯するのが確認できると思います。

ボタンOFFでLED消灯
(Raspberry Pi) Pico Lチカ動作確認
ボタンONでLED点灯
(Raspberry Pi) Pico Lチカ動作確認

プログラムについては上コードのコメントを参照してください。

これで「Thonny」を使った「MycroPython」の開発環境が整いました。
今後はこの環境を使って液晶表示器やフルカラーLED、サーボモーター、ブザー等の使い方も紹介していきたいと思います。
Pythonの開発環境は作成したプログラムをすぐに実行できるため便利ですが、パソコンと接続していないと実行できません。
プログラム作成中は便利ですが、最終的には単体で電源を入れた時に自動実行させたいと思います。
この場合はファイル名を「main.py」としてラズパイ内に保存しましょう。
(「MicroPython」の場合は「main.py」ですが、「CircuitPython」の場合は「code.py」のようです。)

興味のある方は以下の「C言語」でのプログラミングにもチャレンジしてみてください。

・AruduinoIDE(C言語)

「ArduinoIDE」を使用した「C言語」での開発環境の準備から「Lチカ」の動作確認まで紹介します。

作業の流れは以下のようになります。
①ArduinoIDEのインストール
②パソコンと「Raspberry Pi Pico」の接続
③ArduinoIDEの初期設定
④プログラムの書き込みと動作確認

①ArduinoIDEのインストール

開発環境として設定するボードには公式の「Arduino Mbed OS RP2040 Boards」とPhilhower氏作の「Raspberry Pi Pico/RP2040」があります。

公式の方は初期状態でインストールできて手軽なため以下で紹介していますが、他のマイコンボードで作成したプログラムがそのままコンパイルできなかったり、修正も困難な場合があったため、使い勝手の良かったPhilhower氏作の方を別記事にインストール方法から詳しくまとめましたので、初めてインストールする方は以下のリンクを参照してください。

ラズパイPicoのためのArduino IDEのインストール方法と初期設定、使い方紹介
Raspberry Pi PicoのC言語での開発環境 ArduinoIDEのインストール方法から初期設定、使い方、Lチカでの動作確認まで詳しく紹介します。

既にインストール済みの方は以下から公式のボード設定で手軽に確認する方法として紹介します。

②パソコンと「Raspberry Pi Pico」の接続

インストールが終わって「ArduinoIDE」を起動したら「Raspberry Pi Pico」とパソコンをUSBケーブルで接続します。

接続する時は下画像のように「BOOTSEL」ボタンを押しながら接続しましょう。
接続したらちょっと(数秒)待ってからボタンを放しましょう。
ラズパイ(Raspberry Pi) Pico Python開発環境準備

「BOOTSEL」ボタンを押しながら接続して、パソコンに認識されると下画像のように「RPI-RP2」フォルダが開きますが「ArduinoIDE」では使用しないので閉じておきます。

ラズパイ(Raspberry Pi) Pico Python開発環境準備

③ArduinoIDEの初期設定

次に「ArduinoIDE」で「Raspberry Pi Pico」を使用するための初期設定を行なっていきます。

ラズパイ(Raspberry Pi) Pico でのArduinoIDEの使い方

下画像のようなウインドウが開くので、上の検索窓に「pico」と入力しエンターを押します。
「Arduino Mbed OS RP2040 Boards」が表示されるので、右側の[インストール]をクリックします。

ラズパイ(Raspberry Pi) Pico でのArduinoIDEの使い方

インストールが始まると途中で下画像のようなウインドウが2回表示されるので両方とも[インストール]をクリックします。

ラズパイ(Raspberry Pi) Pico でのArduinoIDEの使い方
ラズパイ(Raspberry Pi) Pico でのArduinoIDEの使い方

インストールが終わると下画像の部分に「INSTALLED」と表示されます。これでインストール完了したのでウインドウを閉じます。

ラズパイ(Raspberry Pi) Pico でのArduinoIDEの使い方

下画像のように「ツール」→「ボード:(ここは環境によります)」→「Arduino Mbed OS RP2040 Boards」→「Raspberry Pi Pico」をクリックします。

ラズパイ(Raspberry Pi) Pico でのArduinoIDEの使い方

再度「ツール」をクリックすると、「ボード:”Raspberry Pi Pico”」となっています。
これで「Raspberry Pi Pico」が使えるようになりました。

ラズパイ(Raspberry Pi) Pico でのArduinoIDEの使い方

次に通信設定をしていきます。
「ツール」→「シリアルポート:(COM番号は環境によります)」とクリックすると「COM番号」の横に「Raspberry Pi Pico」と書かれたポートがあれば、それが通信に使用するポートなので選択します。

ラズパイ(Raspberry Pi) Pico でのArduinoIDEの使い方
最初はポートを認識していないかもしれません。表示されないようであればそのまま次に進んでプログラムの書き込みを行なってください。
1度書き込みを行えば認識して選択できるようになると思います。
それでも通信できないようであればUSBケーブルを抜き再度「BOOTSEL」ボタンを押しながら差し込んで書き込みしてみてください。

④プログラムの書き込みと動作確認

これで開発環境の準備が整ったので、早速プログラムの書き込みをしていきましょう。

最初のプログラムとして「Python」の時と同じ、LEDを点滅させるサンプルプログラムを以下に準備しましたのでコピペ(コピー&ペースト)で「Arduino IDE」に貼り付けていきましょう。

プログラムのコピーは下の黒塗り部の右上アイコンクリックでもできます。

void setup() {  // 初期設定
  pinMode(0, OUTPUT);    // LED GP0を出力端子に設定
}
void loop() {   // メイン処理(繰り返し)
  digitalWrite(0, HIGH); // LEDを点灯
  delay(500);            // 0.5秒待つ
  digitalWrite(0, LOW);  // LEDを消灯
  delay(500);            // 0.5秒待つ
}

コピーしたら下画像のように「Arduino IDE」に貼り付けましょう。

ラズパイ(Raspberry Pi) Pico でのArduinoIDEの使い方

上画像のように元々書いてあるプログラムを消して貼り付けます。
「Ctrl + V」で貼り付けられます。

ラズパイ(Raspberry Pi) Pico でのArduinoIDEの使い方

貼り付けたら、上画像の[→]ボタンをクリックして書き込みましょう。

ラズパイ(Raspberry Pi) Pico でのArduinoIDEの使い方
[→]ボタンを押しても変化が無いかもしれませんが何度も押さず、上画像のようになるのをしばらく待ちましょう。
ラズパイ(Raspberry Pi) Pico でのArduinoIDEの使い方

書き込みには数分かかる場合もありますが、上画像のようになれば書き込み完了です。

個人的に書き込みの遅さが「ArduinoIDE」の欠点と思ってます。この後で紹介する「PlatformIO」なら書き込みは早いのでおすすめです。

書き込みが完了すると、下画像のようにラズパイ基板上のLEDが0.5秒ごとに点滅するのが確認できると思います。

LED点灯
LED消灯

プログラムについて、入出力端子の使い方は以下のリンクで詳しく紹介しています。

入出力端子の使い方(Arduinoプログラミング)「Lチカ」プログラムで詳しく紹介
マイコンボードの端子は電源や通信等用等ありますが、ほとんどが「入出力端子」として使用できます。 「入力端子」は外部の状態を本体に取り込むことができ「出力端子」は本体で処理した結果を外部へ出力することができます。 これらの使い方を紹介します。

次に「Python」の時と同じ、ボタンを押したらLEDが点灯するプログラムの動作を確認してみましょう。

今の画面でそのまま作業してもいいですが、別ファイルとして残したい場合は下画像のように「ファイル」→「新規ファイル」をクリックすると新しくウインドウが立ち上がります。

ラズパイ(Raspberry Pi) Pico でのArduinoIDEの使い方

サンプルプログラムを以下に準備しました。
先程と同じようにコピペ(コピー&ペースト)で「Arduino IDE」に貼り付けていきます。

プログラムのコピーは下の黒塗り部の右上アイコンクリックでもできます。

void setup() {  // 初期設定
  pinMode(20, INPUT_PULLUP); // スイッチ GP20を入力端子(プルアップ)に設定
  pinMode(25, OUTPUT);       // LED GP25を出力端子に設定
}
void loop() {   // メイン処理(繰り返し)
  if (digitalRead(20) == LOW) { // スイッチがONなら
    digitalWrite(25, HIGH);     // LEDを点灯
  } else {                      // スイッチがONなら
    digitalWrite(25, LOW);      // LEDを消灯
  }
}

コピーしたら下画像のように「Arduino IDE」に貼り付けましょう。

ラズパイ(Raspberry Pi) Pico でのArduinoIDEの使い方

貼り付けて前回同様に[→]ボタンをクリックすると書き込みできます。

書き込みが完了すると下画像のようにブレッドボード上のボタンを押すとラズパイ基板上のLEDが点灯するのが確認できると思います。

ボタンOFFでLED消灯
(Raspberry Pi) Pico Lチカ動作確認
ボタンONでLED点灯
(Raspberry Pi) Pico Lチカ動作確認

プログラムの中で使用している条件分岐プログラムの「if文」については以下のリンクで詳しく紹介しています。

動かして学ぶC言語「if文(条件分岐)」の使い方を基本から詳しく紹介
「C言語」の「if文」について紹介します。「if文」は条件によって実行するプログラムを分岐させたい時に使用します。 基本の書き方や使い方を「Lチカ」プログラムで実際に動かしながら楽しく学びましょう♪
これで「ArduinoIDE」を使った「C言語」の開発環境が整いました。
今後はこの環境を使って液晶表示器やフルカラーLED、サーボモーター、ブザー等の使い方も紹介していきたいと思います。
「ArduinoIDE」は手軽にプログラミングができてとても便利ですが、編集(エディタ)機能が物足りないのと、書き込み速度が遅いので、本格的にやるなら次で紹介する「PlatformIO」をお勧めします。

・PlatformIO(C言語)

「PlatformIO」を使用した「C言語」での開発環境の準備から「Lチカ」の動作確認まで紹介します。

「PlatformIO」は開発環境の準備が大変ですが、無料の高機能エディタ「Visual Studio Code(VSCode)」の中で使用することができ、プログラムの編集機能が豊富で慣れてしまうと他の環境には戻れません。
何より書込み速度が速いので特におすすめです。

「ArduinoIDE」を使用した「C言語」での開発環境の準備から「Lチカ」の動作確認まで紹介します。

作業の流れは以下のようになります。
①PlatformIOのインストール
②パソコンと「Raspberry Pi Pico」の接続
③PlatformIOの初期設定
④プログラムの書き込みと動作確認

①PlatformIOのインストール

「PlatformIO」のインストールについては以下のリンクで順番に紹介してますので順を追ってインストールしてください。

プログラミング
Visual Studio Code (VSCode)のインストールと日本語化から基本設定まで紹介
プログラムを書くために必要なエディタのインストールをします。他のプログラミングにも便利な定番エディタです。
pythonのインストール
pythonのダウンロードからインストール方法の紹介
次にインストールするPlatformIOをインストールするために必要なプログラム言語のpythonをインストールします。
PlatformIOでプログラミング
PlatformIO のダウンロードからインストールの紹介。Arduino IDEより速い!高性能!
プログラミングを行うためのIDE(統合開発環境)のインストールです。

②パソコンと「Raspberry Pi Pico」の接続

インストールが終わって「PlatformDE」を起動したら「Raspberry Pi Pico」とパソコンをUSBケーブルで接続します。

初めて接続する時は下画像のように「BOOTSEL」ボタンを押しながら接続しましょう。
接続したらちょっと(数秒)待ってからボタンを放しましょう。
「ArduinoIDE」で既に書き込み済みの場合はそのまま接続すれば認識するはずです。
ラズパイ(Raspberry Pi) Pico Python開発環境準備

「BOOTSEL」ボタンを押しながら接続して、パソコンに認識されると下画像のように「RPI-RP2」フォルダが開きますが「PlatformIO」では使用しないので閉じておきます。

ラズパイ(Raspberry Pi) Pico Python開発環境準備

③PlatformIOの初期設定

次に「PlatforuIO」初期設定を行なっていきます。
下画像の画面で「New Project」をクリックしてください。

ラズパイ(Raspberry Pi) Pico でのPlatformIOの使い方

下画像のようなウインドウが表示されるので、何でもいいのでファイル名を入力(ここではRasPi _Pico_blink)を入力します。「Board:」の欄に「pico」と入力するとその下に「Raspberry Pi Pico」が表示されるので選択します。

ラズパイ(Raspberry Pi) Pico でのPlatformIOの使い方

下画像のように設定できたら[Finish]ボタンをクリックします。

ラズパイ(Raspberry Pi) Pico でのPlatformIOの使い方

下画像のようにプロジェクトの準備が始まるので待ちます。これには数分かかるので気長に待ちましょう。

ラズパイ(Raspberry Pi) Pico でのPlatformIOの使い方

下画像のように表示されたら準備完了です。
[はい]をクリックしましょう。

ラズパイ(Raspberry Pi) Pico でのPlatformIOの使い方

④プログラムの書き込みと動作確認

開発環境の準備が整ったので、早速プログラムの書き込みをしていきます。
下画像のように「main.cpp」をクリックします。
※この表示がない場合は左端に並んでいる一番上のアイコンをクリックしてください。

ラズパイ(Raspberry Pi) Pico でのPlatformIOの使い方

最初のプログラムとして「ArduinoIDE」の時と同じ、LEDを点滅させるサンプルプログラムを以下に準備しましたのでコピペ(コピー&ペースト)で「PlatformIO」に貼り付けていきましょう。

プログラムのコピーは下の黒塗り部の右上アイコンクリックでもできます。

#include <Arduino.h>
void setup() {  // 初期設定
  pinMode(0, OUTPUT);    // LED GP0を出力端子に設定
}
void loop() {   // メイン処理(繰り返し)
  digitalWrite(0, HIGH); // LEDを点灯
  delay(500);            // 0.5秒待つ
  digitalWrite(0, LOW);  // LEDを消灯
  delay(500);            // 0.5秒待つ
}

コピーしたら下画像のように「PlatformIO」に貼り付けましょう。
貼り付けたら画面左下の[→]を押すことで書き込みできます。

ラズパイ(Raspberry Pi) Pico でのPlatformIOの使い方

無事書き込みが完了したら下画像のような表示になります。

ラズパイ(Raspberry Pi) Pico でのPlatformIOの使い方

もし書き込めない時は下画像のように、プログラムが保存されているフォルダ(場所は下画像参照)に「ファームウェアファイル(firmware.uf2)」が出来ているので、それを「BOOTSEL」を押しながら起動した時に表示される「RPI-RP2」フォルダの中にコピーしてから書き込んでみましょう。

ラズパイ(Raspberry Pi) Pico でのPlatformIOの使い方

書き込みが完了すると、下画像のようにラズパイ基板上のLEDが0.5秒ごとに点滅するのが確認できると思います。

LED点灯
LED消灯

次に「ArduinoIDE」の時と同じ、ボタンを押したらLEDが点灯するプログラムの動作を確認してみましょう。
先程貼り付けたプログラムを消去して、以下のサンプルプログラムを貼り付けて書き込みを行なってみましょう。

別ファイルを作って書き込む場合は「③PlatformIOの初期設定」から新しくプロジェクトの作成を行う必要があります。動作確認程度であればそのまま置き換えた方が早いです。

プログラムのコピーは下の黒塗り部の右上アイコンクリックでもできます。

void setup() {  // 初期設定
  pinMode(20, INPUT_PULLUP); // スイッチ GP20を入力端子(プルアップ)に設定
  pinMode(25, OUTPUT);       // LED GP25を出力端子に設定
}
void loop() {   // メイン処理(繰り返し)
  if (digitalRead(20) == LOW) { // スイッチがONなら
    digitalWrite(25, HIGH);     // LEDを点灯
  } else {                      // スイッチがONなら
    digitalWrite(25, LOW);      // LEDを消灯
  }
}

貼り付けて前回同様に[→]ボタンをクリックすると書き込みできます。

書き込みが完了すると下画像のようにブレッドボード上のボタンを押すとラズパイ基板上のLEDが点灯するのが確認できると思います。

ボタンOFFでLED消灯
(Raspberry Pi) Pico Lチカ動作確認
ボタンONでLED点灯
(Raspberry Pi) Pico Lチカ動作確認
「ArduinoIDE」を使ったことのある方は書き込み速度の違いが体感できたと思います。
プログラムの編集も「Visual Studio Code(VSCode)」のエディタ機能が使えるのでプログラムの規模が大きくなった時にとても便利に使えます。

「PlatformIO」標準のボード設定だと今まで作ったプログラムの移行時にいろいろとエラーが出ます。
「EarlePhilhower」コアの方だとほぼコンパイルできそうですがまだ謎が多いです。
不完全ですが以下のリンクで使用方法を紹介しています。

ラズパイPicoでPlatformIO使えるけど、まだまだ謎?だらけ
ラズパイPicoでもPlatformIO(C言語)を使いたい。標準ボード設定Raspberry Pi PicoはイマイチでEarlePhilhowerコアを使おうと試してみたけどファームウェアの書き込みの癖が強い?作業メモとして残します。

8.まとめ

「Raspberry Pi Pico」の仕様や端子配列、機能から開発環境の準備、使い方、動作確認を3種類の方法で紹介しました。

「Raspberry Pi Pico」とは、若者のプログラミング学習を目的に開発されたもので、他の「Raspberry Piシリーズ」とは異なり、OSを搭載する機能の無いマイコンボードと呼ばれるものです。

電源投入ですぐに使用でき、スイッチやLED等を接続してプログラムすることで簡単に動作確認できます。

本体だけ購入すれば基板上のLEDですぐに動作確認はできますが、スイッチ等を使ったプログラムの動作確認には基板端子へピンヘッダーのハンダ付けが必要です。

ピンヘッダーは基本的に付属も実装もされてませんので別途購入してハンダ付けする必要があります。
ハンダ付けが苦手な方は実装済みのものもありますのでそちらを購入しましょう。

開発環境はいくつかありますが「Python(MicroPython)」を使った環境としては「Thonny」、「C言語」の開発環境としては「ArduinoIDE」「PlatformIO」等があります。

「Python」はプログラムの文法がシンプルで「Thonny」を使用すると書き込みの手間がなく、すぐに動作確認できるため、手軽に始めることができます。

「C言語」は難しいイメージですが「ArduinoIDE」を使用すれば情報量の多い「Arduino」のコマンドが使用でき、複雑な動作はあらかじめ作成された「ライブラリ」を使用することで複雑な動作も簡単に実現できるため、動かしながら少しづつ理解を深めていけると思います。

コンピュータ内部の動きを理解するのにも「C言語」で学習した方が良いため、組み込み系のプログラムを学びたい方には「C言語」がお勧めです。

「C言語」で本格的にプログラミングを初めてみようという方は「PlatformIO」がおすすめです。
無料の高機能エディタ「Visual Studio Code(VSCode)」内で動作するため編集機能が豊富なことと、書き込み速度が早いため、ストレスなくプログラミングに集中できると思います。

プログラミング言語や環境には好みがありますので自分に合った環境を見つけて、いろいろなプログラムに挑戦してみましょう。


マイコンボードで「C言語」を学ぶなら小型でケース入り、Wi-Fi、Bluetooth通信も可能な「ATOM Lite」もおすすめです。
「ATOM Lite」については以下のリンクで詳しく紹介しています。

定番の Lチカ!(ATOM LITE編)で遊びながら自然と身につくプログラミング
プログラミング初心者ならとりあえず「Lチカ」やりましょう!LEDを点灯、消灯(チカチカ)させるものです。サンプルプログラムをコピペでとりあえず動作確認。LEDの色は数値を変えるだけ。いろいろ試して遊びながら学びましょう♪

コメント

  1. 吉田 純造 より:

    素晴らしく わかりやすいサイトを作ってくださり
    ありがとうございます

    本当に 具体的に解説してくださりありがとうございました

タイトルとURLをコピーしました