علوم الحاسب

[تطوير وبرمجة]: تعرّف على مفهوم “اللــوحـات التطـويـرية Development Boards”

مقدمة في اللوحات التطويرية

يُستخدم اليوم مصطلح “اللوحة التطويرية Development Board” على نطاقٍ واسع للإشارة إلى نمطٍ محدد من اللوحات الإلكترونية المطبوعة PCB التي يمكن عبرها تنفيذ العديد من المشاريع بدون الحاجة لتغيير العتاد.

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

لمحة تاريخية حول اللوحات التطويرية

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

شكل هذا الأمر الدافع الأول لظهور اللوحات التطويرية، والتي اصطلح على تسميتها في البداية “لوحة المعالج الصغريّ التطويرية Microprocessor Development Board” والتي كانت عبارة عن لوحة إلكترونية مصممة لأغراض التعليم والتدريب، تتضمن المعالج الصغريّ وعددًا محدودًا من دارات الدعم التي يحتاجها، وبخلاف اللوحات الأم الموجودة في الحواسيب الشخصية، فإن اللوحات التطويرية الخاصة بالمعالجات الصغرية لم تتضمن طرقًا متقدمة لعرض المعلومات والبيانات (مثل إمكانية ربطها مع شاشة) بل احتوت ما يساعد فقط على تعليم كيفية إدخال وإخراج البيانات إلى المعالج مع كيفية برمجته لمعالجة هذه البيانات.

تاريخيًا، يمكن القول أن اللوحة التطويرية MCS-4 الخاصة بمعالج إنتل 4004 هي أول لوحة تطوير تم إنتاجها في التاريخ، كونها فعليًا تمثل لوحة التطوير الخاصة بأول معالج صغريّ. مع تطور المعالجات الصغرية وظهور المتحكمات الصغرية، بدأت الحاجة تزداد لوجود وسيلةٍ تساعد الشركات على تعلم كيفية التعامل مع هذه الأدوات وبرمجتها وتضمينها في المشاريع المختلفة، وهو ما دفع الشركات المصنعة لشرائح المعالجة (سواء كانت معالجات أو متحكمات صغرية) لتحسين لوحات التطوير وقدراتها، وهو ما أدى لظهور اللوحة التطويرية SDK-51 MCS-51 من شركة إنتل في عام 1982 التي تم تخصيصها للمتحكمات الصغرية من عائلة 8051، حيث تم اعتبار هذه اللوحة أول لوحة تطويرية من نوع “Single-Board-Computer” كونها تضمنت كافة الوحدات والطرفيات اللازمة لاستخدامها كحاسوبٍ شخصيّ، مع تزويدها بلوحة مفاتيح مدمجة ومنافذ مخصصة لإضافة أي قطع إضافية أخرى عليها.

اللوحة التطويرية Intel SDK-51 من إنتل

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

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

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

في هذه الأيام، أصبح هنالك عدد كبير من لوحات التطوير العتادية من العديد من الشركات والتي أصبحت الخيار الأول بالنسبة للكثيرين للبدء في عالم تصميم المشاريع الإلكترونية وبرمجة العتادية والأنظمة المدمجة، مع تطور العتاد الخاص بها بشكلٍ كبير بالتوازي مع تصغير حجمها، حتى أصبحنا نتملك لوحاتٍ تطويرية مثل سلسلة ESP32 التي تتيح ميزات الاتصال اللاسلكيّ عبر معياري WiFi وبلوتوث، فضلًا عن تمتعها بمتحكمٍ صغريّ ذو معالجٍ ثنائيّ النواة ودعمٍ للعديد من معايير الاتصال التسلسليّ مثل SPI,UART,I2C وكل ذلك على لوحةٍ لا تتجاوز أبعادها 6×3 سنتيمتر.

اللوحة التطويرية ESP32 ذات المواصفات المتقدمة ودعمٍ للعديد من معايير الاتصال ضمن حجمٍ صغير واستهلاكٍ منخفض جدًا للطاقة

مكونات اللوحة التطويرية

