Qlink: واجهة أوامر تسلسلية للأردوينو

يناير 10, 2023·
خالد حميدي
خالد حميدي
· 2 دقيقة قراءة

نظرة عامة

Qlink هي واجهة برمجة تطبيقات (API) للأوامر التسلسلية، قوية وخفيفة الوزن، مصممة للأردوينو، Raspberry Pi، الكمبيوتر، والأنظمة المدمجة الأخرى. إنها تبسط الاتصال بين الأجهزة من خلال توفير إطار عمل بسيط لتسجيل ومعالجة الأوامر المرسلة عبر اتصال تسلسلي. مع دعمها لأنواع متعددة من المعلمات (INT, FLOAT, STRING, LONG)، تعتبر Qlink الحل المثالي للتحكم في مشاريع الأردوينو الخاصة بك من تطبيقات خارجية مكتوبة بلغة Python أو C#، أو من خلال مراقب تسلسلي بسيط.

الميزات الرئيسية

  • نظام أوامر ديناميكي: يمكنك بسهولة تعريف وتسجيل أوامر مخصصة باستخدام صيغة بسيطة قائمة على الماكرو (DEF و REG).
  • دعم معلمات متعددة الأنواع: تحليل الأعداد الصحيحة، والأعداد العشرية، والسلاسل النصية، والأعداد الطويلة من الأوامر التسلسلية الواردة.
  • استجابات مبسطة: إرسال سلاسل نصية منسقة مرة أخرى إلى الجهاز المضيف من خلال استدعاء واحد link.response().
  • خفيفة وفعالة: مصممة للمتحكمات الدقيقة، تتميز Qlink ببصمة ذاكرة صغيرة وتعالج الأوامر في الوقت الفعلي.
  • تحكم عبر منصات متعددة: تمكين التحكم السلس في الأردوينو من جهاز كمبيوتر (Windows/Linux)، أو Mac، أو Raspberry Pi.

حالات استخدام شائعة

  • التحكم في الروبوتات أو آلات CNC من تطبيق سطح مكتب.
  • إرسال بيانات الاستشعار من الأردوينو إلى برنامج Python لتسجيلها أو تحليلها.
  • إنشاء نماذج أولية تفاعلية تستجيب للأوامر من طرفية تسلسلية.
  • تكوين إعدادات الجهاز (مثل سطوع LED، سرعة المحرك) بشكل فوري دون إعادة برمجة.

طريقة التثبيت

أسهل طريقة للتثبيت هي مباشرة عبر Arduino IDE:

  1. افتح برنامج Arduino IDE.
  2. اذهب إلى Sketch > Include Library > Manage Libraries….
  3. ابحث عن “Qlink”.
  4. انقر على Install.

بدلاً من ذلك، يمكنك تثبيت المكتبة يدويًا من الملف أدناه.

مثال على الكود: التحكم في وميض بسيط

يوضح المثال التالي كيفية التحكم في الـ LED المدمج على لوحة الأردوينو باستخدام أمر DELAY يتم إرساله عبر الاتصال التسلسلي.

#include <Qlink.h>

int blinkInterval = 1000;  // الفاصل الزمني الافتراضي للوميض
Qlink link(Serial);        // تهيئة Qlink على منفذ الاتصال التسلسلي

// تعريف الأمر "DELAY" الذي يقبل معاملًا صحيحًا واحدًا
DEF(DELAY, INT) {
  blinkInterval = Convert(Args[0], int);
  link.response("Blink interval updated to %d ms", blinkInterval);
}

void setup() {
  Serial.begin(9600);
  pinMode(LED_BUILTIN, OUTPUT);
  REG(link, DELAY); // تسجيل الأمر DELAY
}

void loop() {
  link.loop(); // الاستماع باستمرار للأوامر الواردة

  // وميض الـ LED بالفاصل الزمني الحالي
  digitalWrite(LED_BUILTIN, HIGH);
  delay(blinkInterval);
  digitalWrite(LED_BUILTIN, LOW);
  delay(blinkInterval);
}

لاستخدام هذا، يمكنك ببساطة إرسال أمر مثل DELAY 500 من مراقبك التسلسلي أو تطبيقك، وسيتحدث معدل وميض الـ LED على الفور.

تحميل مكتبة Qlink (.zip)

خالد حميدي
Authors
مهندس ميكاترونكس | متخصص في هندسة علم الفضاء والطيران | مطور أنظمة
مُبدع في هندسة الميكاترونيك والفضاء، يحوّل التعقيد إلى شيفرة نابضة بالحياة، ويبتكر آلات ذكية تمحو الحدود بين الحلم والواقع، لتجعل نبض المستقبل يُسمَع اليوم.
Sound
Click to unlock audio
اضغط لتفعيل الصوت