Search Code

Aikin Matrix LED RGB na ESP32-S3 1- Digo na asali

Aikin Matrix LED RGB na ESP32-S3 1- Digo na asali

Aikin 1 – Matsa Dijital da Zuciya Animation akan ESP32-S3 RGB LED Matrix

A cikin wannan aikin, mun fara da mafi sauƙin animation da za a iya yi akan ESP32-S3 RGB LED Matrix: dijital guda ɗaya da ke motsawa a kan 8×8 RGB display. Bugu da ƙari, mun ƙara ƙaramin animation na zuciya don ka iya juya board ɗin zuwa ƙaramin nuni na ado lokacin da aka kunna shi. Wannan babban mataki ne na farko don samun kwanciyar hankali wajen sarrafa pixels guda ɗaya, launuka, da saurin animation akan matrix.

Dukkan ayyuka shida a cikin wannan jerin an nuna su kuma an bayyana su a cikin bidiyo guda ɗaya. Bidiyon ɗaya an saka shi a wannan shafin, don haka za ka iya kallon cikakken bayani mataki-mataki da kuma nuna rayuwar motsa dijital da zuciya animations. Cikakken lambar wannan aikin ana ɗora shi ta atomatik a ƙasan labarin, kuma za ka iya siyan ESP32-S3 RGB LED Matrix module daga shagunan affiliate da aka jera a ƙarƙashin sashin lambar.

Idan kana fara da wannan board ɗin, wannan aikin hanya ce mai kyau don:

  • Tabbatar cewa ESP32-S3 board ɗinka da USB connection suna aiki.
  • Tabbatar cewa 8×8 RGB matrix an haɗa shi da pin ɗin da ya dace.
  • Gwada lokacin animation na asali, launi, da haske.

ESP32-S3 RGB LED Matrix Module Overview

Board ɗin da aka yi amfani da shi a wannan aikin ya dogara ne akan ESP32-S3 microcontroller, haɗe da 8×8 RGB LED matrix (64 RGB LEDs masu iya magana guda ɗaya), QMI8658C motion sensor a baya, da USB port don wutar lantarki da shirye-shirye.:contentReference[oaicite:0]{index=0}

Muhimman fasalulluka na wannan module:

  • ESP32-S3 dual-core microcontroller tare da tallafin Wi-Fi da Bluetooth.
  • 8×8 RGB LED matrix (64 RGB LEDs) a gaban board ɗin, mai kyau don icons, rubutu, da ƙananan wasanni.
  • QMI8658C accelerometer / motion sensor a gefen baya, don haka za ka iya gano karkata, motsi, da yanayin kai don ayyukan mu'amala.
  • USB port don duka shirye-shirye da wutar lantarki.
  • Pins masu isa a kusa da gefuna, don haka board ɗin har yanzu ana iya amfani da shi kamar ESP32 na yau da kullun don sauran ayyukan IO.
  • Boot da reset buttons don shigar da yanayin shirye-shirye da sake kunna sketch ɗinka.

A cikin wannan aikin na farko, muna amfani da sashin LED matrix kawai na board ɗin, amma wannan hardware ɗin yana da ƙarfi sosai don gudanar da nuni na rubutu, saƙonni masu sarrafa yanar gizo, wasanni masu sarrafa motsi, da ƙari — waɗanda aka rufe su a cikin sauran ayyukan wannan jerin.

Ayyukan da aka Rufe a cikin Bidiyo (Lokutan)

Dukkan ayyuka shida suna raba bidiyon YouTube ɗaya. Lokutan da aka kiyasta sune:

  • 00:00 – Gabatarwa
  • 02:01 – Shigar da ESP32 boards
  • 03:32 – Shigar da libraries
  • 05:32 – Aiki 1: Matsa Dijital (da saitunan launi / saurin asali)
  • 11:11 – Aiki 2: Rubutu Scroll
  • 12:59 – Aiki 3: HTTP Rubutu
  • 16:41 – Aiki 4: Tilt Dijital
  • 18:55 – Aiki 5: Kibiya Sama
  • 20:02 – Aiki 6: Wasan Target

Don mafi kyawun fahimta, ana ƙarfafa ka sosai da ka kalli bidiyon yayin da kake bin wannan labarin. Bidiyon yana nuna halin rayuwa na dijital da zuciya akan matrix, da duk matakan cikin Arduino IDE.

Shigar da ESP32 Boards a cikin Arduino IDE

Kafin ɗora kowace lamba zuwa ESP32-S3, dole ne ka shigar da kunshin tallafin ESP32 board a cikin Arduino IDE. A cikin bidiyon, an nuna wannan a kusa da sashin “shigar da boards”.

Matakan gaba ɗaya:

  1. Buɗe Arduino IDE kuma je zuwa File > Preferences.
  2. A cikin filin “Additional Boards Manager URLs”, ƙara URL ɗin ESP32 boards na hukuma.
  3. Buɗe Tools > Board > Boards Manager…, bincika ESP32, kuma shigar da kunshin don ESP32 boards.
  4. Bayan shigarwa, je zuwa Tools > Board kuma zaɓi shigarwar board ɗin da ta dace don ESP32-S3 RGB Matrix module ɗinka.
  5. Haɗa board ɗin ta USB kuma zaɓi serial port ɗinsa a ƙarƙashin Tools > Port.

Idan ba a zaɓi board ɗin da port ɗin da suka dace ba, sketch ɗinka ba zai ɗora ba, ko da lambarka daidai ce.

Shigar da NeoMatrix da Libraries da Ake Bukata

LED matrix ɗin yana amfani da Adafruit NeoPixel driver a ciki, kuma don sauƙin zane na 2D, muna amfani da Adafruit NeoMatrix library. Shigar da NeoMatrix zai jawo abubuwan dogaro ta atomatik.

NeoMatrix da Abubuwan Dogaro

Shigar da waɗannan daga Library Manager:

  • Adafruit NeoMatrix
  • Adafruit NeoPixel
  • Adafruit GFX Library

A cikin Library Manager:

  1. Buɗe Sketch > Include Library > Manage Libraries….
  2. Bincika Adafruit NeoMatrix kuma danna Install.
  3. Ba da damar IDE ta shigar da duk abubuwan dogaro da aka ba da shawara (Adafruit GFX da Adafruit NeoPixel).

QMI8658C Motion Sensor Library (Don Ayyukan Gaba)

Aiki 1 baya amfani da accelerometer kai tsaye, amma yana da kyau a shigar da motion sensor library yanzu domin za a buƙace shi don Ayyuka 4, 5, da 6.

Daga Library Manager:

  1. Bincika QMI8658 library ta sunan marubucinsa.
  2. Shigar da library ɗin don ya bayyana a ƙarƙashin File > Examples don gwaji mai sauri.

Aiki 1 – Saitunan Lamba (Matsa Dijital da Zuciya)

Katin cikakken zanen da ke gudanar da Project 1 ana loda shi kai tsaye a ƙarƙashin wannan labarin a gidan yanar gizon. A nan muna mai da hankali ne kawai kan mahimman saitunan da kuke iya canzawa: pin, adadin pixels, haske, launi, da saurin motsi. Ga animation na zuciya kuma muna nuna yadda ake sarrafa launi da kuma ko zuciyar tana da ƙarfi ko kuma an zana ta kawai.

LED Pin da Adadin Pixels

A wannan module, matrix 8×8 RGB an haɗa shi da GPIO 14 na ESP32-S3. Jimillar adadin pixels shine 64 (8 × 8). A cikin code ɗinku, ya kamata ku ga wani abu mai kama da wannan:

 
// Pin da aka haɗa da matrix 8×8 RGB 
const int MATRIX_PIN = 14;
 // dole ne ya zama 14 akan wannan module 
// Jimillar adadin LEDs (matrix 8 × 8) 
const int NUMPIXELS = 64; // canza kawai idan kuna amfani da girman matrix daban 

Idan da gangan kuka bar NUMPIXELS a 16 (daga ainihin misalin NeoPixel), kashi ɗaya cikin huɗu na matrix kawai za a yi amfani da shi kuma animation ba zai cika dukkan allo 8×8 ba.

Tsarin Launi da Nau'in LED

Daban-daban na LED strips da matrices na iya amfani da tsarin launi daban-daban (misali, GRB maimakon RGB). Matrix ɗin da ke kan wannan board yana tsammanin tsarin RGB. A cikin maginin NeoPixel ko NeoMatrix, tabbatar da cewa an saita nau'in launi daidai:


 // Misali na abu mai kama da NeoPixel: 
