M5Stackと NeoPixel で Art-Net DMX を使った LED エフェクト実験

記事公開日:2018年11月28日

スポンサーリンク

使ったもの

M5Stack

Espressif Systems社の ESP32 を搭載した、技適取得済み2.4GHz帯 Wi-Fi マイコンモジュールです。
LCD、microSDカードスロット、バッテリー、スピーカー、ボタンスイッチ、Groveコネクタなど、よく使うもの全部入りモジュールです。

micro SDHC カード

日本語フォントを保存するために使います。
できるだけ大手メーカー製を使用した方が良いと思います。
私が動作確認したものは以下の物です。



NeoPixel Ring – 12連フルカラーシリアルLED

Adafruit 製の NeoPixel Ring 12連のものを使います。
後で注意点を述べていますが、本来 5V 用で使うものです。
ですから、3.3V ロジックレベルの M5Stack や ESP32 で使う場合は、ロジックレベル変換を使った方が良いと思います。
でも、ここでは反則的に、3.3Vロジックで使っています。

2.54mm ピッチ ピンヘッダ

NeoPixel にピンヘッダをハンダ付けして使います。

小型ブレッドボード

とりあえず、これを使いました。

硬いジャンパーワイヤー

Wi-Fi 環境

2.4GHz 帯の Wi-Fi 環境が必要です。
事前に ESP32 や M5Stack が通信できるように、ファイアウォール設定を見直しておいてください。
MACアドレスフィルタリングをかけている場合、ESP32 や M5Stack の MACアドレスを調べる方法は以下の記事を参照してください。

ESP-WROOM-32 ( ESP32 ) チップ・メモリ・MACアドレス情報取得方法

Windows パソコン

Art-Net 対応のソフトがあれば、Mac でも良いのですが、今回紹介するソフトは Windows 用しかありませんでしたので、Windows パソコンをご用意ください。

Arduino core for the ESP32 のインストール

Arduino IDE はver 1.8.7 で使いました。
Arduino core for the ESP32 は stable 1.0.0 で動作確認しています。
インストール方法は以下の記事を参照してください。

Arduino core for the ESP32 のインストール方法

ArtnetWifi ライブラリのインストール

rstephan さんが作成した、ESP32 用の素晴らしいライブラリは、以下のリンクにあります。
これは、ソースコードを拝見すると、UDP を使った驚くほどシンプルなものです。
Art-Net って、意外と簡単なプロトコルなんだなぁと思いました。

https://github.com/rstephan/ArtnetWifi

ZIP ファイルをダウンロードしていただき、Arduino IDE にインストールしてください。
ZIP ファイルのライブラリインストール方法は以下の記事を参照してください。

GitHubにある ZIP形式ライブラリ のインストール方法 ( Arduino IDE )

FastLED ライブラリのインストール

最初の方で紹介したように、Adafruit ライブラリを使ってしまうと、ESP32 や M5Stack を WiFi で使う時にフリッカーしてしまうので、これを使った方が良いと思います。

https://github.com/FastLED/FastLED

同じようにZIPファイルをダウンロードして、Arduino IDE にインストールしてください。
ZIP ファイルのライブラリインストール方法は以下の記事を参照してください。

GitHubにある ZIP形式ライブラリ のインストール方法 ( Arduino IDE )

自作ライブラリのインストール

四角形を表示させるだけならば、M5Stackライブラリでも良いのですが、今回は独自に日本語ひらがな表示をさせるので、私の自作ライブラリを使います。
以下のリンクにありますので、
beta ver 1.0.67 以降の最新版を使用してください。

https://github.com/mgo-tec/ESP32_mgo_tec

ZIP ファイルのライブラリインストール方法は以下の記事を参照してください。
古いバージョンはかならずフォルダごと削除してから再インストールしてください
そして、BOSCH製ドライバ BME280 および BME680 ライブラリをインストールされていない場合、そのライブラリ内の/Sensor/フォルダを削除してください。
そうしないと、コンパイルエラーが出ますので注意してください

GitHubにある ZIP形式ライブラリ のインストール方法 ( Arduino IDE )

日本語東雲フォントを micro SDHC カードに保存しておく

日本語表示させたくない場合はここを読み飛ばしてください。

M5Stack に日本語ひらがな表示させるために、日本語フリービットマップフォントの東雲フォントUTF8→Shift_JIS 変換テーブルファイルを micro SDHC カード に保存しておきます。
以下の記事を参照して、micro SDHC カードに /font/ フォルダを作成して、そこに以下の3つのファイルを保存しておいてください。

Arduino – ESP32 ( SPIFFS または micro SD ) 自作Fontライブラリインストール方法
(※この記事のfontファイルのみ使います。ライブラリインストールは不要です)

Utf8Sjis.tbl (私の自作 UTF8→Shift_JIS 変換テーブル)
shnmk16.bdf (16×16 全角フォント)
shnm8x16.bdf  ( shnm8x16r.bdf のファイル名中の ’r’ 文字を削除しておく)

NeoPixel Ring にピンヘッダをハンダ付けしておく

私の場合は、NeoPixel をブレッドボードに挿す方式にしています。
ですから、下図のようにピンヘッダをハンダ付けしました。

M5Stack_Art_Net01

このハンダ付けについては、以下の記事も参照してみてください。

NeoPixel と紙で フルカラー LED イルミネーション オブジェを作ってみた

NeoPixel Ring と M5Stack を接続する

NeoPixel は、WS2812B という素子を使っていて、ネットで検索したデータシートを見ると、以下の感じです。

●VDD   +3.5~5.3V
●VIH  0.7 × VDD

とすると、ESP32 や M5Stack の 3.3V 駆動では保証されておらず、5V駆動用のようです。
そう思って、Sparkfun のロジックレベルコンバータを使って下図のように接続してみました。

M5Stack_Art_Net02

ただし、オシロスコープで波形を見ると、なぜが 5V 側のロジックが 3.3V のままです。
私のやり方が何か間違えているんでしょうかね???
うっかりミスのような気もするのですが、原因不明だったので、今回はロジックレベル変換は諦めて、M5Stack の GPIO から直に NeoPixel Ring の Input に接続してみました。

この接続は動作保証外かも知れません

M5Stack_Art_Net03

写真ではこんな感じになります。

M5Stack_Art_Net04

これでもとりあえず、普通に問題無く動作しました。
あまりお勧めしませんが・・・。

では、次ではプログラムを入力していきます。

スポンサーリンク

mgo-tec電子工作 関連コンテンツ ( 広告含む )

投稿者:

mgo-tec

ESP32 ( ESP-WROOM-32 ) , M5Stack , ESP8266 ( ESP-WROOM-02 ) , Arduino 等を使って、主にスマホと連携した電子工作やプログラミング記事を書いてます。ライブラリも作ったりしてます。趣味、独学でやっているアマチュア中高年です。 ここで紹介していることは動作保証し兼ねます。 電子回路やプログラミングの専門家ではありません。 畑違いの仕事をしていますが、少しだけ電気の知識が必要な仕事なので、電気工事士や工事担任者等の資格は持っています。

コメントを残す

メールアドレスが公開されることはありません。

*画像の文字を入力してください。(スパム防止の為)

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください