علوم الحاسب

[تطوير وبرمجة]: تعرّف على الأردوينو Arduino

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

عبر هذا المقال، سنستعرض المفاهيم الأساسية المتعلقة بلوحة الأردوينو، مكوناتها وكيفية برمجتها.

1. مقدمة: مفهوم الأردوينو

يمكن النظر للأردوينو من عدة زوايا، وكلها صحيحة:

الأردوينو عبارة عن متحكم منطقي قابل للبرمجة PLD: Programmable Logic Controller، بحيث يستطيع المستخدم أن يبرمج اللوحة من أجل تنفيذ وظيفة أو مهمة ما.

الأردوينو عبارة عن نظام مفتوح المصدر Open-Source System، وذلك بشقيه العتادي Hardware والبرمجي Software، حيث تتوافر كافة التصميمات المتعلقة بلوحات الأردوينو بشكلٍ مجاني، بحيث يمكن تعديلها وتطويرها من قبل المطورين حول العالم، كما أن بيئة البرمجة الخاصة بها مجانية ومفتوحة المصدر، ويمكن تحسينها وإضافة توسيعات لها من قبل المبرمجين أيضاً حول العالم.

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

كل الكلام السابق صحيح، وبالنسبة لي شخصياً، فأنا أفضل القول أن الأردوينو عبارة عن نظام متكامل، يتكون من لوحة إلكترونية متعددة المهام + بيئة تطوير برمجية + مجتمع مطورين وفلسفة تفكير تعتمد على مفهوم المصادر المفتوحة.

بدأت قصة الأردوينو مع مجموعة من الطلاب في معهد التصميم التفاعلي في مدينة ايفيرا بإيطاليا عام 2005. هدفهم الأساسي كان تصميم لوحة إلكترونية متعددة المهام، ومفتوحة المصدر. استخدم الطلاب متحكم BASIC Stamp من أجل تنفيذ مشروعهم، وكلفتهم اللوحة الأولية ما يقارب 100 دولار أمريكي. تم اعتبار التصميم الأولي مكلفاً للغاية، وتم العمل من أجل تطوير اللوحة. تم تقديم المشروع وتفصيله ضمن أطروحةٍ خاصة، مع كافة التفاصيل المتعلقة بالتوصيل اللازم لها. عمل الفريق الأولي على تطوير اللوحة وجعلها أخف وأقل كلفة، حتى تمكنوا من إنتاج لوحة الأردوينو التي نعرفها اليوم. واليوم، ينظر إلى كل من: ماسيمو بانزي Massimo Banzi، دايفيد كورتيليوس David Caurtielles، توم ايغو Tom Igoe، جيانلوكا مارتينو Gianluca Martino، ودايفيد ميلليس David Mellis، على أنهم نواة الفريق الأساسي الذي شكل مشروع “الأردوينو”.

الجدير بالذكر، أن اسم “الأردوينو” يعود لبار في مدينة ايفيرا بإيطاليا، وقد اتفق المؤسسون على تسمية المشروع باسم هذا البار، لأنهم اعتادوا اللقاء  والاجتماع فيه من أجل تطوير مشروعهم!

الآن، يمكننا البدء بالحديث عن بعض التفاصيل، ومن لوحة الأردوينو ومكوناتها سنبدأ.

2. لوحة الأردوينو Arduino Board

لوحة الأردوينو عبارة عن نظام حاسوبي صغير ومتكامل. والمقصود بـ “نظام حاسوبي” أنه يتضمن داخله نواةً أساسية هي “المتحكم الصغري Microcontroller” حيث تقوم هذه النواة بأداء الوظائف الحاسوبية، من استقبال المعطيات والبيانات، ومعالجتها، وإصدار الأوامر اللازمة لعمل الأجزاء والقطع الأخرى المرتبطة بهذا النظام.

تنويه: المتحكمات الصغرية تختلف عن المعالجات الصغرية Microprocessors، ولتوضيح الفرق ننصح بقراءة المقالات التالية:

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

