注目キーワード

【Arduino】ARGB ファンをM5Stackを使ってライティング!

 
すけろく
M5StackでPCファンの回転を制御することはできたが LEDの点灯制御はまだだな。
 
げんろく
そうだったな。
LEDの点灯制御もM5Stackで行うことができるぞ!
実際に動かしてみよう

この記事では、M5StackとLED搭載のパソコン用冷却ファンを使ったLED発光制御の方法について紹介します。

前回は、M5Stackで冷却ファンを使った回転速度制御をおこないましたが、今回はLEDです。

使用するLEDは、複数のLEDを1個ずつ異なる色で発光させることができる「アドレサブルRGB」という機能を搭載した冷却ファンを使用します。

今回の冷却ファンは「Cooler Master MasterFan SF120M ARGB」を使います。

 

Cooler Master MasterFan SF120M ARGB

created by Rinker
Cooler Master
¥9,668 (2024/04/26 13:52:29時点 Amazon調べ-詳細)
自作パソコンのパーツメーカーであるCooler Masterの120㎜冷却ファンです。 防振モーター、振動を抑えるダンピングフレームデザインなど、工業用グレードの素材を用いていて、高性能、安定性、耐久性を実現した、冷却ファン製品です。 ファン側で回転モードを3モード選択でき、高回転モードで、5.5-22 dBという静けさを実現しています。 風量も62 CFM (Max)とかなりいいです。このファンに交換することで、自作PCをさらに静かにできますよ!交換してみてはいかがでしょうか?

また今回使う「M5Stack」は、「M5Stack Core 2」を使います。

タッチパネル、マイク、6軸IMU搭載で、一台でいろいろ遊べるモデルになっています。

M5Stack Core2 開発キット

created by Rinker
M5Stack
¥9,478 (2024/04/26 16:37:59時点 Amazon調べ-詳細)
Arduino、UIFlow、MicroPythonに対応している組み込み開発キットです。 タッチスクリーン、マイク、IMUを使うことができ、従来のM5Stackよりも多機能なモデルです。 バッテリーも搭載しています。一台でいろいろと遊べる機器なのでおススメです!

 

前回、冷却ファンの回転制御で使用した電子回路を使って、LEDへの電源供給を行うための回路を追加します。

M5Stackによる冷却ファンの回転制御については、次の記事で紹介しています!

 

関連記事

  すけろく M5Stackを使って、モーターをコントロールしてみたいな。   げんろく それならば、モーターコントロールを学べるPC冷却ファン制御というものをやってみるか。   […]

 

LEDを光らせる仕組みとは?

LEDを光らせるために、LEDの仕組みを確認します。 冷却ファンなどに組み込まれているLEDは、複数のLEDが一つのストラップ上の基板に実装されています。 この複数のLEDは、製品によって以下の3種類の仕組みが存在しています。

  • LED:
    単色LEDが実装されたもの。電源につなぐとあらかじめ決められた色に発色します。
  • RGB:
    RGB信号で発光色が変更できるLEDが実装されたもの。
    ファンに複数配置されたLEDをすべて同じ色で発光させる。
    つまり、ファン全体が同じ色に光ります。
    注)コネクタの逆刺しを行うと故障するので注意です。
  • ARGB(アドレサブルRGB):
    複数配置された個々のLEDを別の色で発光させることができるもの。
    こちらはファン内を虹色などに光らせることができます。
    注)コネクタの逆刺しを行うと故障するので注意です。

※今回使用する冷却ファンは、ARGB対応のものですので単色、グラデーションなど色を変えて発光させることができます。  

ファンにはどんなLEDが入っているのか?

ファンの外周のLED部分には、次のようなLEDストラップが入っています。

 

Cooler Master MasterFan SF120M ARGB」では、次のとおりLEDが搭載されています。

  • ファン中心部:LED 6個
  • ファン外周部:LED 12個

 

ARGBの仕組みをもう少し詳しく見てみよう

120㎜FANのARGBのコネクタは写真のようになっています。

このコネクタは、FANに搭載されているLEDへの電源供給とLED制御信号のための3つの線で構成されています。

コネクタ部は以下のような仕様になっています。

Cooler Master MasterFan MF120 HaloのLEDコネクタ
Cooler Master MasterFan MF120 HaloのLEDコネクタ
今回使用する「Cooler Master MasterFan SF120M ARGB」はARGB(アドレサブルRGB)という仕様に対応しています。
左からGND(ー)、なし、LED制御信号、Vin(+)という構成になっています。
FAN(ARGB)側
回路基板側
GND(ー)
GND
なし
なし
LED制御信号用
LED制御信号(PWM)
Vin(+)
 
