مرحبًا بكم في تدوينة تقنية أخرى من Progressive Automations! اليوم سنستعرض كيف يمكن لـ Arduino التواصل مع وحدة PA-04-HS لدينا.
مستشعر تأثير هول هو مكوّن إلكتروني يتيح تحكمًا دقيقًا في مشغل خطي. وعادةً ما يتم وضعه داخل علبة التروس بجانب قرص مغناطيسي. مع حركة المشغل الخطي، يدور القرص المغناطيسي مولدًا مجالًا مغناطيسيًا يمر عبر مستشعر تأثير هول. ينتج عن ذلك نبضة جهد يمكن عدّها لتحديد موضع المشغل الخطي أو سرعته أو اتجاهه. ولكن للاستفادة من هذه الإشارات، يجب استخدام وحدة تحكم دقيقة مثل Arduino أو Raspberry Pi. في هذه المقالة، سنتعمق في استخدام مشغل مع Raspberry Pi وكيفية التحكم بمشغل خطي عبر Arduino. كما ذكرنا، سيتم عرض كلا جهازي التحكم الدقيقين باستخدام مشغل خطي PA-04-HS بمستشعر تأثير هول من Progressive Automations.
حسابات الموضع والسرعة والاتجاه
قبل الخوض في التفاصيل، أول ما ينبغي فهمه هو كيفية استخدام الإشارات الصادرة من مستشعر تأثير هول لحساب موضع المشغل الخطي وسرعته واتجاهه. في PA-04-HS، صُمم مستشعر تأثير هول لإنتاج إشارتين في حالتين ثنائيتين: تشغيل أو إيقاف. ترتفع هاتان الإشارتان وتهبطان أثناء دوران المحرك الكهربائي مع وجود فرق طور قدره 90 درجة بينهما. لا تقلق إن لم تكن تعرف كيفية تطبيق ذلك ضمن شيفرة يمكن لوحدة تحكم دقيقة قراءتها؛ سنقدمها لك لاحقًا في هذه المقالة.
الموضع
يتطلب تحديد موضع المشغل الخطي بعض الحسابات باستخدام إشارات تأثير هول وبعض قياسات المشغل نفسه. تعتمد معادلة موضع قضيب المشغل على طول الشوط الخاص بـالمشغل وإجمالي عدد الحواف المكتشفة من وضع السحب الكامل حتى وضع الامتداد الكامل. باستخدام هذه القياسات، يمكن استخدام المعادلة التالية:

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

الاتجاه
يمكن تحديد اتجاه حركة المشغل عبر النظر إلى الحالة الحالية للإشارتين (الإشارة A وB) ومقارنتها بآخر حالة للإشارتين. ذلك لأن الإشارتين تتبادلان أيهما المتقدمة وأيهما المتأخرة حسب اتجاه حركة المشغل.


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

