- المواد المطلوبة:
- مخطط الرسم البياني:
- إنشاء تطبيق Android باستخدام المعالجة:
- فهم كود المعالجة:
- برمجة اردوينو الخاص بك:
- تصميم الدوائر و PCB باستخدام EasyEDA:
- حساب العينات وطلبها عبر الإنترنت:
- عمل شاشة لوحة تسجيل بلوتوث:
سواء كانت الطرق السريعة الطويلة الممتدة أو الباب الأمامي لأطباءك ، فلدينا لوحات إرشادية موضوعة في كل مكان لتزويدنا بالمعلومات. لكن لوحات الإشارات هذه غالبًا ما تكون مملة ولا يمكن تكوينها حسب اهتماماتنا من وقت لآخر. لذلك في هذا المشروع ، سنقوم ببناء لوحة تسجيل يتم التحكم فيها بواسطة Bluetooth باستخدام شاشة 8 * 8 Matrix. الميزة الفريدة لهذا المشروع هي تطبيق Android الخاص به والذي يسمح للمستخدم بالتحكم في جميع مصابيح LED البالغ عددها 64 بشكل فردي من الهاتف المحمول. يتيح ذلك للمستخدم إنشاء تصميمات مخصصة بسهولة وعرضها على شاشة LED ، هل تبدو مثيرة للاهتمام أليس كذلك؟ !! اذا هيا بنا نبدأ…
المواد المطلوبة:
- اردوينو برو ميني
- ماكس 7219
- وحدة بلوتوث HC-05
- 8 * 8 شاشة LED ماتريكس
- 20 كيلو المقاوم
- جاك برميل DC
مخطط الرسم البياني:
رسم تخطيطي للدائرة لوحة LED يتم التحكم فيها عن طريق البلوتوث تم إنشاؤها باستخدام تطبيق EasyEDA. سنستخدم نفس المخططات لتطوير ثنائي الفينيل متعدد الكلور منه وتصنيعه باستخدام EasyEDA.
الدائرة جميلة إلى الأمام. يتم تشغيل المشروع بالكامل بواسطة محول 12 فولت ، والذي يتم تقديمه مباشرة إلى دبوس Raw الخاص بلوحة Arduino. يتم بعد ذلك تنظيم هذا الجهد الخام إلى +5 فولت الذي يتم توفيره لوحدة Bluetooth و MAX7219 IC. يتم توصيل دبابيس Tx و Rx لوحدة Bluetooth بـ D11 و D10 من Arduino لتمكين الاتصال التسلسلي.
يتم توصيل المسامير الرقمية D5 إلى D7 بـ MAX7219 IC لإرسال واستقبال البيانات من خلال اتصال SPI. يتم سحب دبوس ISET من MAX7219 عالياً من خلال مقاوم 20 كيلو.
بالنسبة لهذا المشروع ، قمت بتصنيع ثنائي الفينيل متعدد الكلور ، يمكنك الحصول على ملف تصميم ثنائي الفينيل متعدد الكلور واستخدامه أو بناء الدائرة على لوح التجارب. ومع ذلك ، نظرًا لتعقيدها ، يوصى إما بشراء وحدة عرض 8 × 8 أو استخدام ثنائي الفينيل متعدد الكلور
مصفوفة 8x8 هي وحدة عرض مفيدة للغاية ويمكن استخدامها في العديد من المشاريع الرائعة:
- التحكم في مصفوفة 8x8 LED مع Raspberry Pi
- عرض النص التمرير على مصفوفة LED مقاس 8x8 باستخدام Arduino
- مصفوفة 8x8 LED باستخدام Arduino
- 8x8 LED مصفوفة تتفاعل مع متحكم AVR
إنشاء تطبيق Android باستخدام المعالجة:
قبل أن نبدأ في برمجة Arduino ، يجب أن نعرف نوع البيانات التي سنستلمها من الهاتف المحمول للرد عليها. لذلك دعونا نلقي نظرة على كيفية إنشاء تطبيق Android وكيف يمكنك استخدامه على هاتفك الذكي للتحكم في مصفوفة 8x8 LED.
تم إنشاء تطبيق Android لهذا المشروع باستخدام برنامج المعالجة. إنه تطبيق تطوير مفتوح المصدر ويمكن تنزيله بسهولة واستخدامه لتطوير مشاريع مثيرة للاهتمام باستخدام Arduino أو وحدات تحكم دقيقة أخرى لأنه يمكنه تطوير تطبيقات Android وتطبيقات النظام. لقد قمنا بالفعل ببعض المشاريع باستخدام المعالجة ويمكنك التحقق منها بالنقر فوق الروابط أدناه.
- DIY راديو FM باستخدام المعالجة
- الواقع الافتراضي / التحكم بالإيماءات باستخدام Arduino
- غرفة الدردشة الخاصة باستخدام Arduino.
- نظام رادار اردوينو باستخدام معالجة التطبيق ومستشعر الموجات فوق الصوتية
- اكتشاف الوجه وتتبعه في الوقت الحقيقي باستخدام Arduino
- عداد السرعة DIY باستخدام Arduino والمعالجة
- لعبة بينج بونج باستخدام مقياس التسارع اردوينو
- روبوت ذو قدمين باستخدام اردوينو
- كاميرا التصوير الحراري اردوينو DIY
بالعودة إلى الموضوع ، من المستحيل بالنسبة لي شرح الكود الكامل لتطبيق android ، لذا سيتعين عليك تعلم المعالجة بنفسك ثم إلقاء نظرة على الكود لفهم كيفية عمله. وبالتالي يمكن للأشخاص الراغبين في تخطي عملية معالجة التعلم تنزيل تطبيق android من الرابط أدناه
- قم بتنزيل تطبيق Android
فيما يلي واجهة تطبيق Android الخاص بنا:
يمكن تثبيت ملف APK مباشرة على أي تطبيق أندرويد وتشغيله مثل أي تطبيق آخر. ولكن تأكد من تسمية جهاز Bluetooth HC-05 الخاص بك باسم "HC-05" ، لأنه عندها فقط سيعمل.
فهم كود المعالجة:
يمكن للأشخاص المهتمين بمعرفة ما يحدث خلف الشاشة قراءة المزيد ، ويمكن للآخرين التخطي إلى العنوان التالي. يتصل تطبيق Android بشكل أساسي بجهاز Bluetooth يسمى "HC-05" أثناء بدء التشغيل ويعرض مجموعة من 64 مصباح LED في شكل دوائر. ثم عندما يضغط المستخدم على الدائرة ، تتحول الدائرة إلى اللون الأحمر ويتم إرسال رقم الدائرة إلى Arduino عبر البلوتوث ، وعند تلقي رقم الدائرة ، يقوم Arduino بتشغيل مؤشر LED. دعنا نلقي نظرة على الخطوط المهمة لبرنامج المعالجة لفهم أفضل. يمكن تنزيل الكود الكامل لتطبيق Android من الرابط أدناه.
- كود المعالجة لتطبيق Android
نستخدم الفئات والكائنات لعرض 64 مصباح LED حتى نتمكن من معالجة كل منها بسهولة. كما ترى في الكود أدناه ، نستخدم حلقة for للتكرار من 1 إلى 64 باستخدام مصفوفة. كان هذا كل LED سيكون له قيمته الخاصة من موضع X وموضع Y ولونه ويمكننا تغييرها بسهولة.
// dipslay جميع المصابيح لـ (int i = 1 ؛ i <= 64 ؛ i ++) led_array.display () ؛ // تعرض جميع المصابيح فئة Led { float X_Pos؛ تعويم Y_Pos ؛ لون اللون // CONSTRUTOR Led (درجة حرارة تعويم ، درجة حرارة تعويم ، درجة حرارة ملونة) { X_Pos = tempx؛ Y_Pos = tempy ؛ اللون = tempc ؛ } void display () { fill (color)؛ القطع الناقص (X_Pos ، Y_Pos ، led_dia ، led_dia) ؛ } }
يتم تحميل مؤشرات LED على الشاشة بنفس ترتيب الشاشة. يتم فصل كل LED بمسافة مساوية لقطر LED ، وبهذه الطريقة يمكننا بسهولة التمييز بين LED الذي يختاره المستخدم حاليًا. كما هو موضح في البرنامج أدناه ، نقوم بإنشاء مصفوفة يحتفظ فيها كل عنصر بمعلومات عن موضع X و Y ولون LED.
فارغ load_leds () { led_array = new Led؛ الباحث أ = 1 ؛ لـ (int j = 0 ؛ j <= 7 ؛ j ++) { float y = height / 6 + j * (led_dia * 1.5) ؛ لـ (int i = 0 ؛ i <= 7 ؛ i ++) { float x = (width / 6) + i * (led_dia * 1.5) ؛ // ملء (255) ؛ // القطع الناقص (x ، y ، led_dia ، led_dia) ؛ led_array = مصباح LED جديد (س ، ص ، لون (255،255،255)) ؛ أ ++ ؛ } } }
تتمثل الخطوة الرئيسية في البرنامج في التحقق مما إذا كان المستخدم قد ضغط على أي مؤشر LED وإذا كانت الإجابة بنعم ، فيجب علينا تغيير لون مؤشر LED وإرسال رقم LED عبر Bluetooth. منذ الآن يمكننا معالجة موقع ولون كل LED بسهولة يمكننا القيام بذلك من خلال مقارنة قيم X و Y للمكان الذي ضغط فيه المستخدم مع قيمة X و Y لمصابيح LED. إذا تم دمج القيم مع بعضها البعض ، فإننا نغير حالة LED ونرسل أيضًا الرقم عبر Bluetooth كما هو موضح أدناه.
// تحقق مما إذا كان الماوس فوق led // إذا كانت الإجابة بنعم ، فأرسل رقم الصمام لـ (int i = 1 ؛ i <= 64 ؛ i ++) { if ((mouseX <(led_array.X_Pos + led_dia / 2)) && (mouseX> (led_array.X_Pos - led_dia / 2)) && (mouseY <(led_array.Y_Pos + led_dia / 2)) && (mouseY> (led_array.Y_Pos - led_dia / 2))) {led_array = new Led (led_array.X_Pos، led_array. Y_Pos ، led_color) ؛ بيانات البايت = {بايت (i)} ؛ البث (البيانات) ؛ } }
بصرف النظر عن هذا ، يمكن للبرنامج أيضًا إعادة تعيين مؤشر LED الكامل عن طريق إيقاف تشغيلها جميعًا ، كما يمكنك إما جعل مؤشر LED يتحول إلى اللون الأحمر (ON) أو الأبيض (OFF) حتى يكون لدينا أيضًا زر تبديل لذلك. يتم عرض زر التبديل وينتظر الإدخال. إذا ضغطت سيتم اتخاذ الإجراء المعني. يتم عرض الكود للقيام بالشيء نفسه أدناه كدالة تسمى داخل حلقة السحب.
void load_buttons () { rectMode (CENTER) ؛ textAlign (CENTER ، CENTER) ؛ noStroke () ، ملء (# 1BF2D4) ؛ مستقيم (عرض / 2-عرض / 4 ، ارتفاع / 1.3 ، عرض / 4 ، ارتفاع / 12) ؛ ملء (0) ؛ نص ("إعادة تعيين" ، عرض / 2-عرض / 4 ، ارتفاع / 1.3) ؛ // button 1 if (red == true) {fill (# 080F89) ؛ مستقيم (عرض / 2 + عرض / 4 ، ارتفاع / 1.3 ، عرض / 4 ، ارتفاع / 12) ؛ تعبئة (255،0،0) ؛ نص ("أحمر" ، عرض / 2 + عرض / 4 ، ارتفاع / 1.3) ؛} // الزر 2 إذا (أحمر == خطأ) {ملء (# 080F89) ؛ مستقيم (عرض / 2 + عرض / 4 ، ارتفاع / 1.3 ، عرض / 4 ، ارتفاع / 12) ؛ تعبئة (255) ؛ text ("WHITE"، width / 2 + width / 4، height / 1.3)؛} // button 2 } فارغ read_buttons () { if (mousePressed && click_flag == true) { color_val = get (mouseX، mouseY)؛ click_flag = خطأ ؛ إذا (color_val == - 14945580) { بيانات البايت = {0} ؛ البث (البيانات) ؛ println ("RESET") ؛ load_leds () ؛ // تحميل كل المصابيح في الموضع واللون } إذا (color_val == - 16248951) { بيانات البايت = {100} ؛ البث (البيانات) ؛ إذا (أحمر == صحيح) أحمر = خطأ ؛ وإلا إذا (أحمر == خطأ) أحمر = صحيح ؛ println ("TOGGLE") ؛ } color_val = 0 ؛ } }
برمجة اردوينو الخاص بك:
يتم تقديم برنامج Arduino الكامل لمشروع اللوحة اللاسلكية التي يتم التحكم فيها عن طريق Bluetooth في الجزء السفلي من هذه الشاشة ؛ يمكنك استخدامه مباشرة وتحميله على لوحك. يتم شرح الخطوط المهمة في البرنامج أدناه.
و يتم توصيل وحدة بلوتوث دبوس 10 و 11 ، وبالتالي علينا أن نستخدم المسلسل برنامج لتمكين الاتصال التسلسلي على هذه المسامير وبعد ذلك يمكننا الاستماع للبيانات من هذه المسامير. نحصل على البيانات الواردة من وحدة البلوتوث ونحفظها في متغير يسمى الوارد . إذا كانت قيمة الوارد "0" ، فسنقوم بإيقاف تشغيل كل LED باستخدام الكود أدناه
إذا (BT.available ()) { الواردة = BT.read () ؛ Serial.println (وارد) ؛ إذا (واردة == 0) m.clear () ؛ // يمسح الشاشة
باستخدام قيم الوارد ، يتعين علينا تحديد مؤشر LED الذي ضغط عليه المستخدم على الهاتف المحمول والطقس لتشغيل أو إيقاف تشغيل هذا LED. لذلك نتحقق مما إذا كانت القيمة تساوي 100. إذا كانت القيمة 10 ، فهذا يعني أن المستخدم قد طلب تبديل لون مؤشر LED. لذلك قمنا بتبديل اللون الأحمر المتغير لمعرفة ما إذا كان يجب تشغيل أو إيقاف تشغيل LED.
else if (الوارد == 100) // تحقق مما إذا كان يجب علينا تشغيل أو إيقاف تشغيل LED { if (red == true) red = false ؛ وإلا إذا (أحمر == خطأ) أحمر = صحيح ؛ Serial.print ("RED:") ؛ Serial.println (أحمر) ؛ }
أخيرًا ، إذا كانت القيمة تزيد عن 65 ، فهذا يعني أن المستخدم قد ضغط على مؤشر LED. بناءً على الرقم من 1 إلى 64 ، يتعين علينا تحديد مؤشر LED الذي ضغط عليه المستخدم. لتبديل مؤشر LED هذا ، سنحتاج إلى قيمة الصف والعمود الخاصين بمؤشر LED الذي يتم حسابه وتخزينه على المتغير X و Y على التوالي والمبين في الكود أدناه. أخيرًا استنادًا إلى قيمة اللون الأحمر المتغير ، نقوم إما بتشغيل أو إيقاف تشغيل مؤشر LED حسب طلب المستخدم
وإلا إذا (واردة <= 64) {// احسب مكان تشغيل ro إيقاف تشغيل LED toggle = true ؛ ص = وارد / 8 ؛ X = وارد - (Y * 8) ؛ إذا (واردة٪ 8 == 0) {X = 8 ؛ ص - = 1} Serial.println (X - 1) ؛ Serial.println (Y) ؛ إذا (أحمر == صحيح) m.setDot ((X - 1) ، (Y) ، صحيح) ؛ // LED ON وإلا إذا (أحمر == خطأ) m.setDot ((X - 1) ، (Y) ، خطأ) ؛ // LED OFF }
تصميم الدوائر و PCB باستخدام EasyEDA:
لتصميم شاشة المصفوفة التي يتم التحكم فيها عن طريق البلوتوث ، اخترنا أداة EDA عبر الإنترنت تسمى EasyEDA لقد استخدمت EasyEDA في السابق عدة مرات ووجدته مناسبًا جدًا للاستخدام نظرًا لأنه يحتوي على مجموعة جيدة من آثار الأقدام وهو مفتوح المصدر. بعد تصميم PCB ، يمكننا طلب عينات PCB من خلال خدمات تصنيع PCB منخفضة التكلفة. كما أنها توفر خدمة تحديد مصادر المكونات حيث يكون لديها مخزون كبير من المكونات الإلكترونية ويمكن للمستخدمين طلب المكونات المطلوبة إلى جانب طلب ثنائي الفينيل متعدد الكلور.
أثناء تصميم الدوائر الخاصة بك وثنائي الفينيل متعدد الكلور ، يمكنك أيضًا جعل تصميمات الدوائر الكهربائية وثنائي الفينيل متعدد الكلور علنية حتى يتمكن المستخدمون الآخرون من نسخها أو تعديلها والاستفادة من عملك ، كما أننا جعلنا تخطيطات الدوائر و PCB بالكامل عامة لهذه الدائرة ، تحقق الرابط أدناه:
easyeda.com/circuitdigest/8x8-led-matrix-display-control-with-bluetooth
يمكنك عرض أي طبقة (علوي ، سفلي ، علوي ، حريري ، إلخ) لثنائي الفينيل متعدد الكلور عن طريق تحديد الطبقة من نافذة "الطبقات".
يمكنك أيضًا عرض PCB ، وكيف سيبدو بعد التصنيع باستخدام زر Photo View في EasyEDA:
حساب العينات وطلبها عبر الإنترنت:
بعد الانتهاء من تصميم لوحة الدوائر المطبوعة التي يتم التحكم فيها عن طريق البلوتوث ، يمكنك طلب PCB من خلال JLCPCB.com. لطلب PCB من JLCPCB ، تحتاج إلى ملف Gerber. لتنزيل ملفات Gerber من PCB الخاص بك ، ما عليك سوى النقر فوق زر Fabrication Output في صفحة محرر EasyEDA ، ثم قم بالتنزيل من صفحة طلب EasyEDA PCB.
انتقل الآن إلى JLCPCB.com وانقر فوق Quote Now أو الزر ، ثم يمكنك تحديد عدد PCBs التي تريد طلبها ، وعدد الطبقات النحاسية التي تحتاجها ، وسمك PCB ، ووزن النحاس ، وحتى لون PCB ، مثل اللقطة ظاهر أدناه:
بعد تحديد جميع الخيارات ، انقر فوق "حفظ في عربة التسوق" ، ثم سيتم نقلك إلى الصفحة حيث يمكنك تحميل ملف Gerber الخاص بك والذي قمنا بتنزيله من EasyEDA. قم بتحميل ملف جربر وانقر على "حفظ في عربة التسوق". وأخيرًا انقر فوق Checkout Securely لإكمال طلبك ، ثم ستحصل على PCBs بعد بضعة أيام. إنهم يصنعون ثنائي الفينيل متعدد الكلور بمعدل منخفض للغاية وهو 2 دولار. كما أن وقت الإنشاء أقل بكثير وهو 48 ساعة مع توصيل DHL من 3-5 أيام ، وستحصل بشكل أساسي على مركبات ثنائي الفينيل متعدد الكلور في غضون أسبوع من الطلب.
بعد أيام قليلة من طلب PCB ، حصلت على عينات PCB في عبوات لطيفة كما هو موضح في الصور أدناه.
وبعد الحصول على هذه القطع ، قمت بلحام جميع المكونات المطلوبة على ثنائي الفينيل متعدد الكلور.
في PCB الخاص بي ، ارتكبت خطأً فادحًا عن طريق تحديد البصمة الخاطئة لوحدة العرض 8 * 8 ، وبالتالي كان علي استخدام لوحة Perf لتركيب الشاشة كما هو موضح في الصورة. ولكن الآن البصمة عبارة عن تحديثات في PCB ويمكنك طلب PCB المصحح وتركيب وحدة العرض بسهولة.
عمل شاشة لوحة تسجيل بلوتوث:
بمجرد أن تكون جاهزًا مع الأجهزة إما من خلال الحصول على PCB أو إجراء الاتصال على اللوح ، استخدم برنامج Arduino الوارد في نهاية الصفحة وقم بتحميله على لوحة Arduino. في ملف التطبيق APK الروبوت كما تقدم أعلاه، واستخدامها وتثبيت التطبيق على جهاز الروبوت المفضل لديك.
قم بتشغيل الجهاز وابحث عن اسم جهاز HC-05 على هاتفك لإقرانه به. سيكون مفتاح المرور 1234 افتراضيًا. بعد ذلك ، افتح التطبيق الذي قمنا بتثبيته للتو. يجب أن يعرض التطبيق عبارة " متصل بـ HC-05 " في الجزء العلوي من الشاشة ، وبعد ذلك ستتمكن من لمس مؤشر LED على الشاشة ولاحظ أن نفس مؤشر LED قيد التشغيل في اللوحة أيضًا.
يمكنك أيضًا إيقاف تشغيل كل مؤشر LED بالضغط على زر إعادة الضبط وتقرر تشغيل أو إيقاف تشغيل مصباح LED معين بالضغط على زر Toggle. بشكل افتراضي ، سيتم تشغيل أي مؤشر LED تضغط عليه. يمكن العثور على العمل الكامل للمشروع في الفيديو أدناه. إذا كانت لديك أي مشكلة في تشغيله ، فاستخدم مربع التعليقات أدناه أو اكتب على منتدياتنا للحصول على مزيد من المساعدة الفنية. آمل أن تكون قد فهمت البرنامج التعليمي واستمتعت ببنائه.