HakoHiro が 2020年05月03日11時35分43秒 に編集
初版
タイトルの変更
ESP32でシリアルLEDテープ Lチカ
タグの変更
ESP32
Neopixel
PlatformIO
Leafonyプレゼントキャンペーン
本文の変更
# 概要 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本だけです](https://camo.elchika.com/a2ebe12417d1c7df9e16f024f547db3dbed96b95/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f38333537363361302d393332382d343665392d383165622d3234323436633435373839342f63303132633931632d643934312d346332652d623464352d306464653165306537313730/) LEDテーブの記号 - G: Gnd: ESP32 Gndへ - +:5V:抵抗100Ωを介してESP32 5Vへ - S: Signal:抵抗470Ωを介して ESP32 GPIO18へ # ソース - main.cppです。 FastLEDライブラリを使用して、サンプルコードをちょこっと修正しただけです。 ```main.cpp /* 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をスマホからコントロールすることも容易。 1. PlatformIO + VSCode VSCodeエディターにPlatformIOを導入して使っているが、これだけで、ESP32以外の多種ボードに適用できる。(Arduino等) Arduinoの開発もVSCode+PlatformIOで行っている。ライブラリの管理も簡単だし、お薦めです。 実は、古い人間なもので「Visual Studio」と聞いただけで拒否反応が出ていたのですが、「Visual Studio Code」は使いやすいですね。 Atomよりもこっちのほうがいいです。昔の「Visual Studio」は、UserInterfaceが最悪だと思っていたのですが・・・・ 1. シリアルLEDテープ 3本の線だけで多数のLEDをコントロール出来る。ライブラリに沢山例も出ていて使いやすい。 但し調子に乗ってLEDを増やしすぎ、電流を考えないと、ESP32のGPIOを焼いてしまいます。 当方も1ポート焼いてしまいました。なお、抵抗は適当につけてますので、実際に適用する場合はちゃんと計算してください。