جدول المحتويات:

لوحة نتائج لعبة الكريكيت باستخدام NodeMCU: 9 خطوات (بالصور)
لوحة نتائج لعبة الكريكيت باستخدام NodeMCU: 9 خطوات (بالصور)
Anonim
Image
Image
الخطة
الخطة

أهلا! تعرفت مؤخرًا على عالم إنترنت الأشياء (IoT) حيث صادفت الجهاز الأكثر شيوعًا في هذا المجال ، وهو ESP8266. لقد اندهشت من العدد النهائي من الاحتمالات التي فتحها هذا الجهاز الصغير والرخيص. نظرًا لأنني جديد على هذا حاليًا ، فقد قررت إنشاء مشروع باستخدامه والتعلم على طول الطريق. لذلك ، بدأت في البحث على الإنترنت عن المشاريع والأفكار.

صادفت مشروعًا رائعًا يسمى Arduino Cricket Score Ticker بواسطة W. A. Smith. في هذا المشروع ، يتم استخدام Arduino جنبًا إلى جنب مع Ethernet Shield وبطاقة SD لعرض نتائج الكريكيت الحية من Cricbuzz. هذا المشروع جعلني أفكر.

أنا من الهند وأول ما يتبادر إلى الذهن بعد سماع الهند هو لعبة الكريكيت. هنا ، لعبة الكريكيت هي الدين. يصعب أحيانًا الجلوس أمام التلفزيون لمتابعة المباراة بأكملها. فلماذا لا نصنع شيئًا يجعل مشاهدة النتيجة سهلة ولاسلكية ومحمولة. جهاز صغير مخصص يعرض معلومات كافية لإطلاعك على آخر المستجدات بمجرد لمحة سريعة عنه.

لست من محبي لعبة الكريكيت؟ لا مشكلة! يحتوي الكود على محلل XML والذي يمكن استخدامه للحصول على البيانات من أي ملف XML. فقط استخدم الوظائف الصحيحة للحصول على البيانات.

الخطوة 1: الخطة

الخطة
الخطة

تتمثل الخطة في استخدام NodeMCU Development Board (مع وحدة ESP-12E) للوصول إلى الإنترنت وطلب رمز XML من Cricbuzz والذي يحتوي على جميع المعلومات حول المباريات الجارية / القادمة. يتم حفظ هذا الرمز على بطاقة SD كملف.xml. ثم يتم قراءة الملف من بطاقة SD لتحليل البيانات المطلوبة من كود XML. سأستخدم كود W. A. Smith لتحليل المعلومات. بفضل جهوده. تحقق من مشروعه إذا كنت ترغب في القيام بنفس الشيء باستخدام Arduino و Ethernet Shield.

فكرتي هي جعلها صغيرة قدر الإمكان ، وبناء ثنائي الفينيل متعدد الكلور مخصص وحالة لذلك. الآن ، دعنا نصنع نموذجًا أوليًا. لكن أولاً ، دعنا نتعرف على المكونات المستخدمة في هذا المشروع.

هيا بنا نبدأ

الخطوة 2: شاشة OLED

شاشة OLED
شاشة OLED
شاشة OLED
شاشة OLED

قررت استخدام شاشة OLED نظرًا لصغر حجمها وهي متوفرة بسعر رخيص. أنا أستخدم شاشة مقاس 0.96 بوصة والتي ستكون كافية لعرض معلومات المطابقة. يمكنك استخدام أي حجم للعرض.

الشاشة التي أستخدمها هي شاشة أحادية اللون مع برنامج تشغيل SSD1306 وواجهة I2C (سلكان). تتوفر أيضًا إصدارات SPI للعرض. تشغيلها مهمة سهلة. قم بتنزيل مكتبات SSD1306 و GFX اللازمة لتشغيل شاشات العرض. بفضل Adafruit لكتابة هذه المكتبات.

التوصيلات بسيطة للغاية.

  • GND إلى GND
  • VCC إلى 3.3 فولت
  • SCL إلى D1
  • SDA إلى D2.

الخطوة 3: بطاقة SD والمحول

بطاقة SD ومحول
بطاقة SD ومحول

تقوم بطاقة SD بتخزين ملف XML من Cricbuzz حتى يتم تحليل جميع المعلومات. بمجرد عرض المعلومات الضرورية ، يتم حذف الملف. يعد استخدام بطاقة SD لتخزين ملف XML بحجم 10 إلى 20 كيلو بايت أمرًا مبالغًا فيه بعض الشيء ولكنه يجعل التحليل أسهل كثيرًا ويسهل فهمه.

