جدول المحتويات:
- الخطوة 1: الأشياء المستخدمة في هذا المشروع
- الخطوة الثانية: القصة
- الخطوة 3: توصيل الأجهزة
- الخطوة 4: برمجة البرمجيات
- الخطوة 5: الكود
فيديو: أضئ عيد الحب الخاص بك مع مصفوفة متألقة: 5 خطوات
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:40
عيد الحب هو فرصة بالنسبة لك لإرسال رسائل حب. لماذا لا تجعل وجه LED ممتعًا بمكونات غير مكلفة للتعبير عن مشاعرك!
الخطوة 1: الأشياء المستخدمة في هذا المشروع
مكونات الأجهزة
- Seeeduino V4.2
- قاعدة الدرع
- Grove - مصفوفة LED حمراء مع سائق
- غروف - إيماءة (PAJ7620U2)
تطبيقات البرمجيات والخدمات عبر الإنترنت
اردوينو IDE
الخطوة الثانية: القصة
الخطوة 3: توصيل الأجهزة
في هذا المشروع ، نستخدم مستشعر الإيماءات كمدخل ونقدم الملاحظات إلى مشغل مصفوفة LED لتغذية مصفوفة LED الحمراء.
تحتاج إلى توصيل Grove - Gesture and the 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"
# تضمين "MsTimer2.h" #include "paj7620.h" #include "Wire.h"
أثناء إجراء الإعداد ، قمنا بتهيئة وظائف Serial و matrix و MsTimer2. يُستخدم المسلسل المُهيئ لتصحيح أخطاء البرنامج ، لذلك ليس من الضروري الاتصال بجهاز الكمبيوتر أو استخدام Serial Monitor بعد تصحيح الأخطاء. نستخدم MsTimer2 في هذا المشروع للتحكم في عرض الرموز التعبيرية الثابتة.
// تهيئة المسلسل لتصحيحه.
Serial.begin (9600) ؛ بينما (! المسلسل) ؛ 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 ، وسوف ينخفض الفهرس.
عرض باطل ديناميكي (منطقي يسار إلى اليمين) {
CurrentTime طويل بدون توقيع = ميلي () ؛ إذا (currentTime - prevTime> TIMEOUT) {dIndex = leftToRight؟ 0: ARRAY_LENGTH (ديناميكي) - 1 ، showStatic = خطأ ؛ } // يستخدم لتجنب تجاوز الحدود. إذا (dIndex> = ARRAY_LENGTH (DYNAMIC) || المؤشر <= -1) {heartBeat () ؛ dIndex = leftToRight؟ ARRAY_LENGTH (ديناميكي) - 1: 0 ، } prevTime = CurrentTime ؛ matrixDisplay = ديناميكي [leftToRight؟ dIndex ++: dIndex--] ؛ }
لن تتم قراءة أي إيماءة إذا تم تجاوز فترة المهلة ، فستتم استعادة تشغيل الرموز التعبيرية الثابتة.
قم بتحميل البرنامج على جهاز 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 (array) (sizeof (array) / sizeof (array [0])) مصفوفة_ 8x8 ؛ uint64_t matrixDisplay = 0 ؛ prevTime طويل بدون توقيع = مللي () ؛ int8_t sIndex = 0 ؛ عرض منطقي ثابت = صحيح ؛ 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} ؛ باطل displayStatic (void) {if (showStatic) {matrixDisplay = STATIC [sIndex]؛ الفهرس = (الفهرس + 1)٪ ARRAY_LENGTH (ثابت) ، }} void heartBeat () {for (uint8_t i = 0؛ i TIMEOUT) {showStatic = false؛ prevTime = CurrentTime ، dIndex = leftToRight؟ 0: ARRAY_LENGTH (ديناميكي) - 1 ، } // يستخدم لتجنب تجاوز الحدود. إذا (dIndex> = ARRAY_LENGTH (DYNAMIC) || dIndex TIMEOUT) {showStatic = true ؛ } matrix.writeOnePicture (matrixDisplay) ؛ matrix.display () ، تأخير (100) ؛ }
موصى به:
إطار صور LED على شكل قلب - اصنع هدية مثالية لعيد الحب أو عيد الميلاد: 7 خطوات (مع صور)
إطار صور قلب LED - اصنع هدية مثالية لعيد الحب أو عيد ميلاد: مرحبًا! في هذا الدليل ، سأوضح لك كيف يمكنك إنشاء إطار صور قلب LED رائع. لجميع عشاق الإلكترونيات! اصنع هدية مثالية لعيد الحب أو عيد الميلاد أو الذكرى السنوية لأحبائك! يمكنك مشاهدة الفيديو التوضيحي لهذا
مشروع عيد الحب: نبضات مرئية: 9 خطوات
مشروع عيد الحب: نبضات مرئية: عيد الحب قادم ، هل أنت قلق بشأن إعجابه بك أم لا؟ ربما تريد أن تسأل ، ولكن إليك طريقة أخرى ، ضع إصبعك في جهاز ضربات القلب ، ستظهر البيانات الإجابة. يبلغ معدل ضربات قلب البالغين حوالي 70 ~ 80 مرة ، حسنًا ، 60 ~
طيور الحب في عيد الحب: صندوق لإرسال واستقبال رسائل Telegram الصوتية: 9 خطوات (بالصور)
طيور الحب في عيد الحب: صندوق لإرسال واستقبال رسائل Telegram الصوتية: تحقق من الفيديو هنا ما هو الحب (الطيور)؟ يا حبيبي لا تؤذيني ولا تؤذيني أكثر من ذلك ، إنه جهاز مستقل يتلقى الرسائل الصوتية إلى حبك أو عائلتك أو صديقك. افتح الصندوق ، واضغط على الزر أثناء التحدث ، ثم حرر لإرسال
أضئ عيد الحب الخاص بك مع مصفوفة RGB المتألقة: 3 خطوات
أضئ عيد الحب الخاص بك مع Sparkling RGB Matrix: عيد الحب قادم ، هل تقابل شخصًا وقع في الحب من النظرة الأولى؟
كيف تكون في الحب (الحب الحقيقي): 10 خطوات
كيف تكون في الحب (الحب الحقيقي): هذا دليل موجه للأشخاص الذين يجدون أنفسهم مُتاحين لهم الفرصة ليكونوا في حالة حب. وسوف يناقش كيفية رعاية والحفاظ على تلك الرابطة مع شخص معين. إن فكرة الحب ذاتية للغاية وتتنوع بشكل كبير ، لذا