使ったもの
M5Stack
Espressif Systems社の ESP32 を搭載した、技適取得済み2.4GHz帯 Wi-Fi マイコンモジュールです。
LCD、microSDカードスロット、バッテリー、スピーカー、ボタンスイッチ、Groveコネクタなど、よく使うもの全部入りモジュールです。
(追記)
M5Stack Basicは、この記事を書いた当時より格段にバージョンアップしております。
以下のスイッチサイエンスさんの公式サイトをご参照ください。
https://www.switch-science.com/collections/%E5%85%A8%E5%95%86%E5%93%81/products/9010
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 ファイルのライブラリインストール方法は以下の記事を参照してください。
GitHubにある ZIP形式ライブラリ のインストール方法 ( Arduino IDE )
古いバージョンはかならずフォルダごと削除してから再インストールしてください。
そして、BOSCH製ドライバ BME280 および BME680 ライブラリをインストールされていない場合、そのライブラリ内の/Sensor/フォルダを削除してください。
そうしないと、コンパイルエラーが出ますので注意してください。
また、Arduino標準のTimeライブラリをインストールする必要があります。
GitHubの以下のリンクからZIPファイルをダウンロードして、Arduino IDEにインストールしておいてください。
https://github.com/PaulStoffregen/Time
日本語東雲フォントを 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 をブレッドボードに挿す方式にしています。
ですから、下図のようにピンヘッダをハンダ付けしました。
このハンダ付けについては、以下の記事も参照してみてください。
NeoPixel と紙で フルカラー LED イルミネーション オブジェを作ってみた
NeoPixel Ring と M5Stack を接続する
NeoPixel は、WS2812B という素子を使っていて、ネットで検索したデータシートを見ると、以下の感じです。
●VDD +3.5~5.3V
●VIH 0.7 × VDD
とすると、ESP32 や M5Stack の 3.3V 駆動では保証されておらず、5V駆動用のようです。
そう思って、Sparkfun のロジックレベルコンバータを使って下図のように接続してみました。
ただし、オシロスコープで波形を見ると、なぜが 5V 側のロジックが 3.3V のままです。
私のやり方が何か間違えているんでしょうかね???
うっかりミスのような気もするのですが、原因不明だったので、今回はロジックレベル変換は諦めて、M5Stack の GPIO から直に NeoPixel Ring の Input に接続してみました。
※この接続は動作保証外かも知れません。
写真ではこんな感じになります。
これでもとりあえず、普通に問題無く動作しました。
あまりお勧めしませんが・・・。
では、次ではプログラムを入力していきます。
コメント