في هذا البرنامج التعليمي للتحكم بسيرفو عصا التحكم Arduino، ستقوم ببناء نظام سيرفو ثنائي المحور مع شاشة OLED. شاهد الفيديو أدناه للحصول على إرشادات كاملة، أو بدلاً من ذلك، قم بالتمرير لأسفل للحصول على الإرشادات خطوة بخطوة.
📋 ملخص سريع
في هذا البرنامج التعليمي للتحكم في عصا التحكم Arduino، سوف تتعلم كيفية تحريك محركي سيرفو SG90 مع وحدة عصا التحكم ذات المحورين وإظهار زوايا السيرفو المباشرة على شاشة SSD1306 OLED. يعمل المشروع على Arduino Uno ويغطي قراءة المدخلات التناظرية والتحكم بالسيرفو في PWM واتصالات I2C OLED والأسلاك الكاملة من الصفر.
هل تريد التحكم في محركات السيرفو في الوقت الفعلي باستخدام عصا التحكم؟ في هذا اردوينو التحكم في عصا التحكم بالسيرفوة في البرنامج التعليمي، ستقوم بإنشاء نظام يقوم بتحريك محركي سيرفو باستخدام وحدة عصا التحكم مع عرض تعليقات الزاوية المباشرة على شاشة SSD1306 OLED. إنه أحد أفضل المشاريع للمبتدئين للحصول على الراحة مع الإدخال التناظري وخرج السيرفو واتصالات عرض I2C على Arduino.
إذا كنت تخطط لبناء ذراع الروبوت أو حامل الكاميرا القابل للإمالة، هذا محرك سيرفو مع عصا التحكم اردوينو يمنحك المشروع خطوات الأسلاك والكود والمعايرة التي تحتاجها. في النهاية، سيكون لديك وحدة تحكم بالسيرفوة ثنائية المحور تعمل مع تعليقات OLED المباشرة.
ما ستتعلمه في هذا البرنامج التعليمي للتحكم بسيرفو عصا التحكم Arduino
باتباع هذا عصا التحكم OLED سيرفو اردوينو البرنامج التعليمي، سوف تتعلم ما يلي:
- كيف توفر وحدة عصا التحكم محورين تحكم تناظريين مستقلين (X وY).
- كيف يقرأ Arduino القيم التناظرية لعصا التحكم ويعينها لزوايا سيرفو باستخدام
map()وظيفة. - كيفية توصيل محركين مؤازرين SG90 وشاشة SSD1306 OLED إلى Arduino.
- كيف يعرض OLED ردود فعل زاوية السيرفو الحية في الوقت الفعلي.
- كيفية توصيل النظام بأمان باستخدام مصدر طاقة خارجي 5 فولت وأرضية مشتركة.
- كيفية تقليل الارتعاش المؤازر وإضافة منطقة ميتة وضبط الحركة لتطبيقك المحدد.
كيف يعمل نظام سيرفو عصا التحكم
هذا اثنين من عصا التحكم بالسيرفوة للتحكم في اردوينو يستخدم المشروع أربعة مكونات في حلقة تحكم بسيطة:
- إن وحدة عصا التحكم يحتوي على اثنين من مقاييس الجهد (VRx للمحور X، VRy للمحور Y). كل واحد يخرج جهدًا بين 0 فولت و5 فولت، والذي يقرأه اردوينو كقيم تناظرية من 0 إلى 1023.
- إن أردوينو أونو يقرأ القيمتين التناظريتين من عصا التحكم، ثم يحولهما إلى زوايا سيرفو (0 إلى 180 درجة) باستخدام
map()وظيفة، ويرسل أوامر الزاوية إلى كل أجهزة، ويقوم بتحديث شاشة OLED. - إن اثنين من محركات السيرفو يتلقى كل منهم إشارة PWM من دبوس Arduino مخصص. يستجيب أحد المؤازرين لعصا التحكم للمحور X، بينما يستجيب الآخر للمحور Y، بحيث تحصل على تحكم مستقل في المحورين.
- إن شاشة SSD1306 OLED، المتصلة عبر I2C (SDA وSCL)، عبارة عن شاشة مقاس 128 × 64 بكسل تعرض كل زاوية سيرفو في الوقت الفعلي. وهذا يجعل من السهل التأكد من عمل النظام.
عندما تقوم بتحريك عصا التحكم، يقرأ Arduino الموضع الجديد على الفور، ويحسب زاوية السيرفو المطابقة، ويحرك كلا محركي السيرفو، ويحدث OLED. يتم تشغيل الحلقة بأكملها كل 50 مللي ثانية تقريبًا، لذا تبدو الاستجابة فورية. إذا كنت جديدا على التحكم بمحرك سيرفو باستخدام الاردوينو، ابدأ بدليلنا المخصص أولاً.
المكونات اللازمة للتحكم بسيرفو عصا التحكم Arduino
فيما يلي فاتورة المواد الكاملة لهذا الغرض مشروع عصا التحكم بالسيرفوة SSD1306. من السهل العثور على جميع الأجزاء وغير مكلفة.
| المكوّن | الكمية | الغرض | الملاحظات |
|---|---|---|---|
| اردوينو أونو (أو نانو) | 1 | لوحة المتحكم الرئيسي | سيعمل أي Arduino يعتمد على ATmega328P |
| وحدة عصا التحكم (XY + SW) | 1 | مدخل تناظري ثنائي المحور | يوفر VRx وVRy وزر ضغط اختياري |
| محرك مؤازر (SG90 أو MG90S) | 2 | المحركات للمحاور X و Y | أجهزة هواية صغيرة مصنفة لـ 4.8-6 فولت |
| شاشة OLED (SSD1306، I2C) | 1 | عرض ردود الفعل الزاوية في الوقت الحقيقي | 128 × 64 بكسل، متوافق مع 3.3-5 فولت |
| لوح توصيل + أسلاك توصيل | – | اتصالات الأسلاك | استخدم أسلاك توصيل من دبوس إلى دبوس ومن دبوس إلى مقبس |
| مصدر طاقة خارجي 5 فولت 5 فولت | 1 | قوة سيرفو مستقرة | يوصى بـ 1 A على الأقل لمخدمتين |
مخطط توصيلات التحكم بعصا التحكم بالسيرفوة من Arduino
استخدم جدول الأسلاك أدناه لتوصيل جميع المكونات. إذا كنت جديدا على أساسيات برمجة وأسلاك الاردوينوومع ذلك، قم بمراجعة دليل المبتدئين الخاص بنا أولاً.
| دبوس المكوّن | دبوس الأردوينو | الملاحظات |
|---|---|---|
| جويستيك VRx | A0 | الإخراج التناظري للمحور X |
| عصا التحكم عن بعد VRy | A1 | الإخراج التناظري للمحور Y |
| عصا التحكم عن بُعد | D2 (اختياري) | زر الضغط - غير مستخدم في هذا البرنامج |
| إشارة المؤازر 1 | D9 | مخرج PWM لسيرفو المحور X |
| إشارة المؤازر 2 | D10 | مخرج PWM لسيرفو المحور Y |
| OLED SDA | A4 | خط بيانات I2C |
| OLED SCL | A5 | خط الساعة I2C |
| سيرفو +V (كلاهما) | خارجي 5 فولت | لا تقم بتشغيل محركات السيرفو من طرف Arduino 5 V |
| سيرفو GND (كلاهما) | GND مشترك | قم بتوصيل GND للإمداد الخارجي بـ Arduino GND |
ملاحظات هامة حول الأسلاك:
- الطاقة الخارجية 5 فولت للمحركات سيرفو: تسحب محركات السيرفو تيارًا كبيرًا، خاصة تحت الحمل. ونتيجة لذلك، يمكن أن يؤدي تشغيلها من مصدر Arduino USB إلى انخفاض الجهد، أو اهتزاز السيرفو، أو إعادة ضبط اللوحة. استخدم دائمًا مصدرًا منفصلاً بجهد 5 فولت مُقدر بـ 1 أمبير على الأقل.
- أرضية مشتركة: يجب توصيل GND لمصدر الطاقة الخارجي وGND لـ Arduino وجميع منافذ GND للمكونات معًا. بدون أرضية مشتركة، لن يتم الرجوع إلى الإشارات بشكل صحيح، ونتيجة لذلك، لن تعمل الدائرة.
- مقاومات الرفع I2C: تشتمل معظم اللوحات الجاهزة SSD1306 OLED على مقاومات سحب مدمجة على SDA وSCL. إذا لم تكن شاشتك تحتوي على هذه العناصر، أضف 4.7 كيلو أوم إلى 3.3 فولت أو 5 فولت.

