سروو servo موتور

سروو servo موتور:
هر سروو servo موتور یک دستگاه کوچکی است که بخش اعظم حرکت آن توسط یک shaft خروجی تعیین می شود. چگونگی حرکت و موقعیت های زاویه ای این خروجی توسط دسته ای از سیگنال های دیکد شده که برای کابل دیتا آن تعریف می شود کنترل میشود. برای طول مدت زمانی که یک سیگنال فعال بوده و یک پالس بر روی خط ورودی آن قرار دارد این shaft خروجی در موقعیت خاص زاویه ای که مختص آن سیگنال است قرار دارد و با تغییر این ورودی زاویه مد نظر نیز تغییر می کند.

1291989050_servo_schematics

مشاهده می کنید که در اینجا یک رابطهای بین نرم افزار و سخت افزار ایجاد شده است. سروو servo موتورها در صنایع رباتیک و تولیدات صنعتی مانند موتور های کنترل کننده هواپیما ها و … کاربرد وسیعی دارند.
آنچه که قدرت حرکتی سروو servo موتورها راتعیین می کند مقدار بارگیریست که از سوی سیگنال انجام می گیرد بر این اساس برای حرکت با سرعتی سریع جهت طی مسافتی متناسب با سرعت میزان بارگیری مذکور بالاست و عموما این میزان توسط سازنده موتور تعیین خواهد شد.
سه کابل موجود در سروو servo موتورها می توانند ۳ ورودی این موتور باشند.
معمولا سیم اول برای power حدود ۵ ولت.
سیم دوم :GND
سیم سوم (معمو لا به رنگ سفید): جهت کنترل وضعیت های حرکتیست.

  عملکرد مداری :
هر سروو موتور از چند مدار الکترونیکی کنترلی – یک مقاومت متغیر(پتانسیو متر) – تعدادی چرخدنده (برای ایجاد امکان حرکت) – یکshaft خروجی تشکیل شده است. در بخشی از این مدار که به آن pot اطلاق می شود امکان دیدن سیگنالی که مو تور تحت تاثیر آن از خود عکس العمل نشان می دهد وجود دارد.
زاویه حرکتی این خانواده از سروو موتورها متفاوت است اما یک سروو موتور نرمال میتواند مسافتی بین ۰ تا ۱۸۰ درجه را بپیماید. سیستم کنترل کننده معمولا وظیفه کنترل این چرخش را به عهده دارد. این زاویه حرکتی که نیاز است موتور آن را بپیماید به وسیله پالسی که توسط کابل کنترلی فرستاده می شود تعیین می گردد که به آن Pulse Code Modulation اطلاق می شود.
یک سروو موتور تمایل دارد که هر ۲۰ میلی ثانیه با یک پالس جدیدی تحریک شود.
طول این پالس بستگی به مسافتی دارد که نیاز است توسط سروو موتور طی شود. برای مثال همانطور که در شکل مشاهده می کنید هر پالسی که در ضمن ۱٫۵ میلی ثانیه اعمال می شود امکان چرخش shaft را به اندازه ۹۰ درجه فراهم می سازد.
اگر طول پالس کمتر از مقدار مذکور باشد زاویه حرکتی shaft خروجی به ۰ میل میکند و اگر بیش از ۱٫۵ میلی ثانیه باشد به ۱۸۰ درجه نزدیک می شود.

نمونه سورس کد عملی :

 /******************************************************************************

Program to demonstrate the use servo motors with AVR Microcontrollers.

Servo Motor: Futaba s3003
Servo Control PIN (white): To OC1A PIN
Crystal: 16MHz
LOW Fuse: 0xFF
HIGH Fuse: 0xC9

*******************************************************************************/
#include <avr/io.h>
#include <util/delay.h>

//Simple Wait Function
void Wait()
{
uint8_t i;
for(i=0;i<50;i++)
{
_delay_loop_2(0);
_delay_loop_2(0);
_delay_loop_2(0);
}

}
void main()
{
//Configure TIMER1
TCCR1A|=(1<<COM1A1)|(1<<COM1B1)|(1<<WGM11);    //NON Inverted PWM
TCCR1B|=(1<<WGM13)|(1<<WGM12)|(1<<CS11)|(1<<CS10); //PRESCALER=64 MODE 14(FAST PWM)

 ICR1=4999; //fPWM=50Hz (Period = 20ms Standard).

 DDRD|=(1<<PD4)|(1<<PD5); //PWM Pins as Out

 while(1)
{

  OCR1A=97; //۰ degree
Wait();

  OCR1A=316; //۹۰ degree
Wait();

  OCR1A=425; //۱۳۵ degree
Wait();

  OCR1A=535; //۱۸۰ degree
Wait();
}
}

شاید سورس کد مورد نظر شما با سورس ارائه شده مطابقت خوبی نداشته باشد که در صورتی که مهارت خوبی در C داشته باشید به راحتی می توانید به زبان کدویژن یا بیسیک نیز پیاده سازی کنید…

