رباتیک و هوافضا

پروژه کنترل موقعیت سروو موتور با آردوینو و سنسور نیرو به همراه کد

کنترل موقعیت سروو موتور به وسیله ی سنسور نیرو

به نام خدا

پروژه کنترل موقعیت سروو موتور با آردوینو و سنسور نیرو به همراه کد

 

کنترل موقعیت سروو موتور به وسیله ی سنسور نیرو

 

 

در این آموزش ما می خواهیم مداری با استفاده از سنسور نیرو، آردوینو  Uno و یک سروو موتور ایجاد کنیم.این یک سیستم کنترل سروو خواهد بود که موقعیت محور سروو را به وسیله ی نیرو فعلی روی سنسور نیرو مشخص می کند. قبل از اینکه جلوتر برویم بیایید درباره ی سروو و دیگر اجزاء صحبت کنیم. سروو موتورها در جاهایی که حرکت دقیق محور یا موقعیت دقیق آن مورد نیاز است استفاده می شوند. این ها برای کاربرد های با سرعت بالا پیشنهاد نمی شوند.بلکه برای کاربرد سرعت پایین، گشتاور متوسط و موقعیت دقیق پیشنهاد می شوند. این موتور ها در بازوی ماشین های رباتیک، کنترل های پرواز و سیستم های کنترل استفاده می شوند. همچنین سروو موتور ها در برخی چاپگر ها و ماشین های فاکس نیز استفاده می شوند.

سروو موتورها در شکل ها و سایز های مختلف در دسترس اند. یک سروو موتور به طور اصلی سه سیم دارد، یکی برای ولتاژ مثبت ،دیگری برای زمین و آخری برای تنظیمات موقعیت است. سیم قرمز به منبع وصل می شود، سیم مشکی به زمین وصل می شود و سیم زرد به سیگنال وصل می شود .

یک سروو موتور ترکیبی از موتور  DC،سیستم کنترل موقعیت  و دنده ها است . موقعیت محور موتور Dc به وسیله  کنترل های الکترونیکی  در سروو  ، بر پایه ی نسبت کار سیگنال  PWM به پایه سیگنال ،تنظیم شده است. به بیان ساده تر  کنترل الکترونیکی موقعیت محور به وسیله  کنترل موتور DC تنظیم شده است. این داده  با توجه به موقعیت محور از طریق پایه سیگنال (پین) فرستاده می شود. موقعیت داده ها (مختصات )به کنترل باید به صورت سیگنال PWM از طریق پایه سیگنال سروو  موتور فرستاده شود.

فرکانس سیگنال PWM (پالس عرضی مصنوعی ) می تواند خیلی وابسته به نوع سروو موتور باشد . مهم ترین چیز در اینجا نسبت کاری سیگنال PWM است . بر اساس نسبت کار، کنترل های الکترونیکی محور را تنظیم می کنیم.

-همانطور که در شکل زیر نشان داده شده است، برای حرکت محور به موقعیت در ساعت ۹ باید ضریب آن به۱۸ms،یعنی ۱ms روشن و ۱۷msخاموش، در یک سیگنال ۱۸msعوض شود.

 

 

کنترل موقعیت سروو موتور به وسیله ی سنسور نیرو

 

برای حرکت محور به موقعیت ساعت ۱۲ زمان روشنایی سیگنال  باید  ۱٫۵ms باشد و زمان خاموشی ۱۶٫۵ms  باشد.

این نسبت رمز گشایی شده به وسیله ی سیستم کنترل در سروو  و موقعیت را بر اساس آن تنظیم می کند.

این PWM در اینجا به وسیله استفاده از آردوینو Uno تولید می شود .تا اینجا ما می دانیم که، ما می توانیم سروو  موتور را به وسیله نسبت کاری متفاوت سیگنال PWM تولید شده به وسیله Uno کنترل کنیم.حالا بیاید درباره سنسور نیرو یا سنسور نیرو صحبت کنیم: برای اتصال یک سنسور نیرو به آردوینو Uno ،از ویژگی ADC (تبدیل آنالوگ به دیجیتال) در آردوینوUno استفاده می کنیم.یک سنسور نیرو ،یک مبدل است که مقاومت را زمانی که فشار بر سطح وارد می شود تغییر می دهد .سنسور نیرو در شکل ها و سایز های مختلف در دسترس است.

