Sisukord:
- Samm: selles projektis kasutatud asjad
- 2. samm: lugu
- Samm: riistvaraühendus
- 4. samm: tarkvara programmeerimine
- Samm: kood
Video: Valgustage oma valentin sädeleva maatriksi abil: 5 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:48
Sõbrapäev on võimalus armastussõnumeid saata. Miks mitte teha lõbus LED -nägu odavate komponentidega, et oma tundeid väljendada!
Samm: selles projektis kasutatud asjad
Riistvara komponendid
- Seeeduino V4.2
- Aluskilp
- Grove - punane LED -maatriks draiveriga
- Grove - žest (PAJ7620U2)
Tarkvararakendused ja võrguteenused
Arduino IDE
2. samm: lugu
Samm: riistvaraühendus
Selles projektis kasutame žestandurit sisendina ja anname tagasisidet LED -maatriksi draiverile, et toita punast LED -maatriksit.
Peate ühendama Grove - žesti ja Grove - punase LED -maatriksi draiveriga Seeeduinoga ühendatud põhikilbi I^2^C porti. Seejärel ühendage Seeeduino USB -kaabli abil arvutiga.
4. samm: tarkvara programmeerimine
Selle projekti plaan on kuvada staatiline emotikon (nuttev nägu ja ootav nägu), kui vasakut või paremat žesti pole loetud.
Kuvage dünaamilisi silmaasendi muutmise emotikone, mida juhitakse vasaku või parema liigutusega, kui loetakse vasakut või paremat žesti.
Konkreetses silmaasendis kuvatakse LED -maatriksil pekslev süda.
LED -ekraanimustrid on kujundanud LED -maatriksiredaktor, saate oma LED -mustreid muuta või lisada ülaltoodud programmisaadetes.
Selle projekti ettevalmistamiseks on vaja Arduino IDE -sse installida raamatukogud Grove - Gesture, Grove - Red LED Matrix w/Driver ja MsTimer2.
#include "Grove_LED_Matrix_Driver_HT16K33.h"
#include "MsTimer2.h" #include "paj7620.h" #include "Wire.h"
Seadistusprotseduuri ajal lähtestasime funktsioonid Serial, maatriks ja MsTimer2. Initsialiseeritud seeriat kasutatakse programmi silumiseks, seega pole pärast silumist vaja arvutiga ühendust luua ega Serial Monitori kasutada. Selles projektis kasutame staatiliste emotikonide kuvamise juhtimiseks MsTimer2.
// Sarja vormindamine silumiseks.
Seriaalne algus (9600); while (! Seeria); paj7620Init (); Wire.begin (); matrix.init (); matrix.setBrightness (15); matrix.setBlinkRate (BLINK_OFF); MsTimer2:: set (1000, displayStatic); MsTimer2:: start ();
Põhiahelas võtame žestiandurist ainult kaks väljundit GES_RIGHT_FLAG, GES_LEFT_FLAG ja neid kasutatakse funktsiooni displayDynamic () juhtimiseks.
Funktsioon displayDynamic () arvutab intervalli alates viimasest dünaamilise emotikoni kuvamise hetkest kuni praeguse ajani, kui intervall ületab TIMEOUT, lõpetab see staatiliste emotikonide esitamise ja määrab kuvatud dünaamiliste emotikonide indeksi käivitamise. Kui loetakse vasakult paremale žeste, on algusindeks 0 ja indeksit suurendatakse pärast vasakult paremale liigutuste uuesti lugemist. Vastasel korral on algusindeks DYNAMIC -massiivi viimane indeks ja indeksit vähendatakse.
void displayDynamic (bool leftToRight) {
allkirjastamata pikk vooluaeg = millis (); if (currentTime - prevTime> TIMEOUT) {dIndex = leftToRight? 0: ARRAY_LENGTH (DÜNAAMILINE) - 1; showStatic = vale; } // Seda kasutatakse piiri ületamise vältimiseks. if (dIndex> = ARRAY_LENGTH (DYNAMIC) || dIndex <= -1) {heartBeat (); dIndex = leftToRight? ARRAY_LENGTH (DÜNAAMILINE) - 1: 0; } prevTime = praegune aeg; matrixDisplay = DÜNAAMILINE [leftToRight? dIndex ++: dIndex--]; }
TIMEOUT -i perioodi ületamisel ei loeta ühtegi žesti, staatiline emotikonide esitamine taastatakse.
Laadige programm oma Seeeduinosse üles, kõik on valmis. Mängi ja naudi!
Samm: kood
#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])) Maatriks_8x8 maatriks; uint64_t matrixDisplay = 0; signeerimata pikk prevTime = millis (); int8_t sIndex = 0; bool showStatic = tõsi; 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 (tühine) {if (showStatic) {matrixDisplay = STATIC [sIndex]; sIndex = (sIndex + 1) % ARRAY_LENGTH (STATIC); }} void heartBeat () {for (uint8_t i = 0; i TIMEOUT) {showStatic = false; prevTime = praegune aeg; dIndex = leftToRight? 0: ARRAY_LENGTH (DÜNAAMILINE) - 1; } // Seda kasutatakse piiri ületamise vältimiseks. if (dIndex> = ARRAY_LENGTH (DYNAMIC) || dIndex TIMEOUT) {showStatic = tõsi; } matrix.writeOnePicture (matrixDisplay); matrix.display (); viivitus (100); }
Soovitan:
Kahekohaline ekraan ühe 8x8 LED-maatriksi abil: 3 sammu
Kahekohaline ekraan ühe 8x8 LED-maatriksi abil: Siin sooviksin ehitada oma toa temperatuuri ja niiskuse indikaatori. Kasutasin kahekohaliste numbrite kuvamiseks ühte 8x8 LED-maatriksit ja arvan, et osa projektist sai kasulikumaks. Pappkarpi kasutades ehitatud finaali karpisin, valu
Koduautomaatika Raspberry Pi maatriksi hääle ja snippide abil (2. osa): 8 sammu
Koduautomaatika Raspberry Pi Matrix Voice'i ja Snipsi abil (2. osa): Koduautomaatika värskendamine Raspberry Pi Matrix Voice'i ja Snipsi abil. Selles PWM-i kasutatakse väliste LED-ide ja servomootori juhtimiseks. Kõik 1. osas esitatud üksikasjad
LED -maatriksi juhtimine Arduino abil: 5 sammu
Led -maatriksi juhtimine Arduino abil: Tere, sõber. Selles artiklis näitan teile, kuidas kasutada Led -maatriksit Arduino abil. LED -maatriks on massiivide kujul LED -ide kogum. LED -maatriksitel on olenevalt tüübist erinevaid veerge ja ridu. Esitades mitu LED -i koos kindla
Valgustage oma valentin vahuveini RGB maatriksi abil: 3 sammu
Süütage oma valentin sädeleva RGB maatriksiga: sõbrapäev on tulemas, kas kohtute kellegagi, kes armus esmapilgul?
Valgustage oma projekti LED -ide abil: 4 sammu
Valgustage oma projekti LED -ide abil: väga tõhus viis projekti ellu äratamiseks on lisada valgustus. Tänapäevane tehnoloogia on andnud isetegijatele laia valiku valgustusvõimalusi, mis on väga heledad, väga odavad kasutada, odavad osta ja hõlpsasti paigaldatavad