Innholdsfortegnelse:
- Trinn 1: Ting som brukes i dette prosjektet
- Trinn 2: Historie
- Trinn 3: Maskinvaretilkobling
- Trinn 4: Programvareprogrammering
- Trinn 5: Kode
Video: Lys opp valentinen din med glitrende matrise: 5 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:23
Valentinsdag er en mulighet for deg til å sende kjærlighetsmeldinger. Hvorfor ikke lage et morsomt LED -ansikt med rimelige komponenter for å uttrykke din følelse!
Trinn 1: Ting som brukes i dette prosjektet
Maskinvarekomponenter
- Seeeduino V4.2
- Base skjold
- Grove - Rød LED Matrix m/driver
- Grove - Gest (PAJ7620U2)
Programvare -apper og online -tjenester
Arduino IDE
Trinn 2: Historie
Trinn 3: Maskinvaretilkobling
I dette prosjektet bruker vi gestsensoren som inngang og gir tilbakemeldingen til LED -matrisedriveren for å mate den røde LED -matrisen.
Du må koble Grove - Gesture og Grove - Red LED Matrix w/Driver til I^2^C -porten på basiskjoldet som er plugget inn i Seeeduino. Koble deretter Seeeduino til PC via en USB -kabel.
Trinn 4: Programvareprogrammering
Planen for dette prosjektet er å vise den statiske emojien (gråtende ansikt og ventende ansikt) når det ikke er lest noen venstre eller høyre gest.
Vis dynamisk øye-posisjon-endre emoji med kontrollert av venstre eller høyre gest når det er venstre eller høyre gest blitt lest.
Ved den spesifikke øyeposisjonen vil et bankende hjerte vises på LED -matrisen.
LED -skjermmønstrene er designet av LED Matrix Editor, du kan endre eller legge til LED -mønstrene dine i programprogrammer ovenfor.
For å gjøre deg klar for dette prosjektet, er det nødvendig å installere Grove - Gesture, Grove - Red LED Matrix w/Driver og MsTimer2 -biblioteker i Arduino IDE.
#include "Grove_LED_Matrix_Driver_HT16K33.h"
#include "MsTimer2.h" #include "paj7620.h" #include "Wire.h"
Under installasjonsprosedyren initialiserte vi funksjonene Serial, matrix og MsTimer2. Initialized Serial brukes til å feilsøke programmet, så det er unødvendig å koble til PC eller bruke Serial Monitor etter feilsøking. Vi bruker MsTimer2 i dette prosjektet for å kontrollere visningen av den statiske emojien.
// Initialiserte serien for å feilsøke.
Serial.begin (9600); mens (! Seriell); paj7620Init (); Wire.begin (); matrix.init (); matrix.setBrightness (15); matrix.setBlinkRate (BLINK_OFF); MsTimer2:: set (1000, displayStatic); MsTimer2:: start ();
I hovedsløyfen tar vi bare to utganger fra gest -sensoren, GES_RIGHT_FLAG, GES_LEFT_FLAG, og disse brukes til å veilede displayDynamic () -funksjonen.
DisplayDynamic () -funksjonen beregner intervallet fra forrige gang dynamisk emoji ble vist til gjeldende tid, hvis intervallet overstiger enn TIMEOUT, stopper det avspillingen av statisk emoji og setter den viste dynamiske emoji -indeksen til å starte. Når bevegelser fra venstre til høyre leses, er startindeksen 0, og indeksen økes etter at venstre-til-høyre-bevegelsene er lest igjen. Ellers er startindeksen den siste indeksen for DYNAMIC array, og indeksen vil bli redusert.
void displayDynamic (bool leftToRight) {
usignert lang currentTime = millis (); hvis (currentTime - prevTime> TIMEOUT) {dIndex = leftToRight? 0: ARRAY_LENGTH (DYNAMIC) - 1; showStatic = false; } // Dette brukes for å unngå å overskride grensen. hvis (dIndex> = ARRAY_LENGTH (DYNAMIC) || dIndex <= -1) {heartBeat (); dIndex = leftToRight? ARRAY_LENGTH (DYNAMIC) - 1: 0; } prevTime = currentTime; matrixDisplay = DYNAMIC [leftToRight? dIndex ++: dIndex--]; }
Ingen gest blir lest hvis TIMEOUT -perioden overskrides, statisk emoji -avspilling blir gjenopprettet.
Last opp programmet til Seeeduino, alt er gjort. Spill og ha det gøy!
Trinn 5: Kode
#include "Grove_LED_Matrix_Driver_HT16K33.h"
#include "MsTimer2.h" #include "paj7620.h" #include "Wire.h" #define TIMEOUT 5000 #define GES_REG_ADDR 0x43 #define ARRAY_LENGTH (array) (sizeof (array) / sizeof (array [0])) Matrise_8x8 matrise; uint64_t matrixDisplay = 0; usignert lang prevTime = millis (); int8_t sIndex = 0; bool showStatic = true; const uint64_t STATIC = {0x00003c0000a54200, 0x00003c000000e700, 0x00003c004242e700}; int8_t dIndex = 0; const uint64_t DYNAMIC = {0x00003c000021e700, 0x00003c000042e700, 0x00003c000084e700}; const uint64_t HEART = {0x00183c7e7e240000, 0x00183c7effff6600, 0x183c7effffffff66, 0x00183c7effff6600}; void displayStatic (void) {if (showStatic) {matrixDisplay = STATIC [sIndex]; sIndex = (sIndex + 1) % ARRAY_LENGTH (STATIC); }} void heartBeat () {for (uint8_t i = 0; i TIMEOUT) {showStatic = false; prevTime = currentTime; dIndex = leftToRight? 0: ARRAY_LENGTH (DYNAMIC) - 1; } // Dette brukes for å unngå å overskride grensen. hvis (dIndex> = ARRAY_LENGTH (DYNAMIC) || dIndex TIMEOUT) {showStatic = true; } matrix.writeOnePicture (matrixDisplay); matrix.display (); forsinkelse (100); }
Anbefalt:
Lag din egen 10x10 LED -matrise: 5 trinn (med bilder)
Lag din egen 10x10 LED -matrise: I dette prosjektet vil jeg vise deg hvordan du kombinerer allment tilgjengelige WS2812B RGB -lysdioder med en Arduino Nano for å lage en fargerik 10x10 LED -matrise. La oss komme i gang
Lys opp LED -kort: 8 trinn (med bilder)
Lys opp LED -kort: Hei folkens Det er aardvark igjen for en annen instruerbar. Dette er en rimeligere måte å lage et opplyst kort på enn noen andre metoder på nettet. Jeg synes dette prosjektet er en morsom måte å lære tenåringsjenter og gutter om strøm. Jeg håper du koser deg og liker det
Lys meg opp !: 20 trinn (med bilder)
Light Me Up !: medlemmer av prosjektgruppen (Hyewon Shin, Eunjeong Ko, Junsung Yi) Hva om du kunne røre og designe lyset? Hvordan ville det føles hvis du hadde et vakkert lysmønster som du designet selv med en interessant animasjon? Lys meg opp vil være et jeg
Lys din valentine med glitrende RGB -matrise: 3 trinn
Lys opp din valentine med glitrende RGB -matrise: Valentinsdag kommer, møter du noen som ble forelsket ved første blikk?
Lys opp Chanukah-genser med individuelle "lys": 7 trinn (med bilder)
Opplyst Chanukah-genser med individuelle "stearinlys": Høytidsfesten og i år kan du være festens lysende stjerne med en lys menoragenser! Dette er et sydd kretsprosjekt som bruker relativt rimelige materialer som er lett å finne på nettet og i håndverksbutikken. Enda bedre