مرة أخرى، حسب تطبيقك، يمكنك الاختيار بين استخدام أسلوب الاستطلاع (Polling) أو المقاطعة (Interrupt) مع وحدة تحكم دقيقة عند التعامل مع الإشارات الرقمية. الاستطلاع هو طريقة مبرمجة يقوم فيها المتحكم الدقيق بفحص حالة مُدخل بشكل دوري لمعرفة ما إذا حدث تغيير. أما المقاطعات فهي آلية عتادية تُحوّل تركيز برنامج المتحكم مباشرةً عند تغيّر الحالة على مدخل ما.
لأغراض العرض، سنلجأ إلى أسلوب المقاطعة لمعرفة اللحظة الدقيقة التي يغيّر فيها أيّ إشارة حالتها. على متحكم Arduino، تُستخدم المقاطعة عبر إنشاء روتين خدمة مقاطعة (ISP).
إليك ما ستحتاج إليه:
توصيل مكونات Arduino والدرع
تحتوي مستشعرات تأثير هول على 4 أسلاك: 5V وGND و2 من أسلاك الإشارة. كل سلك إشارة يُخرج نبضات مع دوران المحرك. هناك أيضًا سلكان للمشغل يجب توصيلهما بـ MegaMoto. سنستخدم إحدى إشارات تأثير هول فقط.
وصّل المشغل الخطي مع Arduino وMegaMoto كما يلي:
- سلك المستشعر الأحمر إلى رجل 5V في Arduino.
- سلك المستشعر الأسود إلى رجل GND في Arduino.
- السلك الأصفر/البرتقالي إلى الرجل 2 أو 3 في Arduino (إذا كنت تستخدم لوحة Arduino مختلفة، فتأكد أن الأرجل تدعم المقاطعات).
- سلك المشغل الأحمر إلى MOTA في MegaMoto.
- سلك المشغل الأسود إلى MOTB في MegaMoto.
بمجرد توصيل المحركات بشكل صحيح إلى اللوحات، قم بتوصيل مزوّد الطاقة كما يلي:
- وصل 12V إلى BAT+.
- وصل GND إلى BAT-.
- وصل 12V إلى Vin على Arduino.
- وصّل زرين بين الرجلين 7 و8 على Arduino واربُطهما بـ GND.
هناك 4 أنواع من مشغّلات المقاطعة: Rising وFalling وHigh وLow. من خلال تغيير المشغّل يمكنك ضبط توقيت حدوث المقاطعة. Rising عندما يرى الرجل انتقالًا من منخفض إلى مرتفع، وFalling عندما يرى انتقالًا من مرتفع إلى منخفض، وLow عندما تكون الرجل منخفضة، وHigh عندما تكون الرجل مرتفعة.
للاطلاع على الشيفرة الكاملة لـ Arduino، زر دليلنا هنا: شيفرة Arduino لمشغل خطي بمستشعر تأثير هول
ستُحرّك الشيفرة المشغل للأمام أو للخلف بمقدار محدد عند الضغط على الأزرار في الرجل 7 أو 8 (فعّالة على LOW). كما تتضمن روتين العودة إلى الموضع المرجعي (Homing). هذا مهم لأنه إذا شغّلت المحرك ذهابًا وإيابًا لفترة طويلة فقد تفقد عدّ نبضات هنا وهناك وتفقد تدريجيًا تتبّع موضعك. يقوم روتين المعايرة بإرجاع المشغل الخطي إلى موضع معروف ليُعاد ضبط العداد.
مشغل Raspberry Pi
إذًا، كيف توصل مشغلًا إلى Raspberry Pi 2 أو 4 أو طراز أحدث؟ إن التحكم بمشغل خطي عبر Raspberry Pi أمر بسيط ويمكن تنفيذه عبر الإنترنت، ما يتيح التحكم اللاسلكي. اتبع الخطوات في الدليل التالي لترى الطريقة بالتفصيل: التحكم بمشغل خطي عبر Raspberry Pi.
يُستخدم Raspberry Pi 4 لتشغيل برمجية الخادم وتلقي الأوامر للتحكم بالمشغل الخطي. مع ذلك، لا يستخدم هذا الدليل مستشعر تأثير هول. للقيام بذلك، يمكن توصيل لوحة Arduino بالمشغل الخطي وبـ Raspberry Pi لإرسال/استقبال البيانات لاسلكيًا. ورغم أن Raspberry Pi يمكن استخدامه مباشرةً لقراءة بيانات المستشعر، مثل Arduino، فقد يكون ذلك مبالغًا فيه إذا كنت تتحكم بعدد قليل فقط من المشغلات الخطية.
التحكم بعدة مشغلات خطية

إذا كنت بحاجة للتحكم بعدة مشغلات خطية باستخدام Raspberry Pi أو Arduino، فستحتاج إلى بعض المكونات الإضافية كما يجب تعديل الشيفرة. يمكن مزامنة مشغلين خطيين أو أكثر عبر تتبّع عدّادات مستشعر تأثير هول، وإذا ابتعدت العدّادات بين المشغلات كثيرًا يبطئ كل مشغل للموازنة بين المواضع.
اطّلع على مجموعة التعليمات الكاملة هنا: التحكم بعدة مشغلات خطية بواسطة متحكم دقيق
بدلاً من ذلك، إذا لم تكن المزامنة جزءًا من تطبيقك، فاستخدم ببساطة Arduino لواحد أو اثنين من المشغلات، حسب عدد أرجل المقاطعات المتاحة. وللتحكم بعدد أكبر من المشغلات، يمكنك إما استخدام مزيد من لوحات Arduino أو الحصول على درع Arduino يحتوي على مزيد من أرجل المقاطعات.
الخلاصة
إذا كنت مستعدًا للتحدي، فهناك طرق إضافية يمكنك تجربتها باستخدام Arduino مع مشغلات خطية للتحكم بالحركة، مثل استخدام شيفرة PID ذكية، ويمكنك الاطلاع عليها هنا: التحكم PID لمشغل خطي. يوفّر مستشعر تأثير هول داخل مشغل خطي، مثل PA-04-HS، طبقة إضافية من التحكم يمكن إعدادها بسهولة بمساعدة Arduino أو Raspberry Pi. سواء كان تطبيقك يتطلب مجرد قراءة بيانات المستشعر أو أردت الارتقاء بمشغلك الخطي إلى المستوى التالي عبر ربطه بالإنترنت، فإن مستشعر تأثير هول مع وحدة التحكم الدقيقة التي تختارها هو الطريق الصحيح.
إذا كانت لديك أي أسئلة حول محتوى هذه المقالة أو رغبت ببساطة في مناقشة حلول منتجات محتملة، تواصل معنا وسنكون سعداء بمساعدتك!