- مخطط الرسم البياني
- توليد إشارات PWM على دبوس GPIO للتحكم في محرك سيرفو
- برمجة PIC16F8771A للذراع الآلي
- محاكاة كود الذراع الروبوتية PIC
- تصميم ثنائي الفينيل متعدد الكلور باستخدام EasyEDA
- حساب العينات وطلبها عبر الإنترنت
- عمل الذراع الروبوتية PIC
من خط تجميع صناعات تصنيع السيارات إلى روبوتات الجراحة عن بعد في الفضاء ، توجد الأسلحة الروبوتية في كل مكان. تشبه آليات هذه الروبوتات الإنسان الذي يمكن برمجته لوظيفة مماثلة وقدرات متزايدة. يمكن استخدامها لأداء أعمال متكررة أسرع وأكثر دقة من البشر أو يمكن استخدامها في البيئات القاسية دون المخاطرة بحياة الإنسان. لقد قمنا بالفعل ببناء ذراع آلية للتسجيل والتشغيل باستخدام Arduino والتي يمكن تدريبها على القيام بمهمة معينة وجعلها تتكرر إلى الأبد.
في هذا البرنامج التعليمي ، سنستخدم متحكم PIC16F877A 8 بت القياسي في الصناعة للتحكم في نفس الذراع الآلية باستخدام مقاييس الجهد. التحدي في هذا المشروع هو أن PIC16F877A لديها دبابيس PWN فقط ، لكننا نحتاج إلى التحكم في حوالي 5 محركات مؤازرة لروبوتنا والتي تتطلب 5 دبابيس PWM فردية. لذلك يتعين علينا استخدام دبابيس GPIO وإنشاء إشارات PWM على دبابيس PIC GPIO باستخدام مقاطعات المؤقت. الآن ، بالطبع يمكننا الترقية إلى متحكم دقيق أفضل أو استخدام IC de-multiplexer لجعل الأمور أسهل كثيرًا هنا. ولكن مع ذلك ، يجدر إعطاء هذا المشروع تجربة لتجربة التعلم.
تمت طباعة الهيكل الميكانيكي للذراع الروبوتية الذي أستخدمه في هذا المشروع بشكل كامل ثلاثي الأبعاد لمشروعي السابق ؛ يمكنك العثور على ملفات التصميم الكاملة وإجراءات التجميع هنا. بدلاً من ذلك ، إذا لم يكن لديك طابعة ثلاثية الأبعاد ، فيمكنك أيضًا إنشاء ذراع آلية بسيطة باستخدام الورق المقوى كما هو موضح في الرابط. بافتراض أنك حصلت بطريقة ما على ذراعك الآلي ، فلننتقل إلى المشروع.
مخطط الرسم البياني
يظهر أدناه مخطط الدائرة الكاملة للذراع الروبوتية القائم على متحكم الموافقة المسبقة عن علم. تم رسم الخطط باستخدام EasyEDA.
مخطط الدائرة بسيط جدًا ؛ يتم تشغيل المشروع بالكامل بواسطة محول 12 فولت. ثم يتم تحويل هذا الجهد 12 فولت إلى + 5 فولت باستخدام منظمي جهد 7805. أحدهما يسمى + 5V والآخر يسمى + 5V (2). السبب في وجود منظمين هو أنه عندما تدور المؤازرة فإنها تسحب الكثير من التيار مما يؤدي إلى انخفاض الجهد. هذا الانخفاض في الجهد يجبر PIC على إعادة تشغيل نفسه ، وبالتالي لا يمكننا تشغيل كل من PIC ومحركات المؤازرة على نفس السكة + 5V. لذلك يتم استخدام الجهاز المسمى + 5V لتشغيل متحكم PIC وشاشة LCD ومقاييس الجهد ومخرج منظم منفصل يسمى + 5V (2) يستخدم لتشغيل محركات المؤازرة.
يتم توصيل دبابيس الخرج الخمسة لمقاييس الجهد التي توفر جهدًا متغيرًا من 0 فولت إلى 5 فولت بالمسامير التناظرية من An0 إلى AN4 من PIC. نظرًا لأننا نخطط لاستخدام أجهزة ضبط الوقت لإنشاء PWM ، يمكن توصيل محركات المؤازرة بأي دبوس GPIO. لقد اخترت دبابيس من RD2 إلى RD6 لمحركات المؤازرة ، ولكن يمكن أن تكون أي GPIO من اختيارك.
نظرًا لأن البرنامج يتضمن الكثير من تصحيح الأخطاء ، يتم أيضًا توصيل شاشة LCD مقاس 16 × 2 بالمنفذ B للموافقة المسبقة عن علم. سيعرض هذا دورة عمل محركات المؤازرة التي يتم التحكم فيها. بصرف النظر عن هذا ، قمت أيضًا بتمديد الاتصالات لجميع GPIO والدبابيس التناظرية ، فقط في حالة ما إذا كانت هناك حاجة إلى توصيل أي مستشعرات في المستقبل. أخيرًا ، قمت أيضًا بتوصيل دبوس المبرمج H1 لبرمجة PIC مباشرةً مع pickit3 باستخدام خيار برمجة ICSP.
توليد إشارات PWM على دبوس GPIO للتحكم في محرك سيرفو
بمجرد أن تصبح الدائرة جاهزة ، يتعين علينا معرفة كيفية إنشاء إشارات PWN على دبوس GPIO الخاص بالموافقة المسبقة عن علم للتحكم في محرك سيرفو. لقد سئمنا بالفعل شيئًا مشابهًا باستخدام طريقة مقاطعة Timer وقد نجحنا. سنقوم هنا بالبناء فوقه ، لذلك إذا كنت جديدًا هنا ، فإنني أوصيك بشدة بقراءة هذا البرنامج التعليمي السابق قبل المضي قدمًا.
تعمل جميع محركات الهواية المؤازرة بتردد 50 هرتز. بمعنى أن دورة النبض الكاملة لمحرك مؤازر ستكون 1/50 (F = 1 / T) أي 20 مللي ثانية. من بين 20 مللي ثانية كاملة ، تكون إشارة التحكم فقط من 0 إلى 2 مللي ثانية بينما تكون بقية الإشارة متوقفة دائمًا. يوضح الشكل أدناه كيف يختلف وقت التشغيل فقط من 0 إلى 2 مللي ثانية لتدوير المحرك من 0 درجة إلى 180 درجة من إجمالي مدة 20 مللي ثانية.
مع وضع ذلك في الاعتبار ، يتعين علينا كتابة البرنامج بطريقة تقرأ بها الموافقة المسبقة عن علم في 0 إلى 1204 من مقياس الجهد وتعيينه إلى 0 إلى 100 والتي ستكون دورة عمل محرك سيرفو. باستخدام دورة العمل هذه ، يمكننا حساب وقت التشغيل لمحرك سيرفو. ثم يمكننا تهيئة المقاطعة لتتجاوز الفائض في فترة زمنية منتظمة بحيث تعمل بشكل مشابه لوظيفة millis () في Arduino. باستخدام ذلك ، يمكننا تبديل حالة دبوس GPIO ليكون مرتفعًا للمدة المطلوبة وإيقاف تشغيله بعد 20 مللي ثانية (دورة كاملة واحدة) ثم تكرار نفس العملية. الآن ، بعد أن فهمنا المنطق ، دعونا ندخل في البرنامج.
برمجة PIC16F8771A للذراع الآلي
كما هو الحال دائمًا ، يمكن العثور على البرنامج الكامل الذي يحتوي على فيديو في نهاية هذه الصفحة ، ويمكن أيضًا تنزيل الكود من هنا مع جميع الملفات الضرورية. في هذا القسم سوف نناقش المنطق وراء البرنامج. يستخدم البرنامج وحدة ADC ووحدة المؤقت ووحدة LCD للتحكم في الذراع الآلية. إذا لم تكن على دراية بكيفية استخدام ميزات ADC أو ميزات Timer أو واجهة شاشة LCD مع PIC ، فيمكنك الرجوع إلى الروابط المعنية للتعرف عليها. يتم تقديم التفسير أدناه بافتراض أن القارئ على دراية بهذه المفاهيم.
عداد الوقت 0 تكوين المنفذ
القسم الأكثر أهمية في الكود هو ضبط Timer 0 على التدفق الزائد لكل تأخير محدد. يمكن إعطاء الصيغ لحساب هذا التأخير كـ
التأخير = ((256-REG_val) * (Prescal * 4)) / Fosc
باستخدام سجل OPTION_REG و TMR0 ، قمنا بضبط Timer 0 ليعمل بقيمة مسبقة للعدوى تبلغ 32 ويتم ضبط REG val على 248. التردد البلوري (Fosc) المستخدم في أجهزتنا هو 20 ميجا هرتز. بهذه القيم يمكن حساب التأخير على شكل
التأخير = ((256-248) * (32 * 4)) / (20000000) = 0.0000512 ثانية (أو) = 0.05 ميللي ثانية
لذلك قمنا الآن بضبط المؤقت على تجاوز كل 0.05 مللي ثانية. رمز القيام بالشيء نفسه موضح أدناه
/ ***** تكوين المنفذ لـ Timer ****** / OPTION_REG = 0b00000100 ؛ // Timer0 مع التكرار الخارجي و 32 كمقياس مسبق // يتيح أيضًا PULL UPs TMR0 = 248 ؛ // تحميل القيمة الزمنية لـ 0.0001 ثانية ؛ يمكن أن يكون delayValue بين 0-256 فقط TMR0IE = 1؛ // تمكين بت المقاطعة المؤقت في سجل PIE1 GIE = 1 ؛ // Enable Global Interrupt PEIE = 1 ؛ // تمكين المقاطعة الطرفية / *********** ______ *********** /
من إجمالي نافذة التحكم من 0 مللي ثانية إلى 2 مللي ثانية للمحرك المؤازر ، يمكننا التحكم فيه بدقة 0.05 مللي ثانية ، مما يتيح لنا (2 / 0.05) 40 موضعًا مختلفًا للمحرك بين 0 درجة إلى 180 درجة. يمكنك تقليل هذه القيمة بشكل أكبر إذا كان بإمكان MCU دعمها للحصول على المزيد من المراكز والتحكم الدقيق.
روتين خدمة المقاطعة (ISR)
الآن بعد أن تم ضبط Timer 0 على التدفق الزائد لكل 0.05 مللي ثانية ، سيكون لدينا علامة مقاطعة TMR0IF مضبوطة على 0.05 مللي ثانية. حتى داخل ظيفة ISR يمكننا إعادة هذا العلم وزيادة متغير يسمى العد من واحد. الآن هذا المتغير سيزداد بمقدار 1 لكل 0.05 مللي ثانية.
void interrupt timer_isr () { if (TMR0IF == 1) // تم تشغيل علامة Timer بسبب تجاوز سعة المؤقت -> تم ضبطه على تجاوز كل 0.05 مللي ثانية { TMR0 = 248 ؛ // قم بتحميل قيمة المؤقت TMR0IF = 0 ؛ // مسح عداد إشارة مقاطعة العد ++ ؛ // عدد الزيادات بمقدار 1 لكل 0.05 مللي ثانية }
حساب دورة العمل وفي الوقت المحدد
بعد ذلك ، يتعين علينا حساب دورة العمل وفي الوقت المحدد لجميع المحركات المؤازرة الخمسة. لدينا خمسة محركات مؤازرة يستخدم كل منها للتحكم في قسم فردي من الذراع. لذلك علينا قراءة قيمة ADC لجميع الخمسة وحساب دورة العمل وفي الوقت المحدد لكل منها.
ستكون قيمة ADC في النطاق من 0 إلى 1024 والتي يمكن تحويلها إلى 0٪ إلى 100٪ دورة عمل بضرب 0.0976 (100/1024 = 0.0976) في القيمة التي تم الحصول عليها. يجب تحويل دورة العمل هذه من 0 إلى 100٪ إلى وقت التشغيل. نحن نعلم أنه في دورة العمل بنسبة 100٪ ، يجب أن يكون وقت التشغيل 2 مللي ثانية (180 درجة) لذا فإن ضرب 0.02 (2/100 = 0.02) سيحول من 0 إلى 100 دورة عمل إلى 0 إلى 2 مللي ثانية. ولكن بعد ذلك يتم تعيين العد المتغير المؤقت لدينا على الزيادة مرة واحدة لكل 0.05 مللي ثانية. هذا يعني أن قيمة العد ستكون 20 (1 / 0.05 = 20) لكل 1 مللي ثانية. لذلك علينا ضرب 20 في 0.02 لحساب الوقت المحدد لبرنامجنا والذي سيعطينا القيمة 0.4 (0.02 * 20 = 0.4). يظهر الرمز نفسه أدناه ، يمكنك رؤيته مكررًا لمدة 5 مرات لجميع الرهان الخمسة باستخدام حلقة for. يتم تخزين القيم الناتجة في صفيف T_ON.
لـ (int pot_num = 0 ؛ pot_num <= 3 ؛ pot_num ++) { int Pev_val = T_ON ؛ POT_val = (ADC_Read (pot_num)) ، // اقرأ قيمة POT باستخدام ADC Duty_cycle = (POT_val * 0.0976) ؛ // الخريطة من 0 إلى 1024 إلى 0 إلى 100 T_ON = دورة العمل * 0.4 ؛ // 20 * 0.02
اختيار المحرك الذي يجب تدويره
لا يمكننا التحكم في جميع المحركات الخمسة معًا لأنها ستجعل رمز ISR ثقيلًا يؤدي إلى إبطاء وحدة التحكم الدقيقة بالكامل. لذلك علينا تدوير محرك سيرفو واحد فقط في كل مرة. لتحديد المؤازرة التي يجب تدويرها ، يراقب الميكروكونترولر وقت التشغيل لجميع محركات المؤازرة الخمسة ويقارنها بالسابق في الوقت المحدد. إذا كان هناك تغيير في وقت التشغيل ، فيمكننا أن نستنتج أنه يجب نقل المؤازرة المعينة. يظهر رمز نفسه أدناه.
إذا (T_ON! = Pev_val) { Lcd_Clear () ، مؤازرة = pot_num ؛ Lcd_Set_Cursor (2،11) ؛ Lcd_Print_String ("S:") ؛ Lcd_Print_Char (مؤازرة + '0') ؛ إذا (pot_num == 0) {Lcd_Set_Cursor (1،1) ؛ Lcd_Print_String ("A:") ؛} else if (pot_num == 1) {Lcd_Set_Cursor (1،6)؛ Lcd_Print_String ("B:")؛} else if (pot_num == 2) {Lcd_Set_Cursor (1،11)؛ Lcd_Print_String ("C:")؛} else if (pot_num == 3) {Lcd_Set_Cursor (2،1)؛ Lcd_Print_String ("D:")؛} else if (pot_num == 4) {Lcd_Set_Cursor (2،6)؛ Lcd_Print_String ("E:") ؛} char d2 = (Duty_cycle)٪ 10 ؛ char d1 = (Duty_cycle / 10)٪ 10 ؛ Lcd_Print_Char (d1 + '0') ؛ Lcd_Print_Char (d2 + '0') ؛
نقوم أيضًا بطباعة دورة عمل المؤازرة على شاشة LCD حتى يكون المستخدم على دراية بموقعها الحالي. بناءً على التغيير في وقت التشغيل ، يتم تحديث المؤازرة المتغيرة بأرقام من 0 إلى 4 تمثل كل منها محركات فردية.
التحكم في محرك سيرفو داخل ISR
داخل ISR لدينا عدد متغير يزداد لكل 0.05 مللي ثانية ، وهذا يعني أنه مقابل كل 1 مللي ثانية ، سيتم زيادة المتغير بمقدار 20. باستخدام هذا ، يتعين علينا التحكم في المسامير لإنتاج إشارة PWM. إذا كانت قيمة العد أقل من الوقت المحدد ، فسيتم تشغيل GPIO لهذا المحرك باستخدام الخط أدناه
PORTD = PORTD - servo_code ؛
هنا يحتوي صفيف servo_code على تفاصيل الدبوس لجميع محركات المؤازرة الخمسة وبناءً على القيمة في المؤازرة المتغيرة ، سيتم استخدام الكود الخاص بمحرك المؤازرة المحدد. ومن ثم فمن المنطقي أن (-) مع بتات PORTD الموجودة حتى لا نزعج قيم المحرك الآخر ونقوم بتحديث هذا المحرك المعين فقط. وبالمثل لإيقاف الدبوس
PORTD = PORTD & ~ (servo_code) ؛
لقد عكسنا قيمة البت باستخدام المعكوس المنطقي (~) المشغل ثم قمنا بإجراء عملية AND (&) على PORTD لإيقاف تشغيل الدبوس المطلوب فقط مع ترك المسامير الأخرى في حالتها السابقة. يتم عرض مقتطف الشفرة الكامل أدناه.
void interrupt timer_isr () { if (TMR0IF == 1) // تم تشغيل علامة Timer بسبب تجاوز سعة المؤقت -> تم ضبطه على تجاوز كل 0.05 مللي ثانية { TMR0 = 248 ؛ // قم بتحميل قيمة المؤقت TMR0IF = 0 ؛ // مسح عداد إشارة مقاطعة العد ++ ؛ // عدد الزيادات بمقدار 1 لكل 0.05 مللي ثانية -> العدد سيكون 20 لكل 1 مللي ثانية (0.05 / 1 = 20)) } int servo_code = {0b01000000 ، 0b00100000 ، 0b00010000 ، 0b00001000 ، 0b00000100} ؛ إذا (العد> = 20 * 20) العد = 0 ؛ إذا (العد <= (T_ON)) PORTD = PORTD - servo_code ؛ else PORTD = PORTD & ~ (servo_code) ؛ }
نحن نعلم أن الدورة الإجمالية يجب أن تستمر لمدة 20 مللي ثانية قبل تشغيل دبوس GPIO مرة أخرى. لذلك نتحقق مما إذا كان العدد قد تجاوز 20 مللي ثانية بمقارنة قيمة العد بـ 400 (نفس الحساب كما هو موضح أعلاه) وإذا كانت الإجابة بنعم ، يتعين علينا تهيئة العد ليكون صفرًا مرة أخرى.
محاكاة كود الذراع الروبوتية PIC
من الأفضل دائمًا محاكاة الكود قبل نقله إلى الجهاز الحقيقي. لذلك استخدمت Proteus لمحاكاة الكود الخاص بي والتحقق منه للعمل بشكل صحيح. الدائرة المستخدمة في المحاكاة موضحة أدناه ، لقد استخدمنا راسم الذبذبات للتحقق مما إذا كانت إشارات PWM يتم إنشاؤها على النحو المطلوب. كما يمكننا التحقق مما إذا كانت محركات LCD و Servo تدور كما هو متوقع.
كما ترون ، تعرض شاشة LCD دورة عمل المحرك D لتكون 07 بناءً على قيمة الوعاء وهي المحرك الثالث. مماثل إذا تم نقل وعاء آخر ، فسيتم عرض دورة العمل لهذا القدر ورقم محركه على شاشة LCD. تظهر إشارة PWM الموضحة على الذبذبات أدناه.
يتم قياس فترة الدورة الإجمالية لتكون 22.2 مللي ثانية باستخدام خيار المؤشر على راسم الذبذبات ، وهو قريب جدًا من 20 مللي ثانية المطلوبة. أخيرًا ، نحن على يقين من أن الكود يعمل ، لذا للاستمرار في الدائرة ، يمكننا إما لحامها على لوحة أداء أو استخدام PCB. لن يعمل بسهولة على اللوح لأن POT يميل دائمًا إلى إعطاء بعض المشاكل بسبب ضعف الاتصالات.
تصميم ثنائي الفينيل متعدد الكلور باستخدام EasyEDA
لتصميم ذراع PIC Robotic Arm ، اخترنا أداة EDA عبر الإنترنت تسمى EasyEDA. لقد كنت أستخدمه لفترة طويلة الآن وأجده مناسبًا جدًا نظرًا لتوافره الواسع من البصمة وسهولة استخدامه الطبيعة. بعد تصميم PCB ، يمكننا طلب عينات PCB من خلال خدمات تصنيع PCB منخفضة التكلفة. كما أنها توفر خدمة تحديد مصادر المكونات حيث يكون لديها مخزون كبير من المكونات الإلكترونية ويمكن للمستخدمين طلب المكونات المطلوبة إلى جانب طلب ثنائي الفينيل متعدد الكلور.
أثناء تصميم الدوائر الخاصة بك وثنائي الفينيل متعدد الكلور ، يمكنك أيضًا جعل تصميمات الدوائر الكهربائية وثنائي الفينيل متعدد الكلور علنية حتى يتمكن المستخدمون الآخرون من نسخها أو تعديلها والاستفادة من عملك ، كما أننا جعلنا تخطيطات الدوائر و PCB بالكامل عامة لهذه الدائرة ، تحقق الرابط أدناه:
easyeda.com/circuitdigest/pic-development-board-for-robotic-arm
باستخدام هذا الرابط ، يمكنك طلب نفس ثنائي الفينيل متعدد الكلور الذي نستخدمه في هذا المشروع مباشرةً واستخدامه. بمجرد اكتمال التصميم ، يمكن عرض اللوحة كنموذج ثلاثي الأبعاد والذي سيكون مفيدًا جدًا في تصور كيفية ظهور اللوحة بعد التصنيع. يظهر النموذج ثلاثي الأبعاد للوحة الذي نستخدمه أدناه. بصرف النظر عن هذا ، يمكنك أيضًا عرض الطبقة العلوية والسفلية من اللوحة للتحقق مما إذا كانت الشاشة الملساء كما هو متوقع.
حساب العينات وطلبها عبر الإنترنت
بعد الانتهاء من تصميم PIC Robot PCB ، يمكنك طلب PCB من خلال JLCPCB.com. لطلب PCB من JLCPCB ، تحتاج إلى ملف Gerber. لتنزيل ملفات Gerber من PCB ، ما عليك سوى النقر فوق الزر Generate Fabrication File في صفحة محرر EasyEDA ، ثم قم بتنزيل ملف Gerber من هناك أو يمكنك النقر فوق Order at JLCPCB كما هو موضح في الصورة أدناه. سيؤدي هذا إلى إعادة توجيهك إلى JLCPCB.com ، حيث يمكنك تحديد عدد مركبات ثنائي الفينيل متعدد الكلور التي تريد طلبها ، وعدد طبقات النحاس التي تحتاجها ، وسمك PCB ، ووزن النحاس ، وحتى لون PCB ، مثل اللقطة الموضحة أدناه:
بعد تحديد جميع الخيارات ، انقر فوق "حفظ في عربة التسوق" ، ثم سيتم نقلك إلى الصفحة حيث يمكنك تحميل ملف Gerber الخاص بك والذي قمنا بتنزيله من EasyEDA. قم بتحميل ملف جربر وانقر على "حفظ في عربة التسوق". وأخيرًا انقر فوق Checkout Securely لإكمال طلبك ، ثم ستحصل على PCBs بعد بضعة أيام. إنهم يصنعون ثنائي الفينيل متعدد الكلور بمعدل منخفض للغاية وهو 2 دولار. كما أن وقت الإنشاء أقل بكثير وهو 48 ساعة مع توصيل DHL من 3-5 أيام ، وستحصل بشكل أساسي على مركبات ثنائي الفينيل متعدد الكلور في غضون أسبوع من الطلب.
بعد طلب PCB ، يمكنك التحقق من تقدم إنتاج PCB الخاص بك مع التاريخ والوقت. يمكنك التحقق من ذلك بالذهاب إلى صفحة الحساب والنقر على "تقدم الإنتاج".
بعد أيام قليلة من طلب PCB ، حصلت على عينات PCB في عبوات لطيفة كما هو موضح في الصور أدناه.
وبعد الحصول على هذه القطع ، قمت بلحام جميع المكونات المطلوبة على ثنائي الفينيل متعدد الكلور. لقد قمت أيضًا بلحام POT مباشرةً بدلاً من استخدام أسلاك التوصيل لأن الأسلاك الأنثوية إلى الأنثوية التي استخدمتها في البداية حيث أعطت جهد إخراج تناظري غريب ربما بسبب جهات الاتصال الفضفاضة. بمجرد تجميع جميع المكونات ، بدا ثنائي الفينيل متعدد الكلور الخاص بي شيئًا كهذا.
ربما لاحظت أنه لا يوجد سوى 7805 واحد على هذه اللوحة. هذا لأنني اعتقدت في البداية أنه يمكنني التخلص من المنظم فقط لتشغيل كل من محرك PIC ومحرك مؤازر وأدركت لاحقًا أنني بحاجة إلى اثنين. لذا فقد استخدمت دائرة خارجية لتشغيل محركات المؤازرة من خلال الأسلاك الخضراء التي تراها هنا.
ومع ذلك ، لا داعي للقلق كثيرًا بشأن ذلك ؛ لقد أجريت التغييرات على ثنائي الفينيل متعدد الكلور الآن. يمكنك الاستفادة من ثنائي الفينيل متعدد الكلور المعدل ولحام كل من المنظمين الموجودين على اللوحة نفسها.
عمل الذراع الروبوتية PIC
بعد كل العمل المتعب حان الوقت للسداد. قم بتلحيم جميع المكونات الموجودة على اللوحة وتحميل البرنامج إلى وحدة التحكم PIC. الكود الكامل موضح أدناه أو يمكن تنزيله من هنا. يجب أن يساعدك موصل البرمجة المتوفر على اللوحة في تحميل البرنامج مباشرةً باستخدام Pickit 3 دون الكثير من المتاعب. بمجرد تحميل البرنامج ، يجب أن ترى شاشة LCD تعرض المؤازرة التي يتم التحكم فيها حاليًا. لمعرفة المزيد حول برمجة PIC Microcontroller ، ما عليك سوى اتباع البرنامج التعليمي السابق.
من هناك يمكنك ببساطة قلب الوعاء والتحقق من كيفية استجابة محركات المؤازرة لكل مقياس جهد. بمجرد فهم الشكل ، يمكنك التحكم في الذراع الآلية لأداء أي إجراء تريده لأداء والاستمتاع. يمكنك العثور على العمل الكامل للمشروع في الفيديو المرتبط أدناه.
هذا هو الأمل يا رفاق أن تكون قد فهمت المشروع وتعلمت شيئًا جديدًا منه. إذا كانت لديك أي أسئلة ، فاتركها في قسم التعليقات أو استخدم المنتديات لإجراء مناقشات تقنية أخرى.