注目キーワード

【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

CoolerMaster MasterFan SF120M ARGB

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

Amazonで確認

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

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

M5Stack Core2 開発キット

M5Stack Core2 開発キット

Arduino、UIFlow、MicroPythonに対応している組み込み開発キットです。 タッチスクリーン、マイク、IMUを使うことができ、従来のM5Stackよりも多機能なモデルです。 バッテリーも搭載しています。一台でいろいろと遊べる機器なのでおススメです!

Amazonで確認

 

前回、冷却ファンの回転制御で使用した電子回路を使って、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」では、使用する機能やセンサー、ボードを使用するプログラムで使用できる有効なライブラリが公開されています。ライブラリを使用すると、効率的かつ品質を確保したプログラミングが可能です。 ここでは、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を光らせてみました。

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

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

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

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

 

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

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

 

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

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

Cooler Master MasterFan SF120M ARGB

CoolerMaster MasterFan SF120M ARGB

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

Amazonで確認

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

M5Stack Core2 開発キット

M5Stack Core2 開発キット

Arduino、UIFlow、MicroPythonに対応している組み込み開発キットです。
タッチスクリーン、マイク、IMUを使うことができ、従来のM5Stackよりも多機能なモデルです。 バッテリーも搭載しています。一台でいろいろと遊べる機器なのでおススメです!

Amazonで確認

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

サンハヤト ブレッドボード SRH-21CE

安心のサンハヤト。両端に「+」と「ー」のラインがあります。電圧の違う回路を扱う場合に便利なブレッドボードです。最初はこれが一枚あるとよいと思います。

Amazonで確認
[スイッチサイエンス] 普通のブレッドボード

コスパ最強のブレッドボード。両端に「+」と「ー」のラインがあります。よく3枚で〇〇〇円というのはありますが、1枚から買えて価格も抑えてあるのでよいと思います。価格も良心的です。

Amazonで確認
 
げんろく
上記のように単品で購入していくのもいいですが、 次の商品のようなキットを1つ購入しておくとよいですよ!
SunFounder Raspberry pi スターター電子工作キット

Raspberry pi用と書かれていますが、Arduinoでも使えます。ブレッドボードやケーブルなど、一式が入っています。 これを一式購入して、不足分を追加購入する形がおススメです。

Amazonで確認

電源アダプター(12V)

SUCCUL ACアダプター 12V 1.5A 大手メーカーOEM社製品 センタープラス スイッチング式 最大出力18W 出力プラグ外径5.5mm(内径2.1mm)PSE取得品

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

Amazonで確認

電源アダプター(5V)

Salcar【PSE取得済み】AC 電源アダプター DC 5V 1.5A 大手メーカー 高信頼品 最大出力7.5W スイッチング式 センタープラス 外径5.5mm×内径2.5mm 1年保証

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

Amazonで確認

ブレッドボード用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はこちらです。

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

サンハヤト ジャンプワイヤキット SKS-100 単線タイプでよく使用する短めジャンプワイヤのセット品

ブレッドボード上に配線する際に便利なワイヤです。
単線タイプなのでボードに密着させて配線できるので線がごちゃごちゃせず、わかりやすくなります。

Amazonで確認
サンハヤト ジャンプワイヤ SPP-200 200ミリ

ブレッドボードとM5Stackなどのコネクタを持つ部品をつなぐ配線材です。
オス(pin)ーオス(pin)の200mmの線になります。いろいろな色があるので配線をわかりやすく分けられます。

Amazonで確認