آموزش آردوینو پروژه های آردوینو

ساخت رادیو کنترل ۴ کانال با قابلیت میکس برای هواپیما — جلسه ی ۱

نوشته شده توسط حسین فهیمی

به نام خدا

در این مطلب قصد داریم به آموزش ماژول nRF24L01 با استفاده از آردوینو در کارگاه عملی دیجی اسپارک بپردازیم. با ما همراه باشید.

nRF24L01 ماژولی برای انتقال داده به صورت بی سیم می باشد و در مواردی مانند : هدست های بی سیم ،  کنسول های بازی مانند ps3   ، اتوماسین خانگی  ، سیستم های مسیر یاب مانند GPS و …. استفاده می شود. این ماژول در نوع آنتن دار و بدون آنتن ارائه میشود که برد آنتن دار ۱۱۰۰ متر و بدون آنتن آن ۱۰۰ متر می باشد. nRF24L01 ماژول یک ماژول بسیار عالی برای ارسال و دریافت اطلاعات بدون خطا می باشد در مقایسه با ماژول های HMTR  از امکانات بسیار بیشتری برخوردار می باشند.

 

 

مشخصات ماژول NRF24L01:

  • ولتاژ کاری : ۳٫۳ ولت
  • دیتاریت ۲ مگابیت بر ثانیه در فضای باز
  • دارای رگولاتور داخلی

 

 

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

 

 

در تصویر زیر نحوه ی اتصال پین ها را مشاهده می‌کنید.

آموزش راه اندازی nrf24l01 -دیجی اسپارک

پین های CE   و CSN میتوانند به هر پین دیجیتالی متصل شوند.

در برد آردوینو uno  پین های پرروتوکل spi به صورت زیر می باشند:

  • MOSI is connected to the digital pin 11
  • MISO is connected to the digital pin 12
  • SCK is connected to the digital pin 13

 

در برد آردوینو mega2560   پین های پروتکل spi  به صورت زیر می باشند:

  • MOSI is connected to the digital pin 51
  • MISO is connected to the digital pin 50
  • SCK is connected to the digital pin 52

 

ابتدا کتابخانه را از این لینک دانلود کنید و به نرم افزار اضافه کنید.

کد های فرستنده:

 

 

شماتیک جوی استیک ها :

New Bitmap Image

 

تا این جا فرستنده رو درست کردین و نوبت به گیرنده هست. در پست بعدی به ساخت گیرنده با آردوینو UNO می پردازیم….

 

درباره نویسنده

حسین فهیمی

تبادل نظر و رفع عیب با ثبت دیدگاه