تعتمد معظم لوحات الأردوينو على متحكماتٍ صغرية بدقة 8-بت، وهي من عائلة Atmel AVR، كما أن بعض اللوحات تعتمد على متحكمات بدقة 32-بت من عائلة Atmel ARM. هنالك فرق أكيد وكبير بين اللوحات التي تعتمد على متحكمات بدقة 8-بت وبين اللوحات التي تعتمد على متحكمات بدقة 32-بت، والأمر يعود هنا للمستخدم نفسه، من حيث حاجته للوحة وطبيعة المشاريع التي سيقوم بتنفيذها عبرها. إلى جانب المتحكم الصغري (الوحدة الأساسية في لوحة الأردوينو) فإننا نميز أيضاً على اللوحة مأخذ الطاقة الكهربائية اللازم لتشغيل اللوحة، حيث تعمل لوحات الأردوينو عند جهد تغذية معياري هو 5 فولط.

يجب أن تتضمن لوحة الأردوينو وسيلةً للتواصل مع الحاسب كي يتم تحميل البرامج على المتحكم الصغري الخاص باللوحة. أكثر وسائل التواصل استخداماً وأشهرها هي منفذ الـ USB الذي يربط لوحة الأردوينو مباشرةً بالحاسب. بعض لوحات الأردوينو تتضمن منفذ الاتصال التسلسلي RS-232.

أخيراً، تتضمن لوحة الأردوينو نوعين من المغارز Pins التي سيستخدمها المطورون في مشاريعهم: مغارز الدخل والخرج الرقمي Digital Pins، وهي تكون أرجل من إدخال وإخراج البيانات والمعطيات الرقمية من وإلى اللوحة. عدد هذه الأرجل يختلف من لوحةٍ إلى أخرى، وفي لوحة أردوينو أونو Arduino UNO يبلغ عدد هذه الأرجل 14 رجل. النوع الثاني من الأرجل هو المداخل التماثلية (التشابهية) Analog Pins، وهي المغارز المسؤولة عن قراءة البيانات التماثلية وإدخالها إلى المتحكم الصغري الخاص بلوحة الأردوينو، من أجل عمليات المعالجة اللاحقة.

تتضمن لوحات الأردوينو عناصر أخرى مثل الكريستالة المسؤولة عن تزويد المتحكم بنبضات ساعة العمل الخاصة به، بالإضافة لمكثفات ومنظمات جهد للمحافظة على قيمةٍ ثابتة ومحددة للجهد والتيار الكهربائي التي تعمل عندها معظم عناصر لوحة الأردوينو، إلا أنه لايوجد داعي للخوض بتفاصيل هذه العناصر، كونها ليست أولوية أساسية بالنسبة لأي مطور يريد استغلال لوحات الأردوينو في مشاريعه التقنية.

إذاً، وكخلاصة، يمكن القول أن أي لوحة آردوينو تتضمن ما يلي:

  1. المتحكم الصغري المركزي الخاص باللوحة
  2. المداخل والمخارج الرقمية Digital Pins – in and out
  3. المداخل التماثلية Analog Pins
  4. مغارز خاصة بطرفيات الاتصال التسلسلي (UART, I2C, SPI)
  5. مغارز خاصة بطرفيات أخرى، مثل المؤقتات وتوليد إشارات التحكم بعرض النبضة PWM ومداخل المقاطعات Interrupts
  6. مأخذ الطاقة الكهربائية Power Connector
  7. مأخذ الاتصال مع الحاسب وبرمجة اللوحة

3. المكونات الأساسية للوحة أردوينو أونو Arduino Uno

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

Arduino-Pinout

فيما يتعلق بلوحات الأردوينو نفسها، فإنه يجدر بنا الذكر أنه يمكن لأي مطور حول العالم أن يقوم بتركيب لوحة الأردوينو بنفسه! فلوحات الأردوينو أحد المصادر العتادية مفتوحة المصدر Open-Hardware، وبالتالي فإن المخططات الأساسية للعناصر والتوصيلات فيما بينها متاحة لأي شخص، ويستطيع أي مطور حول العالم أن يقوم بتركيب لوحة الأردوينو التي يريدها بنفسه، طالما أن القطع الأساسية التي يحتاجها متوافرة.

4. برمجة الأردوينو Arduino Programming

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

