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

توصيل المعالجة و Arduino وعمل 7 شرائح ووحدة تحكم مؤازرة GUI: 4 خطوات
توصيل المعالجة و Arduino وعمل 7 شرائح ووحدة تحكم مؤازرة GUI: 4 خطوات

فيديو: توصيل المعالجة و Arduino وعمل 7 شرائح ووحدة تحكم مؤازرة GUI: 4 خطوات

فيديو: توصيل المعالجة و Arduino وعمل 7 شرائح ووحدة تحكم مؤازرة GUI: 4 خطوات
فيديو: Arduino lesson 16 : 7 segment display + shift register 74HC595N / عداد بستخدام شاشه رقمية 2024, شهر نوفمبر
Anonim
توصيل المعالجة و Arduino وإنشاء وحدة تحكم واجهة المستخدم الرسومية المؤازرة المكونة من 7 شرائح
توصيل المعالجة و Arduino وإنشاء وحدة تحكم واجهة المستخدم الرسومية المؤازرة المكونة من 7 شرائح

بالنسبة لبعض المشاريع التي قمت بإنشائها ، تحتاج إلى استخدام Arduino لأنه يوفر نظامًا أساسيًا سهلًا للنماذج الأولية ، لكن عرض الرسومات في الشاشة التسلسلية لـ Arduino يمكن أن يستغرق وقتًا طويلاً ، بل ويصعب القيام به. يمكنك عرض الرسوم البيانية على Arduino Serial Monitor لكن الرسوم البيانية ليست الشيء الوحيد الذي قد تحتاج إلى عرضه. جميع الكائنات التفاعلية مثل أشرطة التمرير أو الأزرار أو البرامج ذات الإخراج ثنائي الأبعاد أو ثلاثي الأبعاد أو PDF أو SVG ويمكنك أيضًا إنشاء رسوم متحركة بسهولة. وضع البرمجة الافتراضي للمعالجة هو Java ولكن يمكنك تبديله إلى Android و p5.js و REPL و CoffeeScript و JavaScript. في Instructable ، سنستخدم وضع برمجة Java.

كل المحتوى والكود متاح أيضًا على جيثب الخاص بي هنا.

الخطوة 1: استخدام Processing.serial

كود المعالجة

سيكون أول سطرين من التعليمات البرمجية

معالجة الاستيراد. تسلسلي. * ؛ المسلسل myPort ؛

هنا في السطر الأول نقوم باستيراد المكتبة - المعالجة وفي السطر الثاني نقوم بإنشاء كائن من الفئة Serial المسمى myPort ، يمكنك تسميته كما تريد باتباع قواعد تسمية المعرف.

أثناء المعالجة ، لدينا إعداد باطل () ورسم باطل () حيث يكون void هو نوع إرجاع الوظيفة ، يمكنك أيضًا تغييره إلى إعداد int () و int draw () أو أي نوع بيانات آخر تريده ولكنك ستحتاج إلى إرجاع قيمة لها نفس نوع البيانات مثل نوع البيانات الذي تستخدمه قبل الوظائف.

في الإعداد () نكتب العبارات التي نحتاج إلى تنفيذها مرة واحدة بينما في draw () نكتب العبارات التي نحتاجها لتنفيذ عدة مرات. يجب كتابة سطري الكود المذكورين أعلاه فوق إعداد باطل () لأنهما يحتاجان إلى وصول عالمي.

في الإعداد الفراغي () سنقوم بتهيئة منفذ myPort الخاص بالكائن.

الإعداد باطل(){

الحجم (800 ، 800) ؛

myPort = مسلسل جديد (هذا ، "COM18" ، 9600) ؛

}

حجم الخط (800 ، 800) ؛ يحدد حجم الشاشة وهو 800 بكسل × 800 بكسل.

يتم استخدام الكلمة الرئيسية new في السطر الثاني لحجز مساحة للكائن في الذاكرة ، الوسيطة هذا متغير مرجعي يشير إلى الكائن الحالي. الوسيطة COM18 هي منفذ Arduino المتصل ، نحتاج إلى هذا لأننا سننقل البيانات عبر الواجهة التسلسلية. قد يكون الرقم 18 مختلفًا في حالتك ، يمكنك العثور عليه ضمن Tools> Port in Arduino IDE و 9600 هو معدل الباود الذي يمكنك تغييره في كل من Arduino والمعالجة.

الخطوة 2: فهم فئة المسلسل

منشئ المسلسل

المسلسل (الأصل ، portName ، baudRate ، التكافؤ ، dataBits ، stopBits)

