x32x01
  • بواسطة x32x01 ||
ماذا يجب أن أتعلم لأدخل عالم الروبوتات ، وما هي لغات برمجة الروبوت؟​
هيكلية نظام تشغيل الروبوت ROS
سؤال مهم ويطرح دائماً لمحبي عالم الروبوتات. وأنا أيضا كان يراودني قبل أن أخوض المغامرة..
في البداية كما تعلم فإن الروبوتيكس عالم ضخم، ويمكن دخوله من مداخل مختلفة. يمكنك أن تدخله من خلال تعلم النظم المدمجة والماكروكنترولرز (embedded micro-controllers) ، أو من خلال الكمبيوتر ، أو من خلال الذكاء الإصطناعي (AI)، أو من خلال إنترنت الأشياء (IoT) أو من خلال الحوسبة السحابية (cloud computing).

دعونا بالبداية نبدأ في الأساسيات والمستوى الأول من التعلم.
المتحكمات الصغيرة (Microcontrollers)
لوحة الأردوينو أونو
Arduino_Uno.jpg
الروبوت بالعادة يتم التحكم به من خلال متحكم صغير (Microcontroller) موجود على لوحة. هذه اللوحة هي المسؤولة عن تحريك المحركات (Motors). والقراءة من المجسات (Sensors). والتواصل مع اللوحات الأخرى.

كبداية أنصحك أن تبدأ بالمتحكم الصغير من نوع أردوينو (أردوينو أونو أو أردوينو ميجا) – Arduino.

للتعامل مع لوحات الأردوينو تحتاج إلى تعلم التالي:
  • سي/سي بلس بلس (C++) لكن يجب أن أنبه انك ستتعامل مع نسخة أساسية جدا وبسيطة من اللغة وستكون سهلة التعلم !
  • بروتوكولات التواصل (Communication protocols) التي ستستخدمها لإرسال وإستقبال البيانات من الحساسات وإلى اللوحات الأخرى كالشاشات. من هذه البروتوكولات : I2C, UART, SPI.
  • إستخدام المخارج والمداخل الرقمية والتماثلية (digital / analog I/O) للتحكم بالمحركات (مثل السيرفو والستيبر موتور) من خلال PWM وقراءة الحساسات التماثلية. الخ…
أنصح كثيرا أن تبدأ بالأردوينو لأنك ستجد العديد من المراجع المفيدة على الإنترنت التي ستساعدك على حل المشاكل التي قد تواجهك.

برمجة الروبوت من خلال كمبيوتر
الآن وقد أصبحت تتحكم بإلكترونيات الروبوت، ربما تريد أن تصمم نظام تحكم أكثر تقدماً. وربما تريد أن تستخدم بعض الذكاء الإصطناعي . ولهذا ستحتاج كمبيوتر بأداء عالي ويدعم العمليات المتشعبة (Multi-Threading).

بشكل أساسي فإن برنامجك الرئيسي على الكمبيوتر سيتواصل مع المتحكم الصغير (Microcontroller) الذي بدوره سيتعامل مع الإلكترونيات.

في هذه المرحلة يمكنك إستخدام كمبيوترك الشخصي للقيام
لوحة راسبيري باي 3
raspberry pi.jpg
بهذه المهمة ، أو أن تبدأ بالتعرف على قطعة حاسوبية مميزة ومهمة في عالم الروبوتات وهي لوحة الراسبيري باي (Raspberry Pi) رخيصة الثمن. قطعة الراسبيري باي هي كمبيوتر كام وصغير يمكنك أن تضعه داخل الروبوت بسهولة. ويحتوي كل المخارج الأساسية ومخارج الإنترنت ومخارج الهاردوير تماماً كالأردوينو.

في هذه المرحلة أنصحك بالتالي:
  • إشتري لوحة راسبيري باي بي 3 (Raspberry Pi 3B board) سعرها حوالي 40 دولار فقط.
  • نزل نظام تشغيل عليها مثل ( Xubuntu for Raspberry Pi)
  • تعرف وإحصل على بعض المعرفة في إدارة الأنظمة (system administration) مثل التعامل مع udev tools ومئات الأشياء الأخرى.
  • تعلم البايثون (Python) أو السي++ (C++). هذه هي اللغات الأشهر في الروبوتات. إذا لا تعرف أي من هذه اللغات أنصحك أن تبدأ بالبايثون (Python) حيث أنه أسهل كثيراً للمبتدئين وقوي جداً. على أي حال هذه اللغات هي مجرد أدوات والمهم هو أن تتعلم الخوارزميات (algorithm) وأنماط التصميم(design patterns)…
  • تعلم كيف تستخدم بعض المكتبات (libraries) المخصصة بالروبوتات مثل (wiringPi في C++ و Rpi.GPIO في الـPython)
هذه هي الأساسيات. دعونا الآن نركز على هدف أكبر !

تعلم نظام تشغيل الروبوت (ROS)
نظام تشغيل الروبوت (Robot Operating System) الذي يرمز له بـ ROS هو حزمة برمجية متكاملة يمكنك أن تستخدمها على كمبيوترك لتجعل التواصل بين أجزاء البرامج الصغيرة (nodes) أسهل. في هذه النظام يمكنك الحصول على بعض الأدوات والخوارزميات التي قد تأخذ منك سنوات إذا أردت بناءها بنفسك مثل : أدوات التوجيه (2D navigation) وتخطيط الحركة (motion planning) والإظهار ثلاثي الأبعاد (3D visualization).

من خلال ROS يمكنك أن تعمل جسراً بين المستخدم النهائي للروبوت وبين أجزاء النظام الروبوتي (الهاردوير).

برامج المستخدم والحوسبة السحابية
حسنا، الآن روبوتك “ذكي”، يمكنه التعامل مع المهام المقعدة بشكل أوتوماتيكي، ويستخدم الخوارزميات المتقدمة ويتحكم بكل الإلكترونيات بداخله. لكن في التطبيقات العملية فإن شخص ما سيحتاج أن يستخدم روبوتك وهذا الشخص لا يعرف أي شيء عن البرمجة !

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

هنا نرجع إلى تطوير البرامج الكلاسيكية التي ليس لها علاقة مباشرة مع برمجة الروبوتات ولكنها مهمة إذا كنت تريد أن تصبح مطور روبوتات متكامل (“full stack” robotic developer).

هنا قد تتعلم السي شارب إذا كنت تريع عمل برنامج على الوندوز. أو الأندرويد ستوديو (Android Studio) لتعمل برنامج على موبايلات الأندرويد أو الجافا سكريبت JavaScript والبايثون Python أو الـ(PHP) لتعمل موقع تحكم على الإنترنت.

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

نقطة أخيرة ومهمة
لا تحاول أبداً ان تعيد إختراع العجلة ! من الجيد أن تتعلم كيف تعمل الأشياء في مرحلة ما. لكن في الروبوتات هناك الكثير من المجالات. إذا أردت أن تعيد بناء كل شيء قام غيرك ببناءه من قبل فإنك لن تكون قادراً على عمل روبوت فعال أبداً. تعلم من خلال التجربة.
 
الوسوم : الوسوم
microcontrollers أردوينو أونو المتحكمات الصغيرة النظم المدمجة برمجة الروبوت لوحة الأردوينو ماكروكنترولرز

الدخول أو التسجيل السريع

نسيت كلمة مرورك؟

آخر المشاركات

أحدث المنتجات

إحصائيات المنتدى

المواضيع
1,424
المشاركات
1,587
أعضاء أكتب كود
174
أخر عضو
omega-tron
عودة
أعلى