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

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 به نتیجه دلخواه می رسیم : دانلود فیلم
به امید خدا،دربخش بعدی، از پین های رسپری به عنوان ورودی استفاده خواهیم کرد.
جهت هر چه مستحکم تر شدن مقام ولایت فقیه و تعجیل درظهور بابای خوبمون مهدی(عج) صلوات

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

1) تعداد حروف فارسی از حروف غیر فارسی بیشتر باشه دیدگاه جفنگ/اسپم محسوب میشه.

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

3) برای گزاشتن کدهاتون از این سایت استفاده کنید : debian

  1. مهمان

    علی عزیزی

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

    1397/05/12
    12:29
    • نویسنده این مطلب

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

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

      1397/05/12
      08:16
      • مهمان

        علی

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

        1397/05/29
        07:00
  2. مدیر سایت

    مهدی دمرچیلو

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

    1395/06/29
    04:44
    • نویسنده این مطلب

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

      سلام
      code blocks
      gcc
      و…

      1395/06/29
      05:42
      • مدیر سایت

        مهدی دمرچیلو

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

        1395/06/29
        05:49
        • نویسنده این مطلب

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

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

          1395/06/29
          06:27
          • مدیر سایت

            مهدی دمرچیلو

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

            1395/06/29
            06:46
          • نویسنده این مطلب

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

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

            1395/06/29
            07:46
          • مهمان

            داود کوهزاد

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

            1395/07/09
            09:45
          • مدیر سایت

            مهدی دمرچیلو

            سلام good

            1395/07/09
            10:49