Агуулгын хүснэгт:
- Алхам 1: Энэхүү төсөлд ашигласан зүйлс
- Алхам 2: Түүх
- Алхам 3: Тоног төхөөрөмжийн холболт
- Алхам 4: Програм хангамжийн програмчлал
- Алхам 5: Код
Видео: Гэгээн Валентинаа гялалзсан матрицаар гэрэлтүүлээрэй: 5 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:03
Гэгээн Валентины өдөр бол танд хайрын мессеж илгээх боломж юм. Мэдрэмжээ илэрхийлэхийн тулд хямд үнэтэй бүрэлдэхүүн хэсгүүдтэй хөгжилтэй LED нүүр хийж яагаад болохгүй гэж!
Алхам 1: Энэхүү төсөлд ашигласан зүйлс
Тоног төхөөрөмжийн бүрэлдэхүүн хэсгүүд
- Seeeduino V4.2
- Үндсэн бамбай
- Grove - Жолоочтой улаан LED матриц
- Гроув - Дохио зангаа (PAJ7620U2)
Програм хангамж, онлайн үйлчилгээ
Arduino IDE
Алхам 2: Түүх
Алхам 3: Тоног төхөөрөмжийн холболт
Энэхүү төсөлд бид дохио зангаа мэдрэгчийг оролт болгон ашиглаж, LED матрицын жолоочид улаан LED матрицыг тэжээхийн тулд санал хүсэлтээ өгдөг.
Та Grove - Gesture ба Grove - Red LED матрицыг драйвер ашиглан Seeeduino -д залгагдсан үндсэн бамбайны I^2^C порт руу холбох хэрэгтэй. Дараа нь Seeeduino -г USB кабелиар компьютерт холбоно уу.
Алхам 4: Програм хангамжийн програмчлал
Энэхүү төслийн төлөвлөгөө нь зүүн эсвэл баруун дохио уншихгүй байхад статик эможи (уйлж буй царай, хүлээж буй царай) харуулах явдал юм.
Нүдний байрлалыг өөрчлөх динамик эможи унших үед зүүн эсвэл баруун дохиогоор удирддаг.
Нүдний тодорхой байрлал дээр цохилох зүрхийг LED матриц дээр харуулна.
LED дэлгэцийн загварыг LED матриц засварлагчаар зохион бүтээсэн тул та дээрх програмын шоунд өөрийн LED загварыг өөрчлөх эсвэл нэмэх боломжтой.
Энэхүү төсөлд бэлэн байхын тулд Grove - Gesture, Grove - Red LED Matrix w/Driver болон MsTimer2 номын санг Arduino IDE -д суулгах шаардлагатай.
#оруулах "Grove_LED_Matrix_Driver_HT16K33.h"
#"MsTimer2.h" #include "paj7620.h" #"Wire.h" -ийг оруулна уу
Тохируулах процедурын явцад бид Serial, matrix болон MsTimer2 функцийг эхлүүлсэн. Анхдагч сериал нь програмыг дибаг хийхэд ашигладаг тул дибаг хийсний дараа компьютерт холбогдох эсвэл сериал монитор ашиглах шаардлагагүй болно. Бид энэ төсөлд MsTimer2 -ийг ашиглан статик эможи дэлгэцийг хянах боломжтой.
// Цувралыг дибаг хийхээр эхлүүлсэн.
Цуваа эхлэх (9600); байхад (! Цуваа); paj7620Init (); Wire.begin (); matrix.init (); matrix.setBrightness (15); matrix.setBlinkRate (BLINK_OFF); MsTimer2:: set (1000, displayStatic); MsTimer2:: эхлэх ();
Гол гогцоонд бид дохио зангаа мэдрэгчээс 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 (DINAMIC) - 1; showStatic = худал; } // Үүнийг хил хязгаараас хэтрэхгүй байх зорилгоор ашигладаг. if (dIndex> = ARRAY_LENGTH (DYNAMIC) || dIndex <= -1) {heartBeat (); dIndex = leftToRight? ARRAY_LENGTH (DINAMIC) - 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 #GES_REG_ADDR -ийг тодорхойлох 0x43 #ARRAY_LENGTH (массив) (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 ЗҮРХ = {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 (DINAMIC) - 1; } // Энэ нь хил хязгаарыг давахгүйн тулд ашиглагддаг. if (dIndex> = ARRAY_LENGTH (DYNAMIC) || dIndex TIMEOUT) {showStatic = true; } matrix.writeOnePicture (matrixDisplay); matrix.display (); саатал (100); }
Зөвлөмж болгож буй:
Цагаан ажилтнууд Гэндальфыг гэрэлтүүлээрэй: 9 алхам
Цагаан таяг Гэндальфыг гэрэлтүүлээрэй: Бөгжний Эзэнийг харснаас хойш би Цагаан Гандалфыг үргэлж хүсч байсан. Би Thingivers.com дээрээс нэг загварыг олсон. Tinkercad -ийг ашиглан би гэрэлтүүлгийнхээ төлөө дизайныг өөрчилсөн
Шоогоо гэрэлтүүлээрэй!: 4 алхам
Шоогоо гэрэлтүүл! Энэ бол тэднийг гэрэлтүүлэх миний DIY төсөл боловч үүний цаад санаа нь " цэнэглэх " Шоо.Ганцхан нэг үндсэн санаа бол ижил төстэй хайрцгийг бие даан бүтээхэд таатай байна
Намайг гэрэлтүүлээрэй!: 20 алхам (зурагтай)
Light Me Up!: Төслийн багийн гишүүд (Hyewon Shin, Eunjeong Ko, Junsung Yi) Хэрэв та гэрэлд хүрч, дизайн хийж чадвал яах вэ? Хэрэв танд сонирхолтой анимацаар бүтээсэн сайхан гэрлийн хэв маяг байвал ямар санагдах вэ? Намайг гэрэлтүүлээрэй
Гэгээн Валентинаа гялалзсан RGB матрицаар гэрэлтүүлээрэй: 3 алхам
Гэгээн Валентинаа гялалзсан RGB матрицаар гэрэлтүүлээрэй: Гэгээн Валентины өдөр ирж байна, та анхны харцаар дурласан хүнтэй уулзаж байна уу?
Төслөө LED -ээр гэрэлтүүлээрэй: 4 алхам
Төслөө LED -ээр гэрэлтүүлээрэй: Төслийг амьдралд хэрэгжүүлэх маш үр дүнтэй арга бол гэрэлтүүлэг нэмэх явдал юм. Өнөөгийн технологи нь өөрөө хийх хүмүүст маш тод, ашиглахад маш хямд, худалдан авахад хямд, суулгахад хялбар гэрэлтүүлгийн олон сонголтыг санал болгож байна