برمجة الاردوينو للتحكم بسيرفو عصا التحكم
يقرأ البرنامج أدناه عصا التحكم، ويعين القيم التناظرية لزوايا السيرفو، ويشغل كلا محركي السيرفو، ويحدث شاشة OLED في حلقة مستمرة. قبل التحميل، تأكد من تثبيت هذه المكتبات في Arduino IDE: Servo.h (مدمج)، Adafruit_GFXو Adafruit_SSD1306. يمكنك تثبيت مكتبات Adafruit من خلال مدير المكتبة.
الكود الكامل ومستودع GitHub
يمكنك تنزيل المخطط الكامل من مستودع GitHub.
#include <Servo.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
// OLED setup
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
// Servo setup
Servo servoX;
Servo servoY;
int joyX = A0;
int joyY = A1;
int servoXPin = 9;
int servoYPin = 10;
void setup() {
servoX.attach(servoXPin);
servoY.attach(servoYPin);
// OLED init
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
for(;;); // Halt if display not found
}
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
}
void loop() {
int xVal = analogRead(joyX);
int yVal = analogRead(joyY);
int angleX = map(xVal, 0, 1023, 0, 180);
int angleY = map(yVal, 0, 1023, 0, 180);
servoX.write(angleX);
servoY.write(angleY);
// OLED output
display.clearDisplay();
display.setCursor(0,0);
display.print("Servo X: "); display.println(angleX);
display.print("Servo Y: "); display.println(angleY);
display.display();
delay(50); // small debounce
}
شرح الكود
تتضمن المكتبة والإعداد
يستخدم البرنامج ثلاث مكتبات. أولاً، Servo.h يوفر Servo فئة للتحكم في محركات السيرفو القياسية باستخدام PWM. ثم، Adafruit_GFX.h هي مكتبة الرسومات الأساسية التي تتعامل مع وظائف البرنامج مثل النص والأشكال والبكسلات. أخيراً، Adafruit_SSD1306.h هو برنامج تشغيل شاشات OLED المستندة إلى SSD1306 عبر I2C. تتم تهيئة العرض على عنوان I2C 0x3C، وهو الإعداد الافتراضي لمعظم وحدات SSD1306 مقاس 128×64.
عصا التحكم القراءة التناظرية
إن analogRead(joyX) و analogRead(joyY) تقوم هذه الدوال بقراءة الجهد على الأطراف A0 و A1. نظرًا لأن مقاييس فرق الجهد في عصا التحكم تنتج جهدًا من 0 فولت (أحد الأطراف) إلى 5 فولت (الطرف الآخر)، فإن Arduino ADC يحول هذا إلى قيمة من 0 إلى 1023. في الموضع المركزي، ستقرأ عادةً القيم من حوالي 500 إلى 520.
رسم زاوية مع الخريطة ()
إن map(xVal, 0, 1023, 0, 180) تعمل الوظيفة على قياس قيمة عصا التحكم الأولية (0 إلى 1023) خطيًا إلى زاوية سيرفو (0 إلى 180 درجة). على سبيل المثال، عندما يتم دفع عصا التحكم إلى اليسار بالكامل، فإن السيرفو ينتقل إلى 0 درجة. عند الدفع لأقصى اليمين تصل إلى 180 درجة. ونتيجة لذلك، يتم تعيين الموضع المركزي إلى 90 درجة تقريبًا. ينطبق نفس التعيين بشكل مستقل على محرك سيرفو المحور Y.
خرج السيرفو
إن servoX.write(angleX) و servoY.write(angleY) ترسل الأوامر الزاوية المحسوبة إلى كل سيرفو. خلف الكواليس، تتولى مكتبة Servo عملية توليد إشارة PWM. نظرًا لأن كل جهاز مؤازر متصل بالدبوس الخاص به (D9 وD10)، فإنك تحصل على تحكم مستقل في كلا المحورين.
تحديث شاشة OLED
في كل تكرار للحلقة، يتم مسح OLED باستخدام display.clearDisplay()، تتم إعادة تعيين المؤشر إلى الزاوية العلوية اليسرى، ويتم طباعة كلا زاويتي السيرفو. بعد ذلك، display.display() المكالمة تدفع المخزن المؤقت إلى الشاشة. ويمنحك هذا تعليقات مرئية حية لمواضع السيرفو، وهو أمر مفيد بشكل خاص أثناء المعايرة والاختبار.
لماذا يتم استخدام التأخير (50).
يعد التأخير البالغ 50 مللي ثانية في نهاية الحلقة بمثابة محدد بسيط للارتداد والمعدل. بدونها، تعمل الحلقة بسرعة كبيرة، مما يؤدي إلى إرسال تحديثات PWM سريعة يمكن أن تسبب ارتعاشًا مؤازرًا وميض OLED غير الضروري. خمسون مللي ثانية هي نقطة بداية جيدة، ولكن إذا كانت محركات السيرفو الخاصة بك لا تزال غير مستقرة، فحاول رفعها إلى 80 أو 100 مللي ثانية.
عندما تكون المنطقة الميتة مفيدة
غالبًا ما تنتج مقاييس الجهد لعصا التحكم قيمًا متقلبة قليلاً حول الموضع المركزي، حتى عندما لا يلمسها أحد. وبالتالي، فإن محركات السيرفو تهتز أثناء الراحة. يمكنك إصلاح ذلك عن طريق إضافة منطقة ميتة في الكود: إذا كانت قيمة عصا التحكم بين 480 و540، فقم بفرض الزاوية على 90 درجة بدلاً من تعيينها. ونتيجة لذلك، يظل السيرفو ثابتة عندما يتم توسيط عصا التحكم.
كيفية اختبار ومعايرة جهاز التحكم المؤازر بعصا التحكم Arduino
بمجرد قيامك بتحميل البرنامج، اتبع الخطوات التالية للتحقق من صحة البرنامج وضبطه التحكم المؤازر بالاردوينو مع OLED نظام.
الخطوة 1: اختبار مضاعفات المحور X
أولا، حرك عصا التحكم إلى اليسار واليمين. يجب أن يدور السيرفو المتصلة بالدبوس D9 بسلاسة من 0 إلى 180 درجة. وفي الوقت نفسه، شاهد شاشة OLED للتأكد من أن قيمة "Servo X" تتغير أثناء تحريك العصا.
الخطوة 2: اختبار مضاعفات المحور Y
بعد ذلك، حرك عصا التحكم لأعلى ولأسفل. يجب أن يدور السيرفو الموجودة على الدبوس D10 وفقًا لذلك. تحقق أيضًا من تحديث قيمة "Servo Y" على OLED بشكل صحيح.
الخطوة 3: التحقق من إخراج OLED
مع وجود عصا التحكم في المنتصف، يجب أن تقرأ قيمتي السيرفو حوالي 90 درجة على شاشة OLED. ومع ذلك، إذا ظلت الشاشة فارغة، فتحقق مرة أخرى من أسلاك SDA/SCL وعنوان I2C (معظم الوحدات تستخدم 0x3C، لكن بعضها يستخدم 0x3D).
الخطوة 4: إضافة منطقة ميتة لاستقرار المركز
إذا ارتعشت محركات السيرفو قليلاً عندما تكون عصا التحكم في وضع الراحة، فقم بإضافة منطقة ميتة. قبل الاتصال map()، تحقق مما إذا كانت قيمة عصا التحكم الأولية تتراوح بين 480 و540 تقريبًا. إذا كان الأمر كذلك، فاضبط الزاوية على 90 درجة مباشرةً. بهذه الطريقة، يمكنك التخلص من الارتعاش الناتج عن الضوضاء التناظرية الصغيرة في الموضع المركزي.
الخطوة 5: عكس رسم خرائط المحور إذا لزم الأمر
إذا تحرك السيرفو في الاتجاه المعاكس لما تتوقعه، فقم بتبديل نطاق التعيين. على سبيل المثال، التغيير map(xVal, 0, 1023, 0, 180) to map(xVal, 0, 1023, 180, 0). وهذا يعكس الاتجاه المؤازر لهذا المحور.
الخطوة 6: تحديد زوايا السيرفو للقيود الميكانيكية
إذا لم يتمكن الإعداد الميكانيكي الخاص بك من التعامل مع النطاق الكامل من 0 إلى 180 درجة (على سبيل المثال، حامل قابل للإمالة يسمح فقط بـ 30 إلى 150 درجة)، فقم بتغيير نطاق الإخراج في map() يتصل. على سبيل المثال: map(xVal, 0, 1023, 30, 150). ونتيجة لذلك، لن يقوم السيرفو بالضغط ضد التوقفات المادية، مما قد يؤدي إلى تلف التروس بمرور الوقت.
استكشاف أخطاء إعداد التحكم المؤازر بعصا التحكم في Arduino وإصلاحها
فيما يلي المشكلات والإصلاحات الأكثر شيوعًا لـ اردوينو التحكم في عصا التحكم بالسيرفوة يثبت.
يبقى OLED فارغًا
أولاً، تأكد من توصيل SDA بـ A4 وSCL بـ A5. ثم تحقق من أن عنوان I2C الموجود في الكود يطابق شاشتك (عادةً 0x3C). تأكد أيضًا من تثبيت مكتبات Adafruit SSD1306 وAdafruit GFX. إذا كانت الشاشة تعمل من قبل وتوقفت، فجرّب عنوان I2C مختلفًا (0x3D).
اهتزاز محركات السيرفو في موقف المركز
هذه هي المشكلة الأكثر شيوعًا، وغالبًا ما يكون سببها هو تشغيل محركات السيرفو من طرف Arduino 5 V. بدلاً من ذلك، استخدم مصدر طاقة خارجي 5 فولت مقدرًا بـ 1 أمبير على الأقل. بالإضافة إلى ذلك، فكر في إضافة منطقة ميتة في الكود حول القيم المركزية لعصا التحكم.
تتحرك محركات السيرفو في الاتجاه الخاطئ
ما عليك سوى تبديل نطاق الإخراج في جهازك map() وظيفة. على سبيل المثال، التغيير map(xVal, 0, 1023, 0, 180) to map(xVal, 0, 1023, 180, 0) للمحور المصاب.
جهاز واحد لا يستجيب
ابدأ بالتحقق من اتصال سلك الإشارة لهذا السيرفو. تأكد من استخدام طرف Arduino الصحيح (D9 أو D10). ثم اختبر السيرفو من تلقاء نفسها من خلال رسم تخطيطي بسيط للتأكد من أنها ليست معيبة. تحقق أيضًا من أن جهاز GND المؤازر متصل بالأرضية المشتركة.
تتم تهيئة العرض ولكن لا يظهر أي شيء مفيد
إذا أضاءت الشاشة ولكنها أظهرت أحرفًا مشوهة، فتأكد أولاً display.clearDisplay() يتم استدعاؤه في بداية كل حلقة. التحقق من ذلك أيضا display.setTextSize(1) و display.setTextColor(SSD1306_WHITE) هم في setup() وظيفة. بالإضافة إلى ذلك، مفقود display.display() ستؤدي المكالمة إلى عدم ظهور أي شيء على الشاشة.
تتم إعادة ضبط النظام عند تحرك كلا محركي السيرفو
وهذه علامة واضحة على عدم كفاية القوة. نظرًا لأن جهازين متحركين في نفس الوقت يمكن أن يسحب ما يصل إلى 1 أمبير أو أكثر تحت الحمل، فإن منفذ Arduino USB ببساطة لا يمكنه توفير تيار كافٍ. لذلك، استخدم مصدر طاقة مخصصًا بجهد 5 فولت للمحركات سيرفو، وشارك الأرض فقط مع Arduino.
قيم عصا التحكم تبدو صاخبة
تنتج بعض وحدات عصا التحكم قراءات تناظرية صاخبة قليلاً. لإصلاح ذلك، يمكنك تسهيل القيم عن طريق حساب متوسط قراءات متعددة، أو تطبيق مرشح برمجي بسيط. علاوة على ذلك، فإن وجود منطقة ميتة في المركز المركزي يساعد. احتفظ أيضًا بأسلاك عصا التحكم قصيرة وبعيدًا عن أسلاك المحرك لتقليل الضوضاء الكهربائية.
الأسئلة المتداولة حول التحكم المؤازر بعصا التحكم Arduino
نعم. يعمل هذا المشروع مع أي Arduino يحتوي على مدخلين تناظريين على الأقل ومخرجين رقميين يدعمان PWM. على سبيل المثال، Arduino Nano وMega وLeonardo كلها متوافقة. ومع ذلك، إذا كنت تستخدم لوحة ذات أطراف I2C مختلفة، فقم بتحديث اتصالات SDA/SCL وفقًا لذلك.
تتحكم عصا التحكم القياسية ذات المحورين في ما يصل إلى اثنين من محركات السيرفو (واحد لكل محور). للتحكم في المزيد من محركات السيرفو، يمكنك إضافة المزيد من أذرع التحكم، أو استخدام زر الضغط لتبديل الوضع، أو استخدام محرك سيرفو PCA9685 مع طرق إدخال إضافية.
لا، إن OLED اختياري ويوفر فقط ملاحظات مرئية. ستعمل عصا التحكم ومحركات السيرفو بدون الشاشة. ومع ذلك، فإن OLED يجعل الاختبار والمعايرة أسهل بكثير لأنه يمكنك رؤية زوايا السيرفو المباشرة.
عادةً ما يأتي الارتعاش الناتج عن مصدر خارجي من قراءات تناظرية صاخبة أو منطق منطقة ميتة مفقود. لإصلاح ذلك، أضف منطقة ميتة حول القيم المركزية (حوالي 480 إلى 540) لمنع التقلبات الصغيرة من تحريك محركات السيرفو. يمكنك أيضًا إضافة مكثف (100 فائق التوهج أو أكبر) عبر خطوط طاقة السيرفو لتسهيل تقلبات الجهد.
نعم، لكن أجهزة MG996R تسحب تيارًا أكبر بكثير (يصل إلى 2.5 أمبير تحت المماطلة). سوف تحتاج إلى مصدر خارجي أكثر قوة. يظل الرمز كما هو لأن كلا النوعين المؤازرين يقبلان إشارات PWM القياسية.
المزيد من الأسئلة حول التحكم المؤازر بعصا التحكم
تعديل نطاق الإخراج في map() وظيفة. على سبيل المثال، map(xVal, 0, 1023, 30, 150) يحد السيرفو من نطاق 30-150 درجة بدلاً من النطاق الكامل من 0-180 درجة.
تستخدم معظم وحدات SSD1306 مقاس 128×64 عنوان I2C 0x3C. تستخدم بعض الوحدات 0x3D. إذا لم تتم تهيئة شاشة العرض لديك، فجرب كلا العنوانين. يمكنك أيضًا تشغيل رسم ماسح ضوئي I2C لاكتشاف الأجهزة المتصلة.
قطعاً. يمكنك استبدال عصا التحكم الفعلية بإدخال Bluetooth من تطبيق الهاتف الذكي باستخدام وحدة Bluetooth HC-05. ونتيجة لذلك، يمكنك الحصول على تحكم مؤازر لاسلكي. ملكنا تعليم البلوتوث يغطي الإعداد الكامل.
يخرج دبوس SW لعصا التحكم LOW عند الضغط عليه. قم بتوصيله بمنفذ رقمي (على سبيل المثال D2) مع تمكين مقاومة السحب الداخلية (pinMode(2, INPUT_PULLUP)). يمكنك بعد ذلك استخدامه لتبديل الأوضاع أو حفظ المواضع أو إعادة تعيين محركات السيرفو إلى المركز.
نعم، هذه نقطة انطلاق رائعة لذلك. يمكن لعصا التحكم ذات المحورين التحكم في مفاصل ذراع آلية. للحصول على ذراع 6-DOF كامل، ستحتاج إلى المزيد من أذرع التحكم أو نظام تحكم يعتمد على مقياس الجهد. ملكنا البرنامج التعليمي الكامل للذراع الروبوتية يوضح كيفية توسيع نطاق هذا إلى بناء كامل.
عادة ما يحدث الخفقان بسبب انخفاض الجهد عندما تسحب محركات السيرفو التيار. لمنع حدوث ذلك، تأكد من وجود محركات السيرفو على مصدر طاقة منفصل وعدم مشاركة خط 5 فولت مع OLED. بالإضافة إلى ذلك، فإن إضافة مكثف فصل بالقرب من منافذ طاقة OLED يمكن أن يساعد في استقرار الشاشة.
الموارد والخطوات التالية للتحكم في أجهزة عصا التحكم Arduino
رمز المشروع
قم بتنزيل المخطط الكامل من مستودع GitHub.
دروس OmArTronics ذات الصلة
- دليل التحكم المؤازر الأردوينو: SG90، و PWM، و PCA9685 – تعلم أساسيات السيرفو بعمق.
- أساسيات برمجة الأردوينو – دليل أساسي إذا كنت جديدًا على كود Arduino.
- شرح استخدام جهاز تحكم عن بعد بالأشعة تحت الحمراء مع أردوينو: التحكم في مصباح LED، ثم إضافة باب سيرفو – مشروع آخر يعتمد على السيرفو مع مدخلات IR.
- DIY 6-DOF Robotic Arm - طباعة ثلاثية الأبعاد وأسلاك وبرنامج - الارتقاء من اثنين من محركات السيرفو إلى ستة مفاصل.
- الذراع الروبوتية ذات 6 دووف ذات التحكم بالبلوتوث – إضافة التحكم اللاسلكي بالهاتف الذكي إلى الذراع بالكامل.
- البرنامج التعليمي الكامل لوحدة البلوتوث HC-05/HC-06 Arduino ووحدة البلوتوث HC-05/HC-06 - إضافة بلوتوث إلى أي مشروع اردوينو.
- رادار اردوينو مع HC-SR04 ومحرك سيرفو – مشروع مسح آخر يعتمد على السيرفو.
- قفل الباب بكلمة مرور Arduino مع لوحة مفاتيح وشاشة LCD - مشروع قفل الباب الذي يعمل بمحرك مؤازر.
الترقيات التالية المقترحة
- استخدم دبوس عصا التحكم SW لحفظ أوضاع السيرفو أو التبديل بين أوضاع التحكم.
- استبدل عصا التحكم الفعلية بتطبيق الهاتف الذكي عبر HC-05 للتحكم المؤازر اللاسلكي.
- قم بطباعة ثلاثية الأبعاد أو إنشاء حامل كاميرا ثنائي المحور والتحكم فيه باستخدام هذه الدائرة بالضبط.
- أضف المزيد من محركات السيرفو وعصا التحكم لبناء ذراع آلية متعددة DOF.
- قم بتخزين مواضع السيرفو في EEPROM وأعد تشغيلها لتسلسلات الحركة الآلية.
الخاتمة
في هذه المرحلة، لديك عمل اردوينو التحكم في عصا التحكم بالسيرفوة نظام مع ردود فعل حية OLED. على طول الطريق، قمت بتغطية كيفية توفير عصا التحكم لمحورين تناظريين، وكيف يقوم Arduino بتعيين هذه القيم لزوايا السيرفو، وكيفية توصيل محركات السيرفو بأمان بالطاقة الخارجية، وكيف يعرض SSD1306 OLED بيانات الموقع.
هذا اثنين من عصا التحكم بالسيرفوة للتحكم في اردوينو يعد المشروع نقطة انطلاق جيدة للبنيات الأكثر تقدمًا. من هنا، يمكنك تحويله إلى ذراع الروبوت أو حامل كاميرا قابل للإمالة. جرب الترقيات المقترحة أعلاه، وشارك نتائجك في التعليقات.