الحجج:

الوالد: عادة ما تستخدم "هذا"

معدل البث بالباود (int): 9600 هو الافتراضي

اسم المنفذ (سلسلة): اسم المنفذ (COM1 هو الافتراضي)

التكافؤ (حرف): "N" لا شيء ، "E" للزوج ، "O" للفرد ، "M" للعلامة ، "S" للمسافة ("N" هي القيمة الافتراضية)

dataBits (int): 8 هو الافتراضي

StopBits (عائم): 1.0 أو 1.5 أو 2.0 (1.0 هو الافتراضي)

طرق مهمة:

  1. myPort.available () - إرجاع عدد البايتات المتاحة.
  2. myPort.clear () - يفرغ المخزن المؤقت ويزيل جميع البيانات المخزنة هناك.
  3. myPort.read () - إرجاع رقم بين 0 و 255 للبايت التالي المنتظر في المخزن المؤقت.
  4. myPort.readString () - تُرجع جميع البيانات من المخزن المؤقت كسلسلة أو فارغة إذا لم يكن هناك شيء متاح.
  5. myPort.write ("test") - يكتب بايت ، أحرف ، ints ، بايت ، سلاسل إلى المنفذ التسلسلي.
  6. myPort.stop () - يعمل على تقطيع البيانات على المنفذ.

الخطوة 3: فئة المسلسل اردوينو

لا تحتاج إلى استيراد فئة Serial Class في Arduino قبل استخدامها.

في Arduino ، هناك وظيفتان تسمى الإعداد () والحلقة () يتم تشغيل الإعداد مرة واحدة فقط ولكن الحلقة تعمل عدة مرات. في الإعداد () نحتاج إلى الكتابة باستخدام طريقة start () لبدء الاتصال التسلسلي. في Arduino ، على عكس المعالجة ، لا نحتاج إلى ذكر المنفذ باعتباره وسيطات طريقة start () لأننا نحدد المنفذ بالفعل أثناء تحميل المخطط في Arduino.

لذلك سيبدو الإعداد () كما يلي:

الإعداد باطل(){

Serial.begin (9600) ؛ // بدء الاتصال التسلسلي

}

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

الآن دعونا نرى جزء الحلقة (). يعمل هذا الجزء من الكود عدة مرات. إذا أردنا قراءة بعض البيانات عن طريق المنفذ ، فسنستخدم طريقة Serial.read (). ترجع هذه الوظيفة فارغة إذا لم تكن هناك بيانات متاحة ، لذلك سنقوم باستدعاء هذه الطريقة فقط عندما يكون لدينا بعض البيانات المتوفرة في الدفق التسلسلي.

للتحقق مما إذا كانت هناك بعض البيانات متاحة ، سنستخدم طريقة Serial.available (). إذا قام بإرجاع قيمة أكبر من 0 - تتوفر بعض البيانات.

لذلك سيبدو جزء الحلقة () كما يلي:

حلقة فارغة(){

if (Serial.available ()> 0) {// إذا كانت بعض البيانات متاحة في المنفذ التسلسلي

حالة char = Serial.read () ، // اقرأ القيمة

// if البيانات أو تبديل الحالة

}

}

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

الخطوة 4: إنشاء وحدة تحكم قطاع 7 واجهة المستخدم الرسومية

بناء وحدة تحكم قطاع 7 واجهة المستخدم الرسومية
بناء وحدة تحكم قطاع 7 واجهة المستخدم الرسومية
بناء وحدة تحكم قطاع 7 واجهة المستخدم الرسومية
بناء وحدة تحكم قطاع 7 واجهة المستخدم الرسومية
بناء وحدة تحكم قطاع 7 واجهة المستخدم الرسومية
بناء وحدة تحكم قطاع 7 واجهة المستخدم الرسومية

الملفات مرفقة هنا. ملاحظة: للمعالجة ، ستحتاج أيضًا إلى تثبيت مكتبة التحكم p5 التي استخدمتها لإنشاء أزرار تفاعلية لواجهة المستخدم الرسومية.

أرقام دبوس

مقطع 7 (بالترتيب الأبجدي) قم بإحالة الصورة

أ - دبوس رقمي 2

ب - دبوس رقمي 3

ج - دبوس رقمي 4

د - دبوس رقمي 5

ه - دبوس رقمي 6

و - دبوس رقمي 7

ز - دبوس رقمي 8

dp - دبوس رقمي 9

كل المحتوى والكود متاح أيضًا على جيثب الخاص بي هنا

موصى به: