Search Code

Iṣẹ́ ESP32-S3 RGB LED Matrix 1- Àmì-ojú ìpilẹ̀ṣẹ̀

Iṣẹ́ ESP32-S3 RGB LED Matrix 1- Àmì-ojú ìpilẹ̀ṣẹ̀

Ise 1 – Dot Gbigbe ati Ẹ̀rọ̀ Ọkàn lori ESP32-S3 RGB LED Matrix

Ninu ise yii a bẹrẹ pẹlu animation ti o rọrun julọ ti o ṣee ṣe lori ESP32-S3 RGB LED Matrix: dot kan ti o nlọ kọja 8×8 RGB ifihan. Lori eyi, a ṣafikun animation ọkàn kekere kan ki o le yi bọọdi naa pada si ifihan ọṣọ kekere nigbati o ba wa ni agbara. Eyi jẹ igbesẹ akọkọ nla lati ni itunu pẹlu ṣiṣakoso awọn pixels kọọkan, awọn awọ, ati iyara animation lori matrix.

Gbogbo awọn ise mẹfa ni jara yii ni a ṣe afihan ati ṣalaye ninu fidio kan. Fidio kanna ni a fi sinu oju-iwe yii, nitorinaa o le wo alaye ni igbesẹ-igbesẹ ni kikun ati ifihan laaye ti dot gbigbe ati awọn animation ọkàn. Koodu pipe fun ise yii ni a ṣe kojọpọ laifọwọyi ni isalẹ nkan naa, ati pe o le ra ESP32-S3 RGB LED Matrix module lati awọn ile itaja affiliate ti a ṣe akojọ si labẹ apakan koodu.

Ti o ba kan bẹrẹ pẹlu bọọdi yii, ise yii jẹ ọna pipe lati:

  • Mọ daju pe ESP32-S3 bọọdi rẹ ati asopọ USB n ṣiṣẹ.
  • Fi idi rẹ mulẹ pe 8×8 RGB matrix ti wa ni asopọ si pin ti o tọ.
  • Danwo pẹlu ipilẹ animation akoko, awọ, ati imọlẹ.

ESP32-S3 RGB LED Matrix Module Akopọ

Bọọdi ti a lo ninu ise yii da lori ESP32-S3 microcontroller, ni idapo pẹlu 8×8 RGB LED matrix (64 RGB LEDs ti o ni adirẹsi kọọkan), QMI8658C motion sensor ni ẹhin, ati ibudo USB fun agbara ati siseto.:contentReference[oaicite:0]{index=0}

Awọn ẹya pataki ti module yii:

  • ESP32-S3 microcontroller oni-meji-mojuto pẹlu atilẹyin Wi-Fi ati Bluetooth.
  • 8×8 RGB LED matrix (64 RGB LEDs) ni iwaju bọọdi, pipe fun awọn aami, ọrọ, ati awọn ere kekere.
  • QMI8658C accelerometer / motion sensor ni ẹgbẹ ẹhin, ki o le rii tilt, gbigbe, ati iṣalaye fun awọn ise ibaraenisepo.
  • Ibudo USB fun siseto ati agbara.
  • Awọn pin ti o wa ni arọwọto ni ayika awọn egbegbe, ki bọọdi naa le tun ṣee lo bi ESP32 deede fun awọn ise IO miiran.
  • Awọn bọtini boot ati atunto fun titẹ sii ipo siseto ati tun bẹrẹ sketch rẹ.

Ninu ise akọkọ yii a lo apakan LED matrix ti bọọdi nikan, ṣugbọn ohun elo kanna lagbara to lati ṣiṣẹ awọn ifihan ọrọ, awọn ifiranṣẹ ti o ni iṣakoso nipasẹ wẹẹbu, awọn ere ti o ni iṣakoso nipasẹ gbigbe, ati diẹ sii — eyiti a bo ninu awọn ise miiran ti jara yii.

Awọn Ise Ti a Bo Ninu Fidio (Awọn Akoko)

Gbogbo awọn ise mẹfa pin fidio YouTube kanna. Awọn akoko isunmọ ni:

  • 00:00 – Ifihan
  • 02:01 – Fifi sori awọn bọọdi ESP32
  • 03:32 – Fifi sori awọn ile-ikawe
  • 05:32 – Ise 1: Dot Gbigbe (ati ipilẹ awọ / iyara eto)
  • 11:11 – Ise 2: Yiyi Ọrọ
  • 12:59 – Ise 3: HTTP Ọrọ
  • 16:41 – Ise 4: Tilt Dot
  • 18:55 – Ise 5: Ọfa Soke
  • 20:02 – Ise 6: Ere Ibi-afẹde

