کنترل سروو موتور مخصوص بازوهای رباتیکی

کنترل سروو موتور مخصوص بازوهای رباتیکی

در این آموزش میخوایم به کاربران آردوینو نشان بدیم که چجوری میشه  سروو موتور را به صورت چرخش متناوب یا نرمال کنترل کرد.
 با استفاده از سروو موتور و جویستیک شما میتوانید بازوی رباتیکی را کنترل کنید،مثلا برای باز و بسته کردن بازو با کنترل سروو استفاده میشود.
و میتواند به شما کمک کند که فشار وارده بر سروو بازوی رباتیکی را کنترل کند.

قطعات مورد نیاز پروژه:

  1. آردوینو Uno
  2. بردبورد خط دار
  3. سیم برد بردی نری به نری
  4. ولوم 1 کیلو اهم
  5. موتور میکرو سروو
  6. سروو استاندارد
  7. نرم افزار آردوینو
  8. کابل پروگرم آردوینو

قدم اول:enlightened

پتانسیومتر را همانند شکل بالا متصل میکنیم.

پایه A0  که همان پایه آنالوگ آردوینو است را به پایه وسط ولوم متصل میکنیم .و دو پایه دیگر را به GND  و 5ولت  متصل خواهیم کرد .

البته ما این اتصالات را همانند شکل بر روی برد بورد متصل میکنیم.

قدم دوم:enlightened

سروو موتور را با توجه به شکل متصل میکنیم.

سیم قرمز: Arduino 5V

سیم مشکی: Arduino GND

سیم سفید: Arduino (pin9)

قدم سوم:enlightened

سروو موتور میکرو را با توجه به شکل متصل میکنیم.

سیم قرمز: Arduino 5V

سیم مشکی: Arduino GND

سیم سفید: Arduino (pin9)

قدم چهارم:enlightened

نوشتن کد مربوط به این پروژه با نرم افزار آردوینو

#include
Servo myservo;
int potpin = 0;
int val;
void setup()
{
myservo.attach(9);
}
void loop()
{
val = analogRead(potpin);  
         
         
val = map(val, 0, 1023, 0, 179); 
         
         
myservo.write(val);    
         
delay(15);      
}

در آخر برای راه اندازی و کنترل بهتر سروو موتور میتوانید از جواستیک مخصوص آردوینو هم استفاده کنید و بازوهای رباتیکی خود را کنترل نمایید در اینجا کدهای دستوری راه ندازی بازو با سروو موتور و جواستیک را میتوانید امتحان کنید.wink

#include

const int servo1 = 3;       // first servo
const int servo2 = 10;      // second servo
const int servo3 = 5;       // third servo
const int servo4 = 11;      // fourth servo
const int servo5 = 9;       // fifth servo
const int joyH = 2;        // L/R Parallax Thumbstick
const int joyV = 3;        // U/D Parallax Thumbstick
const int joyX = 4;        // L/R Parallax Thumbstick
const int joyP = 5;        // U/D Parallax Thumbstick
const int potpin = 0;      // O/C potentiometer

int servoVal;           // variable to read the value from the analog pin


Servo myservo1;  // create servo object to control a servo
Servo myservo2;  // create servo object to control a servo
Servo myservo3;  // create servo object to control a servo
Servo myservo4;  // create servo object to control a servo
Servo myservo5;  // create servo object to control a servo
void setup() {

  // Servo
  myservo1.attach(servo1);  // attaches the servo
  myservo2.attach(servo2);  // attaches the servo
  myservo3.attach(servo3);  // attaches the servo
  myservo4.attach(servo4);  // attaches the servo
  myservo5.attach(servo5);  // attaches the servo

  // Inizialize Serial
  Serial.begin(9600);
}


void loop(){

  servoVal = analogRead(potpin);  
 
  servoVal = map(servoVal, 0, 1023, 0, 179);
 
  myservo5.write(servoVal);    
         
delay(15);  
  // Display Joystick values using the serial monitor
    outputJoystick();

    // Read the horizontal joystick value  (value between 0 and 1023)
    servoVal = analogRead(joyH);        
    servoVal = map(servoVal, 0, 1023, 0, 180);     // scale it to use it with the servo (result  between 0 and 180)

    myservo2.write(servoVal);                         // sets the servo position according to the scaled value  

    // Read the horizontal joystick value  (value between 0 and 1023)
    servoVal = analogRead(joyV);         
    servoVal = map(servoVal, 0, 1023, 70, 180);     // scale it to use it with the servo (result between 70 and 180)

    myservo1.write(servoVal);                           // sets the servo position according to the scaled value

    delay(15);                                       // waits for the servo to get there

// Read the horizontal joystick value  (value between 0 and 1023)
    servoVal = analogRead(joyP);         
    servoVal = map(servoVal, 0, 1023, 70, 180);     // scale it to use it with the servo (result between 70 and 180)

    myservo4.write(servoVal);                           // sets the servo position according to the scaled value

    delay(15);                                       // waits for the servo to get there
// Read the horizontal joystick value  (value between 0 and 1023)
    servoVal = analogRead(joyX);         
    servoVal = map(servoVal, 0, 1023, 70, 180);     // scale it to use it with the servo (result between 70 and 180)

    myservo3.write(servoVal);                           // sets the servo position according to the scaled value

    delay(15);                                       // waits for the servo to get there

}


