أردوينو أَمْ راسبيري باي؟ مَا الفُروقَاتُ، وكَيفَ نختارُ بينَهُما؟
المعلوماتية >>>> روبوتيك
عمومًا؛ تَبدُو لوحتَا "أردوينو" وَ "راسبيري باي" متشابهتَينَ جدَّا مِن الخَارج؛ إذْ إنَّ كلَّ واحدةٍ منهُما هي دارةٌ إلكترونيَّةٌ تحوِي وحدَةَ مُعالجَةٍ مركزيَّةً CPU ومؤقِّتَاتٍ Timers وبروتوكُولاتِ اتِّصالٍ I2C SPI UART وذاكرة، فضلاً عن المنافِذِ والمخارج التحكُّميَّة I/O، وهُنَا يكمُنُ جوهرُ الاختلافِ الّذي سَيحدِّدُ أيَّة لوحةٍ منهُمَا هيَ الأنسبُ لمشروعٍ معيَّن.
وبدايَةً؛ علينَا أنْ نعرِفَ أنَّ الفرقَ الجوهريّ بينهُما هوَ أنَّ "أردوينو" تحوِي متحكِّمًا دقيقًا، وأمّا "راسبيري باي" فتحوِي معالجًا دقيقًا، ولذلكَ دعونَا نبدأُ بالسُّؤال الآتِي:
ما هُوَ الفرقُ بينَ المُتحكِّمِ الدَّقيقِ والمُعالِجِ الدَّقيق؟
Image: https://lh5.googleusercontent.com/piylAoOBg6LeOwS1uIzwTkCn35gPq03VCmVaYB0Xw5kx7WoeLTGOTqMpEzuhZAnCNHFTTpeoVSVgOkb6VFTPfyDEknwFIH5jz8v_c_nJC-l6cOTjW1Hw4S3f4V8s_a0QsFwYy8IH
تكون المداخلُ والمخارجُ في المُعالِجَاتِ الدَّقيقَةِ IO Pins ضعيفةً مِن ناحيةِ جهدِ الخرجِ مقارنةً بالمُتحكِّماتِ الدَّقيقةِ، ولذلكَ فهيَ تحتاجُ داراتِ رفعِ جهدٍ أو ترانزستوراتٍ كي تستطيعَ التَّحكمَ بمعظمِ العتاديَّات، وأمَّا مِيزَتُها فتكمُن في قدرتِها عَلى معالجةِ البياناتِ بسرعَةٍ أكبَر.
وفِي المُقابِلِ؛ فإنَّ المُتحكِّماتِ الدَّقيقَةِ تُركِّزُعلَى قدرةِ المَداخِلِ والمخارِجِ IO Pins علَى التَّحكُّمِ بالعديدِ مِنَ العتاديَّاتِ مباشرةً، ودونَ الحاجةِ إلَى داراتِ رفعِ جهدٍ خارجيَّة.
ونَستطيعُ أنْ نستنتجَ أنَّ المعالجاتِ الدَّقيقَةَ تمثِّلُ العقلَ المُفكِّرَ؛ بسببِ قدرتِها القويَّةِ علَى المُعالجَة، بينمَا تمثِّلُ المتحكِّماتُ الدَّقيقَة العضلاتِ القويَّةَ الّتي تستطيعُ قيادةَ العديدِ منَ الوحداتِ الخارجيَّة.
والآن دعُونَا نُلقِي نظرةً أعمقَ علَى كلٍّ مِنْ لوحتي "راسبيري باي" و "أردوينو" كي نفهَمَ مِيزَاتِ كلٍّ منهمَا.
راسبيري باي
Image: https://www.raspberrypi.org/products/raspberry-pi-3-model-b/
نستطيعُ قولَ أنَّ "راسبيري باي" (Raspberry Pi) هيَ حاسوب متكامِلٌ صغيرٌ بحجمِ بطاقِةِ ائتمان يمكنِّنُا مِنْ بناءِ العديدِ من المشاريعِ؛ بدءًا مِنْ مشاريعِ إنترنت الأشياء IoT، وانتهاءً بالأنظمةِ الإلكترونيَّةِ المُدمَجة (كآلةِ صنعِ القهوةِ مثلًا وغيرِها العديد).
وعلَى سبيل المثال؛ تحوي لوحةُ Raspberry Pi 3 Model B شريحةً إلكترونيَّةً واحدة System on a chip ومعالجًا رباعيّ النوى Broadcom BCM2837 يعملُ بنظامِ 64 بت وتردّدِ 1.2 غيغا هرتز، ويحوي هَذا الحاسبُ الآليُّ المُتكامِلُ Single Board Computer جميعَ مكوّنَاتِ الحاسوبِ الشَّخصيِّ من CPU - GPU وRAM بِسعَة 1 غيغابايت.
وتحوي "راسبيري باي" أربعينَ مدخلاً/مخرجاً بجهدِ 3.3 فولت ومخرجَ فيديو وصوت ومخرجَ HDMI وفتحةً لبطاقةِ ذاكرةٍ (ينصَّبُ عليهَا نظامُ التَّشغيل)، ويمكِنُ توصيلُها عَلى شبكةِ الإنترنِت عبرَ الـ wifi أو باستخدامِ كابلِ Ethernet مباشرة. وفِي النِّهاية؛ تتشابَه "راسبيري باي" مع حاسوبِكَ الشَّخصيّ أكثرَ منَ "الأردوينو".
وعَلى الرَّغمِ منْ أنَّ "راسبيري باي" تمثِّلُ حاسوبًا شخصيًّا متكاملًا بنظامِ تشغيلٍ خاصّ (نظامُ راسبيان؛ أحدُ إصداراتِ Linux المخصَّصَة للراسبيري باي) ومتصفحاتِ ويب وبيئاتٍ برمجية وغيرها الكثير؛ لكنّها لا تحلُّ محلَّ حواسيبِنَا الشَّخصيَّة؛ إذْ إنَّ الإصدارَ الأوَّل مِنْ "راسبيري باي" يماثلُ من ناحيةِ الأداءِ حاسوبًا يحوي معالجَ إنتل Pentium 2 بتردّد 300 ميغاهرتز، في حينِ أنَّ الحواسيبَ المحمولةَ الحديثَة تعملُ بتردِّدٍ يُقاسُ بالغيغا هرتز، وفيما يخصُّ أداءَ الغرافِيك؛ فإنّ "راسبيري باي" تعادِلُ أوَّلَ إصدارٍ مِن Xbox .
ولم تُصنَّع هذه اللوحةُ كي تُستبدَل بالحواسيبِ الشَّخصية، فهيَ لا تستطيعُ تشغيلَ نظامِ ويندوزالعاديّ مثلًا، ولكنَّنا نستطيعُ تثبيتَ نظامِ Windows 10 IoT Core عليهَا؛ وهوَ نظامٌ صُمِّمَ خصيصاً لأجهزةِ إنترنت الأشياء كَي تتّصلَ بالحسَّاسَاتِ والمحرِّكاتِ والشَّاشات، ولكنَّ مواصفاتِ "راسبيري باي" وسعرَها الزَّهيدَ يكفيانِ لأجلِ إنجازِ مشروعاتٍ تطويريَّةٍ عديدَة، فمثلاً؛ يمكنُ استِخدَامُها لإنشاءِ مخدِّمِ استضافةِ موقعٍ إلكترونِيِّ أو لبناءِ حاسوبٍ خارِق!
وإنّ "راسبيري باي"- كما ذكرنا آنِفاً - حاسوبٌ متكامِلٌ و بنظامِ تشغيلٍ عادةً ما يكونُ نظامَ Linux؛ مِمّا يتيحُ كتابَة برامِجَ نستطيعُ تنفيذَهَا ضمنَ إطارِ نظامِ التَّشغيل، وهذَا يُوفِّرُ إمكانيَّةَ تنفيذِ أكثرَ مِنْ برنامجٍ واحدٍ في الوقت نفسه.
الأردوينو
Image: https://store.arduino.cc/usa/arduino-uno-rev3
علَى خلافِ "راسبيري باي"؛ لا تعتمدُ "أردوينو" عَلَى معالجٍ دقيق؛ بلْ تعتمدُ عَلَى مَتحكِّماتٍ دقيقةٍ مُصنَّعةٍ مِن قِبلِ شركَة AVR، فمثلاً؛ يحوي "أردوينو أونو" (Arduino UNO) عَلى مُتحكِّمِ Atmega328 والّذي يحوي بدورهِ معالجًا يعملُ بتردِّدِ 16 ميغاهرتز وذاكرةً بسعةِ 32 كيلوبايت و14 مدخلاً/مخرجاً رقميّاً بجهدِ 5 فولت وسحبِ تيَّارٍ قرابَةَ 40 ميلي أمبير إضافَةً إلى 6 مداخلَ تماثليَّة، ولتغذيَةِ دارة الأردوينو يُمكِنُ توصيلُها بمدخلِ طاقةٍ بجهدِ 7 إلى 12 فولت أو وصلُها مَع الحاسوبِ مباشرةً عبرَ USB وبرمجتُها إمّا مباشرةً وإمّا باستخدامِ In Circuit serial programming.
وتوجدُ العديدُ من الإصداراتِ المختلفةِ لهذهِ اللَّوحةِ تتيحُ تطويرَ مشاريعَ عديدةٍ ومتنوّعَة؛ فإذا كنتَ تعملُ علَى مشروعٍ ضخمٍ ويحتاجُ العديدَ مِنَ المداخلِ والمخارجِ؛ فإنَّ "أردوينو ميغا" من الممكنِ أنْ يكونَ الخيارَ الأفضَل، أمَّا "أردوينو يون" YUN فهوَ يُتيحُ قدراتِ نظامِ تشغيلِ "لينكس" مَع سهولةِ استخدامِ "أردوينو" ليسهِّلَ تصميمَ الأجهزةِ المُتَّصلَةِ بالإنترنِت مِنْ أجلِ تطويرِ مشروعاتِ إنترنت الأشياء.
برمجة أردوينو
لا تحوي الأردوينو أيّ نظامِ تشغيلٍ أو مفسِّرٍ Interpreter أو *Firmware، ولذلك؛ يُكتبُ الرّمازُ البَرمجيّ Code في البيئةِ الخاصَّةِ بالأردوينو IDE Arduino مباشرةً، وهوَ عبارةٌ عن أوامرَ برمجيَّةٍ بلغةِ Arduino C فقط؛ والّتي تُحوَّلُ إلَى لغةِ الآلةِ وتُنفَّذُ عَلَى المتحكِّم مباشرة،ولا نحتاجُ أيّةَ أدواتٍ إضافيَّةٍ من أجلِ تثبيتِ الرّمازِالبرمجي.
صورة توضح البيئة البرمجية لـ أردوينو
Image: https://store.arduino.cc/usa/ardui
ولكنَّ علّةَ "أردوينو" - في نظرِ المهندِسينَ وأصحابِ الاختصاص - أنَّها لا تُتيحُ إمكانيَّةَ معرفةِ كيفيَّةِ عملِ المُتحكِّماتِ الدَّقيقَةِ وبِنيتِها الدَّاخليَّة، وذلكَ لأنَّ المكتباتِ المضمَّنَةَ فِي البيئِة البرمجيَّةِ لا تسمحُ بذلك، ممَّا يجعلُ بناءَ تطبيقاتٍ أعقدَ وأكبرَ تحدّيًا صعبًا.
كيفَ نختارُ بينهُمَا؟
Image: https://www.ismolex.com/raspberry-pi-vs-arduino/
إذَا كانَ خيارُنا يعتمدُ عَلَى قدرةِ معالجةِ البياناتِ فقط؛ فالخيارُ سهلٌ؛ إذْ إنَّ معالجَ الأردوينو حاليَّا يعملُ بتردُّد 16 ميغاهرتز ولا يُمكنُ مقارنَتُه بمعالجِ راسبيري باي الذي يعملُ بتردد 1.2غيغاهرتز (أيّ أنَّه أقوى بـ 75 مرَّة).
ولكنَّ الخيارَ لا يعتمدُ دومًا عَلى قدرةِ معالجةِ البيانات؛ إذْ إنّ طبيعةَ المشروعِ المرادِ تطويرُه لها دورٌ حاسمٌ في اختيارِ اللوحةِ الأنسَب؛ إذ لن تستطيعَ المتحكِّماتُ تأديةَ أيّةِ معالجةٍ للبيانَات؛ كالتَّعرُّفِ على الصُّورةِ (نظامُ رؤيةٍ حاسوبيَّة) أو التعرُّفِ على الصَّوتِ مثلًا، فإذَا كانَ المشروعُ يعتمدُ علَى القيامِ بعمليَّاتٍ رياضيَّةٍ معقَّدةٍ أو واجهاتٍ غرافيكيَّة يكونُ "راسبيري باي" هو الخيارُ الأنسَب، أمَّا إذا أردنَا تنفيذَ مشروعٍ للتَّحكُّمِ بأدواتٍ إلكترونيَّة كالتَّحكُّم فِي المحرِّكاتِ أو الإضاءَةِ أو القراءةِ مِن حسَّاساتٍ متنوّعَةٍ يكونُ "أردوينو" أكثرَ من كافٍ لأداءِ هذهِ المهام.
والخلاصة؛ يناسبُ "راسبيري باي" المشاريعَ التي تتطلَّبُ تحكُّمًا بعتادٍ محدودٍ ومعالجةَ بياناتٍ معقَّدةٍ، أمَّا "الأردوينو" فهوَ ممتاز عندمَا نريدُ قوَّةً في التَّحكُّمِ العتاديّ دونَ الحاجَةِ إلى معالجَةٍ معقّدَةٍ للبيانات.
*Firmware: شبيهٌ بنظامِ تشغيلٍ بسيطٍ يحتاجُ فقط إلى ذاكرةٍ دائمةٍ مِنْ نوعِ ROM لحفظِ تعليماتِه.