Fun oye ti o dara julọ, a gba ọ niyanju gidigidi lati wo fidio naa nigba ti o n tẹle nkan yii. Fidio naa ṣe afihan ihuwasi laaye ti dot ati ọkàn lori matrix, pẹlu gbogbo awọn igbesẹ inu Arduino IDE.

Fifi sori Awọn Bọọdi ESP32 ni Arduino IDE

Ṣaaju ki o to gbe koodu eyikeyi si ESP32-S3, o gbọdọ fi sori package atilẹyin bọọdi ESP32 ni Arduino IDE. Ninu fidio naa, eyi ni a ṣe afihan ni ayika apakan “fifi sori awọn bọọdi”.

Awọn igbesẹ gbogbogbo:

  1. Ṣii Arduino IDE ki o lọ si File > Preferences.
  2. Ninu aaye “Additional Boards Manager URLs”, ṣafikun URL osise awọn bọọdi ESP32.
  3. Ṣii Tools > Board > Boards Manager…, wa ESP32, ki o fi sori package fun awọn bọọdi ESP32.
  4. Lẹhin fifi sori, lọ si Tools > Board ki o yan titẹsi bọọdi ti o tọ fun ESP32-S3 RGB Matrix module rẹ.
  5. So bọọdi naa pọ nipasẹ USB ki o yan ibudo jara rẹ labẹ Tools > Port.

Ti a ko ba yan bọọdi ati ibudo ti o tọ, sketch rẹ kii yoo gbe soke, paapaa ti koodu rẹ ba tọ.

Fifi sori NeoMatrix ati Awọn Ile-ikawe Ti a Beere

LED matrix nlo Adafruit NeoPixel driver ni inu, ati fun irorun yiya 2D a lo Adafruit NeoMatrix library. Fifi sori NeoMatrix yoo fa awọn igbẹkẹle sinu laifọwọyi.

NeoMatrix ati Awọn Igbẹkẹle

Fi sori awọn atẹle yii lati Library Manager:

  • Adafruit NeoMatrix
  • Adafruit NeoPixel
  • Adafruit GFX Library

Ninu Library Manager:

  1. Ṣii Sketch > Include Library > Manage Libraries….
  2. Wa Adafruit NeoMatrix ki o tẹ Install.
  3. Gba IDE laaye lati fi sori gbogbo awọn igbẹkẹle ti a daba (Adafruit GFX ati Adafruit NeoPixel).

QMI8658C Motion Sensor Library (Fun Awọn Ise Nigbamii)

Ise 1 ko lo accelerometer taara, ṣugbọn o jẹ imọran ti o dara lati fi sori motion sensor library ni bayi nitori yoo nilo fun Awọn Ise 4, 5, ati 6.

Lati Library Manager:

  1. Wa QMI8658 library nipasẹ orukọ onkọwe rẹ.
  2. Fi sori library naa ki o han labẹ File > Examples fun idanwo iyara.

Ise 1 – Awọn Eto Koodu (Dot Gbigbe ati Ọkàn)

Ekun kikun ti o n ṣiṣẹ Project 1 ti wa ni fifuye laifọwọyi ni isalẹ nkan yii lori oju opo wẹẹbu. Nibi a n fojusi awọn eto pataki ti o ṣeeṣe ki o yipada: pin, nọmba awọn pikseli, imọlẹ, awọ, ati iyara iṣesi. Fun iṣesi ọkan a tun ṣe afihan bi o ṣe le ṣakoso awọ ati boya ọkan jẹ ri to tabi ti a ṣe ila rẹ.

LED Pin ati Nọmba Awọn Pikseli

Lori module yii, 8×8 RGB matrix ti sopọ si GPIO 14 ti ESP32-S3. Lapapọ nọmba awọn pikseli jẹ 64 (8 × 8). Ninu koodu rẹ, o yẹ ki o ri iru nkan bẹẹ:

 
// Pin ti a sopọ si 8×8 RGB matrix 
const int MATRIX_PIN = 14;
 // gbọdọ jẹ 14 lori module yii 