يمكن استخدام أي بطاقة ذاكرة. لقد اخترت بطاقة micro SD لعامل الشكل الصغير. يمكنك لحام الأسلاك مباشرة ببطاقة SD ولكن استخدام لوحة الاختراق يجعل المهمة سهلة. تجدر الإشارة إلى أن جميع بطاقات SD مصممة للعمل على 3.3 فولت. هذا يعني أنه لا يجب أن يتم تشغيله فقط باستخدام 3.3 فولت ولكن أيضًا يجب أن يكون الاتصال بين وحدة التحكم الدقيقة وبطاقة SD على مستوى المنطق 3.3 فولت. الجهد فوق 3.3 فولت سيقتلها! لن نكون قلقين بشأنه بقدر ما يتعلق الأمر بـ NodeMCU لأن NodeMCU نفسها تعمل على 3.3 فولت وهو أمر جيد. إذا كنت تخطط لاستخدام أي متحكم آخر بمستوى منطقي 5 فولت ، فتأكد من أن لوحة الاختراق تحتوي على ناقل حركة مدمج (كما هو موضح في الصورة). إنها تقوم بشكل أساسي بتحويل أو `` نقل '' 5V من وحدة التحكم الدقيقة إلى بطاقة SD الصديقة 3.3V. لا يؤثر استخدام ناقل الحركة مع 3.3 فولت (كما فعلت) على عمله.

تستخدم بطاقة SD واجهة SPI للاتصال. يمكن توصيل دبوس CS أو Chip Select بأي من دبابيس GPIO. اخترت GPIO15 (D8). ما عليك سوى إجراء التغييرات اللازمة في الكود إذا كنت تستخدم دبوسًا غير GPIO15

  • SCK إلى D5
  • MISO إلى D6
  • MOSI إلى D7
  • CS إلى D8
  • VCC إلى 3.3 فولت
  • GND إلى GND

قم بتهيئة بطاقة SD الخاصة بك

المكتبة التي سنستخدمها تدعم أنظمة الملفات FAT16 أو FAT32. تأكد من تهيئة بطاقة SD بالتنسيق الصحيح.

الخطوة 4: عمل لوحة المفاتيح

صنع لوحة المفاتيح
صنع لوحة المفاتيح
صنع لوحة المفاتيح
صنع لوحة المفاتيح
صنع لوحة المفاتيح
صنع لوحة المفاتيح

أريد أن أبقي المشروع صغيرًا قدر الإمكان. لذلك ، قررت إنشاء لوحة منفصلة للوحة المفاتيح وتركيبها فوق اللوحة الرئيسية لاحقًا. هذا سيوفر بعض المساحة.

يمكن شراء مصفوفة مفاتيح جاهزة ولكن كان لدي أزرار ضغط موضوعة حولها. أيضًا ، أردت أن أجعلها صغيرة قدر الإمكان. يحتاج الترتيب النموذجي لربط الصفوف والأعمدة إلى إجمالي 6 دبابيس GPIO لمصفوفة 3 × 3. يعتبر هذا كثيرًا نظرًا لأنه سيتم توصيل شاشة OLED وبطاقة SD أيضًا.

عندما تكون في شك ، ابحث في Google عن ذلك! هذا ما فعلته ووجدت طريقة ستحتاج إلى دبوس واحد فقط للتحكم في المصفوفة بأكملها. أصبح هذا ممكنًا باستخدام Voltage Divider Matrix. المقاومات متصلة بين كل صف وعمود. عند الضغط على مفتاح ، يتم توصيل مجموعة معينة من المقاومات على التوالي مما يؤدي إلى إنشاء مقسم جهد. الرجوع إلى مخطط الدائرة. سيقرأ المتحكم الدقيق الجهد المتغير. سينتج كل مفتاح جهدًا مختلفًا ، وبالتالي يمكن بسهولة معرفة المفتاح الذي تم الضغط عليه من خلال قراءة جهد الخرج للمصفوفة. نظرًا لأننا نريد قراءة مستويات جهد متفاوتة والآن فقط عالية ومنخفضة ، فسنحتاج إلى دبوس تناظري. لحسن الحظ ، يوجد دبوس تناظري واحد يسمى A0 على NodeMCU. تم حل المشكلة!

إذا كنت ترغب في شراء مصفوفة تحقق من التوصيلات الداخلية الموضحة في الرسم التخطيطي. يمكن استخدام مصفوفة من أي أبعاد. تأكد من استخدام المقاوم 2.2kΩ بين الصفوف و 680 المقاومة بين الأعمدة.

ربط أزرار الدفع

الدبابيس 1 و 2 متصلة داخليًا. نفس الشيء مع الدبابيس 3 و 4. عند الضغط على الزر ، يتم توصيل جميع المسامير معًا. قم بإحالة الصورة للحصول على فكرة عن توصيل المفاتيح الموجودة على لوحة الأداء.

لقد قمت بتوصيل رأس ذكر ثلاثي السنون بحيث يمكن توصيله باللوحة الرئيسية لاحقًا.