كي يتم برمجة لوحة الأردوينو، تم تخصيص بيئة تطوير متكاملة IDE خاصة بها، حيث تم تطوير البيئة اعتماداً على لغة جافا Java كي تكون بيئةً برمجية تدعم لغتي سي C وسي بلس بلس ++C، وبيئة التطوير البرمجية الخاصة بالأردوينو عبارة عن بيئةٍ مجانية، مفتوحة المصدر Open-Source، وتتضمن العديد من المكاتب الفعالة التي قد يحتاجها المطور أثناء عمله، وفضلاً عن ذلك، تتمتع بعددٍ كبير من المطورين المشتركين بمجتمع الأردوينو، والذين يقومون بشكلٍ دوري بإضافة المشاريع والتطبيقات، بحيث تكون متاحة بشكلٍ مجاني وكامل لأي شخص يريد أن يقوم بتطبيق برنامج أو مشروع تقني ما باستخدام لوحة الأردوينو.

بالنسبة للأشخاص الذين يمتلكون خلفيةً برمجية جيدة، خصوصاً في لغات C و ++C، فإنهم سيجدون بيئة التطوير البرمجية الخاصة بالأردوينو سهلة وممتعة، ولن يواجهوا أي صعوبة في التعامل معها. بالنسبة للأشخاص الذين لا يمتلكون خلفية برمجية جيدة، فلا يوجد أي داعي للقلق أو الخوف، فالبيئة سهلة، ويمكن لأي شخص تعلمها وبسهولة، ويمكنكم أيضاً اعتمادها كخطوة أولى نحو الانطلاق لفهم عالم البرمجيات ولغات البرمجة والتخاطب مع العتاد الصلب. أخيراً، وكميزة هامة خصوصاً للمستخدمين والمطورين الذين يستعملون متحكمات عائلة AVR، فإنه يمكن تنصيب البرنامج المكتوب بلغة C مباشرةً على لوحات الأردوينو.

أخيراً، ولمن يرغب بالبدء في برمجة لوحات الأردوينو، ننصح الاطلاع على مقالنا التالي ضمن سلسلة تعلم الأردوينو الخاصة بنا: مدخل إلى برمجة الأردوينو.

5. توسيعات الأردوينو Arduino Shields

الآن لنفرض أننا نريد القيام بتنفيذ مشروع ما، ونريد أن نقوم بتنفيذه عبر الأردوينو، وليكن هذا المشروع عبارة عن قراءة قيمة خرج حساس، وإظهار النتيجة على شاشة من نمط LCD. نقوم بتجميع القطع اللازمة: مصدر تغذية كهربائية للوحة الأردوينو وللشاشة، الحساس وما يتطلبه من مقاومات وعناصر أخرى، وأخيراً شاشة الـ LCD نفسها. علينا الآن أن نقوم بتوصيل هذه القطع مع بعضها البعض، والتأكد من توصيلها بشكلٍ صحيح، ومن ثم تنصيب البرنامج، وكل شيء سيكون جاهز للعمل.

لو قمنا بإعادة النظر في المشروع، لوجدنا مثلاً أن شاشة الـ LCD هي أحد القطع الإلكترونية الهامة التي قد نستخدمها في العديد من المشاريع التطبيقية والعملية، وبالتالي وبدلاً من توصيل الشاشة في كل مرة، يمكننا أن نقوم بتصميم دارة خاصة بالشاشة، يمكن تعريفها على لوحة الأردوينو، بحيث تضيف هذه الدارة ميزة إضافية للأردوينو، وهي ميزة الإظهار. دارة الإظهار باستخدام شاشة الـ LCD هي ما يعرف بـ “توسيعة Shield”.

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

هنالك العديد من التوسيعات الخاصة بلوحات الأردوينو، وهي تتضمن توسيعات لشاشات الـ LCD، أو مدخل إيثرنت، أو توسيعة نظام تموضع GPS، أو توسيعة تحكم بمحركات، والقائمة تطول. يمكن الاطلاع على قائمة الأجهزة والدارات الإلكترونية المتوافقة مع لوحات الأردوينو، بالإضافة للتوسيعات الهامة والشهيرة، من خلال موقع الأردوينو الرسمي: اضغط هنا.

6. مصادر تعليمية مجانية

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

مقالات ذات صلة

زر الذهاب إلى الأعلى