// Lapapọ nọmba awọn LED (8 × 8 matrix) 
const int NUMPIXELS = 64; // yipada nikan ti o ba lo iwọn matrix ti o yatọ 

Ti o ba fi NUMPIXELS silẹ ni 16 (lati apẹẹrẹ NeoPixel atilẹba), idamẹrin matrix nikan ni a o lo ati pe iṣesi kii yoo kun gbogbo iboju 8×8.

Aṣẹ Awọ ati Iru LED

Awọn okun LED ati awọn matrix ti o yatọ le lo awọn aṣẹ awọ ti o yatọ (fun apẹẹrẹ, GRB dipo RGB). Matrix lori igbimọ yii n reti aṣẹ RGB. Ninu olupilẹṣẹ NeoPixel tabi NeoMatrix, rii daju pe iru awọ ti ṣeto ni deede:


 // Apẹẹrẹ fun ohun elo NeoPixel: 
Adafruit_NeoPixel pixels( NUMPIXELS, MATRIX_PIN, NEO_RGB + NEO_KHZ800 // rii daju pe eyi ba aṣẹ awọ matrix mu ); 

Ti o ba ṣe akiyesi pe pupa ati alawọ ewe ti yipada lori ifihan, ṣayẹwo ila yii ni akọkọ ki o ṣatunṣe aṣẹ awọ.

Iyara Iṣesi (Idaduro Laarin Awọn Igbesẹ)

Iyara ti aami gbigbe ni a ma n ṣakoso nipasẹ iye idaduro ti o rọrun ni milliseconds. Idaduro kekere tumọ si iṣẹ iyara; idaduro nla tumọ si iṣẹ lọra. Wa oniyipada ti o jọ:

 
// Idaduro laarin awọn gbigbe aami (ni milliseconds)
 int dotDelayMs = 50; // 50 ms jẹ iyara pupọ 

Awọn atunṣe ti o wọpọ:

  • Ṣeto dotDelayMs = 20; fun aami gbigbe ti o yara pupọ.
  • Ṣeto dotDelayMs = 100; tabi ju bẹẹ lọ fun iṣesi lọra, alaafia.

Ninu iṣẹ loop(), iye yii ni a ma n fi si delay(dotDelayMs); lẹhin imudojuiwọn fireemu kọọkan.

Awọ Aami ati Imọlẹ

Awọ RGB ti aami gbigbe ni a ṣakoso nipasẹ awọn iye mẹta ni iwọn 0–255 (pupa, alawọ ewe, buluu). Fun apẹẹrẹ:

 
// Awọ aami (R, G, B) lati 0–255 uint8_t dotRed = 255; // pupa kikun 
uint8_t dotGreen = 0; // ko si alawọ ewe 
uint8_t dotBlue = 0; // ko si buluu 

Eyi yoo ṣe aami pupa didan. Diẹ ninu awọn akojọpọ iwulo:

  • Pupa mimọ: (255, 0, 0)
  • Alawọ ewe mimọ: (0, 255, 0)
  • Buluu mimọ: (0, 0, 255)
  • Ofeefee: (255, 255, 0)
  • Funfun: (255, 255, 255)

Imọlẹ lapapọ ni a ma n ṣakoso nipasẹ iṣẹ imọlẹ ti o yatọ:

 
// Imọlẹ matrix lapapọ (0–255) 
uint8_t matrixBrightness = 40; // pa a ni kekere lati yago fun didan pupọ // Ninu setup(): matrix.setBrightness(matrixBrightness); 

Iye to wa ni ayika 30–60 jẹ itura nigbagbogbo fun lilo inu ile.

Awọn Eto Iru Ọkan

Ni afikun si aami gbigbe, o le ṣe afihan ọkan kekere lori matrix nigbati igbimọ ba kọkọ tan. Koodu apẹẹrẹ nkan naa (ti a fiwe ni isalẹ) pẹlu awọn eto ti o jọ:

 
// Awọ ọkan (ọkan ri to) 
uint8_t heartRed = 255; 
uint8_t heartGreen = 0; 
uint8_t heartBlue = 0; 
// Aṣayan: rainbow tabi awọn ipo ila 
bool showOutlinedHeart = false; 
// true = ila nikan 
bool useRainbowHeart = false; 
// true = yiyi awọ lọ lori akoko 

Lilo ti o wọpọ:

  • Ṣeto showOutlinedHeart = false; ati useRainbowHeart = false; fun ọkan pupa ri to.
  • Ṣeto showOutlinedHeart = true; lati ṣe afihan ila ọkan nikan.
  • Ṣeto useRainbowHeart = true; lati yi awọ ọkan lọ ni igbagbogbo nipasẹ ipa rainbow.

A ṣe iyaworan ọkan nipa lilo awọn iṣẹ ipoidojuko NeoMatrix ninu koodu isalẹ nkan naa. O nilo lati yi awọn oniyipada loke nikan pada lati ṣe atunṣe irisi rẹ.

Akopọ

Project 1 fun ọ ni ibẹrẹ ti o rọrun ṣugbọn ti o lagbara pẹlu ESP32-S3 RGB LED Matrix: o kọ bi o ṣe le koju gbogbo awọn pikseli 64, ṣakoso awọ, ṣatunṣe imọlẹ, ati ṣeto iyara iṣesi. O tun rii bi o ṣe rọrun lati yipada lati aami gbigbe si ọkan ti o duro tabi ti o ni iṣesi lori ohun elo kanna.

Rii daju pe o wo fidio kikun ti a fi sii lori oju iwe yii fun ifihan igbesẹ-igbesẹ pipe ti awọn iṣesi aami gbigbe ati ọkan, pẹlu awọn iṣẹ akanṣe marun to ku. Koodu orisun kikun wa ni isalẹ nkan yii, ati pe o le ṣe atilẹyin awọn iṣẹ akanṣe ọjọ iwaju nipa rira module nipasẹ awọn ọna asopọ affiliate ti a ṣe akojọ si labẹ apakan koodu.

Aworan

ESP32 S3 Matrix  pin out
ESP32 S3 Matrix pin out
ESP32 S3 Matrix displaying green heart
ESP32 S3 Matrix displaying green heart
ESP32 S3 Matrix displaying rainbow heart
ESP32 S3 Matrix displaying rainbow heart
ESP32-S3 RGB Matrix- Mobile Phone Text
ESP32-S3 RGB Matrix- Mobile Phone Text
ESP32-S3-Mtrix - Alway Up
ESP32-S3-Mtrix - Alway Up
799-ESP32-S3 RGB LED Matrix Project 1 - Dot
Ede: C++
/* 
  Project 1: the Dot – ESP32-S3 RGB LED Matrix (Waveshare)

  dialysis a dot on scree and moves it
  
  ▶️ Video Tutorial:
  https://youtu.be/JKLuYrRcLMI

  📚⬇️ Resources & Code Page:
  https://robojax.com/RJT829

  QMI8658_RGB_2
*/

#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
 #include <avr/power.h> // Required for 16 MHz Adafruit Trinket
#endif

// Which pin on the Arduino is connected to the NeoPixels?
#define PIN        14 // On Trinket or Gemma, suggest changing this to 1

// How many NeoPixels are attached to the Arduino?
#define NUMPIXELS 64 // Popular NeoPixel ring size

// When setting up the NeoPixel library, we tell it how many pixels,
// and which pin to use to send signals. Note that for older NeoPixel
// strips you might need to change the third parameter -- see the
// strandtest example for more information on possible values.
Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_RGB + NEO_KHZ800);

#define DELAYVAL 50 // Time (in milliseconds) to pause between pixels

void setup() {
  // These lines are specifically to support the Adafruit Trinket 5V 16 MHz.
  // Any other board, you can remove this part (but no harm leaving it):
#if defined(__AVR_ATtiny85__) && (F_CPU == 16000000)
  clock_prescale_set(clock_div_1);
#endif
  // END of Trinket-specific code.

  pixels.begin(); // INITIALIZE NeoPixel strip object (REQUIRED)
}

void loop() {
  pixels.clear(); // Set all pixel colors to 'off'

  // The first NeoPixel in a strand is #0, second is 1, all the way up
  // to the count of pixels minus one.
  for(int i=0; i<NUMPIXELS; i++) { // For each pixel...

    // pixels.Color() takes RGB values, from 0,0,0 up to 255,255,255
    // Here we're using a moderately bright green color:
    pixels.setPixelColor(i, pixels.Color(255, 255, 0));

    pixels.show();   // Send the updated pixel colors to the hardware.

    delay(DELAYVAL); // Pause before next pass through loop
    pixels.clear();
  }



}

Orisun & itọkasi

Fáìlìs📁

Fayile Fritzing