This tutorial is part of: Matrix ya LED ya ESP32-S3 RGB
Mradi mzuri wa kuunda kwa ajili ya matumizi ya kufurahisha na ya vitendo kwa kutumia moduli ya ESP32-S3 RGB Matrix. Viungo vya video zingine viko chini ya makala haya.
Mradi wa Matrix ya LED ya RGB ya ESP32-S3 1- Nukta ya Msingi
Mradi 1 – Nukta Inayosonga na Uhuishaji wa Moyo kwenye ESP32-S3 RGB LED Matrix
Katika mradi huu tunaanza na uhuishaji rahisi zaidi unaowezekana kwenye ESP32-S3 RGB LED Matrix: nukta moja inayosonga kwenye skrini ya 8×8 RGB. Zaidi ya hayo, tunaongeza uhuishaji mdogo wa moyo ili uweze kugeuza bodi kuwa skrini ndogo ya mapambo inapowashwa. Hii ni hatua nzuri ya kwanza ya kujifunza kudhibiti pixel binafsi, rangi, na kasi ya uhuishaji kwenye matrix.
Miradi yote sita katika mfululizo huu imeonyeshwa na kuelezewa katika video moja. Video hiyo hiyo imepachikwa kwenye ukurasa huu, ili uweze kutazama maelezo kamili ya hatua kwa hatua na maonyesho ya moja kwa moja ya uhuishaji wa nukta na moyo. Msimbo kamili wa mradi huu umepakiwa kiotomatiki chini ya makala, na unaweza kununua moduli ya ESP32-S3 RGB LED Matrix kutoka maduka ya washirika yaliyoorodheshwa chini ya sehemu ya msimbo.
Ikiwa unaanza tu na bodi hii, mradi huu ni njia bora ya:
- Kuthibitisha kwamba bodi yako ya ESP32-S3 na muunganisho wa USB zinafanya kazi.
- Kuhakikisha kwamba matrix ya 8×8 RGB imeunganishwa kwenye pini sahihi.
- Kujaribu muda wa uhuishaji wa msingi, rangi, na mwangaza.

Muhtasari wa Moduli ya ESP32-S3 RGB LED Matrix
Bodi inayotumika katika mradi huu inategemea microcontroller ya ESP32-S3, ikiunganishwa na matrix ya 8×8 RGB LED (LED 64 za RGB zinazoweza kushughulikiwa kibinafsi), sensor ya mwendo ya QMI8658C nyuma, na bandari ya USB kwa nguvu na upangaji programu.
Vipengele muhimu vya moduli hii:

