HakoHiroのアイコン画像
HakoHiro 2020年05月03日作成 (2020年05月03日更新)
セットアップや使用方法 セットアップや使用方法 閲覧数 3400
HakoHiro 2020年05月03日作成 (2020年05月03日更新) セットアップや使用方法 セットアップや使用方法 閲覧数 3400

ESP32でシリアルLEDテープ Lチカ

概要

ESP32 を使用して、スイッチサイエンスのシリアルLEDテープでLチカしてみます。
Macから PlatformIOを使用してコントロールします。

ESP32選定理由:wifi経由、またはBluetooth経由でコントロールしたい。
それを兼ね備え、かつ安いのはESP32となる。

構成

  • PC: Mac mini  OS 10.15.4
  • ESP32: ESP32 DevKitC (秋月電子通商)
  • LED: スイッチサイエンス M5Stack用NeoPixel互換 LEDテープ 10 cm
    えらく安かったので・・・(400円程度)
  • ケーブル:スイッチサイエンス GROVE - 4ピン-ジャンパメスケーブル

配線

使用する線は3本だけです
LEDテーブの記号

  • G: Gnd: ESP32 Gndへ
  • +:5V:抵抗100Ωを介してESP32 5Vへ
  • S: Signal:抵抗470Ωを介して ESP32 GPIO18へ

ソース

  • main.cppです。
    FastLEDライブラリを使用して、サンプルコードをちょこっと修正しただけです。
/* Switch Sience フルカラーシリアルLEDテープ by ESP32 
H/W  ESP32 DevKitC
DataPin #18+抵抗470Ω
Gnd
5V+抵抗100Ω
*/
#include <Arduino.h>
#include <FastLED.h>
#define NUM_LEDS 15
#define DATA_PIN 18  // data pin set GPIO18

CRGBArray<NUM_LEDS> leds;
void setup() {
  FastLED.addLeds<NEOPIXEL, DATA_PIN>(leds, NUM_LEDS); 
}

void loop() {
  static uint8_t hue;
  for(int i = 0; i < NUM_LEDS/2; i++) {   
    // fade everything out
    leds.fadeToBlackBy(80);

    // let's set an led value
    leds[i] = CHSV(hue++,255,255);

    // now, let's first 20 leds to the top 20 leds, 
    leds(NUM_LEDS/2,NUM_LEDS-1) = leds(NUM_LEDS/2 - 1 ,0);
    FastLED.delay(8);
  }
}
  • PlatformIO.ini
    PlatformIOの設定のために、各プロジェクト毎にiniファイルで設定できます。
    末尾3行以外は、プロジェクト設定時に自動的に記載されます。
    末尾3行は ESP32 DevKitCとMacPCとの接続の為です。
    なくても行けることもあるし、いけないこともあり、正直良くわかりません。
[env:esp32dev]
platform = espressif32
board = esp32dev
framework = arduino
monitor_port = /dev/cu.SLAB_USBtoUART
upload_port = /dev/cu.SLAB_USBtoUART
upload_speed = 115200

動作状況

[https://www.youtube.com/watch?v=x-V2wZ6iK3s]

感想

  1. ESP32
    安くて、通信が標準装備なのが良い。Web、BLE経由でコントロール出来るので、適用範囲が広い。
    例えば、LEDをスマホからコントロールすることも容易。

  2. PlatformIO + VSCode
    VSCodeエディターにPlatformIOを導入して使っているが、これだけで、ESP32以外の多種ボードに適用できる。(Arduino等)
    Arduinoの開発もVSCode+PlatformIOで行っている。ライブラリの管理も簡単だし、お薦めです。
    実は、古い人間なもので「Visual Studio」と聞いただけで拒否反応が出ていたのですが、「Visual Studio Code」は使いやすいですね。
    Atomよりもこっちのほうがいいです。昔の「Visual Studio」は、UserInterfaceが最悪だと思っていたのですが・・・・

  3. シリアルLEDテープ
    3本の線だけで多数のLEDをコントロール出来る。ライブラリに沢山例も出ていて使いやすい。
    但し調子に乗ってLEDを増やしすぎ、電流を考えないと、ESP32のGPIOを焼いてしまいます。
    当方も1ポート焼いてしまいました。なお、抵抗は適当につけてますので、実際に適用する場合はちゃんと計算してください。

1
HakoHiroのアイコン画像
函館在住のOldエンジニアです。マイコンは Z80ワンボードの頃から使っています。なにせあの頃は、ハンドアセンブルでプログラム作成していました。(ニーモニックを手書きで書き、それを表を見ながら機械語コードに落とします)おかげで リターンコード(RTN=0xC9)はいまだに覚えています。RTNまで来るとサブルーチンが一段落でホッとするので・・・ 現在は、電子工作の他に錫で色々作って楽しんでいます。
ログインしてコメントを投稿する