Vin(+)

 

ARGB(アドレサブルRGB)対応のLEDは、LEDの中にICが含まれており、このIC部分でLED制御信号を読み取ります。

コントローラ(今回はM5Stackが該当)からLED制御信号線(Din)に送られた信号は、一列に配置されたLEDで順番に信号を読み取って次のLEDへ信号を渡していきます(Dout)。

信号の先頭24ビット分を1セットとして読み取ります。 1セットの信号は次のとおり発光色をRGB(24ビット)で表現します。(図は赤の場合)

 

 

信号は1ビットを1サイクル(1.25μsec)で表現し、「1」と「0」は、次の図のように1サイクルにおけるHighとLowの長さを変えて表現します。

  • 「1」→1.25μsecの先頭0.8μsecがHighレベル
  • 「0」→1.25μsecの先頭0.4μsecがHighレベル

 

 

※1ビット(1.25μs)であるので、1つのLED(24ビット)で30μsとなります。 終了時は50μsをLow状態にします。  

 

ARGBで使用できるArduino向けライブラリ

これまで説明したARGBの仕組みを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でのライブラリのインストールは次の記事で紹介しています!

 

関連記事

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

 

 

LEDに電源とM5Stackをつなぐ回路を製作する

それでは、実際に冷却ファンに電源とM5Stackをつないでみましょう。

今回は5Vの電圧を使用する回路を使用します。

(※5Vよりも高い電圧をかけると危険ですので注意してください)

前回、冷却ファンの回転制御で使用した電子回路を使って、LEDへの電源供給を行うための回路を追加します。

M5Stackによる冷却ファンの回転制御については、次の記事で紹介しています!

 

関連記事

  すけろく M5Stackを使って、モーターをコントロールしてみたいな。   げんろく それならば、モーターコントロールを学べるPC冷却ファン制御というものをやってみるか。   […]

 

回路図でDCジャックからとっている電源は12Vです。

これとは別に5Vを準備します。

前回の記事でプルアップ抵抗に使った5Vを使います。

 

実際にブレッドボード上で作ると次の図のとおりになります。

冷却ファンのLEDとM5Stackは同じ5Vですので同じ電源から取得するようにしています。  

これで仕組みの理解、電子回路の準備が整いました。

次はいよいよプログラミングを行い、LEDを光らせていきます。

 

M5Stackで冷却ファンのLEDを光らせてみる

それでは信号を使用してM5Stackから冷却ファンのLED発光制御をしてみましょう。

LED発光は以下を順番に行っていくプログラムを考えます。

ライブラリとしては「FastLED」を使います。

  • LEDを順番にひとつずつ順番に発光させていく(単色)
  • グラデーションで発光させる
  • グラデーションをローテーションさせてアニメーションさせる

また、M5Stackのディスプレイ上には、発光パターンの選択用ボタンを表示し、ボタンを押すことでLEDの光らせ方を変えるようにします。

前回の以下の記事と合わせることでファンを回転させながらLEDを光らせるようになります。 ファンの回転速度用プログラムにLED発光制御部分を追記してもよいでしょう。
 

冷却ファンのLED発光制御プログラム

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

 Arduino IDE スケッチ例

今回のプログラムは、GitHubに保存しています。

ダウンロードして、srcフォルダ内の「M5Stack_FAN_Control_v2.ino」を開いてください。

※プログラムは、タッチパネル専用になりますので、「M5Stack Core 2」で動作します。

 

GitHub

Contribute to karakuri-musha/PCFanControl_for_M5StackCore2 d…

 

 M5Stackへの書き込み

  1. 「ファイル」メニューから「名前を付けて保存」で任意の名前を付けて保存します。
  2. 「ツール」メニューから「ボード」情報を確認し、次のものを選択します。この際、「シリアルポート」にマイコンを接続したCOMポートが指定されているかも確認します。 ボード:「M5Stack Arduino」-「M5Stack-Core2」 「Partition Scheme」で「Not OTA(Large App)」を選択します。
  3. 「スケッチ」メニューから「マイコンボードに書き込む」を選択します。

 

 プログラム実行結果

M5Stackを起動すると、画面上部に3つのタブ「FAN」「Color」「GAME」が表示されます。

