- مصفوفة شاشة العرض LED P10
- المكونات المطلوبة للوحة نتائج Arduino
- مخطط الدائرة للوحة النتائج اردوينو
- شرح كود لوحة النتائج اردوينو
تعد لوحة النتائج الإلكترونية من أهم الأدوات التي يمكن لأي شخص امتلاكها خلال أي بطولة رياضية. إن لوحة النتائج اليدوية القديمة التي تستخدم الطرق التقليدية تستغرق وقتًا طويلاً للغاية وعرضة للخطأ ، ومن ثم تصبح لوحة النتائج المحوسبة ضرورية حيث تحتاج وحدة العرض إلى التغيير في الوقت الفعلي. لهذا السبب في هذا المشروع ، سنقوم ببناء لوحة نتائج لاسلكية يتم التحكم فيها عن طريق البلوتوث حيث يمكننا تغيير النتيجة على السبورة فقط باستخدام تطبيق android. عقل هذا المشروع هو Arduino Nano ، وبالنسبة لجزء العرض ، سنستخدم مصفوفة P10 LED لإظهار النتيجة عن بُعد في الوقت الفعلي.
مصفوفة شاشة العرض LED P10
A P10 LED مصفوفة العرض هو أفضل وسيلة متاحة لجعل مجلس LED للاستخدام في الهواء الطلق أو في الأماكن المغلقة. تحتوي هذه اللوحة على إجمالي 512 مصباح LED عالي السطوع مثبت على غلاف بلاستيكي مصمم للحصول على أفضل نتائج عرض. يأتي أيضًا بتصنيف IP65 للعزل المائي مما يجعله مثاليًا للاستخدام في الهواء الطلق. باستخدام هذا ، يمكنك إنشاء لافتة LED كبيرة من خلال الجمع بين أي عدد من هذه اللوحات في أي هيكل من الصفوف والأعمدة.
يبلغ حجم الوحدة الخاصة بنا 32 * 16 ، مما يعني أن هناك 32 مصباحًا في كل صف و 16 مصباحًا في كل عمود. لذلك ، يوجد إجمالي 512 مصباح LED في كل لوحة لافتة. بخلاف ذلك ، يتمتع بتصنيف IP65 للعزل المائي ، ويمكن تشغيله بواسطة مصدر طاقة واحد 5 فولت ، وله زاوية عرض واسعة جدًا ، ويمكن أن يصل السطوع إلى 4500 شمعة. لذلك ، ستتمكن من رؤيته بوضوح في ضوء النهار. في السابق ، استخدمنا أيضًا شاشة P10 هذه مع Arduino لبناء لوحة LED بسيطة.
دبوس الوصف من P10 LED مصفوفة:
تستخدم لوحة العرض LED هذه رأس بريد ذي 10 سنون لتوصيل الإدخال والإخراج ، في هذا القسم ، قمنا بوصف جميع المسامير الضرورية لهذه الوحدة. أيضًا ، يمكنك رؤية وجود موصل خارجي بجهد 5 فولت في منتصف الوحدة النمطية يستخدم لتوصيل الطاقة الخارجية باللوحة.
- تمكين: يستخدم هذا الدبوس للتحكم في سطوع لوحة LED ، من خلال إعطاء نبضة PWM لها.
- أ ، ب: تسمى هذه دبابيس التحديد المتعدد. يأخذون المدخلات الرقمية لتحديد أي صفوف متعددة.
- ساعة التحول (CLK) وساعة المتجر (SCLK) والبيانات: هذه هي دبابيس التحكم في سجل الإزاحة العادية. هنا يتم استخدام سجل التحول 74HC595.
واجهة شاشة LED P10 مع Arduino:
يعد توصيل وحدة عرض المصفوفة P10 بـ Arduino عملية بسيطة للغاية ، في دائرتنا ، قمنا بتكوين دبوس 9 من Arduino كـ Enable pin ، Pin 6 كـ Pin A ، Pin 7 كـ pin B ، Pin 13 هو CLK ، Pin 8 هو SCLK ، Pin 11 هي البيانات ، وأخيرًا Pin GND هو دبوس GND للوحدة و Arduino ، الجدول الكامل أدناه يشرح تكوين الدبوس بوضوح.
وحدة P10 LED |
اردوينو UNO |
ممكن |
9 |
أ |
6 |
ب |
7 |
CLK |
13 |
SCLK |
8 |
البيانات |
11 |
GND |
GND |
ملاحظة: قم بتوصيل طرف الطاقة الخاص بوحدة P10 بمصدر طاقة خارجي 5 فولت ، لأن 512 مصباحًا ستستهلك قدرًا كبيرًا من الطاقة. يوصى بتوصيل مصدر طاقة بجهد 5 فولت و 3 أمبير في وحدة واحدة من وحدة P10 LED. إذا كنت تخطط لتوصيل المزيد من وحدات الأرقام ، فقم بزيادة سعة SMPS وفقًا لذلك.
المكونات المطلوبة للوحة نتائج Arduino
نظرًا لأن هذا مشروع بسيط للغاية ، فإن متطلبات المكونات عامة جدًا ، وترد قائمة بالمكونات المطلوبة أدناه ، يجب أن تكون قادرًا على العثور على جميع المواد المدرجة في متجر الهوايات المحلي.
- اردوينو نانو
- شاشة مصفوفة LED P10
- اللوح
- 5 فولت ، 3 أمبير SMPS
- وحدة بلوتوث HC-05
- توصيل الأسلاك
مخطط الدائرة للوحة النتائج اردوينو
والتخطيطي ل اردوينو LED لوحة النتائج هو مبين أدناه أن هذا المشروع هو بسيط جدا، ولقد استخدمت البرنامج شعبية fritzing لتطوير التخطيطي.
عمل الدائرة بسيط للغاية ، لدينا تطبيق Android ووحدة Bluetooth ، للتواصل بنجاح مع وحدة Bluetooth ، يجب عليك إقران وحدة HC-05 مع تطبيق android. بمجرد اتصالنا ، يمكننا إرسال السلسلة التي نريد عرضها ، بمجرد إرسال السلسلة ، سيقوم Arduino بمعالجة السلسلة وتحويلها إلى إشارة يمكن لمقاومة التحول 74HC595 الداخلية فهمها ، بعد إرسال البيانات إلى التحول المقاوم ، جاهز للعرض.
شرح كود لوحة النتائج اردوينو
بعد الانتهاء بنجاح من إعداد الأجهزة ، حان الوقت الآن لبرمجة Arduino Nano. ويرد أدناه الوصف التدريجي للكود. أيضًا ، يمكنك الحصول على رمز Arduino Scoreboard الكامل في الجزء السفلي من هذا البرنامج التعليمي.
بادئ ذي بدء ، نحتاج إلى تضمين جميع المكتبات. لقد استخدمنا مكتبة DMD.h من أجل التحكم في شاشة العرض P10. يمكنك تنزيله وإدراجه من رابط GitHub المحدد. بعد ذلك ، تحتاج إلى تضمين مكتبة TimerOne.h ، والتي سيتم استخدامها لبرمجة المقاطعة في التعليمات البرمجية الخاصة بنا.
هناك العديد من الواجهات المتاحة في هذه المكتبة ، وقد استخدمنا “ Arial_black_16 ” لهذا المشروع.
#تضمن
في الخطوة التالية ، يتم تحديد عدد الصفوف والأعمدة للوحة مصفوفة LED الخاصة بنا. لقد استخدمنا وحدة واحدة فقط في هذا المشروع ، لذلك يمكن تحديد قيمة ROW وقيمة COLUMN على أنها 1.
#define ROW 1 #define COLUMN 1 #define FONT Arial_Black_16 DMD led_module (ROW ، COLUMN) ؛
بعد ذلك ، يتم تحديد جميع المتغيرات المستخدمة في الكود. يتم استخدام متغير الحرف لتلقي البيانات التسلسلية من تطبيق Android ، ويتم استخدام قيمتين صحيحتين لتخزين النتائج ، ويتم تحديد المصفوفة التي تخزن البيانات النهائية لعرضها على المصفوفة.
مدخلات شار الباحث أ = 0 ، ب = 0 ؛ علم int = 0 ؛ شار cstr1
يتم تعريف وظيفة scan_module () ، والتي تتحقق باستمرار من أي بيانات واردة من Arduino Nano عبر SPI. إذا كانت الإجابة بنعم ، فسيؤدي ذلك إلى مقاطعة للقيام بأحداث معينة على النحو المحدد من قبل المستخدم في البرنامج.
scan_module () باطلة { led_module.scanDisplayBySPI () ؛ }
الإعداد الداخلي () ، تتم تهيئة المؤقت ، ويتم إرفاق المقاطعة بوظيفة scan_module ، والتي تمت مناقشتها سابقًا. في البداية ، تم مسح الشاشة باستخدام وظيفة الشاشة الواضحة (صواب) ، مما يعني أن جميع وحدات البكسل محددة على أنها OFF.
في الإعداد ، تم أيضًا تمكين الاتصال التسلسلي باستخدام الوظيفة Serial.begin (9600) حيث يمثل 9600 معدل البث بالباود لاتصال Bluetooth.
إعداد باطل () { Serial.begin (9600) ؛ Timer1.initialize (2000) ؛ Timer1.attachInterrupt (scan_module) ؛ led_module.clearScreen (صحيح) ، }
هنا ، يتم التحقق من توفر البيانات التسلسلية ، إذا كانت هناك بيانات صالحة قادمة من Arduino أم لا. يتم تخزين البيانات الواردة من التطبيق في متغير.
إذا (Serial.available ()> 0) { flag = 0 ؛ الإدخال = Serial.read () ،
بعد ذلك ، تمت مقارنة القيمة المستلمة مع المتغير المحدد مسبقًا. هنا ، في تطبيق Android ، يتم استخدام زرين لتحديد النتائج لكلا الفريقين. عند الضغط على الزر 1 ، يتم نقل الحرف "a" إلى Arduino وعند الضغط على الزر 2 ، يتم نقل الحرف "b" إلى Arduino. ومن ثم ، في هذا القسم ، تتم مطابقة هذه البيانات ، وفي حالة مطابقتها ، تتم زيادة قيم النقاط ذات الصلة كما هو موضح في الكود.
إذا (المدخلات == 'a' && flag == 0) { flag = 1؛ أ ++ ؛ } else if (input == 'b' && flag == 0) { flag = 1؛ ب ++ ؛ } آخر ؛
بعد ذلك ، يتم تحويل البيانات المستلمة إلى صفيف حرف ، حيث إن وظيفة مصفوفة P10 قادرة فقط على عرض نوع بيانات الأحرف. هذا هو السبب في تحويل جميع المتغيرات وتسلسلها في مصفوفة أحرف.
(String ("HOME:") + String (a) + String ("-") + String ("AWAY:") + String (b)). toCharArray (cstr1، 50) ؛
بعد ذلك ، لعرض المعلومات في الوحدة النمطية ، يتم تحديد الخط باستخدام وظيفة التحديد (). ثم تُستخدم وظيفة drawMarquee () لعرض المعلومات المطلوبة على لوحة P10.
led_module.selectFont (FONT) ، led_module.drawMarquee (cstr1،50، (32 * ROW)، 0) ؛
أخيرًا ، نظرًا لأننا نحتاج إلى عرض رسالة التمرير ، فقد كتبت رمزًا لتحويل رسالتنا بالكامل من الاتجاهات من اليمين إلى اليسار باستخدام فترة معينة.
بداية طويلة = مللي () ؛ توقيت طويل = بداية ؛ علم منطقي = خطأ ؛ while (! flag) { if ((timming + 30) <millis ()) { flag = led_module.stepMarquee (-1، 0)؛ التوقيت = ميلي () ؛ } }
هذا يمثل نهاية عملية الترميز لدينا. وهي الآن جاهزة للتحميل.
لوحة النتائج التي يتحكم فيها الهاتف الذكي - اختبار
بعد تحميل الكود على Arduino ، حان الوقت لاختبار المشروع. قبل ذلك ، يجب تثبيت تطبيق android على هاتفنا الذكي. يمكنك تنزيل تطبيق P10 Score Board من الرابط المحدد. بمجرد التثبيت ، افتح التطبيق وستظهر الشاشة الرئيسية بالصورة أدناه.
انقر فوق الزر SCAN لإضافة وحدة Bluetooth مع التطبيق. سيعرض هذا قائمة أجهزة Bluetooth المقترنة بالهاتف. إذا لم تقم بإقران وحدة HC-05 Bluetooth من قبل ، فقم بإقران الوحدة باستخدام إعداد Bluetooth بهاتفك ثم قم بهذه الخطوة. ستبدو الشاشة كما هي:
ثم ، من القائمة ، انقر فوق "HC-05" لأن هذا هو اسم وحدة Bluetooth المستخدمة هنا. بعد النقر عليه ، سيظهر متصل على الشاشة. ثم يمكننا المضي قدما في لوحة النتائج.
انقر فوق أي زر بين "الصفحة الرئيسية" و "بالخارج" كما هو موضح في التطبيق. إذا تم تحديد زر الصفحة الرئيسية ، فسيتم زيادة درجة الصفحة الرئيسية في شاشة P10. وبالمثل ، إذا تم تحديد الزر بالخارج ، فستتم زيادة درجة بالخارج. توضح الصورة أدناه كيف تبدو الشاشة النهائية.
أتمنى أن تكون قد أحببت المشروع وتعلمت شيئًا جديدًا ، إذا كان لديك أي أسئلة أخرى بخصوص المشروع ، فلا تتردد في التعليق أدناه أو يمكنك طرح سؤالك في منتدانا.