۶۳ دیدگاه

  • سلام ماله من کار نکرد هر جوری کردم کار نکرد یه سوال اگه کتاب خونه نصب نباشه رنگ متنش تو آردوینو مشکی میوفته ؟

    • میتونید پست آقای قربانی در مورد راه اندازی NRF با آردوینو رو مطالعه کنید….
      در IDE آردوینو اگه کتابخانه ی ماژول نصب نباشه و شما از اون توابع استفاده کنید یا کتابخانه رو معرفی کنید ، در قسمت توضیحات –پایین IDE– ارور ناشناس و نصب نبودن کتابخانه رو میده

    • سلام. میتونید پست آقای قربانی —با موضوع راه اندازی nrf— رو مطالعه کنید. ماژولتون رو که تست کردید بعد یکسری کد ها رو اضافه کنید. نمونه کدها فرقی ندارن. خازن رو هم وسط تغزیه ی ماژول نصب کنید. از درست بودن ماژولتون حتما خبردار شین…

  • سلام.میشه به جای ۲۵۶۰ از همون اردوینو unoبرای فرستنده هم استفاده کرد؟؟ اگه میشه چ تغییراتی باید انجام داد.پیشاپیش ممنونم

    • با سلام
      ضمن تشکر از توجه شما، بله میتوانید استفاده کنید. فقط کافیست نوع برد را در تنظیمات تغییر دهید. پین‌های آنالوگ به کار رفته شده یکسان است.

  • با سلام ببخشید کتابخونه رو توی لینکی که گزاشتید نداره میشه یه لینک دانلود برای دانلود کتابخونه ها لطف کنید

    • با سلام
      برای دانلود کتابخانه پس از ورود به لینک مربوطه، روی تب دانلود کلیک کنید. فایل‌های مربوطه در همان جا هستند.

    • با سلام
      کاربر گرامی شماتیک به صورت تصویری در آموزش قرار دارد. لطفا جهت راهنمایی کامل اشکالات فنی را دقیق‌تر بیان کنید.

  • چرا کد ناقص هستش؟پس ادامش کجاست؟من هم کامپایل میکنم ارور میده لطفا کمک کنید مبخوام با ۲تا جوی استیک ۲تا سروو رو کنترل کنم ماژول هم nrf24l01+

    • با سلام
      ضمن تشکر از توجه شما، کدها بررسی شده‌اند. لطفا ارور دریافتی را جهت بررسی و راهنمایی از همین طریق ارسال کنید.

    • با سلام
      ضمن تشکر از توجه شما، بله میتوانید استفاده کنید. دقیقا برای همین منظور این آموزش را تولید و منتشر کردیم.

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

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

  • سلام دوباره.
    ۱-ایا در (فرستنده) دو برد اردینو استفاده شده است؟
    -اگر از دو برد استفاده شده لطفا لطفا و لطفا یک شماتیک کلی قرار دهید.یا ب ایمیل ارسال کنید. ممنون میشوم
    ۲- اگر از دو برد استفاده شده.ایا کد فرستنده رو باید به اردینو uno اپلود کنم؟

    ببخشید از سوالات ابتدایی استفاده کردم.(تازه کار هستم)

    • با سلام
      در فرستنده فقط از یک برد استفاده شده است. چون آردوینو است نیازی به شماتیک مدار نیست. تمامی اتصال پین‌ها در متن آموزش توضیح داده شده است که از ماژول به کدام پین آردوینو باید متصل شود. به عنوان مثال پایه MOSI در ماژول به پایه ۱۱ برد آردوینو متصل میشود.

  • سلام و خسته نباشید . مطلبتون عالی و مفید هست ولی خیلی بهتر می شه روش تست کردن و عکس یا فیلم از اتمام پروژه می زاشتین عالی می شد . پروژه بسیار کلی هستش.ممنون می شیم کاملش کنین.با تشکرات فراوان.

    • با سلام
      ضمن تشکر از توجه شما، فرموده شما صحیح است، این آموزش کلی است و نیاز به بخش بندی زیر مجموعه ها دارد. همانطور که میدانید آموزش زیاد است و تقاضای کاربران هم بیشتر، در صورت امکان آموزش مورد نظر شما را تولید و منتشر خواهیم کرد.

    • با سلام
      بله این رادیو براى این کار مناسب است. البته باید با توجه به نیازهاى کواد تعداد کانال رادیو را مشخص کنید.

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

  • سلام
    ببخشید میشه به جای مگا در دسته کنترلر از آدوینو نانو استفاده کرد؟ آخه ابعاد مگا خیلی بزرگه قیمتشم بالاتره.
    اگه از نانو استفاده کنیم، تفاوتی در کدها یا نحوه اتصال پین‌ها بوجود میاد یا نه؟
    سایتتون تکه. اغراق نمیکنما واقعا میگم.

    • با سلام
      ضمن تشکر از توجه شما، در درجه اول کدهای آردوینو قابل تبدیل به بردهای مختلف آردوینو هستند. بحث بعدی پایه‌های به کاربرده شده است، با توجه به اینکه در این آموزش از پایه‌های آنالوگ استفاده شده است، شما میتوانید بجای آردوینو Mega2560 از آردوینو Nano هم استفاده کنید.

  • سلام و خسته نباشد به همه دست اندرکاران این سایت عالی پین های CE و CSN میتوانند به هر پین دیجیتالی متصل شوند.مگه میشه به هر پین وصل بشه مگه داخل برنامه واسش پین مشخص نشده؟

  • سلام وقتتون بخیر
    در مورد پین های ce وcsn گفته شده که به هر پین دیجیتالی میتوان متصل کرد؛ اما در کامنت بالا گفتید بعد از اتصال باید پین ها را در برنامه آدرس دهی کرد؛ لطفا نحوه آدرس دهی این پین ها را میشه توضیح بدید. برای آدرس دهی دقیقا به کجای برنامه و چه دستوری رو باید اضافه کنم؟
    من تازه کار با آردوینو را آغاز کردم و مبتدی هستم! مدار این رادیوکنترل را بستم ، کُد ها بدون هیچ اروری کامپایل شدند . اما از مدار جواب نگرفتم!

    • با سلام
      ضمن تشکر از توجه و دقت شما، برای این موضوع کافیست پین‌های نامبرده را به پایه‌های ۷ و ۸ آردوینو Uno متصل کنید.

  • باسلام وتشکر از آموزش عالی و توضیح کاملتون
    میشه از سطر ۲۰ تا اخر(۶-۷ سطر آخر) رو یکبار توضیح بدید؟ مثلا چرا تو قسمت map اول به عنوان محدوده اول از ۵۱۲ تا ۱۰۲۳ استفاده کردیم ونه از صفر یا چرا میانگین ۲ و۳ رو تو ۴ ریختیم؟ چون خودم رو پروژه مشابه کار می کنم و خوشحال میشم اگه یکم توضیحش بدین

    • با سلام
      ضمن تشکر از توجه شما، تابع map بازه اى از اعداد را به عنوان ورودى میگیرد و اعداد دریافتى را به بازه مورد نظر ما تبدیل میکند.

  • سلام، برای چجوری بفهمیم ماژول nrf24l01 سالمه و نسوخته ؟؟
    چون من یکرادیو کنترل تک کاناله باهاش درست کردم کار میکرد ولی الان اصلا کار نمیکنه !!

    • با سلام
      ضمن تشکر از توجه شما، روش خاصی برای تشخیص سالم بودن ماژول وجود ندارد. کدهایی را که اولین بار تست کرده‌اید و جواب گرفتید را امتحان کنید.

  • باسلام و تشکر
    ۲ تا سوال داشتم
    ۱٫ توی کد ، CE و CSN ترتیبشون چجوریه ؟ کدوم یکی CE هست و کدومCSN ؟ ۸ یا ۵۳
    ۲٫ چرا از دستور sizeof استفاده کردیم ؟ و در این صورت مقدار دقیق متغیر ها هم ارسال می شود؟

    • با سلام
      ضمن تشکر از توجه شما، در مورد سوال ۱ باید به دیتاشیت NRF24L01 مراجعه کنید. همچنین از دیگر کاربران که در این زمینه تخصص کافی دارند، تقاضا دارم تا در این بحث شرکت کنند.
      ۲- این تابع مقادیر ورودی را به مقادیر قابل شمارش تبدیل می‌کند.

    • با سلام
      بنده این برنامه را ننوشته‌ام که بتوانم دقیق راهنمایی کنم، ولی این مربوط به مقادیر جوی استیک است که برای تحلیل دقیق‌تر باید به کتابخانه مراجعه کنید.

  • سلام ببخشید چند تا سوال دارم . میشه به جای اردینو ۲۵۶۰atmeg از uno استفاده کنم .و اگه هم بشه ماژول فرستنده به جای pin51,pin50,pin52 به کجا باید وصل کرد ?

  • با عرض سلام و خسته نباشید
    متاسفانه کتابخانه را نمیشه دانلود کرد.
    لطفا در صورت امکان بررسی شود.
    با تشکر

  • با سلام و خسته نباشید
    تبریک میگم بابت سایت پر محتوا و آموزنده شما
    یه سوالی برام پیش اومده. میشه از آردوینو نانو هم در فرستنده و هم گیرنده استفاده کرد؟ اگر امکان استفاده است با همین کدهایی که گذاشتید میشه کار کرد؟ با تشکر

    • با سلام
      ضمن تشکر از توجه شما، در خصوص اینکه بردهای مختلف آردوینو را بتوانید استفاده کنید باید پین‌ها را بررسی کنید در صورتی که برد دیگر بتواند پشتیبانی کند، بله میتوان استفاده کرد فقط در کدها به هنگام آپلود باید مشخص کنید.

  • ببخشید منظور شما مشخص کردن کدها هنگام آپلود یعنی انتخاب نوع ادرونیو در نرم افزار هستش یا نه باید توی برنامه نویسی تغییرات بدیم؟
    باتشکر

  • میشه این رادیو کنترل رو روی خوده پهباد نصب کرد و بهش جی پی اس وصل کرد تا خوده پهباد طبق مقصدی که بهش داده میشه یک مسیر رو پیدا کنه و بره برسه به مقصد؟

    • با سلام
      ضمن تشکر از توجه شما، این کار منطقی نیست. شما میتوانید روی پهپاد یک GPS قرار دهید و با استفاده از آن موقعیت پهپاد را مسیریابی کنید. این موضوع کاملا از رادیو کنترل مجزاست.

      • بله اما رادیو کنترل تنها تا یه بردی رو جواب میده اگه بخواد مسافت طولانی رو طی کنه و از برد رادیو کنترل خارج بشه دیگه از کنترل خارج میشه

        • سلام مجدد
          در این صورت نمی‌توانید فرمان از طریق پروتکل GPS ارسال کنید. بلکه می‌توانید از قبل برنامه ریزی کنید و مختصات جغرافیایی نقطه A و B را مشخص سپس از طریق ماژول GPS پهپاد موقعیت را تشخیص و ماموریت را اجرا می‌کند. دقت داشته باشید که ما درباره یک پهپاد معمولی صحبت نمی‌کنیم. چنین پهپادی بسیار پیچیده و ساخت آن نیاز به چندین تخصص دارد.

  • با سلام
    مرسی بابت مطالب مفید شما
    یه سوال دارم. چیزی درباره کدهای موتور هواپیما و نحوه نوشتن آنها چیزی ندیدم. ممنون میشم اگر راهنمایی کنید.