Съдържание:
- Стъпка 1: Нещата, използвани в този проект
- Стъпка 2: История
- Стъпка 3: Хардуерна връзка
- Стъпка 4: Софтуерно програмиране
- Стъпка 5: Код
Видео: Запалете Валентин с искряща матрица: 5 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:52
Свети Валентин е шанс да изпратите любовни послания. Защо не направите забавно LED лице с евтини компоненти, за да изразите чувствата си!
Стъпка 1: Нещата, използвани в този проект
Хардуерни компоненти
- Seeeduino V4.2
- Базов щит
- Grove - Red LED Matrix w/Driver
- Grove - Жест (PAJ7620U2)
Софтуерни приложения и онлайн услуги
Arduino IDE
Стъпка 2: История
Стъпка 3: Хардуерна връзка
В този проект използваме сензора за жестове като вход и даваме обратна връзка на драйвера на LED матрицата, за да захранваме червената LED матрица.
Трябва да свържете Grove - Gesture и Grove - Red LED Matrix w/Driver към порта I^2^C на основния щит, който е включен в Seeeduino. След това свържете Seeeduino към компютър чрез USB кабел.
Стъпка 4: Софтуерно програмиране
Планът за този проект е да показва статичните емотикони (плачещо лице и чакащо лице), когато няма прочетен ляв или десен жест.
Показване на динамични емотикони за смяна на позицията на очите с контролиран с ляв или десен жест, когато е прочетен жест отляво или отдясно.
В конкретната позиция на окото на LED матрицата ще се покаже сърцебиене.
Моделите на LED дисплеите са проектирани от LED Matrix Editor, можете да променяте или добавяте вашите LED модели в програмните предавания по -горе.
За да се подготвите за този проект, е необходимо да инсталирате Grove - Gesture, Grove - Red LED Matrix w/Driver и MsTimer2 библиотеки в Arduino IDE.
#включва "Grove_LED_Matrix_Driver_HT16K33.h"
#include "MsTimer2.h" #include "paj7620.h" #include "Wire.h"
По време на процедурата за настройка инициализирахме функциите Serial, matrix и MsTimer2. Инициализираният сериен се използва за отстраняване на грешки в програмата, така че не е необходимо да се свързвате с компютър или да използвате Serial Monitor след отстраняване на грешки. Ние използваме MsTimer2 в този проект, за да контролираме показването на статичните емоджи.
// Инициализира сериала за отстраняване на грешки.
Serial.begin (9600); while (! Сериен); paj7620Init (); Wire.begin (); matrix.init (); matrix.setBrightness (15); matrix.setBlinkRate (BLINK_OFF); MsTimer2:: set (1000, displayStatic); MsTimer2:: start ();
В основния цикъл вземаме само два изхода от сензора за жестове, GES_RIGHT_FLAG, GES_LEFT_FLAG и те се използват за ръководство на функцията displayDynamic ().
Функцията displayDynamic () ще изчисли интервала от последното показване на динамичните емотикони до текущото време, ако интервалът надвишава TIMEOUT, той ще спре да възпроизвежда статични емоджи и ще зададе показания на показания динамичен емоджи за стартиране. Когато се четат жестове отляво надясно, началният индекс е 0 и индексът ще бъде увеличен, след като жестовете отляво надясно се прочетат отново. В противен случай началният индекс е последният индекс на масива DYNAMIC и индексът ще бъде намален.
void displayDynamic (bool leftToRight) {
без знаци дълъг currentTime = millis (); if (currentTime - prevTime> TIMEOUT) {dIndex = leftToRight? 0: ARRAY_LENGTH (DYNAMIC) - 1; showStatic = false; } // Това се използва, за да се избегне превишаване на границата. if (dIndex> = ARRAY_LENGTH (DYNAMIC) || dIndex <= -1) {heartBeat (); dIndex = leftToRight? ARRAY_LENGTH (DYNAMIC) - 1: 0; } prevTime = currentTime; matrixDisplay = DYNAMIC [leftToRight? dIndex ++: dIndex--]; }
Не се чете жест, ако периодът TIMEOUT е надвишен, възпроизвеждането на статични емотикони ще бъде възстановено.
Качете програмата на вашия Seeeduino, всичко е готово. Играйте и се забавлявайте!
Стъпка 5: Код
#включва "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 (масив) (sizeof (масив) / sizeof (масив [0])) Matrix_8x8 матрица; uint64_t matrixDisplay = 0; без знак дълго prevTime = millis (); int8_t sIndex = 0; bool showStatic = вярно; 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 (СТАТИЧЕН); }} void heartBeat () {for (uint8_t i = 0; i TIMEOUT) {showStatic = false; prevTime = currentTime; dIndex = leftToRight? 0: ARRAY_LENGTH (DYNAMIC) - 1; } // Това се използва, за да се избегне превишаване на границата. if (dIndex> = ARRAY_LENGTH (DYNAMIC) || dIndex TIMEOUT) {showStatic = true; } matrix.writeOnePicture (matrixDisplay); matrix.display (); забавяне (100); }
Препоръчано:
Искряща Коледна звезда на Arduino: 8 стъпки
Искряща Коледна звезда на Arduino: Затова оценявам, че е малко късно за стартиране на коледен проект тази година. Но може би вече имате всичко необходимо и може би няма да отидете никъде тази година: Тогава може би, просто може би искате да опитате този малък проект. Списък с части
Запалете Гандалф Белия персонал: 9 стъпки
Запалете Гандалф Белия жезъл: Винаги съм искал Гандалф Белият жезъл, откакто гледах Властелинът на пръстените. Намерих дизайн за такъв на Thingivers.com. С помощта на Tinkercad промених дизайна, за да светне
Запалете светодиоди с помощта на дистанционното за вашия телевизор: 3 стъпки
Запалете светодиоди с помощта на вашето дистанционно за телевизора: В този проект можем да запалим светодиоди с помощта на нашето дистанционно за телевизора или всяко дистанционно. кодът се получава от инфрачервен приемник и в този случай се прави нещо
Запалете тъмното колие: 6 стъпки (със снимки)
Запалете тъмното колие: Представете си, че носите огърлица, която автоматично осветява, когато се стъмни и когато има достатъчно осветление, за да се превърне в нормално бижу. Сравнително лесен и забавен проект, специално за този, който иска да носи бижу, което буквално блести! Вземете
Запалете Валентин с блестяща RGB матрица: 3 стъпки
Запалете Валентин с блестяща RGB матрица: Денят на Свети Валентин наближава, срещате ли някой, който се е влюбил от пръв поглед?