الخطوة 5: وضع كل شيء معًا

نضع كل شيء معًا
نضع كل شيء معًا
نضع كل شيء معًا
نضع كل شيء معًا
نضع كل شيء معًا
نضع كل شيء معًا

يمكنك التخطيط لوضع المكونات أينما تريد. لا قيود على ذلك. سأوضح لك كيف فعلت ذلك لجعله مضغوطًا لأنني أردت شيئًا يناسب راحة اليد. يمكن أن تحصل على القليل من الفوضى ، لذا جرب طريقي إذا كنت مرتاحًا للحام. قررت ملء كلا جانبي اللوحة كما سيكون ثنائي الفينيل متعدد الكلور من طبقتين. لوحة اندلاع بطاقة NodeMCU و SD على جانب واحد و OLED ولوحة المفاتيح على الجانب الآخر.

يحدث كسر بطاقة SD ليتناسب فقط بين رأسي الأنثى المخصصين لـ NodeMCU. لقد قمت بفك رؤوس الذكور الزاوية التي تأتي بها لوحة الفصل ، وقمت بتدويرها ولحامها مرة أخرى بحيث تتحرك المسامير بشكل عمودي لأسفل كما هو موضح في الصورة. يصبح الوصول إلى فتحة بطاقة SD أسهل.

لقد ثنيت دبابيس رأس أنثى 4 سنون بزاوية قائمة وقمت بلحامها على الجانب النحاسي من لوحة perfboard كما هو موضح في الصورة.

قم بتغطية مفاصل اللحام أسفل لوحة المفاتيح لمنع حدوث دوائر قصيرة. أضف قطعة رقيقة من الإسفنج الصلب (حوالي 5 مم) بين لوحة المفاتيح واللوحة الرئيسية لمزيد من الحماية والصلابة. أخيرًا ، قم بلحام لوحة المفاتيح التي صنعناها سابقًا. إن وجود مكواة لحام برأس مدبب سيجعل عملك سهلاً بالتأكيد. لقد كانت مهمة فوضوية مما جعلها مضغوطة قدر الإمكان ولكنها تمكنت أخيرًا من القيام بذلك.

تحقق جيدًا من جميع اتصالاتك بحثًا عن أي دوائر قصيرة قبل تشغيل الجهاز

الخطوة 6: إعداد لوحة المفاتيح

إعداد لوحة المفاتيح
إعداد لوحة المفاتيح

بمجرد التحقق من جميع الاتصالات ، تكون جاهزًا لتشغيل جهازك لأول مرة. تشابك الاصابع! لا دخان سحري؟ تهاني!

نحن الآن جاهزون لإعداد لوحة المفاتيح. أذكر عمل لوحة المفاتيح. ستخرج كل ضغطة مفتاح جهدًا مختلفًا يتم تغذيته بالدبوس التناظري لـ NodeMCU. يحتوي ESP-12E على محول تناظري إلى رقمي (ADC) بدقة 10 بت. 2 مرفوعة إلى القوة 10 ستعطي 1024. هذا يعني أننا سنحصل على قراءة بين 0 و 1024 لكل مفتاح يتم الضغط عليه. دعونا نرى ما القراءات التي نحصل عليها. لكن أولاً ، علينا كتابة برنامج صغير للحصول على هذه القيم. افتح Arduino IDE ، انسخ والصق الكود التالي وقم بتحميله على NodeMCU.

int keypadPin = A0 ؛

إعداد باطل () {Serial.begin (115200) ؛ } حلقة فارغة () {int r = analogRead (keypadPin) ؛ Serial.println (r) ؛ }

  • افتح الشاشة التسلسلية. اضبط معدل الباود على 115200.
  • الآن اضغط على أي زر. يجب أن تحصل على قراءة مستمرة على الشاشة التسلسلية. التقلبات الصغيرة لا بأس بها. سيتم الاهتمام بها في الكود الرئيسي. افعل نفس الشيء مع كل مفتاح.
  • يجب أن يكون لكل مفتاح قراءة مختلفة.
  • دوّن كل القيم. سنحتاجهم لاحقا.

الخطوة 7: دعونا نبرمج

دعونا نبرمج
دعونا نبرمج
دعونا نبرمج
دعونا نبرمج
دعونا نبرمج
دعونا نبرمج

قم بتنزيل ملف Scoreboard.ino الموجود أدناه على جهاز الكمبيوتر الخاص بك وافتحه باستخدام Arduino IDE.

قبل التحميل

1) اضبط وقت التحديث للوحة النتائج. على سبيل المثال ، 15 لترًا لمدة 15 ثانية.

2) أدخل SSID وكلمة المرور للموجه المراد الاتصال به.