Adafruit_NeoPixel pixels( NUMPIXELS, MATRIX_PIN, NEO_RGB + NEO_KHZ800 // tabbatar da wannan ya dace da tsarin launi na matrix ); 

Idan kun lura cewa ja da kore an musanya su akan nuni, duba wannan layin da farko kuma gyara tsarin launi.

Saurin Animation (Jinkiri Tsakanin Matakai)

Saurin motsin digo yawanci ana sarrafa shi ne ta hanyar ƙimar jinkiri mai sauƙi a milliseconds. Ƙaramin jinkiri yana nufin saurin motsi; babban jinkiri yana nufin jinkirin motsi. Nemi wani canji mai kama da:

 
// Jinkiri tsakanin motsin digo (a milliseconds)
 int dotDelayMs = 50; // 50 ms yana da sauri sosai 

Gyare-gyare na yau da kullun:

  • Saita dotDelayMs = 20; don digo mai motsi da sauri sosai.
  • Saita dotDelayMs = 100; ko sama da haka don motsi mai jinkiri, mai natsuwa.

A cikin aikin loop(), wannan ƙimar yawanci ana wucewa zuwa delay(dotDelayMs); bayan kowane sabunta frame.

Launin Digo da Haske

Launin RGB na digo mai motsi ana sarrafa shi ne ta hanyar ƙimomi uku a cikin kewayon 0–255 (ja, kore, shuɗi). Misali:

 
// Launin digo (R, G, B) daga 0–255 uint8_t dotRed = 255; // cikakken ja 
uint8_t dotGreen = 0; // babu kore 
uint8_t dotBlue = 0; // babu shuɗi 

Wannan zai samar da digo mai haske ja. Wasu haɗuwa masu amfani:

  • Ja zalla: (255, 0, 0)
  • Kore zalla: (0, 255, 0)
  • Shuɗi zalla: (0, 0, 255)
  • Rawayen: (255, 255, 0)
  • Fari: (255, 255, 255)

Hasken gabaɗaya yawanci ana sarrafa shi ne ta hanyar aikin haske daban:

 
// Hasken matrix gabaɗaya (0–255) 
uint8_t matrixBrightness = 40; // kiyaye shi ƙasa don guje wa ƙyalli mai yawa // A cikin setup(): matrix.setBrightness(matrixBrightness); 

Ƙimar kusan 30–60 yawanci tana da kyau don amfani a cikin gida.

Saitunan Siffar Zuciya

Baya ga digo mai motsi, kuna iya nuna ƙaramin zuciya akan matrix lokacin da board ɗin ya fara kunna. Code ɗin misalin labarin (wanda aka loda a ƙasa) ya haɗa da saituna masu kama da:

 
// Launin zuciya (zuciya mai ƙarfi) 
uint8_t heartRed = 255; 
uint8_t heartGreen = 0; 
uint8_t heartBlue = 0; 
// Na zaɓi: yanayin bakan gizo ko zane kawai 
bool showOutlinedHeart = false; 
// gaskiya = zane kawai 
bool useRainbowHeart = false; 
// gaskiya = canza launuka akan lokaci 

Amfani na yau da kullun:

  • Saita showOutlinedHeart = false; da useRainbowHeart = false; don zuciya mai ƙarfi ja.
  • Saita showOutlinedHeart = true; don nuna zanen zuciya kawai.
  • Saita useRainbowHeart = true; don ci gaba da canza launin zuciya ta hanyar tasirin bakan gizo.

Ana zana zuciyar ta amfani da ayyukan haɗin gwiwar NeoMatrix a cikin code ɗin da ke ƙarƙashin labarin. Kuna buƙatar canza canje-canjen da ke sama kawai don keɓance kamanninsa.

Taƙaitawa

Project 1 yana ba ku mafari mai sauƙi amma mai ƙarfi tare da ESP32-S3 RGB LED Matrix: kuna koyon yadda ake magance dukkan pixels 64, sarrafa launi, daidaita haske, da saita saurin motsi. Kuna kuma ganin yadda yake da sauƙi a canza daga digo mai motsi zuwa zuciya mai tsaye ko mai motsi akan wannan hardware ɗin.

Tabbatar da kallon cikakken bidiyon da aka saka akan wannan shafin don cikakken nunin mataki-mataki na motsin digo da animations na zuciya, tare da sauran ayyuka biyar. Cikakken code ɗin tushe yana samuwa a ƙarƙashin wannan labarin, kuma kuna iya tallafawa ayyukan gaba ta hanyar siyan module ɗin ta hanyar hanyoyin haɗin affiliate da aka jera a ƙarƙashin sashin code.

Hotuna

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
Harshe: 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();
  }



}

Abin da zaka iya bukata

Albarkatun da kuma shafukan da za a duba

Fayiloli📁

Fayil Fritzing