注目キーワード

【Arduino】Raspberry Pi Pico W をArduinoでプログラミング!「ことはじめ」

すけろく
ついに、国内でもRaspberry Pi Pico Wを手に入れたぞ!
げんろく
Wi-Fiモジュールがついているので、
国内の技適取得が必要だったからな。
すけろく
ああ。
ようやくだ。これもArduino で使用できるのか?
げんろく
よし、まずはArduino で
Hello Worldを実装してみよう!
ようやく、国内の技適認証が完了して「Raspberry Pi Pico W」も流通し始めました。
Raspberry Pi Pico W」は、Raspberry Pi Picoに「Wi-Fi」機能を実装した開発ボードです。
これまで、Raspberry Pi PicoでWi-Fiなどを使用するには、別のモジュールを用意する必要がありました。
今回、「Wi-Fi」機能が開発ボード上に実装されたことで、インターネットへの接続などが便利になります。
使用用途もかなり広がります。
そこで、今回は「Raspberry Pi Pico W」をAruino IDE でのプログラミング手順を確認します。

記事内でご紹介する「Raspberry Pi Pico W」はこちら!

ピンヘッダ実装済み
created by Rinker
ノーブランド品
¥2,210 (2024/04/26 14:07:05時点 Amazon調べ-詳細)

ピンヘッダを自分ではんだ付けするもの

created by Rinker
Raspberrypi
¥1,635 (2024/04/27 05:58:02時点 Amazon調べ-詳細)

Arduino、C/C++、MicroPythonに対応している組み込み開発キットです。
正確なタイマ機能、温度センサーなどを備えたモデルです。ディスプレイ等がないため、消費電力を抑えた構成をとることができます。いろいろ遊べますよ~

Raspberry Pi Pico Wとは?

 Raspberry Pi Pico との違い

Raspberry Pi Pico W」は、Raspberry Pi財団が独自に開発したARM Cortex M0+デュアルコアのRP2040マイコンを搭載した開発ボード(基板)です。
C/C++およびMicroPythonで開発が可能となっています。
Raspberry Pi moel4BやZeroなどとはことなり、Linux OSのインストールはできません。
Raspberry Pi Pico W」は、Wi-Fi機能を搭載していますが、Wi-Fi」機能を搭載しない「Raspberry Pi Pico」もあります。

 Raspberry Pi Pico / Wのボードレイアウト比較

Raspberry Pi Pico W」と「Raspberry Pi  Pico」のボードレイアウトは次の通り異なります。

Raspberry Pi Pico
Raspberry Pi Pico
Raspberry Pi Pico W
Raspberry Pi Pico W

 Raspberry Pi Pico / Wのスペック比較

この2つの開発ボードでのスペックを次に比較します。
項目 Raspberry Pi Pico Raspberry Pi Pico W
CPU Dual-core Arm Cortex-M0+ 133 MHz Dual-core Arm Cortex-M0+ 133 MHz
SRAM 264MB 264MB
Flash MEM 2MB on-board QSPI flash 2MB on-board QSPI flash
Wi-Fi 2.4GHz 802.11 b/g/n
Bluetooth ※未サポート(今後?)
動作温度 -20℃ to +85℃ ー20℃ to +70℃
インターフェイス
(GPIO)
26  GPIO pins
(× 3 アナログ入力含む)
26  GPIO pins
(× 3 アナログ入力含む)
Peripherals 2 × UART,
2 × SPI コントローラ
2 × I2C コントローラ
16 × PWM チャネル
1 × USB 1.1 コントローラ and PHY,
※ホスト/デバイス モードをサポート
8 ×プログラマブルI/O(PIO)
2 × UART,
2 × SPI コントローラ
2 × I2C コントローラ
16 × PWM チャネル
1 × USB 1.1 コントローラ and PHY,
※ホスト/デバイス モードをサポート
8 ×プログラマブルI/O(PIO)
電源 1.8–5.5V DC 1.8–5.5V DC
USB接続 microUSB microUSB
その他 低消費電力スリープモードおよびドーマントモードが利用可能
正確なクロックとタイマーを搭載
温度センサ搭載
高速な浮動小数点ライブラリを搭載
低消費電力スリープモードおよびドーマントモードが利用可能
正確なクロックとタイマーを搭載
温度センサ搭載
高速な浮動小数点ライブラリを搭載
基本的な仕様は同じですが、Wi-Fiモジュールが搭載されたことで、動作保証温度が変更になっているようです。
Bluetoothは、記事作成時点ではサポートされていませんが、モジュールとしては機能を持っています。

 Raspberry Pi Pico W へのプログラム書き込み

よく使われる、microPythonでは、「Raspberry Pi Pico W」へのプログラム書き込みは次の通りになります。
  1. 本体の「BOOT SEL」ボタンを押しながらPCに接続する
  2. フォルダとして認識される
  3. プログラムファイルをフォルダへコピー&ペーストする

今回は、Arduino IDEから書き込みますので、上記の方法は使用しません。

具体的な手順は、次の章で説明します。

GPIO構成

他のセンサーなどとの通信に使用するGPIOの構成は次の通りです。

 