/**
* Display joystick values
*/
void outputJoystick(){

    Serial.print(analogRead(joyH));
    Serial.print ("---");
    Serial.print(analogRead(joyV));
    Serial.println ("----------------");
    Serial.print(analogRead(joyP));
    Serial.println ("----------------");
    Serial.print(analogRead(joyX));
    Serial.println ("----------------");
}

با آرزوی موفقیتyes

نویسنده مجید آقاکوچک

کارشناس الکترونیک

مدیر سایت تکنو الکترو

طراح الکترونیک و رباتیک

محصولات مرتبط با این آموزش

آردوینو Uno

آردوینو Uno

برد آردوینو Uno یک میکروکنترلر بر پایه ATmega328 می باشد (datasheet). این برد 14 پین ورودی و خرو..

20,500تومان 21,000تومان

سیم برد بردی نری به نری

سیم برد بردی نری به نری

سیم bread board - کابل برد بردی - dupont - نری به نری ..

170تومان

موتور میکرو سروو H512 Tower Pro sg90

موتور میکرو سروو H512 Tower Pro sg90

Basic Information: Modulation: Analog Torque: 4.8V: 25.0 oz-in (1.80 kg-cm) Speed: 4.8V: 0.10 sec..

7,850تومان

بردبورد خط دار DEC اصلی

بردبورد خط دار DEC اصلی

بردبورد خط دار DEC مرغوب ترین برد بورد در بازار می باشد. این برد بورد به راحتی سیم ها را نگه می دارد..

15,000تومان

ولوم 1 کیلو اهم

ولوم 1 کیلو اهم

ولوم 1 کیلو اهم ..

600تومان

سیم برد بردی نری به مادگی

سیم برد بردی نری به مادگی

سیم bread board - کابل برد بردی - dupont - نری به مادگی ..

170تومان

مطالب مرتبط با این آموزش

آموزش آردوینو برای تازه کار ها (بخش اول)

جلسه اول آموزش آردوینو با پاسخ دهی به سوالات عمومی کاربران

آموزش راه اندازی ربات با کنترلر ps2 و آردوینو
در این مطلب قصد داریم آموزش خواندن کلید های کنترلر play station 2 با استفاده از آردوینو را قرار دهیم. بیشترین کاربرد این روش راه اندازی ربات های ساده با کمترین قیمت است، زیرا دیگر نیاز به هیچ فرستنده و گیرنده دیگری نیست و فقط کافی است دکمه های فشرده شده را در گیرنده تشخیص دهید. در ادامه کتابخانه ها و چند ویدیوی آموزشی در این زمینه در اختیارتان قرار خواهیم داد. در ویدیویی که  در بالا مشاهده می کنید یکی از کاربران با استفاده از این روش یک ربات کوچک را کنترل می کند. اما روش کار به چه صورت است؟ شروع کنید به سیم کشی کردن بین گیرنده و آردوینو: کاری به رنگ سیم نداشته باشید فقط بر ..

0 پیام به "کنترل سروو موتور مخصوص بازوهای رباتیکی"

نظر خود را در مورد این آموزش ارسال کنید

نام شما:
 
پیام شما:
نکته: کد اچ تی ام ال مجاز نیست!

خریدی مطمئن و آسان


بانک ملت

آموزش با استفاده از خلاقیت


دنیای الکترونیک، رباتیک و سیستم های هوشمند دنیایی بسیار پر هیجان و جذاب است. امروزه یادگیری بعد از ایجاد نیاز، بسیار موثر تر از آموزش دادن بدون هدف می باشد. در دنیایی که هرکس به فکر پیشرفت خود می باشد و به فرد دیگری نفعی نمی رساند چگونه باید خود را بالا بکشیم؟ شاید بار ها به فکر ایجاد یک شغل آزاد برای خود بوده باشید ولی به علت نداشتن تجربه کافی و یا مرجع علمی مناسب سرد شده باشید، ولی اگر در حال خواندن این مطلب هستید بدانید جای مناسبی را پیدا کرده اید. ما به دنبال آموزش و ایجاد روش هایی نو برای کسب درآمد و کمک به مشاغل کوچک و متوسط هستیم، تا افراد مبتدی بتوانند روی پای خود بایستند و آینده ی بهتری برای خود و کشورشان رقم بزنند. این رویه مسلما کار آسانی به نظر نمی آید ولی با کمک شما کاربران گرامی و لطف خدا، هیچ کاری بدون نتیجه نخواهد ماند. اگر این مکان بتواند فقط چند نفر در ایران را کمک کند تا آینده بهتری برای خود بسازند، به هدفش رسیده است.

فروشگاه اینترنتی تکنو الکترو ، برای افرادی که علاقه دارند سازنده باشند.

استفاده از مطالب فروشگاه اینترنتی تکنو الکترو فقط برای مقاصد غیر تجاری و با ذکر منبع بلامانع است. کليه حقوق اين سايت متعلق به شرکت تکین الکترو اکسین (فروشگاه تکنوالکترو) می‌باشد.

Copyright © 2009 - 2016 Techno-Electro.com