Isi kandungan:
- Langkah 1: Perkara Yang Digunakan dalam Projek Ini
- Langkah 2: Cerita
- Langkah 3: Sambungan Perkakasan
- Langkah 4: Pengaturcaraan Perisian
- Langkah 5: Kod
Video: Ceriakan Valentine Anda dengan Matrik Berkilau: 5 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:10
Hari Valentine adalah peluang untuk anda menghantar mesej cinta. Mengapa tidak membuat wajah LED yang menyeronokkan dengan komponen yang murah untuk meluahkan perasaan anda!
Langkah 1: Perkara Yang Digunakan dalam Projek Ini
Komponen perkakasan
- Seeeduino V4.2
- Perisai Pangkalan
- Grove - Matrik LED Merah dengan Pemandu
- Grove - Gerak isyarat (PAJ7620U2)
Aplikasi perisian dan perkhidmatan dalam talian
Arduino IDE
Langkah 2: Cerita
Langkah 3: Sambungan Perkakasan
Dalam projek ini, kami menggunakan sensor isyarat sebagai input dan memberikan maklum balas kepada pemacu matriks LED untuk memberi makan matriks LED merah.
Anda perlu menyambungkan Grove - Gesture and the Grove - Red LED Matrix w / Driver ke port I ^ 2 ^ C pelindung asas yang dipasang ke Seeeduino. Kemudian sambungkan Seeeduino ke PC melalui kabel USB.
Langkah 4: Pengaturcaraan Perisian
Rancangan untuk projek ini adalah untuk menampilkan emoji statik (wajah menangis dan wajah menunggu) ketika tidak ada isyarat kiri atau kanan telah dibaca.
Paparkan emoji perubahan kedudukan mata yang dinamik dengan kawalan kiri atau kanan apabila terdapat isyarat kiri atau kanan telah dibaca.
Pada kedudukan mata tertentu, jantung berdegup akan ditunjukkan pada matriks LED.
Corak paparan LED direka oleh LED Matrix Editor, anda boleh menukar atau menambahkan corak LED anda dalam rancangan program di atas.
Untuk bersiap sedia untuk projek ini, perlu memasang perpustakaan Grove - Gesture, Grove - Red LED Matrix w / Driver dan MsTimer2 ke dalam Arduino IDE.
#sertakan "Grove_LED_Matrix_Driver_HT16K33.h"
#include "MsTimer2.h" #include "paj7620.h" #include "Wire.h"
Semasa prosedur persediaan, kami menginisialisasi fungsi Serial, matriks dan MsTimer2. Initialized Serial digunakan untuk debugging program, jadi tidak perlu menyambung ke PC atau menggunakan Serial Monitor setelah debug. Kami menggunakan MsTimer2 dalam projek ini untuk mengawal paparan emoji statik.
// Memulakan siri untuk debug.
Serial.begin (9600); sementara (! bersiri); paj7620Init (); Wire.begin (); matrix.init (); matrix.setBrightness (15); matrix.setBlinkRate (BLINK_OFF); MsTimer2:: set (1000, displayStatic); MsTimer2:: mula ();
Dalam gelung utama, kami hanya mengambil dua output dari sensor isyarat, GES_RIGHT_FLAG, GES_LEFT_FLAG dan ini digunakan untuk memandu fungsi displayDynamic ().
Fungsi displayDynamic () akan menghitung selang dari emoji dinamik terakhir kali ke masa sekarang, jika selang melebihi TIMEOUT, ia akan berhenti memainkan emoji statik, dan menetapkan indeks emoji dinamik yang dipaparkan untuk dimulakan. Apabila isyarat kiri ke kanan dibaca, indeks permulaan adalah 0, dan indeks akan meningkat setelah isyarat kiri ke kanan membaca lagi. Jika tidak, indeks permulaan adalah indeks terakhir array DYNAMIC, dan indeks akan menurun.
paparan kosongDinamik (bool leftToRight) {
waktu semasa yang tidak ditandatangani = milis (); jika (currentTime - prevTime> TIMEOUT) {dIndex = leftToRight? 0: ARRAY_LENGTH (DINAMIK) - 1; showStatic = palsu; } // Ini digunakan untuk mengelakkan melebihi batas. if (dIndex> = ARRAY_LENGTH (DINAMIK) || dIndex <= -1) {heartBeat (); dIndex = leftToRight? ARRAY_LENGTH (DINAMIK) - 1: 0; } prevTime = currentTime; matrixDisplay = DINAMIK [leftToRight? dIndex ++: dIndex--]; }
Tidak ada isyarat yang dibaca jika tempoh TIMEOUT terlampaui, permainan emoji statik akan dipulihkan.
Muat naik program ke Seeeduino anda, semuanya selesai. Main dan bersenang-senang!
Langkah 5: Kod
#sertakan "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])) Matriks Matrix_8x8; uint64_t matrixDisplay = 0; lama tidak ditandatangani prevTime = milis (); int8_t sIndex = 0; bool showStatic = benar; 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 (STATIK); }} kekosongan jantungBunyi () {untuk (uint8_t i = 0; i TIMEOUT) {showStatic = false; prevTime = currentTime; dIndex = leftToRight? 0: ARRAY_LENGTH (DINAMIK) - 1; } // Ini digunakan untuk mengelakkan melebihi batas. if (dIndex> = ARRAY_LENGTH (DYNAMIC) || dIndex TIMEOUT) {showStatic = benar; } matrix.writeOnePicture (matrixDisplay); matrix.display (); kelewatan (100); }
Disyorkan:
Valentine Valentine: 17 Langkah (dengan Gambar)
Internet Valentine: Hantarkan catatan valentine anda melalui internet! Projek elektronik DIY ini menggunakan motor bergetar kecil untuk melancarkan jantung kertas tisu dengan lembut dan menyalakan LED apabila menerima arahan melalui internet dari peranti lain. Saya membina dua versi t
Buat Matrik LED 10x10 Anda Sendiri: 5 Langkah (dengan Gambar)
Buat Matrik LED 10x10 Anda Sendiri: Dalam projek ini saya akan menunjukkan kepada anda cara menggabungkan LED RGB WS2812B yang tersedia dengan Arduino Nano untuk membuat Matriks LED 10x10 yang berwarna-warni. Mari kita mulakan
Ceriakan Dadu Anda !: 4 Langkah
Glow Up Your Dice !: Setiap orang yang suka dadu juga suka cahaya dalam dadu gelap! Itulah projek DIY saya untuk membiarkan mereka bersinar, tetapi idea di sebalik itu adalah untuk melindungi mata anda semasa " mengecas " dadu. Hanya satu idea asas, jangan ragu untuk membina kotak serupa sendiri
Ganesha LED Berkilau: 18 Langkah (dengan Gambar)
Ganesha LED Berkilau: Ini adalah musim perayaan di India dan Lord Ganesha adalah salah satu Tuhan yang paling dihormati dan dipuja, terutama untuk anak-anak. Dia adalah Tuhan pertama yang disembah dalam semua upacara keagamaan. Apa cara yang lebih baik untuk menikmati musim perayaan daripada berkumpul
Ceriakan Valentine Anda dengan Matriks RGB Berkilau: 3 Langkah
Ceriakan Valentine Anda dengan Matriks RGB yang Berkilau: Hari Valentine akan datang, adakah anda bertemu dengan seseorang yang jatuh cinta pada pandangan pertama?