今回のLED点灯制御プログラムは「Color」タブをタッチします。

 

 

また、「GAME」タブをタッチするとルーレットが表示され、ファンのLEDと連動して動きます!

 

 それぞれの画面で動作させた際の動画をまとめました!ぜひご覧ください!          

 

編集後記

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

M5Stackを使って、ファンコントローラの機能として、ARGBを使ってLEDを光らせてみました。

電子回路をブレッドボードに作っていますが、実際にやってみると面白いですよ。

何より、うまく動いた時の体験は素晴らしいものです。

最初は、揃えるものも何かと多くなりますが、一度揃えてしまえば、いろんなものが作れるようになります。

ぜひ、皆さんもチャレンジしてみてくださいね!

 

今回の記事は以上になります。

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

 

これからはじめる方にお勧めの参考図書はこちら!

created by Rinker
¥3,089 (2024/04/26 23:13:08時点 Amazon調べ-詳細)
created by Rinker
¥2,310 (2024/04/26 18:30:27時点 Amazon調べ-詳細)
created by Rinker
技術評論社
¥3,278 (2024/04/26 23:16:03時点 Amazon調べ-詳細)
created by Rinker
¥2,420 (2024/04/26 23:52:48時点 Amazon調べ-詳細)

記事内でご紹介した商品はこちら!

Cooler Master MasterFan SF120M ARGB

created by Rinker
Cooler Master
¥9,668 (2024/04/26 13:52:29時点 Amazon調べ-詳細)
自作パソコンのパーツメーカーであるCooler Masterの120㎜冷却ファンです。
防振モーター、振動を抑えるダンピングフレームデザインなど、工業用グレードの素材を用いていて、高性能、安定性、耐久性を実現した、冷却ファン製品です。
ファン側で回転モードを3モード選択でき、高回転モードで、5.5-22 dBという静けさを実現しています。
風量も62 CFM (Max)とかなりいいです。このファンに交換することで、自作PCをさらに静かにできますよ!交換してみてはいかがでしょうか?

また今回使う「M5Stack」は、「M5Stack Core 2」を使います。 タッチパネル、マイク、6軸IMU搭載で、一台でいろいろ遊べるモデルになっています。  

M5Stack Core2 開発キット

created by Rinker
M5Stack
¥9,478 (2024/04/26 16:37:59時点 Amazon調べ-詳細)
Arduino、UIFlow、MicroPythonに対応している組み込み開発キットです。
タッチスクリーン、マイク、IMUを使うことができ、従来のM5Stackよりも多機能なモデルです。 バッテリーも搭載しています。一台でいろいろと遊べる機器なのでおススメです!

ブレッドボードのおすすめ

created by Rinker
サンハヤト
¥1,544 (2024/04/26 14:29:03時点 Amazon調べ-詳細)
安心のサンハヤト。両端に「+」と「ー」のラインがあります。電圧の違う回路を扱う場合に便利なブレッドボードです。最初はこれが一枚あるとよいと思います。
created by Rinker
KASVIN
¥699 (2024/04/26 13:52:30時点 Amazon調べ-詳細)
コスパ最強のブレッドボード。両端に「+」と「ー」のラインがあります。よく3枚で〇〇〇円というのはありますが、1枚から買えて価格も抑えてあるのでよいと思います。価格も良心的です。
 
げんろく
上記のように単品で購入していくのもいいですが、 次の商品のようなキットを1つ購入しておくとよいですよ!
created by Rinker
SUNFOUNDER
¥7,360 (2024/04/26 16:38:00時点 Amazon調べ-詳細)
Raspberry pi用と書かれていますが、Arduinoでも使えます。ブレッドボードやケーブルなど、一式が入っています。 これを一式購入して、不足分を追加購入する形がおススメです。

Amazonで確認

電源アダプター(12V)

12V1.5A出力の電源アダプターです。PSEマーク認証がとられているものを選定しています。
この商品はセンタープラスの電源アダプタです。

電源アダプター(5V)

5V2A出力の電源アダプターです。PSEマーク認証がとられているものを選定しています。
この商品はセンタープラスの電源アダプタです。
外径5.5㎜、内径2.1㎜のアダプター付きのものです。

ブレッドボード用DCジャックDIP化キット(完成版)

