يعمل محرك سيرفو وفقًا لمبدأ تعديل عرض النبض (PWM) ويتم التحكم في زاوية الدوران من خلال مدة النبضة المطبقة على دبوس التحكم الخاص به. هنا في هذا البرنامج التعليمي سوف نتحكم في محرك مؤازر باستخدام متحكم ATtiny13 باستخدام تقنية PWM. لذلك قبل المضي قدمًا ، سوف نتعرف أولاً على PWM و Servo Motor وكيفية برمجة ATtiny13 باستخدام Arduino Board.
تعديل عرض النبض (PWM)
يُعرَّف تعديل عرض النبض (PWM) بأنه طريقة لتوليد إشارة تناظرية باستخدام مصدر رقمي. تتكون إشارة PWM من مكونين رئيسيين - دورة العمل والتردد. تحدد هذه المكونات سلوكها. تصف دورة التشغيل مقدار الوقت الذي تكون فيه الإشارة في حالة عالية. يُشار إليه كنسبة مئوية من إجمالي الوقت المستغرق لإكمال دورة واحدة.
دورة العمل = وقت التشغيل / (وقت التشغيل + وقت الإيقاف)
يحدد التردد مدى سرعة إكمال PWM لدورة ما ومدى سرعة تبديل الإشارة بين الحالات العالية والمنخفضة. تردد 100 هرتز يعني 100 دورة في الثانية. من خلال تشغيل وإيقاف إشارة رقمية بمعدل سريع ودورة عمل معينة ، سيظهر الإخراج كإشارة تناظرية ذات جهد ثابت. إحدى الفوائد القوية لـ PWM هي أن فقدان الطاقة ضئيل للغاية.
تعمل جميع محركات المؤازرة بشكل مباشر مع إمداد + 5 فولت ، ولكن يجب أن نكون حذرين بشأن مقدار التيار الذي سيستهلكه المحرك. إذا كنا نستخدم أكثر من محركين مؤازرين ، فيجب تصميم درع مؤازر مناسب.
قبل توصيل Servo بـ Attiny13 ، يمكنك اختبار المؤازرة الخاصة بك بمساعدة دائرة اختبار محرك سيرفو. هنا قمنا بتوصيل محرك مؤازر مع العديد من وحدات التحكم الدقيقة:
- ربط محرك سيرفو مع ARM7-LPC2148
- ربط محرك سيرفو مع MSP430G2
- التحكم في محركات مؤازرة متعددة باستخدام Arduino
- ربط محرك سيرفو مع متحكم PIC باستخدام MPLAB و XC8
- التحكم في محرك سيرفو مع Raspberry Pi
- التحكم في محرك سيرفو مع اردوينو ديو
- ربط محرك سيرفو مع متحكم AVR Atmega16
برمجة ATtiny13 باستخدام Arduino
يمكن برمجة Attiny13 باستخدام Arduino Uno أو أي لوحة Arduino أخرى. قم بتوصيل Attiny13 بـ Arduino Uno كما هو موضح في الشكل أدناه.
- اردوينو 5 فولت - ATtiny13 دبوس 8
- اردوينو GND - ATtiny13 pin 4
- اردوينو دبوس 13 - ATtiny13 دبوس 7
- اردوينو دبوس 12 - ATtiny13 دبوس 6
- اردوينو دبوس 11 - ATtiny13 دبوس 5
- اردوينو دبوس 10 - ATtiny13 دبوس 1
تم تعيين Arduino كمبرمج لبرمجة ATtiny13. يتم ذلك عن طريق تحميل رسم ArduinoISP على Arduino. يتوفر رسم Arduino هذا داخل الأمثلة في Arduino IDE. افتح Arduino IDE وانتقل إلى الملفات> الأمثلة> ArduinoISP .
الآن سيظهر برنامج ArduinoISP. قم بتحميل البرنامج على Arduino Uno.
Arduino Uno جاهز الآن لبرمجة Attiny13. لكن علينا إعداد Attiny عن طريق تثبيت ملفاته الأساسية. للقيام بذلك ، انتقل إلى ملف >> التفضيلات في Arduino IDE
ثم ستظهر نافذة جديدة. وفي " عنوان URL لمدير مجلس الإدارة الإضافي " ، أضف الرابط أدناه وانقر على "موافق".
"https://raw.githubusercontent.com/sleemanj/optiboot/master/dists/package_gogo_diy_attiny_index.json"
الآن في Arduino IDE الخاص بك ، انتقل إلى Tools >> Board >> Boards Manager
ثم ستظهر نافذة أخرى حيث في مربع البحث اكتب "Attiny" ثم ستحصل على "DIY ATtiny" ثم انقر فوق الزر "تثبيت" (لقد قمت بالفعل بتثبيته ، ولهذا السبب زر التثبيت باللون الرمادي)
لبدء برمجة ATtiny 13 ، يجب علينا نسخ Bootloader إليه. لذلك ، انتقل إلى Tools> Board> ATtiny13.
انتقل الآن إلى Tools> Processor version وتحقق مما إذا كان الإصدار الصحيح من ATtiny محددًا. حدد إما ATtiny13 أو ATtiny13a حسب الشريحة الخاصة بك.
ثم انقر فوق زر Burn bootloader الموجود أسفل قائمة الأدوات.
بعد حرق أداة تحميل التشغيل ، أصبح ATtiny جاهزًا الآن للبرمجة. الآن يمكنك تحميل البرنامج الخاص بك.
المكونات مطلوبة
- متحكم ATtiny13
- أجهزة السيارات
- مقياس فرق الجهد
- بطارية + 5 فولت
- اردوينو IDE
- توصيل الأسلاك
مخطط الدائرة والعمل
يرد أدناه مخطط الدائرة للتحكم في محرك سيرفو باستخدام وعاء مع ATtiny13.
فيما يلي الروابط
- قم بتوصيل دبوس التحكم في محرك سيرفو بالدبوس 5 من ATtiny13
- قم بتوصيل الأرض لمحرك سيرفو بالدبوس 4 من ATtiny13
- قم بتوصيل VCC لمحرك سيرفو بالدبوس 8 من ATtiny13
- قم بتوصيل الدبوس الأوسط لمقياس الجهد بالدبوس 7 من ATtiny13
- قم بتوصيل الدبابيس الأولى والثالثة من مقياس الجهد بـ VCC و GND.
- قم بتوصيل البطارية الموجبة + 5 فولت بالدبوس 8 من ATtiny13
- قم بتوصيل السالب من بطارية + 5V بالدبوس 4 من ATtiny13
يتم توصيل مقياس الجهد بالدبوس 7 (PB2) في ATtiny13 وسلك التحكم في محرك سيرفو متصل بالطرف 5 (PB0).
هنا تتم قراءة قيمة مقياس الجهد ويتم تحويلها إلى قيمة تتراوح بين 0 و 180. ثم يتم تحويل قيمة الزاوية هذه إلى ميكروثانية ويتم إعطاء نبضة إلى دبوس التحكم في محرك سيرفو مع التأخير المحسوب بالميكروثانية. الآن سوف يدور محرك سيرفو وفقًا لقيمة مقياس الجهد كما هو موضح في الفيديو الموضح أدناه.