كما ذكرنا آنفًا، يتواجد اليوم عدد كبير من اللوحات التطويرية التي تختلف عن بعضها البعض بالقدرات والخصائص التي تقدمها للمطورين، وبالرّغم من ذلك، فإنه يمكن القول أن أي لوحة تطوير باختلاف الوحدات التي تمتلكها وباختلاف الغرض المصممة من أجله، فإنها يجب أن تمتلك ما يلي:

  • وحدة معالجة Processing Unit: قد تكون هذه الوحدة عبارة عن معالج صغري متصل مع مجموعة من دارات الدعم والذواكر والخارجية، أو متحكم صغري يتضمن بداخله كافة دارات الدعم والذواكر الضرورية لتنفيذ مهامه. تتضمن ببعض اللوحات التطويرية المتقدمة المخصصة لمجال الإبصار الحاسوبيّ Computer Vision وحدة معالجة رسومية GPU قد تكون منفصلة عن المعالج الأساسيّ أو قد تكون مدمجة معه لتشكل نظامًا متكاملًا على شريحة SoC.
  • وحدات ذواكر Memory Units: في حال اعتمدت اللوحة التطويرية على معالجٍ مركزيّ، فإنه سيكون من الضروريّ وجود وحدات ذواكر منفصلة. بالنسبة للوحات التطويرية الخاصة بالمتحكمات الصغرية، فإن شريحة المتحكم نفسها تتضمن – غالبًا – كافة الذواكر الضرورية.
  • منافذ دخل وخرج عامة الاستخدام GPIO: تعتبر هذه المنافذ “عامة الاستخدام General Purpose” بمعنى أنه يترك للمطور بحسب التطبيق الذي يريد تنفيذه حرية برمجة وتخصيص وظائف هذه المنافذ. بشكلٍ عام وفي مختلف المشاريع، يتم استخدام هذه المنافذ من أجل قراءة المجالات المنطقية (واحد منطقي High، صفر منطقي Low) أو لتوليد مجالات منطقية وإرسالها للأجهزة الأخرى. أيضًا، من الممكن أن يتم تخصيص مغرز واحد Pin لأكثر من وظيفة، كأن يكون مغزر عام GPIO-Pin وبنفس الوقت مغرز قراءة بيانات تسلسلية Rx أو مغرز قراءة إشارات تشابهية ADC-Pin. يقوم المطور بتحديد وظيفة هذا المغرز ضمن برنامج عمل اللوحة التطويرية. أيضًا، يتم استخدام المغارز عامة الاستخدام من أجل تبادل البيانات بأحد معايير التراسل التسلسليّ، مثل UART, SPI, I2C.
  • منافذ ربط واتصال مختلفة Interface Ports: إحدى أبرز خصائص اللوحات التطويرية هي قدرتها على الاتصال مع العديد من الأجهزة المختلفة عبر منافذ معيارية، مثل منفذ الاتصال التسلسليّ USB أو منفذ الإيثرنت أو منفذ الوسائط المتعددة عالي الوضوح HDMI أو حتى منافذ حساسات الكاميرا المدمجة العاملة بمعيار MIPI-CSI.
  • شرائح ودارات إلكترونية أخرى: قد تتضمن اللوحة التطويرية دارات إلكترونية متكاملة خاصة بحسب التطبيقات المراد تنفيذها عبرها. كمثال، تتطلب عملية قيادة المحركات وجود دارات قيادة لتأمين عملية وصول التيارات والجهود الكهربائية بقيمها الصحيحة للمحرك كي يعمل بشكلٍ سليم.

كمثالٍ على بنية ومكونات اللوحات التطويرية، لننظر لمكونات اللوحة التطويرية Arduino Uno التي تعتبر من أبسط اللوحات التطويرية المتوفرة في الأسواق والمتاحة لكل الأشخاص:

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

من المخطط السابق الخاص بمكونات اللوحة التطويرية NVIDIA Jetson-TX2 نستطيع أن نلاحظ وجود العديد من الطرفيات والوحدات المتقدمة التي لا تتواجد في لوحةٍ مثل الأردوينو، والسبب الأساسيّ يعود للتطبيقات المرجوة من كل لوحة: بحالة لوحة تطويرية خاصة بتطبيقات الإبصار الحاسوبيّ مثل NVIDIA Jetson-TX2، وبسبب احتواء شريحة المعالجة على وحدة معالجة رسومية تتضمن 256 نواة معالجة، فإن وجود مروحة تبديد حرارية هو أمرٌ ضروريّ نظرًا لارتفاع حرارة الشريحة بشكلٍ كبير أثناء عمليات معالجة البيانات. من ناحيةٍ أخرى، سنجد أن اللوحة تتضمن منافذ اتصال وربط متنوعة مثل الإيثرنت، HDMI، منافذ USB مختلفة بالإضافة لمقابس تبادل بيانات عالية السرعة High-Speed Data Socket مثل SATA و PCIE، كون لوحة Jetson-TX2 موجهة لتستخدم كحاسوبٍ يعمل بنظام تشغيل لينوكس بحيث يستطيع المطور ربطها مع العديد من الأجهزة والكاميرات ووحدات العرض والإظهار. بكل الأحوال، ولو نظرنا بشكلٍ مجرّد لمكونات لوحة معقدة ومتقدمة مثل Jetson-TX2، فإننا سنجدها تتضمن – من حيث المبدأ – نفس مكونات لوحة بسيطة مثل الأردوينو: وحدة معالجة، ذواكر، منافذ ربط واتصال. الاختلاف الأساسيّ هو بعدد هذه الوحدات والطرفيات ومدى تعقيدها.

