Obsah:
- Krok 1: Věci použité v tomto projektu
- Krok 2: Příběh
- Krok 3: Hardwarové připojení
- Krok 4: Programování softwaru
- Krok 5: Kód
Video: Rozjasněte svého Valentýna šumivou maticí: 5 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:22
Valentýn je pro vás šancí posílat milostné zprávy. Proč nevytvořit zábavnou LED tvář s levnými komponentami, které vyjádří váš pocit!
Krok 1: Věci použité v tomto projektu
Hardwarové komponenty
- Seeeduino V4.2
- Základní štít
- Grove - červená LED matice s ovladačem
- Grove - gesto (PAJ7620U2)
Softwarové aplikace a online služby
Arduino IDE
Krok 2: Příběh
Krok 3: Hardwarové připojení
V tomto projektu používáme senzor gest jako vstup a dáváme zpětnou vazbu ovladači matice LED k napájení červené LED matice.
Musíte připojit Grove - Gesture a Grove - Red LED Matrix w/Driver k portu I^2^C základního štítu, který je zapojen do Seeeduina. Poté připojte Seeeduino k počítači pomocí kabelu USB.
Krok 4: Programování softwaru
Plán pro tento projekt je zobrazit statické emoji (plačící obličej a čekající tvář), pokud nebylo přečteno žádné gesto vlevo nebo vpravo.
Zobrazovat emodži s dynamickou změnou polohy očí pomocí gesta doleva nebo doprava, když bylo přečteno gesto vlevo nebo vpravo.
V konkrétní poloze očí se na LED matici zobrazí tlukot srdce.
Vzory LED displeje jsou navrženy pomocí editoru LED Matrix Editor, své vzory LED můžete změnit nebo přidat v programových ukázkách výše.
Abychom se na tento projekt připravili, je nutné do knihoven Arduino IDE nainstalovat knihovny Grove - Gesture, Grove - Red LED Matrix w/Driver a MsTimer2.
#include "Grove_LED_Matrix_Driver_HT16K33.h"
#include "MsTimer2.h" #include "paj7620.h" #include "Wire.h"
Během postupu instalace jsme inicializovali funkce Serial, matrix a MsTimer2. Inicializovaný sériový port slouží k ladění programu, takže není nutné se po ladění připojovat k počítači nebo používat sériový monitor. V tomto projektu používáme MsTimer2 k ovládání zobrazení statických emoji.
// Inicializace seriálu na ladění.
Serial.begin (9600); while (! Serial); paj7620Init (); Wire.begin (); matrix.init (); matrix.setBrightness (15); matrix.setBlinkRate (BLINK_OFF); MsTimer2:: set (1000, displayStatic); MsTimer2:: start ();
V hlavní smyčce odebíráme pouze dva výstupy ze senzoru gest, GES_RIGHT_FLAG, GES_LEFT_FLAG a tyto slouží k vedení funkce displayDynamic ().
Funkce displayDynamic () vypočítá interval od posledního zobrazení dynamických emoji do aktuálního času, pokud interval překročí TIMEOUT, zastaví přehrávání statických emodži a nastaví spuštění zobrazeného indexu dynamických emodži. Při čtení gest zleva doprava je počáteční index 0 a po dalším čtení gest zleva doprava se index zvýší. V opačném případě je počáteční index posledním indexem pole DYNAMIC a index bude snížen.
void displayDynamic (bool leftToRight) {
unsigned long currentTime = millis (); if (currentTime - prevTime> TIMEOUT) {dIndex = leftToRight? 0: ARRAY_LENGTH (DYNAMIC) - 1; showStatic = false; } // Toto se používá k zamezení překročení hranice. if (dIndex> = ARRAY_LENGTH (DYNAMIC) || dIndex <= -1) {heartBeat (); dIndex = leftToRight? ARRAY_LENGTH (DYNAMIC) - 1: 0; } prevTime = currentTime; matrixDisplay = DYNAMICKÝ [leftToRight? dIndex ++: dIndex--]; }
Pokud je překročena doba TIMEOUT, nečte se žádné gesto, obnoví se přehrávání statických emodži.
Nahrajte program do svého Seeeduino, vše hotovo. Hrajte a bavte se!
Krok 5: Kód
#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])) Matice matice_8x8; uint64_t matrixDisplay = 0; unsigned long prevTime = millis (); int8_t sIndex = 0; bool showStatic = true; konst uint64_t STATIC = {0x00003c0000a54200, 0x00003c000000e700, 0x00003c004242e700}; int8_t dIndex = 0; konst uint64_t DYNAMICKÉ = {0x00003c000021e700, 0x00003c000042e700, 0x00003c000084e700}; konst uint64_t SRDCE = {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; } // Toto se používá k zamezení překročení hranice. if (dIndex> = ARRAY_LENGTH (DYNAMIC) || dIndex TIMEOUT) {showStatic = true; } matrix.writeOnePicture (matrixDisplay); matrix.display (); zpoždění (100); }
Doporučuje:
LED fotorámeček se srdcem - udělejte si dokonalého Valentýna nebo narozeninový dárek: 7 kroků (s obrázky)
Fotorámeček s LED srdcem - udělejte si perfektní dárek na Valentýna nebo k narozeninám: Dobrý den! V tomto pokynu vám ukážu, jak můžete vytvořit tento úžasný fotorámeček LED Heart. Pro všechny nadšence elektroniky! Vytvořte pro své blízké perfektní dárek k Valentýnu, narozeninám nebo výročí! Můžete se podívat na ukázkové video tohoto
Světlo na zadní matici kola: 5 kroků
Světlo na zadní matici kola: Ahoj všichni! Vždy mě fascinovaly LED diody a způsob, jakým září, je to tak fascinující, zejména maticové 8 x 8 a RGB LED pásky. Už dlouho jsem chtěl pro své kolo postavit zadní světlo na kolo a teď, když jsem schopen postavit o
ESP32 Rolování WordClockem na LED matici: 5 kroků (s obrázky)
ESP32 Rolovací WordClock na LED Matrix: V tomto projektu vytvářím Rolovací WordClock s ESP32, LED Matrix a krabičkou na doutníky. WordClock jsou hodiny, které určují čas, a ne je jen tisknout na obrazovku nebo mít ruce, které si můžete přečíst. Tyto hodiny vám řeknou, že je to 10 minut
Rozjasněte svého Valentýna šumivou maticí RGB: 3 kroky
Rozjasněte svého Valentýna se šumivou maticí RGB: Valentýn se blíží, potkáváte někoho, kdo se zamiloval na první pohled?
Sítotisk mědi na Valentýna: 4 kroky
Sítotisk mědi na Valentýna: Společně uvidíme, jak vytvořit přizpůsobený a originální dárek pro vaši mladou dámu. Jedná se o rám obrazu se sítotiskem na měděné elektronické desce, vše s podsvícením. Jedna věc je jistá, že to nevidíme každý den