نمایش/عدم نمایش سایدبار
رفتن به بالای صفحه
آزادی حجاز از دست نااهلان
Avatar

pwm و راه اندازی سرو موتور در رزبری پای

pwm و راه اندازی سرو موتور در رزبری پای
pwm و راه اندازی سرو موتور در رزبری پای

قسمت اول : PWM

PWM مخفف مدولاسون عرض پالس هست.
خلاصه، میشه گفت که تولید یک موج مربعی با فرکانس و عرض پالس دلخواه رو PWM می گیم.
دو تا پارامتر در PWM مورد بحث هست. یکی فرکانس هست به معنی تعداد پالس در هر یک ثانیه و پارامتر بعدی هست به نام دیوتی سایکل ( که از این به بعد ما از مخففش استفاده می کنیم یعنی DC ) این DC رو با اون dc اشتباه نگیرید.
این مخفف Duty Cycle هست و اون مخفف Direct Current
 آموزش رزبری پای
مقدار DC به درصد،از فرمول زیر به دست میاد :
 رزبری پای
حالا میخوایم به مدت 10 ثانیه یک پالس مربعی با فرکانس 10 کیلوهرتز و مقدار DC=%20 رو روی پایه GPIO16 رسپری بسازیم.
ابتدا یک فایل با فرمت پایتون و نام دلخواه (مثلا pwm) می سازیم برای این کار در ترمینال تایپ می کنیم:

در صفحه باز شده، قطعه کد زیر رو وارد کنید (به بزرگ و کوچک بودن حروف دقت کنید) :

خط ششم از کد بالا، PWM رو با فرکانس 10 کیلو هرتز روی پایه GPIO16 تنظیم می کند.
خط هفتم از کد بالا، PWM رو با مقدار DC=20% راه اندازی می کند.
برای تغییر فرکانس و مقدار DC به ترتیب از دستورات زیر استفاده می کنیم:

به جای پارامتر freq  و dc باید مقدار مورد نظر رو قرار دهید.
بنده نتیجه کد بالا رو با مولتی متر چک کردم به جای 10 کیلو هرتز، 4.8 کیلوهرتز نشون میداد الان نمیدونم دعا کنم مولتی مترم سالم باشه یا رزبری پای ؟!!!
طبق نتایج اندازه گیری شده در لینک زیر، حداکثر مقدار فرکانس قابل دسترس پایه ها در نرم افزار پایتون، 75 کیلو هرتز می باشد. ولی اگر از کامپایلر C استفاده کنیم، تا 22مگاهرتز قابل تنظیم است.( البته آزمایش با کتابخانه های 4 سال پیش انجام شده )
http://codeandlife.com/2012/07/03/benchmarking-raspberry-pi-gpio-speed/
 

قسمت دوم : راه اندازی سرو موتور SG90

برای آشنایی با عملکرد سرو موتور، توضیحات کامل آقا مهدی رو بهتون بیشنهاد می کنم :
آموزش ساده راه اندازی سرو موتور SG92R با AVR
این هم از خلاصه دیتاشیت سروو موتور ما :
دیتاشیت سروو موتور
مداری مطابق شکل زیر ببنید :
پروژه رزبری پای
دیتاشیت میگه که فرکانس رو روی 50 هرتز تنظیم کن. برای ایستادن روی زاویه صفر، مقدار DC=7.5% باشه. برای ایستادن روی زاویه +90، مقدار DC=10% باشه و برای ایستادن روی زاویه -90،DC=5% باشه. اینا رو طبق همون فرمول بالا به دست آوردیم. ( اینا تقریبی هست و باید در عمل امتحان کرد و با سعی و خطا مقادیر درست رو به دست آورد. )
مثلا اگر بخوایم سروو به زاویه -90 بره و دو ثانیه وایسه بعدش به زاویه 0 بره و دو ثانیه وایسه و بعدش به زاویه +90 بره
ابتدا توسط ترمینال یه فایل جدید می سازیم:

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