入手元:秋月電子
型番:AE-DC-POWER-JACK-DIP
DCジャックをユニバーサル基板や、ブレッドボードにつけられるようにするキットです。
今回は完成品を使用します。この商品はセンタープラスのDCジャックです。

秋月電子さんの通販サイトURLはこちらです。

ピンヘッダ

秋月電子さんのロングピンヘッダ1×40
両端ロングピンヘッダ 1×40 (40P 6.1)
入手元:秋月電子
型番:PH-1x40SG(6.1/6.1)

両端のピンが長いものになります。冷却FANと接続する側のピンとして使います。
40ピンありますので、4ピン分を切って使います。

秋月電子さんの通販サイトURLはこちらです。

ジャンパワイヤ/ジャンパ線

ブレッドボード上に配線する際に便利なワイヤです。
単線タイプなのでボードに密着させて配線できるので線がごちゃごちゃせず、わかりやすくなります。
created by Rinker
サンハヤト
¥649 (2024/04/26 16:38:02時点 Amazon調べ-詳細)
ブレッドボードとM5Stackなどのコネクタを持つ部品をつなぐ配線材です。
オス(pin)ーオス(pin)の200mmの線になります。いろいろな色があるので配線をわかりやすく分けられます。
 
 

M5Stack の他の記事はこちらからどうぞ!

すけろく ううーん。 どうしたものか。 げんろく どうした? 浮かない顔をして。 すけろく ChatGPTをマイコンから使ってみたいのだが、 どうすればよいのかわからなくてな。 げんろく そうか。 ChatGPTもAPIをもっているから、マイコンで文章を作って ChatGPT APIに送信すればよいと思うぞ。 今回はそのあたりを使ってみようか! 皆さん、「ChatGPT」は活用されていますか? 私 […]

すけろく 最近メダカの飼育が流行っているらしいの~ げんろく そうだな。日本の水質にも適用能力が高い魚だからな。 我が家でも飼育してみるか。 すけろく そうなると、メダカに快適な環境を整える必要があるな。 げんろく よし。 まずは、メダカが快適に過ごせる水温か確認するぞ! 皆さん、お家で何か動植物を飼っていますか? 今回、縁あって、げんろく宅にも「メダカ」さんがやってくることになりました。 メダカ […]

すけろく んーどうしたものか。 げんろく どうした? 深刻な顔をして。 すけろく M5Stackにプログラムを書き込んだら 起動しなくなってな。 電源ON/OFFでも無理なのだ。 げんろく 書き込んだプログラムか、バッテリーの 過放電か。工場出荷時に戻してみてはどうだ? この記事では、M5Stackにプログラムを書き込んだ結果、うまく動作しなくなった場合の対処方法を記載します。 ご紹介するのは「工 […]

すけろく んー。 どうしたものか… げんろく どうした?深刻な顔をして。 すけろく 「城の守りを固めるため、敵の接近を検知してみせよ!」 と殿から宿題をもらっての。 げんろく なるほど、それならば人感センサーを使ってみてはどうか? 敵が勝手に部屋に入ったりするのを検知できるぞ! この記事では、M5Stackと、「人感センサー(HC-SR501)」を使って、人が近づいた際に検知して反応するプログラム […]

すけろく 前回は、RTC非搭載のM5Stackでの時刻同期を行ったが、 RTC搭載の場合はどうするのかな。 げんろく うむ。 RTCは、M5Stack Core 2 などで搭載されている。 ちょっと、プログラム内容が異なるから、実装してみるか。   この記事では、M5StackをアクセスWi-Fiアクセスポイントに接続し、インターネットの時刻サービス(NTPサーバー)と時刻を同期する方法 […]

すけろく ん~。 げんろく どうした難しい顔をして。 すけろく M5Stackのディスプレイにいろいろ描画しているのだが。 画像がチラチラしてみずらいのだ。 げんろく 描画タイミングとか、メモリを使うとか しておるのか? すけろく ・・・ げんろく 今回は、そのあたりを見てみようか。 この記事では、Arduino IDEを使ってM5Stackのディスプレイに文字や画像を表示する際のちらつきや、安定 […]

 すけろく M5StackでPCファンの回転を制御することはできたが LEDの点灯制御はまだだな。  げんろく そうだったな。 LEDの点灯制御もM5Stackで行うことができるぞ! 実際に動かしてみよう この記事では、M5StackとLED搭載のパソコン用冷却ファンを使ったLED発光制御の方法について紹介します。 前回は、M5Stackで冷却ファンを使った回転速度制御をおこないましたが、今回はL […]

 すけろく M5Stackを使って、モーターをコントロールしてみたいな。  げんろく それならば、モーターコントロールを学べるPC冷却ファン制御というものをやってみるか。  すけろく ん? パソコン用の冷却ファンをコントロールできるのか?  げんろく 仕組みはモーターと同じだからな。 とにかくやってみよう!   この記事では、M5Stackとパソコン用の冷却ファンを使って回転速度制御を行います。 […]