أهمية اللوحات التطويرية

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

من أجل تنفيذ هكذا مشروع، فإن الخطوات تكون عادةً كما يلي:

  1. توصيف النظام الإلكترونيّ وتحديد خصائصه ووحداته المختلفة
  2. تصميم الدارة الإلكترونية الخاصة بالمشروع وإجراء محاكاة حاسوبية لها للتأكد من صحة التصميم وقدرته على قياس البارامترات المطلوبة
  3. إجراء اختبار أوليّ عبر ربط العناصر مع بعضها البعض على لوحة تجريب إلكترونية وتسجيل المشاكل التي قد تحصل وإعادة إجراء الاختبار من جديد
  4. تنفيذ نموذج أوليّ للشريحة الإلكترونية عبر تصميم اللوحة المطبوعة PCB التي تتضمن كافة العناصر والقطع الخاصة بالمشروع
  5. فحص النموذج الأوليّ وإجراء اختبارات الوثوقية للتأكد من مطابقته للقيم المطلوبة، وبناء نموذج آخر في حال وجود خطأ تصميمي

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

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

اللوحات التطويرية وحواسيب اللوحة الواحدة Single-Board Computer

إلى جانب مصطلح “اللوحة التطويرية Development Board”، يبرز مصطلحٌ آخر وهو “حواسيب اللوحة الواحدة Single-Board Computers”، وهو يشير إلى نمطٍ محدد من اللوحات التطويرية التي يمكن استخدامها كحاسوبٍ شخصيّ صغير يتضمن كافة القطع الأساسية على لوحةٍ واحدة فضلًا عن امتلاكه لوحدة معالجة من نوع “نظام على شريحة SoC” تساعده على تشغيل أنظمة تشغيل الحواسيب الشخصية مثل ويندوز أو لينوكس.

قد يتردد في ذهنكم الآن سؤالٌ هام: ألا تمتلك كل اللوحات التطويرية كافة القطع والوحدات اللازمة للتعامل معها كحاسوبٍ صغير؟ الجواب هو نظريًا نعم، ولكن يجب التفريق هنا بين أنواع أنظمة التشغيل ومتطلباتها، فلوحة تطويرية مثل الأردوينو غير متوافقة مع نظام تشغيل مثل ويندوز، والسبب الأساسيّ يعود لبنية ومعمارية المتحكم الصغريّ، وبدرجةٍ أدق، لبنية ومعمارية المعالج المتوضع داخل المتحكم الصغريّ.

بحالة اللوحات المعروفة باسم “حاسوب اللوحة الواحدة Single-Board Computer” فإنها تختلف فعليًا عن اللوحات الأم الموجودة في الحواسيب الشخصية بحجمها الصغير الذي يسهل حملها بالإضافة إلى استهلاكها المنخفض للطاقة وسهولة ربطها مع الأجهزة الأخرى. بكل تأكيد، لا تستطيع حواسيب اللوحة الواحدة توفير نفس قدرة المعالجة والأداء الذي توفره اللوحات الأم الخاصة بالحواسيب الشخصية لأسبابٍ عديدة أهمها طبيعة المكونات نفسها المستخدمة في تصنيع حواسيب اللوحة الواحدة، حيث تتصف جميعها بكونها ذات استهلاك منخفض للطاقة وهو ما ينعكس على محدوديةٍ في الأداء الذي تقدمه.

تعتبر لوحة الراسبيري باي (بإصداراتها المختلفة) أحد أشهر حواسيب اللوحة الواحدة وأكثرها استخدامًا، وهي تعتمد بشكلٍ رئيسيّ على نظام تشغيل لينوكس أوبونتو فضلًا عن امتلاكها لمنافذ ربط واتصال ومغارز عامة الاستخدام GPIO تتيح استثمارها في تطبيقاتٍ مختلفة ومتنوعة، بدءًا من قراءة قيم الحساسات والتحكم بالمحركات، وصولًا لتطبيقات الإبصار الحاسوبيّ وإنترنت الأشياء IoT.

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

خلاصة

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

مراجع ومصادر

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

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

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