طبق معمول Ctrl+x بعدش y و بعدش اینتر و بعدش تایپ کد زیر در ترمینال :

نتیجه کار رو در فیلم زیر می بینید یه دوربین رو روی سروو سوار کردم به امید خدا در جلسات بعد با ترکیب سروو و دوربین کار خواهیم کرد : دانلود فیلم
مشاهده می کنید که با مقادیر به دست آمده از دیتا شیت، روی زاویه دلخواه ما نمی ایسته. با تغییر مقادیر DC به 3 و 12 به جای 5 و 10 به نتیجه دلخواه می رسیم : دانلود فیلم
به امید خدا،دربخش بعدی، از پین های رسپری به عنوان ورودی استفاده خواهیم کرد.
جهت هر چه مستحکم تر شدن مقام ولایت فقیه و تعجیل درظهور بابای خوبمون مهدی(عج) صلوات

گروه پرسش و پاسخ الکترونیکی در سروش
تعداد مطالب : 29 تا
Avatar دانش آموخته (فارغ التحصیل سابق) کارشناسی الکترونیک هستم. سه سال اول دانشگاه رو به نحو احسن هدر دادم رفت!! تا پایان ترم هفتم داشتم فکر می کردم که چی کار کنم و چی کار نکنم؟ ترم هشتم اساتید خوبی داشتم و تصمیم گرفتم،یه تکونی به خودم بدم. الان هم در حال یاد گیری علایقم هستم...
ارسال دیدگاه
11

1) نظرات غیر فارسی به صورت خودکار حذف میشوند ( حداقل 5 حرف فارسی وارد کنید ).

2) به موارد درخواست پروژه/کد آماده و سوالاتی که بلد نباشم پاسخ داده نمیشه.

3) برای گزاشتن کدهاتون از این سایت استفاده کنید ( طبیعتا لینک کدتون رو باید برای من بفرستید! ) : debian

4) پسورد فایل های سایت : www.dmf313.ir

  1. Avatar

    مهمان

    علی عزیزی

    سلام
    مظابتان همیشه عالی. فقط امکان داره کد بالا رو با زبان c نوشت؟

    • Avatar

      نویسنده این مطلب

      محمدرضا اسلامی

      سلام
      اول مطلب زیر رو بررسی بفرمایید
      کوادکوپتر قسمت۱

      • Avatar

        مهمان

        علی

        خیلی ممنونم عالی بود. یا علی

  2. مهدی دمرچیلو

    مدیر سایت

    مهدی دمرچیلو

    اسم کامپایلر C تو رزبری پای چیه؟

    • Avatar

      نویسنده این مطلب

      محمدرضا اسلامی

      سلام
      code blocks
      gcc
      و…

      • مهدی دمرچیلو

        مدیر سایت

        مهدی دمرچیلو

        خب داچ برو سمت C دیگه cry

        • Avatar

          نویسنده این مطلب

          محمدرضا اسلامی

          برای شروع سعی می کنم یه مطلب کوتاه بذارم.آخه تازه با پایتون آشنا شدم. دلم نمیاد ازش دل بکنم.خیلی روونه …

          • مهدی دمرچیلو

            مدیر سایت

            مهدی دمرچیلو

            خداییش بین این c و پایتون که الان باید با جفتش کار کرده باشی کدومش بهتره؟ سی بهتره دیگه داش laugh آخه پایتون چی داره

          • Avatar

            نویسنده این مطلب

            محمدرضا اسلامی

            قطعا c بهتره هم سریعتره هم … ولی پایتون به هیچ کدی که تا حالا نوشتم نه نگفته… به امید خدامطالب GPIO با پایتون رو که تموم کردم،یه سری هم به c می زنم.

          • Avatar

            مهمان

            داود کوهزاد

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

          • مهدی دمرچیلو

            مدیر سایت

            مهدی دمرچیلو

            سلام good