すけろく 標準ライブラリでの画面描画はできた。 しかし、M5Stack向けのライブラリなので 汎用性がないな。 げんろく たしかに。 M5StickCや他のAruduino機器でも使えるものが必要だな。 すけろく そのようなものがあるのか? げんろく よし。今回は、汎用的に使えるライブラリを紹介しよう。 lovyan03さんが公開されている「Lovyan_GFX」だ。 この記事では、Arduino […]

すけろく M5Stackも時刻同期や日本語表示までできた。 うまくいっておるな。 げんろく ああ、「M5Stack」でもノウハウがたまってきている。 すけろく そういえば、大きな画面を活かしたものを 作ってみたいと思うのだが。 げんろく わかった。今回はM5Stackのディスプレイにおける 画面制御まわりを見てみるか。 この記事では、Arduino IDEを使ってM5Stackのディスプレイに文字 […]

すけろく M5Stackに英語表記で時計を表示することは 前回の記事で行えたが、日本語は表示できないのか? げんろく いや、方法はあるぞ。 eFontライブラリをM5Stackで実行できるように 修正して提供してくれているものを使うのだ。 すけろく ぜひ、やってみたいの~ この記事では、Arduino IDEを使ってM5Stackのディスプレイに日本語を表示させるための方法を紹介します。 今回使用 […]

すけろく 前回は、Wi-Fiアクセスポイントに 接続することができた。 次は時刻同期かな。 げんろく うむ。 時刻同期は、全ての基本だからな。 実装してみるか。 この記事では、M5StackをアクセスWi-Fiアクセスポイントに接続し、インターネットの時刻サービス(NTPサーバー)と時刻を同期する方法について紹介します。 M5Stackは、内蔵タイマであるRTCが搭載されているモデル(例:M5St […]

すけろく M5Stackは、Wi-Fi機能がついているのか。 げんろく ESP32のおかげだな、2.4GhzのWi-Fi接続に 対応している。 すけろく では、早速Wi-Fi接続してみよう。 げんろく せっかくなので、microSDから読みだした Wi-Fi アクセスポイント情報を使って 接続してみよう! この記事では、M5Stackに実装されているWi-Fi機能を使って、Wi-Fiルータに接続す […]

すけろく M5StackとほかのWebサービスなどとの データのやり取りにJSON形式を使いたいのだが。 げんろく うむ。 M5StackでもJSON形式が使えるか試してみるか。 この記事では、Arduino IDEを使ってM5StackのプログラムでJSON形式を取り扱う方法を紹介します。 JSON形式データは、Webサービスやほかのコンピュータとのやり取りにも使用される汎用形式なので、取り扱う […]

すけろく M5Stackは、各モデル共通でmicroSDカードの スロットが搭載されているな! げんろく そうだな。microSDカードへの読み書きが できるのでログの記録や、データ読み出しからの 画面表示ができる。 すけろく ファイルの中身を画面に表示することができるのか! それはいいな! げんろく では、手始めにmicroSDカードに入っている テキストファイルの中身を表示してみよう。 この記 […]

すけろく M5StackをArduino IDEで使ってみたいのだが。 げんろく ライブラリも揃っているしな。 開発する前に、M5Stack用の設定をArduino IDEに 施す必要がある。 すけろく M5Stack開発ボードの登録とライブラリの インストールだな。 げんろく わかってきたではないか。 新しい機器をArduino IDEで使う場合の初期設定だな。 この記事では、Arduino I […]

すけろく 今回はM5Stackを取り上げたいと思うがどうだ? げんろく なんだ、急にやる気を出して。 どういった風の吹き回しだ? すけろく M5Stickとは異なり、いろいろな種類のモデルがあって 良さそうだからな。 げんろく 開発用モデルから、実用を意識したモデルまで 様々だからな。 面白い、やってみるか! 今回の記事では、「M5Stack」を各モデルを比較して、用途に応じた使い方をまとめていま […]