国内の技適取得が必要だったからな。
ようやくだ。これもArduino で使用できるのか?
Hello Worldを実装してみよう!
記事内でご紹介する「Raspberry Pi Pico W」はこちら!
ピンヘッダを自分ではんだ付けするもの
Arduino、C/C++、MicroPythonに対応している組み込み開発キットです。
正確なタイマ機能、温度センサーなどを備えたモデルです。ディスプレイ等がないため、消費電力を抑えた構成をとることができます。いろいろ遊べますよ~
Raspberry Pi Pico Wとは?
Raspberry Pi Pico との違い
Raspberry Pi Pico / Wのボードレイアウト比較
「Raspberry Pi Pico W」と「Raspberry Pi Pico」のボードレイアウトは次の通り異なります。
Raspberry Pi Pico / Wのスペック比較
項目 | 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 |
その他 | 低消費電力スリープモードおよびドーマントモードが利用可能 正確なクロックとタイマーを搭載 温度センサ搭載 高速な浮動小数点ライブラリを搭載 |
低消費電力スリープモードおよびドーマントモードが利用可能 正確なクロックとタイマーを搭載 温度センサ搭載 高速な浮動小数点ライブラリを搭載 |
Raspberry Pi Pico W へのプログラム書き込み
- 本体の「BOOT SEL」ボタンを押しながらPCに接続する
- フォルダとして認識される
- プログラムファイルをフォルダへコピー&ペーストする
今回は、Arduino IDEから書き込みますので、上記の方法は使用しません。
具体的な手順は、次の章で説明します。
GPIO構成
他のセンサーなどとの通信に使用するGPIOの構成は次の通りです。
Raspberry Pi Pico を使うために必要なもの
Raspberry Pi Picoは、特に付属品なしで販売されています。
そのため、プログラムを書き込む際に必要となるUSBケーブルが別途、必要となります。
USBは、「microUSB」になります。
Arduino IDEで準備すること
Arduino IDE は、開発ボードであるArduino製品、M5Stack、micro:bitなど、幅広いマイコンに対して、組み込みプログラムを書き込める開発環境です。
Arduino IDE で開発を行う際には、次の手順を行う必要があります。
- Arduino IDE(開発環境)をインストールする
- 開発するマイコンに対応したボードマネージャをインストールする
- プログラム内で呼び出すライブラリをインストールする
- プログラムを作成し、書き込む
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への書き込み
初回書き込み時
- Raspberry Pi Picoの「BOOT SEL」ボタンを押しながら、パソコンにUSB接続します。
- Arduino IDEで前述のプログラムを記載して、 「ファイル」メニューから「名前を付けて保存」で任意の名前を付けて保存します。
- 「ツール」メニューから「ボード」情報を確認し、次のものを選択します。
「Arduino Mbed OS RP2040 Boards」-「Raspberry Pi Pico」
※今回は、公式のボードマネージャを使います。 - 「シリアルポート」は、認識されていない場合もありますが、その場合は選択はしない状態にします。
- 「スケッチ」メニューから「マイコンボードに書き込む」を選択します。
- 書き込みが完了すると、新しくCOMポートが認識されます。
次からはそのCOMポートを選択します。
2回目以降
- Raspberry Pi PicoをパソコンにUSB接続します。
- Arduino IDEで前述のプログラムを記載して、 「ファイル」メニューから「名前を付けて保存」で任意の名前を付けて保存します。
- 「ツール」メニューから「ボード」情報を確認し、次のものを選択します。
「Arduino Mbed OS RP2040 Boards」-「Raspberry Pi Pico」
※今回は、公式のボードマネージャを使います。 - 「シリアルポート」にマイコンを接続したCOMポートが指定されているかも確認します。
- 「ツール」メニューから「シリアルモニタ」を選択してシリアルモニタを起動します。(転送速度は「9600」です)
- 「スケッチ」メニューから「マイコンボードに書き込む」を選択します。
プログラム実行結果
シリアルモニタを起動すると、以下のとおり表示されます。
hello world hello world hello world hello world ・・・
編集後記
いかがだったでしょうか。
「Raspberry Pi Pico W」のプログラミングといえば、「microPython」と考えていましたが、Arduino IDEでプログラムできるとうれしいです。
これで、他のマイコンと同じArduino IDEで開発できます!
「Raspberry Pi Pico W」と同じRP2040というチップを搭載している機器にも使えるので応用ができそうです。
記事は、以上になります。
最後までご覧いただきありがとうございました。
記事内でご紹介する「Raspberry Pi Pico W」はこちら!
ピンヘッダを自分ではんだ付けするもの
Arduino、C/C++、MicroPythonに対応している組み込み開発キットです。
正確なタイマ機能、温度センサーなどを備えたモデルです。ディスプレイ等がないため、消費電力を抑えた構成をとることができます。いろいろ遊べますよ~
すけろく ウーム。 センサーなどの情報を記録したいな。 げんろく なに。Raspberry Pi Picoで記録媒体を 使いたいのか。 すけろく そうだ。 センサーやカメラのデータを保存したいのだ。 げんろく データの保管には、microSDカードが 使いやすいそ。使ってみるか! この記事では、「Raspberry Pi Pico/W」に「microSDカードスロット」を接続して読み書きしてみま […]
すけろく うーむ。 げんろく どうした?浮かない顔をして。 すけろく LEDを火のように光らせる方法を知りたくてな。 げんろく それなら、1/fの揺らぎを使って 再現してみるか。 この記事では、「Raspberry Pi Pico W」を使って、「LEDを揺らぎを加えて点灯させる」方法をご紹介します。 Raspberry Pi の中でも、省電力なCPUを搭載したマイコン開発ボードです。 他のRa […]
すけろく うーむ。 どうしたものか。 げんろく どうした。 暗い顔をして。 すけろく カーモデルのウィンカー点滅を再現したくてな。 明滅回路を作ろうか悩んでおる。 げんろく ん!? そんなときは、メインプロセッサと切り離して 動作する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」を使っ […]