كيف تصنع روبوتك - الدرس 4: الميكروكنترولور (العقل الإليكتروني)
عندما يسمع أحدنا عن الميكرونترولور فإنه يراه شيئا فائق التعقيد ومدهشا كذلك ﻷنه يمثل بديلا للدماغ لدى الآلة وهو بالفعل كذلك. والمطلوب منك ليس صنع الميكروكنترولور في اﻷصل لكن عليك أن تعرف كيف تستعمله (أي كيف تخاطبه وتعطيه اﻷوامر) وأن تعرف أنواعه كذلك.
|
تعريف الميكروكنترولور
الميكروكنترولور هو دماغ الآﻵلة بكل بساطة.
يمتلك الميكروكنترولور مداخل ومخارج (كاﻷعصاب الحسية عند الإنسان) ويتشكل من وحدات داخلية تقوم بمهام محددة كوحدة الحساب التي تقوم بالعمليات الحسابية المعروفة كالجمع والضرب باﻹضافة إلى معالجة العمليات المنطقية (وبها قد يسمى أيضا المعالج).
عمل الميكروكنترولور
كما أشرنا أن العقول الإليكترونية تتكون من وحدات حسابية ومنطقية وأخرى تقوم بمهام أخرى معينة. فمثلا عند تركيبه في الروبوت يمكنك أن تقوم ببرمجته حتى يتحكم بأجزاءه المختلفة كالمحركات والإضاءة والذاكرة والاتصالات السلكية واللاسكية (WiFi وBluetooth) ومعالجة الصور المتتالية الملتقطة من طرف اﻷعين (كاميرات الروبوت) ومعالجة أو إصدرا أصوات معينة إلخ.
من خلال ما تقدم نستنتج بأن العقول الإليكترونية متواجدة في العديد من الأجهزة اليومية المختلفة. خذ على سبيل المثال: التلفاز، آلة الغسيل، آلات التحكم عن بعد، الساعات، الهواتف، الحواسيب والروبوتات.
وتجدر الاشارة إلى التفرقة بين الميكروكنترولور والبروسيسور. وهذا اﻷخير يتواجد خاصة في الحواسيب والفرق بينها كالفرق بينهما لغويا، أي أن
المعالج في الحواسيب مثلا أعقد وأشد قوة مما تجده في اﻷجهزة اليومية المعتادة. لكن يتميز الميكروكنترولور بعدم احتياجه للذاكرة حتى يشتغل، وهو أرخص وابسط.
المميزات الخاصة للعقل الإليكتروني
يتميز الميكروكنترولور بوحدات خاصة كل واحدة لها بعض المهام الخاصة بها. من بين هذه الوحدات نجد وحدات الاتصال المعروفة كـUART و SPI و I2C. هذه اﻷخيرة تلعب دورا مهما عند القيام بالاتصال بالحواسيب والمستشعرات المتقدمة وحتى مع عقول إليكترونية أخرى.
رغم امكانية صنعها يدويا إلا أن الحصول عليها مصنوعة يعفيك عن التدقيق في تفاصيل هندستها وصنعها ويمُكنك من كتابة برامج بسيطة وسهلة وبالتالي يبقى على الميكروكنترولور التركيز على المهام الضرورية الأخرى.
يستطيع الميكروكنترولور تزويدك بإشارات رقمية وتناوبية. فماذا نعني بهذا؟
رقمي أو تناوبي؟
رقمي
يمتلك العقل الإليكتروني مخارج رقمية وأخرى تناوبية.
قواطع التيار مثلا لها حالتان : متصلة أو منفصلة.
عندما نتحدث عن حالتين فقط للجهاز (متصل أو منقطع، نعم أو لا،0 أو 1، أسود أو أبيض، شَغل أو أطفأ …) هنا نشير إلى النظام الزوجي. وبالتالي يجب الأخذ بعين الاعتبار طريقة توصيل اﻷجهزة بالميكروكنترولور حيث أن هذا اﻷخير يضم مداخل\مخارج رقمية واخرى تناوبية.
|
تناوبي
متى تحتاج إلى إشارات تناوبية؟
للجواب على السؤال دعني أسألك سؤلا: افترض أنك تريد تزويد الروبوت بمقياس درجة الحرارة أو الصوت أو تحديد موضع نقطة معينة، هنا لا نتحدث عن حالة زوجية يا نعم أو لا يا 1 أو 0، فماذا يمكنك فعله إذن؟
للجواب على هذا السؤل نقوم بإضافة مركبات إليكترونية تقوم بتحويل الاشارت من التناوبية إلى الرقمية، من بين هذه المركبات نجد البوتونسيومتر.
| |
لتزويدنا بإشارات كهربائية متناوبة تناسبية مع الدوران (كعجلة زيادة الصوت في المذياع مثلا) نستعمل مقاومة متغيرة أو بوتونسيومتر كما هو مبين في الصورة جانبه.
عندما يكون البوتونسيومتر متصلا بمزود تيار كهربائي 5 فولط ولما تشتغل الدارة سيكون التيار الكهربائي الناتج محصورا بين 0 و 5 فولط تناسبيا مع زاوية الدوران.
يوجد محول بالميكروكنترولور يسمى محول ADC يقوم بترجمة التوتر الكهربائي إلى قيم رقمية. مثلا محولADC ذي 10bit يحول 0 فولط إلى القيمة 0 و 2.5 فولط إلى 512 و5 فولط إلى 1023.
|
ماذا عن البرمجة؟
لا تخف من برمجة الميكروكنترولور تجدها كشربة ماء في سلسلة برمجة العقول الإليكترونية.
لم يعد اﻷمر صعبا كما كان في الماضي عندما كان الأمر يتطلب فهما لهندسة العقول الإليكترونية من أجل برمجتها. وهذا يرجع بالأساس إلى لغات البرمجة المتواجدة حاليا. باختصار، دعني أقول أنه يوجد ثلاث طرق لبرمجة العقول الاليكترونية:
أ. بيئات التطوير المدمجة IDE: وهي عبارة عن برمجة من خلال استعمال رسومات فقط مثلا سورة للمحرك مع امكانية تغيير مميزاته (قوة الدوران وسرعة الدوران) عند النقر عليه.
ب. لغات برمجة متطورة: C و ++C و #C وProcessing و Java و Python و Basic. بطبيعة الحال تحتاج لأن تكون فاهما لإحداها على الأقل.
ج. المجمع (Assembler): هي لغة برمجة أقرب للغة الآلة وهي للمتقدمين فقط، أما إذا كنت مبتدءأ فابتعد عنها حتى لا تصاب بصداع في الرأس.
في جانب هندسة الدارات الكهربائية نفسها، فقد أصبح من السهل جدا فعل هذا نظرا لتواجد البطاقات البرمجية (development board) والمخصصة لهذا الغرض حاليا. وتمتاز بسهولة استعماها وتركيب العناصر الاليكترونية عليها دون مشقة أو تكلف. ويمكنك استعمالها بتركيب أسنان الميكروكنترولور عليها حتى يتسنى لك استعمال مداخله ومخارجه بكل سهولة، كما أنها، أي هذه اللوحات، مزودة بمداخلUSB ومداخل أخرى خاصة بالبرمجة مما يسهل عليك إيصالها بالحاسوب بكل يسر.
لمالا نستعمل حاسوبا؟
من الواضح أن الميكروكنترولور شبيه بالبروسيسور المستعمل من طرف الحاسوب وأن البطاقة البرمجية (development board) هي شبيهة بالبطاقة الاليكترونية الأم في الحاسوب. قد يتساءل البعض فلما لا نستعمل حاسوبا للتحكم بالروبوت إذا؟؟؟
حقيقة، في الروبوتات المتقدمة جدا كالروبوت أسيمو مثلا يعوض أو يدعم الميكروكنترولور بحاسوب كامل من أجل معالجة معلومات معقدة جدا كالصور والفيديو وتحليل الأصوات. لكن يبقى هذا النوع من الانظمة جد معقد ومكلف أيضا.
|
اختيار العقل الإليكتروني المناسب
من الممكن استعمال مستشعرات أو بعض الرقائق الاليكترونية البسيطة لتدعم بها عمل روبوتك كما هو الحال في ما يسمى بالروبوتيكBEAM. لكن ماذا لو احتجت حقيقة إلى استعمال عقل اليكتروني للتحكم بالروبوت الذي تود انشاءه؟ توجد عدة أنواع من العقول الاليكترونية أو بالأحرى بطاقات برمجية نذكر منها : Arduino و BasicATOM وBasicx وPOB Technology وPololu وParallax والكثير الكثير.
عندما تريد استعمال الميكروكنترولور اطرح على نفسك اﻷسئلة التالية:
1. ما هو الميكروكنترولور الأكثر شهرة بالنسبة لاحتياجي؟
لم تكن الأول الذي ابتدأ بالروبوتيك، وبالتالي فأغلب الأمر أن ما تود صنعه جزء منه أو كله تم إنجازه من طرف أشخاص آخرين قبلك. وبالتالي، لما لا تنظر في ما استعمله الآخرين قبلك من عقيلات إليكترونية استعملت في نفس المشروع الذي تود إنجازه. بهذا، يمكنك أن تستفيذ من خبرة الآخرين والبداية من حيث انتهوا.
2. هل بعض من مميزات روبوتي تحتاج لعقيل اليكتروني خاص؟
هنا يبقى الاختيار مهم جدا. في بعض الحالات قد تجد بعض المركبات الاليكترونية التي تود إضافتها إلى روبوتك لا تتلائم إلا مع عقيل اليكتروني خاص. وهذا يجب أن يكون مشارا إليه عند شراءك لتلك المركبات.
ماذا يخبئ المستقبل لنا؟
مع تقدم التكنولوجيا أصبح ثمن الحواسيب والعناصر الاليكترونية أقوى وأرخص من ذي قبل. أصبحت اللوحات الاليكترونية الخاصة بالروبوتات تحمل الكثير من المميزات وشبيهة بتلك المستعملة من طرف الحواسيب. مثال على هذا، اللوحات الاليكترونية اﻷم للحواسيب التي مرت عليها خمس سنوات من صنعها الان تجدها مزودة بكل ما تحتاجه من مداخل ومخارج (لكن لا تستطيع تغييرها) وباستطاعتها تحمل أنظمة تشغيل كـ Windows و Linux. إعادة استعمال هذه اللوحات ودمجها بالروبوت يعطيك فرصة قوية للتحكم بآلياته.
مثال حي
قمنا في الدرس اﻷول من تحديد هدف وتكلفة الروبوت الذي نود إنشاءه كما قررنا أنا مشروعنا هذا سيقتصر على تطوير مدرعة التي بإمكانها العمل فوق الطاولات في الدرس الثاني. وتكلمنا عن المحركات في الدرس الثالث. أما اليوم فبالنسبة لمثالنا هذا سنحتاج إلى عقيل اليكتروني ذي المميزات التالية:
• ثمنه لا يزيد عن 50$
• يجب أن يكون سهل الاستعمال ودعوم بشكل جيد.
• يجب أن يكون مدعوما بكتيبات تشرح طريقة استعماله أيضا
• يجب أن يكون قابلا للبرمجة من خلال لغة البرمجة C أو لغة برمجة معتمدة على C
• يجب أن يكون مشهورا بين فئات المهتمين بالروبوتيك
• يجب أن يكون مدعوما بمداخل وخارج رقمية وتناوبية
بما أن روبوتنا سيستعمل محركين فإن على الميكروكنترولور أن يكون مزودا بمدخل ومخارج رقمية وتناوبية من أجل التحكم بالسرعة (ستشرح بتفصيل في الدرس 5).
سيحتاج روبوتنا إلى ارسال واستقبال البيانات وبالتالي فعلى العقيل أن يكون مدعوما بواجهة الاتصالات UART نوع (a.k.a serialأو RS232) في حالتنا هذه.
Arduino و Polulo سيكونان الاختيار المناسب لنا في هذه الحالة. Arduino Duemilanove أحسن أنواعه كما أن Arduino هو من بين العقيلات الاليكترونية الاكثر شعبية والعديد من المشاريع اعتمدت عليه كما أن المنتديات الخاصة به كثيرة.
|