Raspberry Pi Pico を使うために必要なもの

Raspberry Pi Picoは、特に付属品なしで販売されています。

そのため、プログラムを書き込む際に必要となるUSBケーブルが別途、必要となります。

USBは、「microUSB」になります。

Arduino IDEで準備すること

Arduino IDE は、開発ボードであるArduino製品、M5Stack、micro:bitなど、幅広いマイコンに対して、組み込みプログラムを書き込める開発環境です。

Arduino IDE で開発を行う際には、次の手順を行う必要があります。

  1. Arduino IDE(開発環境)をインストールする
  2. 開発するマイコンに対応したボードマネージャをインストールする
  3. プログラム内で呼び出すライブラリをインストールする
  4. プログラムを作成し、書き込む

Arduino IDE(開発環境)をインストールする

最新のArduino IDE(2.x)をインストールします。

インストール手順については、次の記事を参考にしてください!
関連記事

すけろく Arduino IDEの2.x版がそろそろ使えそうだな。 げんろく たしかに、これまで使ってきたArduino IDE 1.8ではない オートコンプリート機能などが追加されているらしい。 […]

開発するマイコンに対応したボードマネージャをインストールする

今回は、「Raspberry Pi Pico」を使いますので、対応するボードマネージャをインストールします。

ボードマネージャの名前は、以下のものです。

こちらは公式ではありませんが、Raspberry Pi Picoと同じRP2040というチップを搭載している他の製品にも対応しているため便利です。

使用する情報 設定値
ボードマネージャURL https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json
ボードマネージャ名 Raspberry Pi Pico/RP2040

上記以外に公式のライブラリもあります。

使用する情報 設定値
ボードマネージャ名 Arduino Mbed OS RP2040 Boards

ボードマネージャのインストール手順については、次の記事を参考にしてください!

関連記事