3) قم بإجراء التغييرات اللازمة إذا اخترت توصيل طرف CS لبطاقة SD برقم آخر غير GPIO15.

4) تذكر القيم التي سجلناها لجميع المفاتيح؟ علينا تعيين رقم مفتاح لكل قيمة. لقد أخبرتك أيضًا عن التقلبات في القراءة. هذا بسبب تبديل جهات الاتصال ليست مثالية. على المدى الطويل ، يمكن أن تنحرف هذه القيمة عن القيمة الحالية بسبب تقادم جهات الاتصال التي تضيف مقاومة إضافية في الدائرة وبالتالي تغيير الجهد. يمكننا الاهتمام بهذه المشكلة في الكود.

سنضيف حدًا أعلى وحدًا أدنى للقيمة بهامش 5. على سبيل المثال ، حصلت على قراءة 617 للمفتاح 1.

  • اطرح 5 منه. 617 - 5 = 612. هذا هو الحد الأدنى.
  • أضف الآن 5 إليه. 617 + 5 = 622. هذا هو الحد الأعلى.
  • قم بالتمرير إلى نهاية الرمز. املأ الفراغ المخصص للقيمتين في الكود كما هو موضح في الصورة.
  • افعل هذا لكل 9 قيم.

إذا (r> 612 && r <622) {keyNumber = 1 ؛ }

ماذا يعني هذا؟

إذا كانت القراءة (r) أكبر من 612 وأقل من 622 ، يتم الضغط على المفتاح 1. سيتم التعامل مع أي قيمة بين 612 و 622 كمفتاح 1. هذا يحل مشكلة تذبذب القراءة.

الخطوة الثامنة: بناء القضية

بناء القضية
بناء القضية
بناء القضية
بناء القضية
بناء القضية
بناء القضية
بناء القضية
بناء القضية

هذا اختياري تمامًا. اعتقدت أن المشروع سيبدو أنيقًا ومكتملًا مع حالة من حوله. مع عدم وجود أدوات مناسبة لهذه الوظيفة ، ستكون مهمة ضخمة بالنسبة لي. العلبة مصنوعة من الأكريليك.

جهز القطع للالتصاق عن طريق تنعيم الحواف باستخدام ورق الصنفرة. لقد استخدمت Fevi Kwik (Super Glue) لضم كل القطع معًا. يترك الغراء الفائق بقايا بيضاء بعد معالجته. لذلك ، قم بتطبيقه فقط بين المفاصل. يجب أن تكون سريعًا ودقيقًا عند العمل باستخدام الغراء الفائق لأنه يتم ضبطه بسرعة. الاكريليك الأسمنت هو الأنسب لهذه الوظيفة.

فتح فتحة صغيرة للوصول إلى منفذ USB باستخدام ملف. يجب أن يكون كبيرًا بما يكفي لإدخال سلك USB.

إنشاء شبكة 3x3 على الغطاء الأمامي لأزرار الضغط. سيؤدي ذلك إلى صعوبة الوصول إلى الأزرار الانضغاطية. لحل هذه المشكلة ، قمت بقص قطع مربعة لكل مفتاح بحيث يتم الآن تمديد أزرارها إلى السطح.

بعد الكثير من الصنفرة والقطع والتثبيت والتعديل ، تم ذلك أخيرًا!

الخطوة 9: استمتع

استمتع!
استمتع!

أخيرًا ، تم الانتهاء من كل العمل الشاق. قم بتشغيل لوحة النتائج المصغرة الخاصة بك وابق على اطلاع دائم باللعبة.

بعد التشغيل ، يتصل أولاً بنقطة الوصول. يقوم بتهيئة بطاقة SD. سيظهر خطأ إذا لم يتم تهيئة بطاقة SD.

سيتم عرض قائمة بجميع المباريات مع رقم المباراة.

حدد رقم المطابقة باستخدام لوحة المفاتيح.

سيتم عرض النتائج. يمكنك تخصيص كل الأشياء التي تريد رؤيتها على الشاشة. لن أتعمق في شرح الكود. يمكنك العثور هنا على شرح مفصل حول كيفية عمل التحليل.

للعودة إلى القائمة ، استمر في الضغط على زر BACK (مفتاح 8) حتى يتم عرض صفحة "جلب النتائج …".

خطط مستقبلية

  • صمم PCB مخصصًا مع وحدة ESP8266 12-E.
  • أضف بطارية قابلة لإعادة الشحن.
  • تحسين الكود بميزات جديدة.

أتمنى أن تكون قد استمتعت بالبناء. اجعلها بنفسك واستمتع! هناك دائمًا مساحة للتحسين والكثير لنتعلمه. تعال إلى أفكارك الخاصة. لا تتردد في التعليق على أي اقتراحات بخصوص البناء. شكرا لك على البقاء حتى النهاية.

موصى به: