Raspberry Pi Pico Wを買ってみた ~ 電子工作に最適!
遅まきながら、Raspberry Pi Pico Wを購入しました。
とりあえず初期導入が終わりましたので、ご紹介します。
1.ピンヘッダを付ける
購入したRaspberry Pi Pico Wには、ピンヘッダが付いていません。今回購入したRaspberry Pi Pico Wは各種テストで使う予定なので、ピンヘッダを取り付ける必要があります。
その取り付けですが、ピンヘッダをブレッドボードに刺して安定させると、ピンを曲げずに取り付けられます。私のような老眼で良く見えない者でも取り付けられる位ですから、難易度は低いです。
2.Arduino IDEのセットアップ
次に、開発環境を用意します。Raspberry Pi Picoでの開発では主にPythonを使いますが、私はPythonが大嫌いなので、Arduino IDEを使うことにします。
それでは、Arduino IDEを起動します。
メニューで、「Tools」「Board」「Boards Manager」と選んでボードマネージャーを起動します。そして、検索で「pico」もしくは「RP2040」で検索します。すると、検索結果一覧が表示されます。
一般的に「Raspberry Pi Pico/RP2040 by Earle..」を使うことが多いようです。それは、こちらを使うとRaspberry Pi Picoだけでなく、RP2040互換ボードでも使えるからとのことです。
実は「Arduino Mbed OS RP2040 Boards by Arduino」が公式ライブラリなのですが、後で使うAdafruit_GFXライブラリでエラーが発生するため、今回は選びませんでした。しかしながら、Raspberry Pi Pico/RP2040 by Earle..の方では、USBシリアル出力が表示されない現象が投稿時点で解決できていません。困ったものです。
ライブラリのインストールが終わったら、Raspberry Pi Pico Wをボードに登録します。「Tools」「Board」「Raspberry Pi Pico/RP2040」「Raspberry Pi Pico W」とメニューを選択します。
Raspberry Pi Pico Wを、Windowsパソコンに接続します。接続の際、Raspberry Pi Pico Wの「BOOTSEL」ボタンを押した状態で、パソコンのUSBポートに接続します。すると、USBマスストレージとして認識されて、ドライブに「RPI/RP2」が表示されます。
次に、USBシリアルポートを選択します。デフォルトで接続される場合も多いですが、それと思われるCOMポートを選択してください。
USBシリアル出力を表示させるために、「Tools」「Serial Monitor」を選択します。
シリアルモニターが表示されます。ボーレートの設定をすると良いでしょう。9,600bpsが良いみたいですが、115,200bpsでも問題はないようです。
3.サンプルプログラムを動かしてみる
それでは、プログラムを動かしてみます。まずは、サンプルに用意されているLチカを試してみます。「File」「Examples」「Digital」「BlinkWithoutDelay」とメニューを選択します。
ビルドとプログラムのアップロードを行います。無事に、Raspberry Pi Pico W本体のLEDが点滅しました。
次回以降、プログラムのアップロードをする時は、Raspberry Pi Pico Wがパソコンに接続されていない状態で、「BOOTSEL」ボタンを押したままパソコンに接続する必要があります。これを行わないとアップロードできませんので注意してください。
4.SSD1306を使うOLEDディスプレイを使ってみる
当サイトで良く使うSSD1306ドライバを使ったOLEDディスプレイを使ってみます。接続にはI2Cを使います。
Raspberry Pi Pico WとOLEDディスプレイの配線は、以下の通りです。
SDA -> GPIO16
SCL -> GPIO17
VCC -> 3.3V OUT
GND -> GND
Adafruit_GFXライブラリを使いますから、ライブラリのインストールをお願いします。
以下、プログラムソースです。あくまでも、テストレベルのソースなので、適度に修正してください。
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 32
#define OLED_RESET -1
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
void setup() {
// put your setup code here, to run once:
Wire.setSDA(16);
Wire.setSCL(17);
Wire.begin();
while (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
delay(1000);
}
delay(1000);
display.clearDisplay();
display.setTextSize(2);
display.setTextColor(SSD1306_WHITE);
display.setCursor(0,0);
display.println("Kunimiyasoft");
display.display();
}
void loop() {
// put your main code here, to run repeatedly:
}
LovyanGFXライブラリを使いたかったのですが、SPI接続のOLEDは使えますが、I2C接続のOLEDには使えないと書いてありました。
5.Raspberry Pi PicoとATOM Liteのどちらを使うか?
似たような製品である、Raspberry Pi Pico WとATOM Lite(※)のどちらを使って行くかは、悩ましいところです。使いやすさではATOM Liteの方が使いやすいです。実は、今回のRaspberry Pi Pico Wでのプログラム作成では、いろいろとエラーが出ました。ライブラリの干渉などで問題解決に時間がかかりましたが、何とかこの記事を諦めずに済みました。このように、Arduino IDEを使うなら、M5Stack系の方が安定していると思います。
しかしながら、Raspberry Pi Pico Wに用意されているI/Oは40ピンもありますから、複雑な電子工作に向いていると思います。そして、今回、Raspberry Pi Pico Wを購入したのには訳があります。それを発表できるようになるのは、ずっと先になると思います。こうご期待(なのか)。
Raspberry Pi Picoは、価格が当初のRaspberry Pi Zero程度であり、手軽に使えます。ぜひ、Raspberry Pi Picoも使ってみてください。
※比較するならM5Stampシリーズだと思いますが、個人的にATOMの方を気に入っているので比較対象としました。
※2 継続して使っているのですが、ボードとライブラリの種類やバージョンに影響を大きく受けます。これはM5Stack系でもそうですが、これほどボードとライブラリの組み合わせで結果に影響を受けてしまうのが、非常に困っています。個人的にですが、Windowsより後のプログラムでは、相性問題が大きすぎると思います。