- ESP32-S3 microcontroller ya cores mbili yenye msaada wa Wi-Fi na Bluetooth.
- Matrix ya 8×8 RGB LED (LED 64 za RGB) mbele ya bodi, bora kwa icons, maandishi, na michezo midogo.
- Sensor ya QMI8658C accelerometer / mwendo upande wa nyuma, ili uweze kugundua kuinama, mwendo, na mwelekeo kwa miradi shirikishi.
- Bandari ya USB kwa upangaji programu na nguvu.
- Pini zinazoweza kufikiwa kuzunguka kingo, ili bodi iweze kutumika kama ESP32 ya kawaida kwa miradi mingine ya IO.
- Vifungo vya boot na reset kwa kuingia hali ya upangaji programu na kuanzisha upya sketch yako.
Katika mradi huu wa kwanza tunatumia tu sehemu ya LED matrix ya bodi, lakini hardware hiyo hiyo ina nguvu ya kutosha kuendesha maonyesho ya maandishi, ujumbe unaodhibitiwa na wavuti, michezo inayodhibitiwa na mwendo, na zaidi — ambayo yamefunikwa katika miradi mingine ya mfululizo huu.
Miradi Iliyofunikwa kwenye Video (Nyakati)
Miradi yote sita inashiriki video moja ya YouTube. Nyakati za takriban ni:
- 00:00 – Utangulizi
- 02:01 – Kusakinisha bodi za ESP32
- 03:32 – Kusakinisha maktaba
- 05:32 – Mradi 1: Nukta Inayosonga (na mipangilio ya msingi ya rangi / kasi)
- 11:11 – Mradi 2: Kusogeza Maandishi
- 12:59 – Mradi 3: Maandishi ya HTTP
- 16:41 – Mradi 4: Nukta ya Kuinama
- 18:55 – Mradi 5: Mshale Juu
- 20:02 – Mradi 6: Mchezo wa Shabaha
Kwa uelewa bora, unahimizwa sana kutazama video huku ukifuata makala hii. Video inaonyesha tabia ya moja kwa moja ya nukta na moyo kwenye matrix, pamoja na hatua zote ndani ya Arduino IDE.
Kusakinisha Bodi za ESP32 kwenye Arduino IDE
Kabla ya kupakia msimbo wowote kwenye ESP32-S3, lazima usakinishe kifurushi cha msaada wa bodi za ESP32 kwenye Arduino IDE. Katika video, hii inaonyeshwa karibu na sehemu ya “kusakinisha bodi”.
Hatua za jumla:
- Fungua Arduino IDE na nenda kwenye
File > Preferences. - Katika sehemu ya “Additional Boards Manager URLs”, ongeza URL rasmi ya bodi za ESP32.
- Fungua
Tools > Board > Boards Manager…, tafutaESP32, na usakinishe kifurushi cha bodi za ESP32. - Baada ya usakinishaji, nenda kwenye
Tools > Boardna uchague ingizo sahihi la bodi kwa moduli yako ya ESP32-S3 RGB Matrix. - Unganisha bodi kupitia USB na uchague bandari yake ya serial chini ya
Tools > Port.
Ikiwa bodi na bandari sahihi hazijachaguliwa, sketch yako haitapakia, hata kama msimbo wako ni sahihi.
Kusakinisha NeoMatrix na Maktaba Zinazohitajika
Matrix ya LED inatumia kiendeshaji cha Adafruit NeoPixel ndani, na kwa kuchora 2D rahisi tunatumia maktaba ya Adafruit NeoMatrix. Kusakinisha NeoMatrix kutavuta kiotomatiki vitegemezi.
NeoMatrix na Vitegemezi
Sakinisha zifuatazo kutoka kwenye Library Manager:
Adafruit NeoMatrixAdafruit NeoPixelAdafruit GFX Library
Katika Library Manager:
- Fungua
Sketch > Include Library > Manage Libraries…. - Tafuta
Adafruit NeoMatrixna bofya Install. - Ruhusu IDE kusakinisha vitegemezi vyote vilivyopendekezwa (Adafruit GFX na Adafruit NeoPixel).
Maktaba ya Sensor ya Mwendo ya QMI8658C (Kwa Miradi ya Baadaye)
Mradi 1 hautumii accelerometer moja kwa moja, lakini ni wazo zuri kusakinisha maktaba ya sensor ya mwendo sasa kwa sababu itahitajika kwa Miradi 4, 5, na 6.
Kutoka kwenye Library Manager:
- Tafuta maktaba ya QMI8658 kwa jina la mwandishi wake.
- Sakinisha maktaba ili ionekane chini ya
File > Exampleskwa majaribio ya haraka.
Mradi 1 – Mipangilio ya Msimbo (Nukta Inayosonga na Moyo)
Mchoro kamili unaoendesha Mradi wa 1 hupakiwa kiotomatiki chini ya makala hii kwenye tovuti. Hapa tunazingatia tu mipangilio muhimu ambayo kuna uwezekano utaibadilisha: pini, idadi ya saizi (pixels), mwangaza, rangi, na kasi ya uhuishaji. Kwa uhuishaji wa moyo, pia tunaonyesha jinsi ya kudhibiti rangi na kama moyo ni imara au una mzunguko tu.
Pini ya LED na Idadi ya Saizi
Kwenye moduli hii, matrix ya RGB 8×8 imeunganishwa kwenye GPIO 14 ya ESP32-S3. Jumla ya idadi ya saizi ni 64 (8 × 8). Katika msimbo wako, unapaswa kuona kitu sawa na:
// Pini iliyounganishwa kwenye matrix ya RGB 8×8
const int MATRIX_PIN = 14;
// lazima iwe 14 kwenye moduli hii
// Jumla ya idadi ya LED (matrix 8 × 8)
const int NUMPIXELS = 64; // badilisha tu ikiwa unatumia ukubwa tofauti wa matrix
Ikiwa kwa bahati mbaya utaacha NUMPIXELS kwenye 16 (kutoka mfano wa awali wa NeoPixel), robo tu ya matrix itatumika na uhuishaji hautajaza skrini nzima ya 8×8.
Mpangilio wa Rangi na Aina ya LED
Mikanda na matrix tofauti za LED zinaweza kutumia mpangilio tofauti wa rangi (kwa mfano, GRB badala ya RGB). Matrix kwenye bodi hii inatarajia mpangilio wa RGB. Katika kijenzi cha NeoPixel au NeoMatrix, hakikisha aina ya rangi imewekwa kwa usahihi:
// Mfano wa kitu cha mtindo wa NeoPixel:
Adafruit_NeoPixel pixels( NUMPIXELS, MATRIX_PIN, NEO_RGB + NEO_KHZ800 // hakikisha hii inalingana na mpangilio wa rangi wa matrix );
Ikiwa utagundua kuwa nyekundu na kijani zimebadilishana kwenye skrini, angalia mstari huu kwanza na urekebishe mpangilio wa rangi.
Kasi ya Uhuishaji (Ucheleweshaji Kati ya Hatua)
Kasi ya nukta inayosonga kawaida hudhibitiwa na thamani rahisi ya ucheleweshaji katika millisekunde. Ucheleweshaji mdogo unamaanisha mwendo wa haraka; ucheleweshaji mkubwa unamaanisha mwendo wa polepole. Tafuta kigezo sawa na:
// Ucheleweshaji kati ya miondoko ya nukta (katika millisekunde)
int dotDelayMs = 50; // 50 ms ni ya haraka kiasi
Marekebisho ya kawaida:
- Weka
dotDelayMs = 20;kwa nukta inayosonga haraka sana. - Weka
dotDelayMs = 100;au zaidi kwa uhuishaji wa polepole na wa utulivu.
Katika kazi ya loop(), thamani hii kawaida hupitishwa kwa delay(dotDelayMs); baada ya kila sasisho la fremu.
Rangi ya Nukta na Mwangaza
Rangi ya RGB ya nukta inayosonga inadhibitiwa na thamani tatu katika kiwango cha 0–255 (nyekundu, kijani, bluu). Kwa mfano:
// Rangi ya nukta (R, G, B) kutoka 0–255 uint8_t dotRed = 255; // nyekundu kamili
uint8_t dotGreen = 0; // hakuna kijani
uint8_t dotBlue = 0; // hakuna bluu
Hii itazalisha nukta nyekundu angavu. Michanganyiko mingine muhimu:
- Nyekundu safi:
(255, 0, 0) - Kijani safi:
(0, 255, 0) - Bluu safi:
(0, 0, 255) - Njano:
(255, 255, 0) - Nyeupe:
(255, 255, 255)
Mwangaza wa jumla kawaida hudhibitiwa na kazi tofauti ya mwangaza:
// Mwangaza wa jumla wa matrix (0–255)
uint8_t matrixBrightness = 40; // weka chini ili kuepuka mwangaza mwingi // Katika setup(): matrix.setBrightness(matrixBrightness);
Thamani karibu na 30–60 kawaida ni nzuri kwa matumizi ya ndani.
Mipangilio ya Sura ya Moyo
Mbali na nukta inayosonga, unaweza kuonyesha moyo mdogo kwenye matrix wakati bodi inapowashwa kwa mara ya kwanza. Msimbo wa mfano wa makala (uliopakiwa hapa chini) unajumuisha mipangilio sawa na:
// Rangi ya moyo (moyo imara)
uint8_t heartRed = 255;
uint8_t heartGreen = 0;
uint8_t heartBlue = 0;
// Hiari: hali za upinde wa mvua au mzunguko
bool showOutlinedHeart = false;
// true = mzunguko tu
bool useRainbowHeart = false;
// true = badilisha rangi kwa muda
Matumizi ya kawaida:
- Weka
showOutlinedHeart = false;nauseRainbowHeart = false;kwa moyo imara nyekundu. - Weka
showOutlinedHeart = true;kuonyesha mzunguko wa moyo tu. - Weka
useRainbowHeart = true;kubadilisha rangi ya moyo kwa upinde wa mvua kila wakati.
Moyo huchorwa kwa kutumia kazi za kuratibu za NeoMatrix ndani ya msimbo chini ya makala. Unahitaji tu kubadilisha vigezo vilivyo hapo juu ili kubinafsisha muonekano wake.
Muhtasari
Mradi wa 1 unakupa mwanzo rahisi lakini wenye nguvu na ESP32-S3 RGB LED Matrix: unajifunza jinsi ya kushughulikia saizi zote 64, kudhibiti rangi, kurekebisha mwangaza, na kuweka kasi ya uhuishaji. Pia unaona jinsi ilivyo rahisi kubadili kutoka nukta inayosonga hadi moyo tuli au uliohuishwa kwenye vifaa vile vile.
Hakikisha unatazama video kamili iliyopachikwa kwenye ukurasa huu kwa maonyesho kamili ya hatua kwa hatua ya nukta inayosonga na uhuishaji wa moyo, pamoja na miradi mitano iliyobaki. Msimbo kamili wa chanzo unapatikana chini ya makala hii, na unaweza kusaidia miradi ya baadaye kwa kununua moduli kupitia viungo vya washirika vilivyoorodheshwa chini ya sehemu ya msimbo.
This tutorial is part of: Matrix ya LED ya ESP32-S3 RGB
- Mradi wa Matrix ya LED ya RGB ya ESP32-S3 2 - Maandishi Yanayotembea
- Mradi wa ESP32-S3 RGB LED Matrix 3 - Maandishi kutoka kwa simu ya mkononi
- Mradi wa ESP32-S3 RGB LED Matrix 4 - Nukta ya kuinamia
- Mradi wa Matrix ya LED ya RGB ya ESP32-S3 5 - Mshale daima juu
- Mchezo wa Cible wa Mradi wa Matrix ya LED ya RGB ya ESP32-S3 6
- Mradi wa Saa ya Matrix ya LED ya RGB ya ESP32-S3 Wi-Fi + NTP -1 Saa ya Msingi
- Mradi wa Saa ya Mtandao ya Matrix ya LED ya RGB ya ESP32-S3 - Saa 2 za rangi nyingi za Kuonyesha Muda na Tarehe
- Mradi wa Saa ya Mtandao ya Matrix ya LED ya RGB ya ESP32-S3 - Rangi 3 za Usiku na Tarehe
- Mradi wa Saa ya Mtandao ya Matrix ya LED ya RGB ya ESP32-S3 - Rangi 5 za Upinde wa mvua
- Mradi wa Saa ya Mtandao ya Matrix ya LED ya RGB ya ESP32-S3 - Rangi 4 za Nasibu
- ESP32-S3 RGB LED Matrix test for RGB, GRB setting
/*
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();
}
}
Tänker att du kanske behöver
-
Amazon
-
eBay
-
AliExpressPurchase ESP32-S3 RGB Matrix from AliExpresss.click.aliexpress.com
-
AliExpressPurchase ESP32-S3 RGB Matrix from AliExpress (2)s.click.aliexpress.com
Resurser och referenser
-
Interna🎨 Color picker Toolrobojax.com
Filer📁
Fritzing-fil
-
esp32-S3-supermini-tht fritzing part
esp32-S3-supermini-tht.fzpz0.02 MB