في هذا المشروع ، سنستخدم متحكم PIC16F877A 8 بت القياسي في الصناعة للتحكم في الذراع الآلية باستخدام مقاييس الجهد. التحدي في هذا المشروع هو أن PIC16F877A لديها دبابيس PWN فقط ، لكننا نحتاج إلى التحكم في حوالي 5 محركات مؤازرة لروبوتنا والتي تتطلب 5 دبابيس PWM فردية. لذلك يتعين علينا استخدام دبابيس GPIO وإنشاء إشارات PWM على دبابيس PIC GPIO باستخدام مقاطعات المؤقت. الآن ، بالطبع يمكننا الترقية إلى متحكم دقيق أفضل أو استخدام IC de متعدد الإرسال لجعل الأمور أسهل كثيرًا هنا. ولكن لا يزال الأمر يستحق إعطاء هذا المشروع تجربة لتجربة التعلم.
تمت طباعة الهيكل الميكانيكي للذراع الروبوتية الذي أستخدمه في هذا المشروع بشكل كامل ثلاثي الأبعاد
مخطط الرسم البياني
مخطط الدائرة بسيط جدًا ؛ يتم تشغيل المشروع بالكامل بواسطة محول 12 فولت. ثم يتم تحويل هذا الجهد 12 فولت إلى + 5 فولت باستخدام منظمي جهد 7805. أحدهما يسمى + 5V والآخر يسمى + 5V (2). السبب في وجود منظمين هو أنه عندما تدور المؤازرة فإنها تسحب الكثير من التيار مما يؤدي إلى انخفاض الجهد. هذا الانخفاض في الجهد يجبر PIC على إعادة تشغيل نفسه ، وبالتالي لا يمكننا تشغيل كل من PIC ومحركات المؤازرة على نفس السكة + 5V. لذلك يتم استخدام النوع المسمى + 5V لتشغيل متحكم PIC وشاشة LCD ومقاييس الجهد ومخرج منظم منفصل يسمى + 5V (2) يستخدم لتشغيل محركات المؤازرة.
يتم توصيل دبابيس الخرج الخمسة لمقاييس الجهد التي توفر جهدًا متغيرًا من 0 فولت إلى 5 فولت بالمسامير التناظرية من An0 إلى AN4 للموافقة المسبقة عن علم. نظرًا لأننا نخطط لاستخدام أجهزة ضبط الوقت لإنشاء PWM ، يمكن توصيل محركات المؤازرة بأي دبوس GPIO. لقد اخترت دبابيس من RD2 إلى RD6 لمحركات المؤازرة ، ولكن يمكن أن تكون أي GPIO من اختيارك.
نظرًا لأن البرنامج يتضمن الكثير من تصحيح الأخطاء ، يتم أيضًا توصيل شاشة LCD مقاس 16 × 2 بالمنفذ B للموافقة المسبقة عن علم. سيعرض هذا دورة العمل لمحركات المؤازرة التي يتم التحكم فيها. بصرف النظر عن هذا ، قمت أيضًا بتمديد الاتصالات لجميع دبابيس GPIO والدبابيس التناظرية ، فقط في حالة ما إذا كانت هناك حاجة إلى توصيل أي مستشعرات في المستقبل. أخيرًا ، قمت أيضًا بتوصيل دبوس المبرمج H1 لبرمجة PIC مباشرةً مع pickit3 باستخدام خيار برمجة ICSP.
توليد إشارات PWM على دبوس GPIO للتحكم في محرك سيرفو
بمجرد أن تصبح الدائرة جاهزة ، يتعين علينا معرفة كيفية إنشاء إشارات PWN على دبوس GPIO الخاص بالموافقة المسبقة عن علم للتحكم في محرك سيرفو. لقد سئمنا بالفعل شيئًا مشابهًا باستخدام طريقة مقاطعة Timer وقد نجحنا. سنقوم هنا بالبناء فوقه ، لذلك إذا كنت جديدًا هنا ، فإنني أوصيك بشدة بقراءة هذا البرنامج التعليمي السابق قبل المضي قدمًا.
مع وضع هذا في الاعتبار ، يتعين علينا كتابة البرنامج بطريقة تقرأ بها الموافقة المسبقة عن علم في 0 إلى 1204 من مقياس الجهد وتعيينه إلى 0 إلى 100 والتي ستكون دورة عمل محرك سيرفو. باستخدام دورة العمل هذه ، يمكننا حساب وقت التشغيل لمحرك المؤازرة. ثم يمكننا تهيئة المقاطعة لتتجاوز الفائض في فترة زمنية منتظمة بحيث تعمل بشكل مشابه لوظيفة millis () في Arduino. باستخدام ذلك ، يمكننا تبديل حالة دبوس GPIO ليكون مرتفعًا للمدة المطلوبة وإيقاف تشغيله بعد 20 مللي ثانية (دورة كاملة واحدة) ثم تكرار نفس العملية. الآن ، بعد أن فهمنا المنطق ، دعونا ندخل في البرنامج.
برمجة PIC16F8771A للذراع الآلي
محاكاة Proteus
من الأفضل دائمًا محاكاة الكود قبل نقله إلى الجهاز الحقيقي. لذلك استخدمنا Proteus لمحاكاة الكود الخاص بي وتحققنا منه للعمل بشكل صحيح. الدائرة المستخدمة في المحاكاة موضحة أدناه ، لقد استخدمنا راسم الذبذبات للتحقق مما إذا كانت إشارات PWM يتم إنشاؤها على النحو المطلوب. كما يمكننا التحقق مما إذا كانت محركات LCD و Servo تدور كما هو متوقع.
عمل الذراع الروبوتية PIC
قم بتلحيم جميع المكونات الموجودة على السبورة وتحميل البرنامج إلى وحدة التحكم PIC. الكود الكامل موضح أدناه أو يمكن تنزيله من هنا. يجب أن يساعدك موصل البرمجة المتوفر على اللوحة في تحميل البرنامج مباشرةً باستخدام Pickit 3 دون الكثير من المتاعب. بمجرد تحميل البرنامج ، يجب أن ترى شاشة LCD تعرض المؤازرة التي يتم التحكم فيها حاليًا.