بیشتر بخوانید...  ساخت ربات مسیریاب با آردوینو

در اینجا ما  از یک مدل  ارزان به این دلیل که به دقت زیاد  نیاز نداریم  استفاده می کنیم. FSR400 یکی از ارزان ترین سنسور های نیرو در بازار است. و تصویر آن در شکل زیر نشان داده شده است.اکنون مهم است که توجه داشته باشید که FSR400 در امتداد طول حساس است،  نیرو یا نیرو باید روی پیچ و خم وسط چشم سنسور متمرکز شود همانطور که در شکل نشان داده شده است.اگر نیرو به دفعات اشتباه به وسیله وارد شود می تواند خسارات دائمی ایجاد کند .مطلب مهم دیگری که باید بدانیم اینست که سنسور می تواند هدایت کند جریان های با اندازه بالا را بنابراین به خاطر داشته باشید هدایت جریان ها زمانی است که سنسور نصب شده باشد. همچنین سنسور یک محدودیت نیرویی دارد که ۱۰N می باشد. بنابراین ما میتوانیم فقط یک کیلوگرم نیرو وارد کنیم .

اگر نیرو بالاتر از ۱kg وارد شود سنسور ممکن است مقداری انحرافات  نشان دهد .  و اگر بیش از ۳kg افزایش پیدا کند  سنسور ممکن است دچار آسیب جدی شود.

کنترل موقعیت سروو موتور به وسیله ی سنسور نیرو

 

همانطور که قبلا گفته شد این سنسور استفاده می شود تا تغییرات فشار را اندازه گیری کند ، بنابراین زمانی که نیرو بر روی سنسور نیرو وارد می شود ، مقاومت به شدت تغییر میکند . مقاومت FsR400 بالای نیرو نشان داده شده در گراف زیر است.

کنترل موقعیت سروو موتور به وسیله ی سنسور نیرو

همانطور که در شکل بالا می بینیم، مقاومت بین دو اتصال سنسور کاهش یافته یا نیرو یا ضریب هدایت (میزان رسانایی)بین دو اتصال سنسور افزایش یافته است.

مقاومت یک رسانای خالص  به وسیله ی  فرمول زیر بدست می آید :

formula

                        مقاومت ویژه رسانا=P                    طول رسانا=L                         سطح رسانا=A

اکنون یک رسانا با مقاومت R را در نظر بگیرید اگر مقداری فشار روی رسانا وارد شود، در نتیجه این فشار سطح رسانا کاهش و طول آن افزایش می یابد. بنابراین به وسیله فرمول مقاومت رسانا باید افزایش یابد، بنابراین  مقاومت R با سطح رابطه عکس و همچنین با طول رابطه مستقیم دارد.بنابراین  برای یک رسانای تحت فشار مقاومت رسانا را افزایش می دهند. اما این تغییر در مقایسه با مقاومت کلی کوچک است. برای یک تغییر قابل توجه تعدادی رسانا در کنار هم قرار می گیرند.اما در این مورد مقاومت کاهش خواهد یافت؛ زیرا مواد استفاده شده در اینجا  رسانای خالص نیست. FSR  پلیمر های زخیم  دستگاه های فیلم برداری یا (PTF) هستند. بنابراین  ابزار هایی با مواد رسانای خالص نیستند.

این تغییر در مقاومت می تواند خوب نباشد مگر اینکه ما بتوانیم  آنهارا بخوانیم. ما از مدار مقسم  ولتاژ استفاده می کنیم، که با آن ما می توانیم تغییرات مقاومت را به وسیله تغییرات ولتاژ هدایت کنیم.مقسم ولتاژ یک مدار مقاومتی است که در شکل نشان داده شده است . در این شبکه مقاومتی ما یک مقاومت ثابت و یک مقاومت متغییر داریم. همانطور که در شکل نشان داده شده است R1 در اینجا یک مقاومت ثابت است و R2 سنسور نیرو است که مانند یک مقاومت عمل می کند. نقطه میانی شاخه برای اندازه گیری گرفته می شود. به وسیله ی تغییر R2 ، ولتاژ خروجی را تغییر می دهیم. بنابراین ما یک ولتاژ متغییر با نیرو داریم.کنترل موقعیت سروو موتور به وسیله ی سنسور نیرو

