注目キーワード

【Arduino】Raspberry Pi Pico をArduinoでプログラミング!LEDを光らせよう。

すけろく
Raspberry Pi PicoがArduinoでプログラミング
できることは分かった。
げんろく
そうだな。
意外と簡単だったろう?
すけろく
ああ。
しかし、もっと派手なことがやりたいな~。
げんろく
じゃあ、LEDストラップでも
光らせてみるか!
この記事では、「Raspberry Pi Pico」を使ってLEDストラップを光らせてみます。
Raspberry Pi Pico」は、Raspberry Pi財団が独自に開発したARM Cortex M0+デュアルコアのRP2040マイコンを搭載した開発基板です。
Wi-Fiや、Bluetoothといった通信機能は搭載されていませんが、単独で動作する機器を作るのであれば、消費電力や、セキュリティ面でも有効な開発ボードです。
Arduino IDEでもプログラムを書き込むことができます。
この記事ではArduino IDEを使ったプログラミング例を紹介します。
Raspberry Pi PicoをArduinoで使う際の、「はじめにすること」は次の記事を確認してください!
関連記事

すけろく Raspberry Pi Picoを手に入れたぞ! げんろく おお、Raspberry Pi のマイコンだな。 MicroPythonでプログラムできるな。 すけろく […]

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

created by Rinker
Raspberry Pi
¥1,350 (2024/06/13 18:01:17時点 Amazon調べ-詳細)
Arduino、C/C++、MicroPythonに対応している組み込み開発キットです。
正確なタイマ機能を搭載しています。ディスプレイ等がないため、消費電力を抑えた構成をとることができます。いろいろ遊べますよ
今回は、この「Raspberry Pi Pico」から、LEDストラップをコントロールして光らせるプログラミングを行います。
LEDストラップは次のものを使いました。
M5Stack用NeoPixel互換 LEDテープ 10 cm
10㎝の長さのLEDストラップです。LEDが15個実装されています。
商品には10㎝の他にも、20㎝、50㎝、100㎝、200㎝があります。10㎝のものはかなり短めのものです。両端にGroveコネクタ(HY2.04P)のメスがついているものになります。
(写真は10㎝以上の長さの商品のイメージです。)

LEDストラップの仕組み

今回使用するLEDは、制御用信号の線に信号を送ることで、LEDの光の色などを調整することができます。

LEDの仕組みについては、次の記事に詳しく紹介していますので、ぜひご覧ください。

LEDのしくみについての紹介は、こちら!

関連記事

この記事では、M5StickCとLED搭載の冷却ファンを使ったLED発光制御の方法について紹介します。 前回は、M5StickCで冷却ファンを使った回転速度制御をおこないましたが、今回はLEDです。 使用するLEDは、複数のLEDを1個[…]

今回使う「Raspberry Pi Pico」と「M5Stack LED Bar 」(LEDストラップ)のケーブル接続は、次のような構成にします。
もちろん「Raspberry Pi Pico」の他のGPIOを使っても構成できます。

回路を作るのに準備したものは次の通りです。

created by Rinker
サンハヤト
¥1,544 (2024/06/14 06:18:02時点 Amazon調べ-詳細)
安心のサンハヤト。両端に「+」と「ー」のラインがあります。
電圧の違う回路を扱う場合に便利なブレッドボードです。
最初はこれが一枚あるとよいと思います。
ブレッドボードとマイコンなどをつなぐ配線材です。
オス(pin)ーオス(pin)、オス(pin)ーメス(コネクタ)、メス(コネクタ)ーメス(コネクタ)がセットになっています。100mmの線になります。いろいろな色があるので配線をわかりやすく分けられます。
電子回路の試作を行う際に使用するツールです。
いろんな長さのものがセットになり、保管用のボックスもついています。
電源アダプター用のDCジャック、UEBなどが入力として使えます。
ブレッドボードに差し込んで使用します。3.3V と5Vを切り替えて使えます。
電圧とブレッドボードへの差し込み方向を間違えないようにしましょう!
汎用スイッチング式ACアダプター 5V/4A/最大出力20W 出力プラグ外径5.5mm(内径2.1mm)PSE取得品
100V電源を5V4Aに変換する電源アダプターです。
PSE認証付きのものを購入しましょう!

LEDストラップは、Groveコネクタで接続しますが、Raspberry Pi Pico側は、Groveコネクタは持っていません。

そこで、Groveケーブルを2つに切断し、ブレッドボード用にコネクタ(QIコネクタ)を付けました。

ピンヘッダをつければ、ブレッドボードに接続できます。

ケーブルの作成に使った商品はこちらです

created by Rinker
Seeedstudio
¥650 (2024/06/13 17:00:27時点 Amazon調べ-詳細)

ケーブルとコネクタの種類や作成方法は、次の記事を確認してください!

関連記事

電子工作ではんだ付けとともに欠かせないのが、「ケーブル作り」。 電子部品やコンピュータ、モーターなどの各部品はいろいろな形状のコネクタを持っています。そこで、ケーブルの端を接続するものの規格に合わせることが必要になります。 また[…]

実際にブレッドボード上で接続させたイメージは、次のようになりました。

LED制御で使用できるArduino向けライブラリ

LEDをArduinoで使いたときには、次のライブラリを利用できます。

Adafruit NeoPixel Library

Adafruit 社が販売しているLEDストリップなどを制御するためのArduinoライブラリです。
Adafruit社の製品で使用されているLEDは「WS2812B」や「SK6812」が使われているものがあり、今回のようなものも同様に制御できます。

 GitHubのライブラリページはこちら(Adafruit NeoPixel Library)

