LEDオブジェ


LEDオブジェの写真

esp-32(esp-wroom-32)カラーオブジェ

 私たちの班ではesp-32というマイコンを使い、スマートフォンから無線でLEDを様々な色やパターンに光らせるという実験を行いました。esp-32は、IoTのプロトタイピングによく使われるArduinoの開発環境(IDE)を用いてプログラム開発できる小型のマイコンです。Arduinoよりもメモリやプロセッサが強力で、無線LANやbluetoothなどのインターフェースを最初からもち、無線での制御を実現しやすいという特徴があります。

Lチカ
https://qiita.com/rukihena/items/6a904368700eb1c7d2a3を参考にしました。


カラーオブジェの作成に入る前に、ESP-32が使えるかどうかを確認するため、Lチカというものを実行しました。Lチカとは作成したプログラムからLEDを点灯させることで、ピンの制御ができることを確認することを指します。
https://qiita.com/yuta4807/items/0c47b2beca9cfd69cc23
使えることが確認できたため、以下のサイトを参照しながら進めていきました。
https://www.mgo-tec.com/blog-entry-obj-led-color-smartphone-wifi.html

NeoPixel
使うもの
NeoPixel Ring 12連フルカラーシリアルLED
ESP-32
ミニブレッドボード
電線
2.54ミリピンヘッダ
ハンダ付、ハンダ、ニッパ、USBケーブル、パソコン

次に、リング状の12連LEDを用いて光らせる土台を作ります。


NeoPixelの初期

上記の画像のようにブレッドボードを使ってESP-32と12連LEDをつなぐことで、土台の役割とesp-32のピンとの接続を兼ねます。

つぎにパソコンにインストールしたArduino IDEにesp-32向けの開発環境を整備し、指定のLEDを光らせる実験を行いました。

NeoPixel光らせた写真


 写真の通り、光らせることに成功したので、続いてスマホのブラウザから、Wi-Fi の WebSocket 通信を使って、12連シリアルフルカラーの色や明るさをリアルタイムに変えたり、回転スピードを調整したりしてみたいと思いました。

インターネット上の記事を参考としようとしたところ、ESP8266という類似のマイコンを用いて、スマホからの制御している例が紹介されていました。これはESP8266内でWEBサーバを動作させ、スマートフォン側のWEBブラウザとWeb socket通信を行うことで制御を実現させています。

同様の処理をesp-32上で行うこととしましたが、参考にできる情報はESP8266向けなので、esp-32に合わせたコードを開発する必要がありました。特にesp-32上のメモリ空間をプログラム以外のデータ領域として指定し、そこに置かれたファイルを読み込みながらWEBサーバを動作させる点で苦労しました。

しかし、デバッグを続けることで動作させることに成功しました。
実際にスマホから操作するときの画面がこちらです。スマホで決めた色のとおりに光らせることができました。

操作した写真写真

全体の流れ
パソコンにArduino IDEのインストール

Arduino IDEの初期設定(esp-32向けの環境整備)

コード開発とesp-32への書き込み

書き込みに失敗esp-32用にプログラムを見直す

書き込みに成功

スマホ、パソコン、esp-32を使いスマホから光る明るさや色を操作する

成功