بیشتر بخوانید...  پروژه ی ساخت مدار سنجش ظرفیت خازنی دیجیتال با استفاده از آردوینو

ورودی به وسیله ی مبدل ADC (تبدیل آنالوگ به دیجیتال) که به کمی  ۵۰ میکرو آمپر است گرفته شده(اشغال شده)است.این اثر بارگذاری تقسیم ولتاژ مبتنی بر مقاومت بسیار مهم است زیرا جریان از ضریب تقسیم ولتاژ افزایش می یابد و درصد  خطا افزایش می یابد . فعلا ما نیازی نداریم تا درباره ی اثر بارگذاری نگران باشیم.اکنون زمانی که نیرو  بر سنسور نیرو وارد می شود ، ولتاژ در انتهای تقسیم تغییر می کند . این پایه به کانال ADC(تبدیل آنالوگ به دیجیتال) ازUno متصل است . این مقدار دیجیتال ADC برابر است با نسبت کار سیگنال PWM ،بنابراین ما کنترل موقعیت سرور در رابطه با نیروی وارد شده به سنسور را خواهیم داشت.

 

قطعات مورد نیاز کنترل موقعیت سروو موتور با آردوینو و سنسور نیرو :

آردوینوUno

منبع تغذیه ۵v

خازن ۱۰۰۰µF

سه عدد خازن ۱۰۰nF

مقاومت ۱۰۰KΩ

سروو موتور (SG90)

مقاومت ۲۲۰Ω

سنسور نیروی ُّFSR400،

 

شماتیک مدار  و طرز کار آن :

دیاگرام مدار برای کنترل سروو موتور به وسیله ی سنسور نیرو در شکل زیر نشان داده شده است.

کنترل موقعیت سروو موتور به وسیله ی سنسور نیرو

ولتاژ در سراسر سنسور کاملا خطی نیست و دارای نویز خواهد بود . برای فیلتر کردن این نویز ،یک خازن درمیان هر مقاومت  قرار می دهیم .اینجا ما ولتاژ تولید شده توسط تقسیم کننده را می گیریم (ولتاژی که نشان دهنده ی نیرو  به صورت خطی است) و آنرا به وسیله ی یکی از کانال هایADC (تبدیل آنالوگ به دیجیتال) آردینوuno تغذیه می کنیم . بعد از تبدیل ما این مقدار دیجیتالی  را می گیریم  و آنرابه جای مقدار PWM قرار می دهیم و این سیگنال PWM  را به موتور سروو ارائه می دهیم.

حال بیایید درباره ی کنترل سروو موتور صبحت کنیم .یکی از ویژگی های آردوینوی   Uno این است که ما بوسیله ی گرفتن مقدار درجه قادر به کنترل موقعیت سروو می کند. هماطور که گفتیم اگر بخواهیم سروو  را به زاویه ی ۳۰۰ ببریم  باید مستقیما مقدار  آنرا به برنامه بدهیم . فایل هدر سروو  از نسبت کاری محاسبه شده ی داخلی محافظت می کند. شما می توانید درباره ی کنترل سروو موتور در اینجا بیشتر یاد بگیرید. حال SG90 می تواند از ۰ تا ۱۸۰ درجه حرکت کند، ما نتیجه ADC (تبدیل آنالوگ به دیجیتال) ۱۰۲۴-۰ را داریم بنابراین ADC تقریبا ۶ برابر موقعیت سروو  موتور است.

دانلود کد برنامه کنترل موقعیت سروو موتور با آردوینو و سنسور نیرو:

دانلود فایل
#include <Servo.h> //header for controller servo

Servo servo; //keeping name of servo SERVO itself

int sensorvalue =0;

void setup()

{

            pinMode(A0,INPUT); //force sensor value input

            pinMode(3,OUTPUT); //PWM output to servo

            servo.attach(3); //telling where signal pin of servo attached(must be a PWM pin)

}

 

void loop()

{

            sensorvalue = analogRead(A0); //read analog value from sensor

            servo.write(sensorvalue/6); //set servo position based on ADC result

}

 

 

 

 

دیدگاه‌ها (0)

*
*