できることは分かった。
意外とArduinoのライブラリで動く。
ここらへんで、たくさんのLEDでも光らせてみないか?
すけろく ついに、国内でもRaspberry Pi Pico Wを手に入れたぞ! げんろく Wi-Fiモジュールがついているので、 国内の技適取得が必要だったからな。 すけろ[…]
記事内でご紹介する「Raspberry Pi Pico W」はこちら!
Arduino、C/C++、MicroPythonに対応している組み込み開発キットです。
正確なタイマ機能、温度センサーなどを備えたモデルです。ディスプレイ等がないため、消費電力を抑えた構成をとることができます。いろいろ遊べますよ~
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 W 側 | M5Stack用NeoPixel互換 LEDテープ側 | 5V電源 |
GND(ー) | GND(-) | GND(-) |
ー | Vin(+) | Vin(+) |
LED制御信号用(G16) | LED制御信号(PWM) | ― |
ー | ー | ー |
回路を作るのに準備したものは次の通りです。
電圧の違う回路を扱う場合に便利なブレッドボードです。
最初はこれが一枚あるとよいと思います。
オス(pin)ーオス(pin)、オス(pin)ーメス(コネクタ)、メス(コネクタ)ーメス(コネクタ)がセットになっています。100mmの線になります。いろいろな色があるので配線をわかりやすく分けられます。
いろんな長さのものがセットになり、保管用のボックスもついています。
LEDストラップは、Groveコネクタで接続しますが、「Raspberry Pi Pico W」側は、Groveコネクタは持っていません。
そこで、購入することができる、「Groveケーブル(200mm)」を2つに切断し、ブレッドボード用にコネクタ(QIコネクタ)を付けました。
ピンヘッダをつければ、ブレッドボードに接続できます。
ケーブルの作成に使った商品はこちらです
ケーブルとコネクタの種類や作成方法は、次の記事を確認してください!
電子工作ではんだ付けとともに欠かせないのが、「ケーブル作り」。 電子部品やコンピュータ、モーターなどの各部品はいろいろな形状のコネクタを持っています。そこで、ケーブルの端を接続するものの規格に合わせることが必要になります。 また[…]
実際にブレッドボード上で接続させたイメージは、次のようになりました。
すけろく ぬぉーーー! げんろく どうした? イライラしておるの~ すけろく ブレッドボードとマイコンで回路を作っているのだが マイコンに配線すると、ブレッドボード側が外れて[…]
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ハードウェアへのアクセスを抽象化するための低レベルクラスが含まれています。
上記の2つのライブラリは、Arduino IDEのライブラリマネージャでダウンロード、設定ができます。
ライブラリのインストールは、次の記事で紹介しています。
本記事は、Arduino IDE 1.8.xバージョンのライブラリ管理方法を紹介した記事です。 Arduino IDEは、より新しいバージョン「2.0.x」が発表されています。 機能がよりリッチになった「Ardu[…]
今回は、「FastLED」を使用します。
ただし、本記事の執筆時点(2023年4月)で以下の点に注意してください。
Arduino IDEでインストールできる、最新の「FastLED 3.5.0」では、Raspberry Pi Pico W のRP2040チップには対応していない。
しかし、GitHub上の最新ソースでは、「Raspberry Pi Pico W」のRP2040 チップへの対応がされています。
以下の手順でライブラリを更新することで、使用できますので安心してください。
FastLEDのRaspberry Pi Pico W(RP2040)対応
前提条件
Arduino IDE 2,0のライブラリ管理機能から「FastLED 3.5.0」を一度インストール済みであること
左のボタンを押して、FastLEDのGitHub
へ移動します。
画面右上にある「Code」ボタンを押して、
「Download Zip」をクリックします。
ダウンロードが完了すると
「FastLED-master.zip」というファイルが
保存されます。
「FastLED-master.zip」を右クリックして、
「すべて展開」を選択して解凍します。
「FastLED-master」フォルダが作成され、
その中にソースコードを含むファイルが
配置されます。「FastLED-master」の配下にある
「FastLED」ー「FastLED」の
ファイル、フォルダを全選択し、
「コピー」します。
Arduino IDEのライブラリフォルダを開き
「FastLED」フォルダを開きます。
先ほどコピーした内容を、
「FastLED」フォルダにペーストします。
※ファイルの上書き確認画面が表示されます。
「すべて上書き」をしてください。
※Arduino IDEのライブラリフォルダは通常、
以下の場所にあります。
C:\Users\”ユーザ名”\Documents\Arduino\libraries\FastLED
上書きした「FastLED」フォルダ内の
「Src」フォルダにある
「led_sysdefs.h」を、メモ帳で開きます。
#elif defined(ARDUINO_ARCH_RP2040)
「led_sysdefs.h」に左の記述があることを
確認し、ファイルを閉じます。
Raspberry Pi Pico W でLEDストラップを光らせてみる
では実際にLEDストラップを光らせるプログラムを書き込んでいきましょう。
Arduino IDEでプログラミングする
Arduino IDEを起動して、「ファイル」メニューから「新規ファイル」を選択し、表示されるスケッチに以下のように記述します。
Arduino IDE スケッチ例
Raspberry Pi Pico Wへの書き込み
2回目以降
- Raspberry Pi PicoをパソコンにUSB接続します。
- Arduino IDEで前述のプログラムを記載して、 「ファイル」メニューから「名前を付けて保存」で任意の名前を付けて保存します。
- 「ツール」メニューから「ボード」情報を確認し、次のものを選択します。
「Raspberry Pi Pico/RP2040」-「Raspberry Pi Pico W」 - 「シリアルポート」にマイコンを接続したCOMポートが指定されているかも確認します。
- 「ツール」メニューから「シリアルモニタ」を選択してシリアルモニタを起動します。(転送速度は「9600」です)
- 「スケッチ」メニューから「マイコンボードに書き込む」を選択します。
プログラム実行結果
5V電源をオンにし、書き込みが完了すると、以下のようにLEDストラップが光ります。
編集後記
いかがだったでしょうか。
「Raspberry Pi Pico W」のプログラミングといえば、「microPython」と考えていましたが、Arduino IDEでプログラムできるとうれしいですね。
LEDストラップも無事光らせることができました。
これで、他のマイコンと同じArduino IDEでLEDを使ったプログラムの開発ができます!
「Raspberry Pi Pico W」と同じRP2040というチップを搭載している機器にも使えるので応用ができそうです。
記事は、以上になります。
最後までご覧いただきありがとうございました。
記事内でご紹介した「Raspberry Pi Pico W」はこちら!
Arduino、C/C++、MicroPythonに対応している組み込み開発キットです。
正確なタイマ機能、温度センサーなどを備えたモデルです。ディスプレイ等がないため、消費電力を抑えた構成をとることができます。いろいろ遊べますよ~
Raspberry Pi Pico Wの他の記事はこちらからどうぞ!
すけろく ウーム。 センサーなどの情報を記録したいな。 げんろく なに。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」を使っ […]