今回は、「Arduino IDE 2.0」の「ボードマネージャ」と書き込み先のボードの指定について記載します。 Arduino IDEは、Arduinoに対応した各種ボード(Arduino uno、M5Stack、M5Stic[…]

プログラム内で呼び出すライブラリをインストールする

今回は、Arduino IDEの標準ライブラリを使いますので、ライブラリは新規にインストールしません。

ライブラリのインストール手順については、次の記事を参考にしてください!

関連記事

「Arduino IDE」では、使用する機能やセンサー、ボードを使用するプログラムで使用できる有効なライブラリが公開されています。 ライブラリを使用すると、効率的かつ品質を確保したプログラミングが可能です。 この記事では、Ar[…]

これでArduino IDEで「Raspberry Pi Pico」にプログラムを書き込む準備ができました。

Raspberry Pi Picoで”Hello World”してみる

今回は、正常に書き込めるかを含めて、動作確認しますので、シリアル通信で、「Hello World」を送信してみます。

Arduino IDEを起動して、「ファイル」メニューから「新規ファイル」を選択し、表示されるスケッチに以下のように記述します。

 Arduino IDE スケッチ例

 M5Stackへの書き込み

初回書き込み時

  1.  Raspberry Pi Picoの「BOOT SEL」ボタンを押しながら、パソコンにUSB接続します。
  2.  Arduino IDEで前述のプログラムを記載して、 「ファイル」メニューから「名前を付けて保存」で任意の名前を付けて保存します。
  3. 「ツール」メニューから「ボード」情報を確認し、次のものを選択します。
    「Arduino Mbed OS RP2040 Boards」-「Raspberry Pi Pico」
     ※今回は、公式のボードマネージャを使います。
  4. 「シリアルポート」は、認識されていない場合もありますが、その場合は選択はしない状態にします。
  5. 「スケッチ」メニューから「マイコンボードに書き込む」を選択します。
  6.  書き込みが完了すると、新しくCOMポートが認識されます。
    次からはそのCOMポートを選択します。

2回目以降

  1.  Raspberry Pi PicoをパソコンにUSB接続します。
  2.  Arduino IDEで前述のプログラムを記載して、 「ファイル」メニューから「名前を付けて保存」で任意の名前を付けて保存します。
  3. 「ツール」メニューから「ボード」情報を確認し、次のものを選択します。
    「Arduino Mbed OS RP2040 Boards」-「Raspberry Pi Pico」
     ※今回は、公式のボードマネージャを使います。
  4. 「シリアルポート」にマイコンを接続したCOMポートが指定されているかも確認します。
  5. 「ツール」メニューから「シリアルモニタ」を選択してシリアルモニタを起動します。(転送速度は「9600」です)
  6. 「スケッチ」メニューから「マイコンボードに書き込む」を選択します。

 プログラム実行結果

シリアルモニタを起動すると、以下のとおり表示されます。

hello world
hello world
hello world
hello world
・・・

編集後記

いかがだったでしょうか。

Raspberry Pi Pico W」のプログラミングといえば、「microPython」と考えていましたが、Arduino IDEでプログラムできるとうれしいです。

これで、他のマイコンと同じArduino IDEで開発できます!

Raspberry Pi Pico W」と同じRP2040というチップを搭載している機器にも使えるので応用ができそうです。

記事は、以上になります。

最後までご覧いただきありがとうございました。

1

記事内でご紹介する「Raspberry Pi Pico W」はこちら!

ピンヘッダ実装済み
created by Rinker
ノーブランド品
¥2,210 (2024/04/26 14:07:05時点 Amazon調べ-詳細)

ピンヘッダを自分ではんだ付けするもの

created by Rinker
Raspberrypi
¥1,635 (2024/04/27 05:58:02時点 Amazon調べ-詳細)

Arduino、C/C++、MicroPythonに対応している組み込み開発キットです。
正確なタイマ機能、温度センサーなどを備えたモデルです。ディスプレイ等がないため、消費電力を抑えた構成をとることができます。いろいろ遊べますよ~

「Raspberry Pi Pico W」のその他の記事はこちら!

すけろく うーむ。 どうしたものか。 げんろく どうした。 暗い顔をして。 すけろく カーモデルのウィンカー点滅を再現したくてな。 明滅回路を作ろうか悩んでおる。 げんろく ん!? そんなときは、メインプロセッサと切り離して 動作するPIOの出番ではないのか! この記事では、「Raspberry Pi  Pico/W」に実装されている「PIO(Programmable I/O」を実際に使ってみます […]

すけろく Raspberry Pi Pico/WのPIO機能を使ってUARTの送信には成功した。 しかし、まだ受信側ができていないのぉ。 げんろく そうだな。 今度は受信側を試してみるか。 すけろく どうせなら、パソコンから送った文字を返すような やり取りができるといいな。 げんろく よし。 UART送受信を実装してみよう。 この記事では、「Raspberry Pi  Pico/W」に実装されてい […]

すけろく Raspberry Pi Pico/WのPIO機能については前回調べた。 今度は実際に使ってみたいの~ げんろく そうだな。 実際にプログラムする際の注意事項などを見ていこう。 すけろく Arduino IDEでも使用できるのか? げんろく ああ。 使えるぞ! Arduino IDEで使う場合を例にやっていこう。 この記事では、「Raspberry Pi  Pico/W」に実装されている […]

すけろく Raspberry Pi Pico/Wには、PIOという機能があるらしいな。 げんろく そうだ。 UARTなどのインタフェース不足や、実装されていない機能を GPIOに対してプログラムできる機能だ。 すけろく Raspberry Pi Pico/Wをもっと知るために PIOを調べてみたい。 げんろく よし! PIOについて少し調べてみるか! この記事では、「Raspberry Pi  P […]

すけろく うーむ。 げんろく どうした浮かない顔して。 すけろく これまで、Raspberry Pi Pico / Wをいろいろ確認してきたが 外付けのボタンの認識ってやったかぇ? げんろく たしかに!まだ取り上げていない基本的なものがあるな よし、今回はボタン押下時の状態を Raspberry Pi Pico / Wで認識してみよう。 この記事では、「Raspberry Pi  Pico W」を […]

すけろく 宅内で使っているリモコンは、どういった仕組みで テレビなどをつけているのかな~? げんろく 赤外線を使って信号を送っているのだ。 すけろく しかし、たくさんある機器のリモコンが混信しないのは どういった仕組みなのかぇ? げんろく よし、今回は赤外線リモコンの通信を 調査してみるか! この記事では、「Raspberry Pi  Pico W」を使って、「赤外線リモコンの通信内容を分析する」 […]

すけろく うーむ。 対応付けが難しいな。 げんろく どうした? Raspberry Pi Picoで悩んでいるようだな。 すけろく Raspberry Pi PicoやPico Wの GPIOピンの情報がボード上にプリント されていないから資料との対応付けがやりづらくてな。 げんろく そうか。そういう課題があるのだな。 よし、解決するグッツを作って提供してみよう! 皆さんは、「Raspberry […]

すけろく うーむ。 モーターを毎回同じくらい回転させることはできんのかな。 げんろく DCモーターや、サーボモーターだと、 回転量を正確に制御することは難しいぞ。 すけろく では、何か解決策はあるのかぇ? げんろく ステッピングモーターというものがある。 モーターの回転をステップとして制御できる。 今回はこのあたりを動かしてみるか。 この記事では、「Raspberry Pi  Pico W」を使っ […]

すけろく 以前の記事で、Raspberry Pi Pico Wを Picoprobe経由でデバッグすることができた。 しかし、シリアルの入出力がArduino IDEで 読み込めないのだ。 げんろく そうだな。 Raspberry Pi PicoやRaspberry Pi Pico Wでは、 シリアル出力用の「Serial.println」では、 Picoprobe経由で取得できない。 すけろく […]

すけろく ん~。 このエラーの時の変数の値が知りたいな~ げんろく どうした? プログラムがうまく動かないのか? すけろく そうなのだ。 Raspberry Pi Pico Wでもデバック機能が使えると いいのだが。。。 げんろく ちなみに、Arduino IDE 2.1.0 のデバッグ機能で Raspberry Pi Pico / Wのデバッグができるぞ! やっとできたプログラムを動かしてみると […]