في أحدث منشورات “كيفية”، سنستعرض كيفية التحكم في توقيت حركة مشغل خطي باستخدام متحكّم دقيق. تُوفّر المتحكمات الدقيقة قدرًا كبيرًا من الحرية في التحكم بالحركة، وهذا مجرد مثال واحد على كمّ شبه لا نهائي من خيارات التحكم بالحركة المتاحة. وبحسب تطبيقك، يمكن تعديل مشروع المثال في هذه المقالة ليناسب متطلباتك، سواءً بإضافة مشغل آخر مضبوط بالوقت أو بترقية مزوّد الطاقة للتعامل مع مشغل خطي أقوى—الأمر كله يعود إليك.
التحكم بالحركة باستخدام متحكّم دقيق
سنستخدم متحكم Arduino للتحكم في توقيت حركة مشغل خطي، لكن أي متحكم دقيق آخر سيؤدي الغرض. ومع ذلك، بما أننا نستخدم درعًا (Shield)، فيجب أن يكون المتحكم متوافقًا معه. سنأخذك عبر مختلف المعاملات التي يمكنك ضبطها لتغيير السرعة الخاصة بمشغل خطي.
ما الذي ستحتاج إليه
في هذا المثال، سنستخدم المكوّنات التالية للتحكم في مشغل خطي:
- 1 × MegaMoto Plus
- 1 × Arduino Uno Rev3
- 1 × مشغل صناعي صغير (PA-09، لكن أي مشغل خطي سيناسب)
- 1 × مزوّد طاقة (PS-20-12، لكن أي مزوّد طاقة 12 فولت سيعمل)
توصيل المكوّنات
الآن بعد أن أصبحت التجهيزات متاحة، سنحتاج إلى توصيل كل شيء. ولحسن الحظ، تكون التوصيلات بسيطة عند استخدام درع (Shield) بدلًا من لوحة منفصلة تتطلب أسلاكًا إضافية وعمل لحام.
أولًا، لنقم بتوصيل المشغل بدرع LC-80 MegaMoto Plus عبر توصيل السلكين الخارجين من المشغل بمرابط المسمار A/B على LC-80. ثم نحتاج إلى توصيل LC-80 بمزوّد الطاقة—وفي مثالنا هو PS-20-12—وذلك عبر توصيل السلكين الموجب والسالب من مزوّد الطاقة بمداخل BAT +/- على LC-80.
وأخيرًا، نحتاج إلى توصيل LC-80 بالـ LC-066، وذلك ببساطة من خلال تثبيتهما فوق بعضهما كما هو موضح في الصورة أدناه.

ضبط الشيفرة
للحصول على تحكم كامل بحركة المشغل، سنحتاج إلى بعض برمجة المشغل الخطي باستخدام وحدة Arduino. لقد جهّزنا مثال شيفرة يجعل المشغل يتمدّد ثم ينكمش لمدة 10 ثوانٍ في كل اتجاه ضمن دورة مدتها 300 ثانية.
//Use the jumpers on the board to select which pins will be used
int EnablePin1 = 13;
int PWMPinA1 = 11;
int PWMPinB1 = 3;
int extendtime = 10 * 1000; // 10 seconds, times 1000 to convert to milliseconds
int retracttime = 10 * 1000; // 10 seconds, times 1000 to convert to milliseconds
int timetorun = 300 * 1000; // 300 seconds, times 1000 to convert to milliseconds
int duty;
int elapsedTime;
boolean keepMoving;
void setup() {
Serial.begin(9600);
pinMode(EnablePin1, OUTPUT);//Enable the board
pinMode(PWMPinA1, OUTPUT);
pinMode(PWMPinB1, OUTPUT);//Set motor outputs
elapsedTime = 0; // Set time to 0
keepMoving = true; //The system will move
}//end setup
void loop() {
if (keepMoving)
{
digitalWrite(EnablePin1, HIGH); // enable the motor
pushActuator();
delay(extendtime);
stopActuator();
delay(10);//small delay before retracting
pullActuator();
delay(retracttime);
stopActuator();
elapsedTime = millis();//how long has it been?
if (elapsedTime > timetorun) {//if it's been 300 seconds, stop
Serial.print("Elapsed time is over max run time. Max run time: ");
Serial.println(timetorun);
keepMoving = false;
}
}//end if
}//end main loop
void stopActuator() {
analogWrite(PWMPinA1, 0);
analogWrite(PWMPinB1, 0); // speed 0-255
}
void pushActuator() {
analogWrite(PWMPinA1, 255);
analogWrite(PWMPinB1, 0); // speed 0-255
}
void pullActuator() {
analogWrite(PWMPinA1, 0);
analogWrite(PWMPinB1, 255);//speed 0-255
}
من المهم المرور على الشيفرة سطرًا بسطر لفهم ما يحدث. وبهذا يمكنك تخصيص الشيفرة لتنفيذ مجموعة كبيرة من المهام الأخرى. ولكن في الوقت الحالي، فإن الجزء الأهم هو القسم الأول وحلقة الإعداد (setup) التي تركز على تخصيص الدبابيس وضبط سرعة الدورة.
تحتاج إلى ضبط الدبابيس على لوحة LC-80 لتطابق ما ورد في القسم الأول من الشيفرة، إما عبر إعداد الجسور (Jumpers) على LC-80 أو بتعديل الشيفرة نفسها. في هذه الحالة، اجعل دبوس "Enable" على D13، ودبوس "PWMA" على D11، ودبوس "PWMB" على D3. دبوس “Enable” هو ما يتحكم في تشغيل المحرك ويزوّده بالطاقة، ومن دونه سيتوقف المشغل عن الحركة ولن يكون قابلًا للتحكم. أما دبابيس “PWMA” و“PWMB” فتحكم تمدد المشغل وانكماشه. لا نحتاج إلى دبابيس “Sensor” في هذا المثال، لذا لا تقلق بشأن اختيار أي شيء هناك.
تم الآن إكمال التحكم بالمؤقّت لمشغل خطي. يمكنك رفع الشيفرة إلى Arduino باستخدام بيئة التطوير الخاصة بهم (يمكن تنزيلها من موقع Arduino). وبمجرد أن يصبح مشغلك الخطي يتمدّد وينكمش، لمَ لا تجرّب العبث قليلًا بالشيفرة؟ حاول ضبط زمن التمدد/الانكماش ضمن الشيفرة، ثم أعد رفعها إلى Arduino وشاهد كيف يستجيب المشغل الخطي. من خلال تعديل هذه الأرقام في الشيفرة يمكنك التحكم في السرعة وزمن دورة الحركة الكلي بحسب تطبيقك المطلوب.
الخلاصة
أدرجنا أدناه فيديو لمشغل مضبوط التوقيت أثناء العمل. في مثال الفيديو أردنا عرض طريقة أخرى لتغيير التوقيت، لذلك جعلناه يتمدّد وينكمش لمدة 5 ثوانٍ في كل مرة ضمن دورة مدتها 20 ثانية.
كما ذكرنا سابقًا، هذا مجرد مثال واحد على طريقة يمكنك بها تغيير حركة مشغل بمساعدة متحكماتنا الدقيقة. إذا كانت لديك طريقة تحكم مخصّصة في ذهنك، يمكنك بناء نظام تحكم مُصمّم خصيصًا لمتطلباتك بالتعاون مع فريق مهندسينا الموهوب. سيرشدونك خلال العملية ويتأكدون من حصولك على تحكم كامل بوحداتك. إذا رغبت في معرفة المزيد عن عملية الطلب المخصّص، ألقِ نظرة على صفحة الطلبات المخصّصة.