دليل تطوير منتجات IoT من البداية إلى النهاية – المرحلة 3: التصميم الإلكتروني والميكانيكي
«الجانب الأيسر» من حرف V)
المرحلة 3 هي حيث يصبح التصميم فيزيائياً: التصميم الإلكتروني والميكانيكي، وعادة ما يتقدمان جنباً إلى جنب. إذا سمعت عن نموذج V في الهندسة (نموذج عملية تطوير كلاسيكي)، فالجانب الأيسر من «V» كله عن التصميم والتنفيذ – وهذا بالضبط أين نحن الآن. بعبارة أخرى، نركز على تصميم العتاد الذي سيُتحقق منه ويُصدَّق عليه لاحقاً في الجانب الأيمن من V. (لا تقلق إن لم تكن على دراية بنموذج V؛ الفكرة الأساسية أن تصميم العتاد يميل إلى أن يكون عملية تسلسلية يجب مقاربتها بعناية. بمجرد أن تطبع لوحة دائرة أو تقولب علبة بلاستيكية، يصبح إجراء التغييرات صعباً – اقرأ: مكلفاً.)
يمكن تقسيم المرحلة 3 إلى بضع خطوات فرعية. والمهم، هذه أيضاً المرحلة التي يبدأ فيها تطوير العتاد والبرمجيات العمل بالتوازي (المزيد عن جانب البرمجيات في المرحلة التالية). على مسار العتاد، إليك كيف تسير الأمور عادة:
التقاط المخطط: المخطط الإلكتروني الأساسي
كل منتج إلكتروني يبدأ كرسم – ليس من النوع الفني، بل مخططاً كهربائياً (schematic). التقاط المخطط هو حيث يُرسم تصميم الدائرة الكهربائية بالتفصيل باستخدام أدوات CAD متخصصة (مثل Altium أو Eagle أو KiCad). فكّر في المخطط كمخطط أساسي لدارتك: يُظهر كل مكون (متحكم دقيق، حساسات، مكثفات، موصلات، وغيرها) وكيف تتصل كهربائياً عبر الشبكات (الأسلاك). إنه كرسم خريطة مدينة إلكترونيات حيث كل مكون مبنى والشبكات هي الطرق الواصلة بينها.
هذه الخطوة حاسمة لأن إصلاح الأخطاء على مخطط أسهل (وأرخص) بكثير من إصلاحها على لوحة فيزيائية. بمجرد إعداد المخطط، تصبح المراجعة الدقيقة واجبة. عادة يصدّر المهندس المخطط إلى PDF ويوزعه لمراجعة الأقران. عيون جديدة قد تلتقط ما فاتك – على سبيل المثال، «عفواً، منفذ طاقة حساس الحرارة غير متصل!» أو «قيمة تلك المقاومة تبدو خاطئة لمحدد تيار LED.» التقاط هذه المشكلات الآن يوفر كثيراً من الصداع لاحقاً.
في هذه المرحلة تجري بعض الفرق أيضاً FMEA (تحليل أنماط الفشل وآثاره) على الأجزاء الحرجة من التصميم، مثل مصدر الطاقة أو دوائر السلامة. FMEA هو في الأساس طريقة مهيكلة لسؤال «ما كل الطرق التي يمكن أن تفشل بها هذه الدائرة، وماذا يحدث إذا فشلت؟» على سبيل المثال، ماذا لو فشل حساس الحرارة بقصر دائرة (أي يتصل طرفاه داخلياً بشكل عرضي)؟ هل سيجعل الحساس يقرأ قيمة قصوى فحسب، أم قد يتلف اللوحة كلها بسحب تيار زائد؟ بطرح هذه الأسئلة غير المريحة مبكراً، يمكنك إضافة حمايات أو تقرير ما إذا كان الخطر مقبولاً. هذا النوع من التفكير الاستباقي يجعل الجهاز أكثر موثوقية على المدى الطويل.
وفي هذه الأثناء – وهنا يأتي العمل المتوازي – لا يضطر فريق البرمجيات/firmware إلى الانتظار عاطلاً حتى ينتهي العتاد. بناءً على المخطط، يستطيع مهندسو firmware البدء بإنشاء HAL (طبقة تجريد العتاد) أو هيكلها على الأقل. في الجوهر، يُعدّون الواجهات البرمجية لوحدات المتحكم الدقيق الطرفية (مؤقتات، واجهات اتصال مثل I2C أو SPI لتلك الحساسات، إلخ). قد يكتبون حتى اختبارات وحدة أو كود محاكاة لهذه التعريفات على حاسوب. تخيّل مطوّراً يكتب كوداً يزيّف قراءات حساس فقط لاختبار المنطق – بهذه الطريقة، يكون فريق firmware قد بدأ بالفعل بناء الأساس. وبحلول وصول لوحة الدائرة الفعلية، يكون كثير من بنية الكود جاهزاً وينتظر التجربة على عتاد حقيقي. هذا الجهد المتوازي يعني أن فريق البرمجيات لا يلعب بإبهاميه؛ بل يمهّد أرضية ستجعل إقلاع العتاد أسهل لاحقاً.
تخطيط PCB: من المخطط إلى لوحة فيزيائية
بمجرد الانتهاء من تصميم المخطط ومراجعته، يحين وقت تحويل ذلك المخطط الإلكتروني الأساسي إلى لوحة دائرة حقيقية. هذه هي مرحلة تخطيط PCB. باستخدام مجموعة أخرى من أدوات CAD (غالباً المجموعة نفسها المستخدمة للمخططات، مثل Altium أو KiCad، التي تستطيع التحول إلى وضع التخطيط)، يضع المهندس كل بصمة مكون على لوحة افتراضية ويبدأ توجيه المسارات النحاسية التي تربط كل شيء. إذا كان المخطط هو المخطط الأساسي، فتخطيط PCB هو الخطوة التي تقرر فيها بالضبط كيف ستبدو مدينة المكونات تلك فيزيائياً – كتقرير أين يقع كل مبنى وكيف ستجري الطرق (الأسلاك) بينها على أرض اللوحة الفعلية.
ناتج تخطيط PCB هو مجموعة ملفات (تُعرف بملفات Gerber) يستخدمها المصنّعون لتصنيع اللوحة. ناتج آخر مفيد هو نموذج ثلاثي الأبعاد (غالباً ملف STEP) للوحة. هذا النموذج مفيد خصوصاً في جانب التصميم الميكانيكي – يمكنك استيراده إلى تصميم الهيكل للتحقق من أن اللوحة وكل مكوناتها تسع داخل علبة المنتج دون أي تصادمات (لا أحد يريد موصل USB يبرز حيث لا فتحة في العلبة!).
أثناء تخطيط PCB، من الحرج إبقاء إرشادات التصميم للتصنيع (DFM) والتصميم للاختبار (DFT) في الذهن. بعبارات بسيطة، DFM يعني تصميم اللوحة بحيث يمكن تصنيعها بموثوقية وبتكلفة فعالة، وDFT يعني تصميمها بحيث يمكن اختبارها بسهولة لاحقاً.
على سبيل المثال:
- DFM: تجنب وضع المكونات قريباً جداً من حافة اللوحة أو معبأة بإحكام بحيث تعجز آلات التجميع عن لحامها. تأكد أن التخطيط قابل للتصنيع دون مشكلات.
- DFT: أضف نقاط اختبار (test pads) أو موصلاً خاصاً بحيث تستطيع توصيل معدات اختبار أو مبرمجات باللوحة في الإنتاج. بهذه الطريقة، يمكن فحص كل وحدة تخرج من الخط بسهولة (تخيّل قابساً مريحاً لبرمجة firmware أو قياس الإشارات على كل جهاز).
تضمين هذه الإجراءات الآن أسهل بكثير من إدراك لاحقاً أن لديك ألف وحدة منتهية بلا طريقة سهلة للتحقق من أنها تعمل بكامل وظائفها!
تستخدم فرق كثيرة قائمة تحقق أثناء التخطيط للتأكد من عدم نسيان شيء – أشياء مثل إضافة علامات fiducial (علامات صغيرة تساعد آلات التجميع الآلية على معرفة كيفية محاذاة اللوحة)، والحفاظ على مسافات أمان مناسبة بين الأجزاء عالية الجهد، وتوسيم الموصلات المهمة، وما إلى ذلك.
وبينما ينشغل فريق العتاد بتوجيه المسارات والتعرق على تفاصيل اللوحة، يستمر الجهد البرمجي المتوازي. فريق firmware، عالماً بنماذج الحساسات والمكونات الدقيقة من المخطط، يستطيع البدء بكتابة كود تعريفات فعلي (أو عناصر نائبة على الأقل) مقابل datasheets تلك المكونات. قد يستخدمون محاكيات حساسات أو يكتبون كوداً وهمياً يحاكي ما سيفعله الحساس. وفريق السحابة/الواجهة الخلفية، إن كان لمنتج IoT خاصتك واحد، يستطيع أيضاً التقدم: على سبيل المثال، إعداد قاعدة بيانات سحابية أساسية ونقاط نهاية API لاستقبال البيانات من الجهاز. في الجوهر، الجميع يجهّز جزأه من الأحجية بحيث عندما تصل اللوحات الفيزيائية الأولى، لا تكون بداية باردة لبقية الفريق. بحلول إرسال تصميم PCB للتصنيع، قد يكون لدى firmware خاصتك «hello world» جاهزاً للوحة ولدى سحابتك خادم اختبار صغير ينتظر تسجيل أول نقطة بيانات من الجهاز. هذا التطوير المتزامن يقصّر حقاً حلقة التكرار لاحقاً.
بناء النموذج الأولي: بثّ الحياة في العتاد
ومع انتهاء تخطيط PCB وفحصه، يحين وقت الانتقال من ملفات رقمية إلى أشياء فيزيائية. الخطوة الأولى هي تصنيع اللوحات. عادة ترسل ملفات Gerber تلك إلى مصنع PCB (هناك مصنّعون سريعو الدوران كثر يستطيعون إنتاج لوحات في أيام). وبالتوازي، ستحتاج التأكد من توفر كل المكونات التي ستُركَّب على اللوحة (المتحكم الدقيق، الحساسات، الشرائح، إلخ). نصيحة محترف: اطلب القطع الحرجة أو طويلة زمن التوريد فور ثقتك بمخططك واختيار مكوناتك! خلال نقص الشرائح العالمي، تعلمت فرق كثيرة هذا بالطريقة الصعبة – لا تريد أن تنتظر 12 أسبوعاً لحساس أو شريحة راديو معينة بينما لوحاتك تجلس فارغة.
بمجرد حصولك على لوحات PCB العارية وكل القطع، تجمع بضع وحدات نموذجية. قد يتم ذلك داخلياً إذا كان لديك مختبر مجهز جيداً ويد ثابتة للحام، أو قد تستخدم خدمة تجميع للحام كل تلك المكونات الدقيقة. النتيجة مجموعة (غالباً حفنة صغيرة، من 1 إلى 5 لوحات) من أجهزة نموذجية.
الآن تأتي واحدة من أكثر لحظات تطوير العتاد إثارة (وتوتيراً للأعصاب): الإقلاع (bring-up)، وهو المصطلح البسيط لأول مرة تشغّل فيها اللوحة وترى إن كانت تعمل. من الشائع فعل هذا بحذر – على سبيل المثال، باستخدام مصدر طاقة مختبري بحد تيار لتجنب قلي الأشياء إذا كان هناك قصر دائرة في مكان ما. قد يحبس الجميع في المختبر أنفاسهم وأنت تقلب المفتاح. هل تعمل اللوحة دون إطلاق الدخان السحري للمكونات المحترقة؟ (نأمل أن نعم!)
بعد التشغيل، تتحقق منهجياً من الأساسيات. هل كل خطوط الطاقة عند الجهود المتوقعة؟ (افحص بمقياس متعدد أو oscilloscope.) هل يستيقظ المتحكم الدقيق (MCU) ويشغّل كوداً؟ أول اختبار كلاسيكي هو غالباً التحقق من عمل firmware بسيط يومض LED أو يرسل رسالة «Hello, world» عبر منفذ تسلسلي. إذا رأيت ذلك الـ LED يومض أو وصلتك تلك الرسالة على حاسوبك، فهذا معلم حقيقي – يعني أن قلب لوحتك حي وينبض.
بعدها، ستختبر التواصل مع الوحدات الطرفية الأساسية: هل يستطيع MCU التحدث إلى الحساس عبر I2C أو SPI كما هو مخطط؟ هل تعيد الحساسات بيانات معقولة؟ في هذه المرحلة قد تكتشف مشكلات. ربما حساس لا يقرأ بسبب خطأ توصيل أو خلل firmware دقيق. الإقلاع لعبة تحقيق، حيث يعمل مهندسو العتاد وfirmware معاً لاستكشاف أي مشاكل. على سبيل المثال، إذا كانت قراءة الحرارة صفراً دائماً، قد يصحح مهندس firmware الكود بينما يتتبع مهندس العتاد التوصيلات بمقياس متعدد – معاً سيكتشفان إن كانت مشكلة تهيئة برمجية أم ربما خطا SDA وSCL للحساس تم تبديلهما على PCB.
أثناء إقلاع النموذج الأولي، تراقب أيضاً أي مشكلات طاقة أو حرارة. هل أي شيء يعمل أسخن مما ينبغي؟ (نصيحة محترف: لمس الشرائح بحذر للإحساس بالحرارة أو استخدام كاميرا بالأشعة تحت الحمراء يمكن أن يلتقط النقاط الساخنة.) هل تسحب اللوحة تياراً أكثر من المتوقع (ما قد يشير إلى توصيل خاطئ أو مكون معيب)؟ تضمن هذه الاختبارات أن نموذجك الأولي ليس عاملاً فحسب، بل آمناً وأداؤه ضمن المعاملات المتوقعة.
إذا كان جهازك مفترضاً أن يتواصل لاسلكياً أو يستوفي معايير تنظيمية معينة (مثل انبعاثات FCC للأدوات اللاسلكية في الولايات المتحدة)، فمرحلة النموذج الأولي هذه وقت جيد لإجراء بعض اختبارات ما قبل الامتثال. قد يعني هذا أخذ الجهاز إلى مختبر لإجراء مسح أولي لانبعاثات التردد الراديوي لالتقاط أي مشكلات كبيرة مبكراً. لا تريد أن تكتشف في اختبار الاعتماد النهائي أن لوحتك تتصرف كمرسل راديو عرضي على تردد غير معتمد!
وبينما ينشغل فريق العتاد بالإقلاع، يكون فريق firmware الآن في كامل نشاطه يختبر كوده على الجهاز الحقيقي. كل تلك التعريفات ومكونات HAL التي بدأوها سابقاً يمكن تحميلها على اللوحة الفعلية. هنا قد يحتاج firmware بعض الضبط – ربما كانت الافتراضات الزمنية منحرفة قليلاً، أو مقاطعة تحتاج تعديلاً الآن بعد أن أصبحت على سيليكون حقيقي. إذا كنت تستخدم RTOS (نظام تشغيل زمن حقيقي) على المتحكم الدقيق، فهذا حين تبدأ ضبط أولويات المهام أو التوقيت، لأنك على عتاد حقيقي تستطيع مراقبة الأداء الفعلي. قد يرى فريق السحابة أيضاً أول بيانات حقيقية تمر عبر النظام! على سبيل المثال، قد يرسل النموذج الأولي فعلاً قراءة حرارة إلى خادم اختبار، مؤكداً أن التدفق الكامل من الطرف إلى الطرف (جهاز ← سحابة ← قاعدة بيانات) يعمل على نطاق صغير على الأقل.
غالباً تتضمن المرحلة 3 بضع تكرارات. من النادر أن يكون كل شيء مثالياً من المحاولة الأولى – وهذا طبيعي تماماً. قد تجد خطأ على اللوحة (مثل مسار موصول خطأً أو خطأ في بصمة مكون) يتطلب إصلاحاً جراحياً صغيراً على النماذج الأولية (أهلاً بأسلاك الرقعة والإصلاحات الترقيعية!)، أو قد يكون كبيراً بما يكفي ليستدعي تصنيع PCB معدّلة لجولة النماذج التالية. كل تكرار فرصة للتحسين: ربما تعيد تموضع موصل كان صعب الوصول، أو تعدّل الدائرة لتقليل الضوضاء على قراءة حساس، إلخ. لا تُحبط من الحاجة إلى تكرارات؛ هذا متوقع في تطوير العتاد.
طوال هذه المرحلة، التعاون الوثيق بين فريقي العتاد والبرمجيات حيوي. عندما تنشأ مشكلة، على الجانبين ارتداء قبعات المحقق والعمل معاً. هل الحساس لا يقرأ لأن firmware خاطئ، أم هناك جسر لحام يقصر شيئاً على PCB؟ بتوصيل النتائج والفرضيات، يستطيع الفريق التركيز على المشكلة أسرع. هذا الاستكشاف التعاوني للأخطاء أحد أكثر أجزاء العملية تعليماً – وكثيراً ما يقوّي فهم الفريق للمنتج ككل.
وأيضاً، أبقِ عيناً على المستقبل: إذا كنت تخطط لتصنيع هذا المنتج بالجملة في النهاية، استخدم مرحلة النموذج الأولي للتفكير في التصنيع والاختبار على المدى الطويل. تذكر DFM وDFT؟ حان الوقت للتحقق من تلك القرارات. على سبيل المثال، إذا ضمّنت ترويسة برمجة، جرّب استخدامها في اختبار إنتاج محاكى: هل تستطيع التوصيل وبرمجة اللوحة بسهولة؟ إذا أضفت نقاط اختبار، هل هي في متناول جهاز اختبار bed-of-nails؟ تعديل تصميمك لقابلية الاختبار الآن أسهل بكثير منه عندما يكون خط إنتاج يعمل.
بنهاية المرحلة 3، يجب أن يكون لديك جهاز نموذجي عامل واحد أو أكثر ومجموعة متينة من الدروس المستفادة. سيكون لديك بيانات أولية عن الأداء (مثل كم يسحب جهازك من الطاقة فعلاً؟ هل يؤدي الحساس بدقة في ظروف العالم الحقيقي؟). وعلى الأرجح سيكون لديك أيضاً قائمة إصلاحات أو تحسينات للنسخة التالية. والأهم، أنك بنيت الأساس الفيزيائي لمنتج IoT خاصتك – شيئاً تستطيع إمساكه بيديك ويعمل فعلاً.
عندما يعود ذلك النموذج الأولي الأول إلى الحياة أخيراً ويرسل البيانات كما هو متوقع، يكون احتفال صغير مستحقاً عن جدارة – فمعظم مهندسي العتاد شعروا برعشة «إنه حي!» على طريقة د. فرانكشتاين في تلك اللحظة. خذها. العتاد صعب، وقد تجاوزت للتو معلماً رئيسياً على الطريق من فكرة إلى واقع.