سروو موتور

سروو موتور :
هر  servo motor یک دستگاه کو چکی ست که بخش اعظم حرکت آن توسط یک shaft خروجی تعیین می شود. چگونگی حرکت و مو قعیت های زاویه ای این خروجی توسط دسته ای از سیگنال های دیکد شده که برای کابل دیتا آن تعریف می شود کنترل میشود. برای طول مدت زمانی که یک سیگنال فعال بوده و یک پالس بر روی خط ورودی آن قرار دارد این shaft خروجی در مو قعیت خاص زاویه ای که مختص آن سیگنال است قرار دارد و با تغییر این ورودی زاویه مد نظر نیز تغییر می کند.

1291989050_servo_schematics

مشاهده می کنید که در اینجا یک رابطهای بین نرم افزار و سخت افزار ایجاد شده است. این موتور ها در صنایع رباتیک و تولیدات صنعتی مانند موتور های کنترل کننده هواپیما ها و … کاربرد وسیعی دارند.
آنچه که قدرت حرکتی این نوع موتور ها راتعیین می کند مقدار بارگیریست که از سوی سیگنال انجام می گیرد بر این اساس برای حرکت با سرعتی سریع جهت طی مسافتی متناسب با سرعت میزان بارگیری مذکور بالاست و عمو ما این میزان توسط سازنده مو تور تعیین خواهد شد.
سه کابل موجود در این موتور ها می توانند ۳ ورودی این مو تور باشند.
معمولا سیم اول برای power حدود ۵ ولت.
سیم دوم :GND
سیم سوم (معمو لا به رنگ سفید): جهت کنترل وضعیت های حرکتیست.

  عملکرد مداری :
هر servo از چند مدار الکترونیکی کنترلی – یک مقاومت متغیر(پتانسیو متر) – تعدادی چرخدنده (برای ایجاد امکان حرکت) – یکshaft خروجی تشکیل شده است. در بخشی از این مدار که به آن pot اطلاق می شود امکان دیدن سیگنالی که مو تور تحت تاثیر آن از خود عکس العمل نشان می دهد وجود دارد.
زاویه حرکتی این خانواده از مو تور ها متفاوت است اما یک servo نرمال میتواند مسافتی بین ۰ تا ۱۸۰ درجه را بپیماید. سیستم کنترل کننده معممو لا وظیفه کنترل این چرخش را به عهده دارد. این زاویه حرکتی که نیاز است موتور آن را بپیماید به وسیله پالسی که توسط کابل کنترلی فرستاده می شود تعیین می گردد که به آن Pulse Code Modulation اطلاق می شود.
یک servo تمایل دارد که هر ۲۰ میلی ثانیه با یک پالس جدیدی تحریک شود.
طول این پالس بستگی به مسافتی دارد که نیاز است توسط سرو و طی شود. برای مثال همانطور که در شکل مشاهده می کنید هر پالسی که در ضمن ۱٫۵ میلی ثانیه اعمال می شود امکان چرخش shaft را به اندازه ۹۰ درجه فراهم می سازد.
اگر طول پالس کمتر از مقدار مذکور باشد زاویه حرکتی shaft خروجی به ۰ میل میکند و اگر بیش از ۱٫۵ میلی ثانیه باشد به ۱۸۰ درجه نزدیک می شود.

نمونه سورس کد عملی :

 /******************************************************************************

Program to demonstrate the use servo motors with AVR Microcontrollers.

Servo Motor: Futaba s3003
Servo Control PIN (white): To OC1A PIN
Crystal: 16MHz
LOW Fuse: 0xFF
HIGH Fuse: 0xC9

*******************************************************************************/
#include <avr/io.h>
#include <util/delay.h>

//Simple Wait Function
void Wait()
{
uint8_t i;
for(i=0;i<50;i++)
{
_delay_loop_2(0);
_delay_loop_2(0);
_delay_loop_2(0);
}

}
void main()
{
//Configure TIMER1
TCCR1A|=(1<<COM1A1)|(1<<COM1B1)|(1<<WGM11);    //NON Inverted PWM
TCCR1B|=(1<<WGM13)|(1<<WGM12)|(1<<CS11)|(1<<CS10); //PRESCALER=64 MODE 14(FAST PWM)

 ICR1=4999; //fPWM=50Hz (Period = 20ms Standard).

 DDRD|=(1<<PD4)|(1<<PD5); //PWM Pins as Out

 while(1)
{

  OCR1A=97; //۰ degree
Wait();

  OCR1A=316; //۹۰ degree
Wait();

  OCR1A=425; //۱۳۵ degree
Wait();

  OCR1A=535; //۱۸۰ degree
Wait();
}
}

شاید سورس کد مورد نظر شما با سورس ارائه شده مطابقت خوبی نداشته باشد که در صورتی که مهارت خوبی در C داشته باشید به راحتی می توانید به زبان کدویژن یا بیسیک نیز پیاده سازی کنید…

X
X