Obsah:
- Krok 1: Veci použité v tomto projekte
- Krok 2: Príbeh
- Krok 3: Pripojenie hardvéru
- Krok 4: Programovanie softvéru
- Krok 5: Kód
Video: Rozžiarte svojho Valentína šumivou maticou: 5 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:59
Valentín je pre vás šancou posielať milostné správy. Prečo nevyrobiť zábavnú LED tvár s lacnými komponentmi, ktorými vyjadríte svoj pocit!
Krok 1: Veci použité v tomto projekte
Hardvérové komponenty
- Seeeduino V4.2
- Základný štít
- Grove - červená LED matica s ovládačom
- Grove - Gesto (PAJ7620U2)
Softvérové aplikácie a online služby
Arduino IDE
Krok 2: Príbeh
Krok 3: Pripojenie hardvéru
V tomto projekte používame snímač gest ako vstup a dávame spätnú väzbu ovládaču matice LED na napájanie červenej matice LED.
Musíte pripojiť maticu Grove - Gesture a Grove - Red LED s ovládačom k portu I^2^C základného štítu, ktorý je zapojený do Seeeduina. Potom pripojte Seeeduino k počítaču pomocou kábla USB.
Krok 4: Programovanie softvéru
Plán pre tento projekt je zobraziť statické emoji (plačúca tvár a čakajúca tvár), ak nie je prečítané žiadne ľavé alebo pravé gesto.
Zobrazovať emodži s dynamickou zmenou polohy očí pomocou ovládania gestom vľavo alebo vpravo, keď bolo prečítané gesto vľavo alebo vpravo.
V konkrétnej polohe očí sa na matici LED zobrazí bijúce srdce.
Vzory LED displeja sú navrhnuté pomocou editora LED Matrix Editor, svoje vzory LED môžete zmeniť alebo pridať v programových ukážkach vyššie.
Na prípravu tohto projektu je potrebné nainštalovať knižnice Grove - Gesture, Grove - Red LED Matrix s ovládačom a MsTimer2 do Arduino IDE.
#include "Grove_LED_Matrix_Driver_HT16K33.h"
#include "MsTimer2.h" #include "paj7620.h" #include "Wire.h"
Počas postupu nastavenia sme inicializovali funkcie Serial, matrix a MsTimer2. Initialized Serial sa používa na ladenie programu, takže nie je potrebné sa po ladení pripájať k počítaču alebo používať Serial Monitor. V tomto projekte používame MsTimer2 na ovládanie zobrazenia statických emodži.
// Inicializácia seriálu na ladenie.
Serial.begin (9600); while (! Serial); paj7620Init (); Wire.begin (); matrix.init (); matrix.setBrightness (15); matrix.setBlinkRate (BLINK_OFF); MsTimer2:: set (1000, displayStatic); MsTimer2:: start ();
V hlavnej slučke odoberáme zo senzora gest iba dva výstupy, GES_RIGHT_FLAG, GES_LEFT_FLAG a tieto slúžia na vedenie funkcie displayDynamic ().
Funkcia displayDynamic () vypočíta interval od posledného zobrazenia dynamických emodži po aktuálny čas, ak interval prekročí TIMEOUT, zastaví prehrávanie statických emodži a nastaví spustenie zobrazeného indexu dynamických emodži. Keď sa čítajú gestá zľava doprava, počiatočný index je 0 a index sa po opätovnom prečítaní gest zľava doprava zvýši. V opačnom prípade je počiatočný index posledným indexom poľa DYNAMIC a index sa zníži.
void displayDynamic (bool leftToRight) {
bez znamienka dlhý currentTime = millis (); if (currentTime - prevTime> TIMEOUT) {dIndex = leftToRight? 0: ARRAY_LENGTH (DYNAMIC) - 1; showStatic = false; } // Toto sa používa na zabránenie prekročeniu hranice. if (dIndex> = ARRAY_LENGTH (DYNAMIC) || dIndex <= -1) {heartBeat (); dIndex = leftToRight? ARRAY_LENGTH (DYNAMIC) - 1: 0; } prevTime = currentTime; matrixDisplay = DYNAMICKÝ [leftToRight? dIndex ++: dIndex--]; }
Ak je prekročená doba TIMEOUT, neprečítajú sa žiadne gestá, obnoví sa prehrávanie statických emodži.
Odovzdajte program do svojho Seeeduino, všetko je hotové. Hrajte a bavte sa!
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])) Matica matice_8x8; uint64_t matrixDisplay = 0; nepodpísané dlhé prevTime = millis (); int8_t sIndex = 0; bool showStatic = true; konšt uint64_t STATIC = {0x00003c0000a54200, 0x00003c000000e700, 0x00003c004242e700}; int8_t dIndex = 0; konšt uint64_t DYNAMICKÝ = {0x00003c000021e700, 0x00003c000042e700, 0x00003c000084e700}; const 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 sa používa na zabránenie prekročeniu hranice. if (dIndex> = ARRAY_LENGTH (DYNAMIC) || dIndex TIMEOUT) {showStatic = true; } matrix.writeOnePicture (matrixDisplay); matrix.display (); oneskorenie (100); }
Odporúča:
Pong tenis s LED maticou, Arduino a joysticky: 5 krokov (s obrázkami)
Pong Tennis s LED maticou, Arduino a joysticky: Tento projekt je určený pre začiatočníkov i skúsených drotárov. Na základnej úrovni to možno vykonať pomocou nepájivej dosky, prepojovacích drôtov a prilepiť na kus šrotového materiálu (použil som drevo) pomocou technológie Blu-Tack a bez spájkovania. Vo väčšom predstihu
Rozžiarte plyšáka: 11 krokov
Rozjasnite plyšáka: Toto je pluska, ktorá vyzerá ako duch. Oči sa mu môžu rozžiariť
Rozžiarte svojho Valentína šumivou maticou RGB: 3 kroky
Rozžiarte svojho Valentína šumivou maticou RGB: blíži sa Valentín, stretnete niekoho, kto sa zamiloval na prvý pohľad?
Rozžiarte vianočný veniec pred auto: 5 krokov
Rozsvieti vianočný veniec pred auto: Rád rozdávam vianočnú náladu. Tento rok som to chcel urobiť pri dochádzaní po meste. Potom som premýšľal, ako lepšie dať veniec na prednú časť môjho nákladného auta, ktorý sa rozsvieti svetlometmi. Najprv som sa pozrel na vence, ktoré už mali svetlá
DIY Rozžiarte sviatočný ornament: 18 krokov
DIY Rozžiarte sviatočný ornament: V tomto návode vás naučíme, ako vytvoriť rozsvietenú ozdobu jednoduchým obvodom. Stiahnite si dizajn pre tlač tu a urobte si zábavné prázdninové remeslo vhodné pre rodinu! Odporúčame vám, aby ste na začiatku použili náš návrh ornamentu, aby ste získali pocit