FastLED

adafruit(Neopixel、DotStar、LPD8806)、Sparkfun(WS2801)、aliexpressなどで販売されているものなど、さまざまなLEDチップセットを簡単かつ効率的に制御するためのライブラリです。

LEDへの書き込みに加えて、このライブラリには、RGB値を操作するための高性能8ビット計算用の関数や、ピンやSPIハードウェアへのアクセスを抽象化するための低レベルクラスが含まれています。

 GitHubのライブラリページはこちら(FastLED)

上記の2つのライブラリは、Arduino IDEのライブラリマネージャでダウンロード、設定ができます。

ライブラリのインストールは、次の記事で紹介しています。

関連記事

本記事は、Arduino IDE 1.8.xバージョンのライブラリ管理方法を紹介した記事です。 Arduino IDEは、より新しいバージョン「2.0.x」が発表されています。     機能がよりリッチになった「Ardu[…]

今回は、「FastLED」を使用します。

ただし、本記事の執筆時点(2023年3月)で以下の点に注意してください。

Arduino IDEでインストールできる、最新の「FastLED 3.5.0」では、Raspberry Pi PicoのRP2040チップには対応していない。

しかし、GitHub上の最新ソースでは、Raspberry Pi PicoのRP2040 チップへの対応がされています。

以下の手順でライブラリを更新することで、使用できますので安心してください。

 

 FastLEDのRaspberry Pi Pico(RP2040)対応

前提条件

Arduino IDE 2,0のライブラリ管理機能から「FastLED 3.5.0」を一度インストール済みであること

所要時間:10分程度

左のボタンを押して、FastLEDのGitHub
へ移動します。

画面右上にある「Code」ボタンを押して、
「Download Zip」をクリックします。

ダウンロードが完了すると
「FastLED-master.zip」というファイルが
保存されます。

「FastLED-master.zip」を右クリックして、
「すべて展開」を選択して解凍します。
5
「FastLED-master」フォルダが作成され、
その中にソースコードを含むファイルが
配置されます。「FastLED-master」の配下にある
「FastLED」ー「FastLED」の
ファイル、フォルダを全選択し、
「コピー」します。
6
Arduino IDEのライブラリフォルダを開き
「FastLED」フォルダを開きます。
先ほどコピーした内容を、
「FastLED」フォルダにペーストします。


※ファイルの上書き確認画面が表示されます。
「すべて上書き」をしてください。
※Arduino IDEのライブラリフォルダは通常、
以下の場所にあります。
C:\Users\”ユーザ名”\Documents\Arduino\libraries\FastLED

7
上書きした「FastLED」フォルダ内の
「Src」フォルダにある
「led_sysdefs.h」を、メモ帳で開きます。

#elif defined(ARDUINO_ARCH_RP2040)

8
「led_sysdefs.h」に左の記述があることを
確認し、ファイルを閉じます。
以上で、「FastLED」のRaspberry Pi Pico(RP2040)対応手順は完了です。

Raspberry Pi PicoでLEDストラップを光らせてみる

では実際にLEDストラップを光らせるプログラムを書き込んでいきましょう。

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

 Arduino IDE スケッチ例

 Raspberry Pi Picoへの書き込み

初回書き込み時

  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. 「スケッチ」メニューから「マイコンボードに書き込む」を選択します。

 プログラム実行結果

書き込みが完了すると、以下のようにLEDストラップが光ります。

編集後記

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

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

LEDストラップも無事光らせることができました。

これで、他のマイコンと同じArduino IDEでLEDを使ったプログラムの開発ができます!

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

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

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

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

created by Rinker
Raspberry Pi
¥1,350 (2024/06/13 18:01:17時点 Amazon調べ-詳細)
Arduino、C/C++、MicroPythonに対応している組み込み開発キットです。
正確なタイマ機能を搭載しています。ディスプレイ等がないため、消費電力を抑えた構成をとることができます。いろいろ遊べますよ
created by Rinker
Seeedstudio
¥650 (2024/06/13 17:00:27時点 Amazon調べ-詳細)
M5Stack用NeoPixel互換 LEDテープ 10 cm
10㎝の長さのLEDストラップです。LEDが15個実装されています。
商品には10㎝の他にも、20㎝、50㎝、100㎝、200㎝があります。10㎝のものはかなり短めのものです。両端にGroveコネクタ(HY2.04P)のメスがついているものになります。
(写真は10㎝以上の長さの商品のイメージです。)
created by Rinker
サンハヤト
¥1,544 (2024/06/14 06:18:02時点 Amazon調べ-詳細)
安心のサンハヤト。両端に「+」と「ー」のラインがあります。
電圧の違う回路を扱う場合に便利なブレッドボードです。
最初はこれが一枚あるとよいと思います。
ブレッドボードとマイコンなどをつなぐ配線材です。
オス(pin)ーオス(pin)、オス(pin)ーメス(コネクタ)、メス(コネクタ)ーメス(コネクタ)がセットになっています。100mmの線になります。いろいろな色があるので配線をわかりやすく分けられます。
電子回路の試作を行う際に使用するツールです。
いろんな長さのものがセットになり、保管用のボックスもついています。
電源アダプター用のDCジャック、UEBなどが入力として使えます。
ブレッドボードに差し込んで使用します。3.3V と5Vを切り替えて使えます。
電圧とブレッドボードへの差し込み方向を間違えないようにしましょう!
汎用スイッチング式ACアダプター 5V/4A/最大出力20W 出力プラグ外径5.5mm(内径2.1mm)PSE取得品
100V電源を5V4Aに変換する電源アダプターです。
PSE認証付きのものを購入しましょう!