اطلاعیه

Collapse
No announcement yet.

[آموزش]راه اندازی ماژول +nRF24L01

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    #16
    پاسخ : راه اندازی ماژول +nRF24L01

    نوشته اصلی توسط ShahiMV
    سلام
    اگه 10 تا از این ماژول ها رو داشته باشیم و همه اونها در آن واحد بخوان اطلاعات رو بفرستن از چه ترفندی باید استفاده کنیم

    مثلا 10 تا ماشین کنترلی داریم که با هم دارن مسابقه میدن و برای ارتباط بین کنترل و ماشین از این ماژول ها استفاده میکنیم
    ریموت ها باید هر لحظه اطلاعات مربوط به حرکت و جهت رو بفرستن (همه اون 10 تا با هم)

    چیکار کنیم تداخل پیش نیاد
    چجوری ریموتها بفهمن خط خالیه و اطلاعات خودشون رو بفرستن ؟؟؟؟؟
    طبق دیتاشیتی که آقای ایمانی فر گذاشتن جوابتون رو میدم: (همون که 78 صفحه ست)
    صفحه ی 15 رو نگاه کنید: Table 5 چیزی داره به نام Frequency Deviation
    کسایی که مخابرات پاس کردن یا کار کردن، در مدولاتورها با این واژه آشنا هستن!
    به معنیه انحراف فرکانسیه! و از این قابلیت استفاده میشه برای
    ایجاد چندین پهنای باند کوچیک در محدوده ی فرکانس مدولاتور!
    باید کمی بیشتر توضیح بدم. با مثال:
    فرض کنیم یک فرستنده داریم در فرکانس مرکزی 2.4 گیگ!
    اما زمانی که دیتاشیتش رو میبینیم، متوجه میشیم که در محدوده ی 2.3 تا 2.5 کار میکنه (مثلا)
    یعنی قابلیت اینو داره تا فرکانس مرکزیش بین 2.3 تا 2.5 گیگ تغییر کنه!
    در برخی از فرستنده ها، این مقدار به کمک دست قابل تنظیمه (مثلا یک ولوم داره- مث رادیو)
    در برخی از فرستنده ها (مثل همین ماژول) قابل برنامه ریزیه مثلا توسط میکرو.
    اما خب نکته ی بعدی رو باید بگم تا بتونم نتیجه بگیرم:
    وقتی که داده ای رو میفرستیم، خود داده ی اصلی ما یک پهنای باندی داره!
    مثلا صوت پهنای باندش 20 کیلوهرتزه (خیلی ایده آل گفتم)
    یا مثلا تصویر تلویزیون حدود 5.5 مگ.
    حالا فرض میکنیم یک داده ای رو میخوایم بفرستیم که پهنای باندش 1 مگاهرتزه.
    و فرض میکنیم (دقت کنید، دارم فرض میکنم، در عمل شاید چنین نباشه در خیلی از موارد)
    بعد از اینکه داده ی اصلی مدوله شد (یعنی سوار یک سیگنال حامل با فرکاس مرکزی مثلا 2.36 گیگ شد)
    پهنای باندش میشه 2 مگا هرتز.
    یعنی اینکه در این مثال:
    اگه فرکانس مرکزی ما 2.36 گیگ ( یا 2360 مگ) باشه
    و پهنای باند سیگنال مدوله شده 2 مگ باشه
    برای دریافت این سیگنال در گیرنده
    باید فیلتری با پهنای باند 2 مگ، بین 2359 مگ تا 2361 مگ داشته باشیم
    (فرکانس قطع بالا و پایین فیلتر رو گفتم)
    این تصویر رو به عنوان نمونه ببینید:

    از 0 تا 16 کیلوهرتز رو به 4 قسمت با 4 فرکانس مرکزی تقسیم کرده
    (ادامه دارد انشالله...)
    1: اللهم صل علي محمد و آل محمد و عجل فرجهم و ...
    2: دانش بهتره يا ثروت؟ بدون شعور هيچکدوم!
    3: دلا معاش چنان کن که گر بلغزد پاي *** فرشته‌ات به دو دست دعا نگه دارد (حافظ)

    دیدگاه


      #17
      پاسخ : راه اندازی ماژول +nRF24L01

      خب دیدیم که معمولا یک پهنای باند رو میان به چند زیر باند تقسیم میکنن
      مثلا پهنای باند 2.3 گیگ تا 2.5 گیگ میشه 0.2 گیگ (200 مگا هرتز)
      و اگه پهنای باند سیگنال مدوله شده 2 مگ باشه
      200 تقسیم بر 2 میشه 100، یعنی 100 تا کانال مجزا داریم!
      حالا برای دسترسی به این 100 کانال یا از شیوه ی آنالوگ استفاده میشه
      یا از شیوه ی دیجیتال!
      در اینجا (این ماژول) قابل برنامه ریزیه!
      و پهنای باند سیگنال بستگی به سرعت ارسال داده ها،کمتر از 1 مگ، 1 مگ و 2 مگه.
      خب.
      در همون دیتاشیت در صفحه ی 15 جدول 6 هم اطلاعات خوبی داره.
      صفحه ی 25 قسمت 6.3 رو هم یک نگاهی بندازیم:
      The RF channel frequency is set by the RF_CH register according to the following formula:
      F0= 2400 + RF_CH [MHz]
      صفحه 58 قسمت RF Channel رو نگاه کنید: از 7 بیت برای انتخاب کانال میشه استفاده کرد
      2 به توان 7 میشه 128 یعنی 128 کانال مختلف قابل تنظیمه!
      یعنی ما میتونیم حدود (چرا حدود؟) 128 جفت ماژول مختلف رو با هم هم زمان راه اندازی کنیم
      طوری که در کار هم تداخل نداشته باشن!


      برای اطلاعات بیشتر تاپیک زیر رو مطالعه نمایید:
      http://www.eca.ir/forum2/index.php?topic=82194
      به صورت سوال جوابه بیشتر. حدود 8 صفحه ...

      اضافه شده در تاریخ :
      آهان! یه نکته رو باید اشاره میکردم:
      به شدت توجه کنید که:
      هم فرستنده و هم گیرنده در یک کانال تنظیم شده باشن!
      یعنی فرستنده و گیرنده ای که میخوان با هم ارتباط داشته باشن
      باید در یک کانال باشن!
      ( عبارت RF_CH رو در دیتاشیت جستجو کنید)
      1: اللهم صل علي محمد و آل محمد و عجل فرجهم و ...
      2: دانش بهتره يا ثروت؟ بدون شعور هيچکدوم!
      3: دلا معاش چنان کن که گر بلغزد پاي *** فرشته‌ات به دو دست دعا نگه دارد (حافظ)

      دیدگاه


        #18
        پاسخ : راه اندازی ماژول +nRF24L01

        سلام به همگی
        مثله این که چند نفری نتونستن از برنامه جواب بگیرن.
        والا خود من که راحت جواب گرفتم و چند باری هم تست کردم و راحت جواب داده.
        اگه کسی بسته مدارو و جواب گرفته اینجا بگه و نکاتی هم که در حین راه اندازی بهش برخورده رو اعلام کنه شاید بعضی از نکات از نظر من بدیهی بوده و اشاره نکرده باشم
        من خودمم مجددا بررسی میکنم ایشالا که بتونم مشکل رو بر طرف کنم
        با تشکر از همگی
        زندگی یعنی امید و حرکت
        کارهایتان را آغاز کنید، توانایی انجام دادنش را بدست خواهید آورد
        سؤالاتی که در انجمن قابل طرح شدن هستند در پیام خصوصی جواب داده نمی شود.
        برای تشکر از دکمه تشکر کنار هر پست استفاده کنید، پست هایی که فقط حاوی تشکر هستند پاک می شوند.
        به دلیل کار بر روی پایاننامه و دفاع، مدتی نیستم!

        دیدگاه


          #19
          پاسخ : راه اندازی ماژول +nRF24L01

          نوشته اصلی توسط atrak
          سلام
          یک سوال داشتم از برنامه ای که برای راه اندازی این برد آماده کرده اید
          برنامه شما با کریستال 8 کار می کنه
          اگر فرکانس 16 باشد ایا در دستورات تنظیمی ارسالی به مازول nrf24 تفاوتی ایجاد می شود ؟ کدام دستورها ؟

          متشکرم
          سلام
          برنامه با 8 مگ کار میکنه و من از RC داخلی استفاده کردم
          تنها جایی که تایمینگ داریم قسمت SPI هست و چون میکرو مستر هست و خودش کلاک تولید میکنه و ماژول هم تابع کلاک تولیدی توسط میکرو هست اگه 8 بشه 16 فک کنم سرعت SPI دو برابر بشه ولی با توجه به این که ماژول کلاکشو از میکرو میگیره بازم مشکلی نیست و باید به صورت صحیح کار کنه
          زندگی یعنی امید و حرکت
          کارهایتان را آغاز کنید، توانایی انجام دادنش را بدست خواهید آورد
          سؤالاتی که در انجمن قابل طرح شدن هستند در پیام خصوصی جواب داده نمی شود.
          برای تشکر از دکمه تشکر کنار هر پست استفاده کنید، پست هایی که فقط حاوی تشکر هستند پاک می شوند.
          به دلیل کار بر روی پایاننامه و دفاع، مدتی نیستم!

          دیدگاه


            #20
            پاسخ : راه اندازی ماژول +nRF24L01

            سلام.
            (داخل پرانتز: صندوق پستیتون پر بود، آقای ایمانی فر. پاسخم نرسید.)
            با اینکه خودم تا حالا با این ماژول کار نکردم (قرار بود، اما نشد)
            اما حرف آقای ایمانی فر برای ما حجته. یعنی وقتی ایشون بگن که جواب گرفتن، قبوله
            یه تجربه بگم:
            خودمون با RFM12 همین مشکلو داشتیم!
            بعد از مدت ها تونسته بودیم برنامه ش رو بنویسیم (قدیما)
            اونم به کمک یک سایت آلمانی! با کمی تغییرات!
            تازه نقشه مدار هم نداشت! خودمون بسته بودیم!
            حدود یک هفته طول کشید تا راه افتاد!
            هر بار که مدار رو چک میکردیم (یا برنامه رو) (یا دیتاشیت رو)
            میدیدیم یه سوتی کوچولو دادیم!
            اما بالاخره راه افتاد!
            هیچوقت یادم نمیره اولین باری که داده ارسال کردیم. چقدر ذوق زده شده بودیم :nice:
            ...
            به دوستان توصیه میکنم با صبر و حوصله پیش برن
            و چون برخی از دوستای دیگه جواب گرفتن
            بقیه هم مطمئن باشن با دقت، جواب خواهند گرفت...
            1: اللهم صل علي محمد و آل محمد و عجل فرجهم و ...
            2: دانش بهتره يا ثروت؟ بدون شعور هيچکدوم!
            3: دلا معاش چنان کن که گر بلغزد پاي *** فرشته‌ات به دو دست دعا نگه دارد (حافظ)

            دیدگاه


              #21
              پاسخ : راه اندازی ماژول +nRF24L01

              سلام
              خسته نباشید
              سرعت SPI را روی 1 مگ تنظیم کردم . فرستنده کار می کنه . خروجی پایه وقفه را هم نگاه کردم . در فرستنده مشکلی نداره و کار می کنه . اما گیرنده هیچ عملی انجام نمی دهد .
              پایه وقفه را با دستگاه نکاه کردم ، هیچ وقفه ای توسط ماژول NRF تولید نمی شود . تنیظیمات ماژول های فرستنده / گیرنده را بررسی کردم و یکسان است .

              اگر موردی به نظرتان می رسد لطف بفرمائید .

              متشکرم

              دیدگاه


                #22
                پاسخ : راه اندازی ماژول +nRF24L01

                من هم همین مشکل رو دارم گیرنده توی وقفه نمیره و برنامه قفل میکنه .

                دیدگاه


                  #23
                  پاسخ : راه اندازی ماژول +nRF24L01

                  دوستان من هر چه میکنم جواب میده حتی دیتای ارسالی رو هم تغییر دادم بازم کار کرد.
                  پایه اینتراپت گیرنده هم یه LED گذاشتم اصلا خبری نیست ولی توی خود تابع با LCD متن نمایش میدم و میاد پس معلومه که وارد تابع وقفه میشه.
                  هر کی مدار بسته از مدارش عکس واضح بگیره و با توضیحات کامل توی یه پست بزاره تا بررسی کنیم ببینیم مشکل از کجاست.
                  من مدارو دو سه بار بستم و باز کردم ولی بازم جواب میده
                  منتظرم پستاتون هستم
                  زندگی یعنی امید و حرکت
                  کارهایتان را آغاز کنید، توانایی انجام دادنش را بدست خواهید آورد
                  سؤالاتی که در انجمن قابل طرح شدن هستند در پیام خصوصی جواب داده نمی شود.
                  برای تشکر از دکمه تشکر کنار هر پست استفاده کنید، پست هایی که فقط حاوی تشکر هستند پاک می شوند.
                  به دلیل کار بر روی پایاننامه و دفاع، مدتی نیستم!

                  دیدگاه


                    #24
                    پاسخ : پاسخ : راه اندازی ماژول +nRF24L01

                    نوشته اصلی توسط علی ایمانی فر
                    سلام
                    برنامه با 8 مگ کار میکنه و من از RC داخلی استفاده کردم
                    تنها جایی که تایمینگ داریم قسمت SPI هست و چون میکرو مستر هست و خودش کلاک تولید میکنه و ماژول هم تابع کلاک تولیدی توسط میکرو هست اگه 8 بشه 16 فک کنم سرعت SPI دو برابر بشه ولی با توجه به این که ماژول کلاکشو از میکرو میگیره بازم مشکلی نیست و باید به صورت صحیح کار کنه
                    خب باید بگم که کاملا درست فکر میکردم :mrgreen:
                    من مدارو با RC داخلی 4MHz تست کردم (فرستنده 4MHz و گیرنده 8MHz) و مدار کاملا جواب داد. فقط چون تنظیمات اولیه روی 8MHz بود تابع delay تاخیرش دو برابر میشه که توی عملکرد اصلا مهم نیست :biggrin:
                    فقط نمیدونم بچه ها چرا جواب نمیگیرن :sad:
                    زندگی یعنی امید و حرکت
                    کارهایتان را آغاز کنید، توانایی انجام دادنش را بدست خواهید آورد
                    سؤالاتی که در انجمن قابل طرح شدن هستند در پیام خصوصی جواب داده نمی شود.
                    برای تشکر از دکمه تشکر کنار هر پست استفاده کنید، پست هایی که فقط حاوی تشکر هستند پاک می شوند.
                    به دلیل کار بر روی پایاننامه و دفاع، مدتی نیستم!

                    دیدگاه


                      #25
                      پاسخ : راه اندازی ماژول +nRF24L01

                      نوشته اصلی توسط کیوان قاسمی
                      بردش 100متره یا 1000 ؟؟
                      توی توضیحات نوشته : 250Kb rate (Open area): 1000m
                      من گفتم که دیگه جا نداشتم وگرنه فاصله رو بیشتر میکردم. آخه تو سالن خابگاه هستم :mrgreen: و از این سر تا اون سرش حدود 140 متره. از اتاق ما تا یه سرش حدود 97 متره و من نتونستم از این بیشتر فاصله بگیرم. برای متر کردن هم سنگای کف سالن رو که 40*40 هست شمردم :biggrin:
                      امکاناتم از این بیشتر نیست دیگه :rolleyes:
                      زندگی یعنی امید و حرکت
                      کارهایتان را آغاز کنید، توانایی انجام دادنش را بدست خواهید آورد
                      سؤالاتی که در انجمن قابل طرح شدن هستند در پیام خصوصی جواب داده نمی شود.
                      برای تشکر از دکمه تشکر کنار هر پست استفاده کنید، پست هایی که فقط حاوی تشکر هستند پاک می شوند.
                      به دلیل کار بر روی پایاننامه و دفاع، مدتی نیستم!

                      دیدگاه


                        #26
                        پاسخ : راه اندازی ماژول +nRF24L01

                        سلام
                        من برنامه های فرستنده / گیرنده را در کد ویژن نوشتم . پردازنده استفاده شده در فرستنده mega 128 و پردازنده گیرنده Mega 64 . (فرق زیادی ندارند) در واقع دوتا برد آماده برای یک پروژه دارم که روی همین دو تا برد دارم آزمایش می کنم .
                        در برنامه فرستنده یک پایه برای CE و یک پایه برای CSN تعریف کردم و پایه های SPI همان پایه های پردازنده است .
                        یک پایه هم برای LED تعریف کردم . از اینتراپت 7 در فرستنده استفاده کردم و برنامه (اینتراپت 2 ) را در آن قرار دادم . تنظیمات رجیستر مربوط به وقفه 7 را هم نوشتم

                        در برنامه گیرنده هم یک پایه برای CE و پایه های سخت افزاری SPI را استفاده کردم
                        از اینتراپت 6 استفاده کردم و کد را در آن قرار دادم .
                        یک LED هم تعریف کردم .
                        فرستنده کار می کند و پایه وقفه فعال می شود . (با دستگاه لاجیک آنالایزر دیدم )
                        پایه وقفه گیرنده هیچ تغییری نمی کند . (با لاجیک آنالایزر گرفتم ) و هیچ اطلاعاتی دریافت نمی شود . LED فرستنده روشن / خاموش می شود اما LED گیرنده نه .
                        برنامه فرستنده و گیرنده را عوض کردم و بازهم فرستنده کار می کند و گیرنده کار نمی کند .
                        ماژول فرستنده و گیرنده هر دو از یک مدل است و بدون آنتن خارجی و از سایت ECA خریداری کردم .

                        متشکرم

                        دیدگاه


                          #27
                          پاسخ : راه اندازی ماژول +nRF24L01

                          نوشته اصلی توسط atrak
                          سلام
                          من برنامه های فرستنده / گیرنده را در کد ویژن نوشتم . پردازنده استفاده شده در فرستنده mega 128 و پردازنده گیرنده Mega 64 . (فرق زیادی ندارند) در واقع دوتا برد آماده برای یک پروژه دارم که روی همین دو تا برد دارم آزمایش می کنم .
                          در برنامه فرستنده یک پایه برای CE و یک پایه برای CSN تعریف کردم و پایه های SPI همان پایه های پردازنده است .
                          یک پایه هم برای LED تعریف کردم . از اینتراپت 7 در فرستنده استفاده کردم و برنامه (اینتراپت 2 ) را در آن قرار دادم . تنظیمات رجیستر مربوط به وقفه 7 را هم نوشتم

                          در برنامه گیرنده هم یک پایه برای CE و پایه های سخت افزاری SPI را استفاده کردم
                          از اینتراپت 6 استفاده کردم و کد را در آن قرار دادم .
                          یک LED هم تعریف کردم .
                          فرستنده کار می کند و پایه وقفه فعال می شود . (با دستگاه لاجیک آنالایزر دیدم )
                          پایه وقفه گیرنده هیچ تغییری نمی کند . (با لاجیک آنالایزر گرفتم ) و هیچ اطلاعاتی دریافت نمی شود . LED فرستنده روشن / خاموش می شود اما LED گیرنده نه .
                          برنامه فرستنده و گیرنده را عوض کردم و بازهم فرستنده کار می کند و گیرنده کار نمی کند .
                          ماژول فرستنده و گیرنده هر دو از یک مدل است و بدون آنتن خارجی و از سایت ECA خریداری کردم .

                          متشکرم
                          یک پایه برای یک LED دیگه توی گیرنده تعریف کن و توی وقفه مربوط به گیرنده روشنش کن
                          میخام بدونیم وارد وقفه میشه؟
                          من با LED پایه وقفه رو چک کردم (البته میدونم شاید با چشم یک پالس ظریف قابل رصد نباشه ولی خب از هیچی بهتره) هیچ عکس العملی نداشت ولی توی تابع وقفه یه متن در حال پدیت شدن گذاشتم و مدادم پدیت میشه و روی LCD نمایش داده میشه و بنابراین وارد وقفه میشه
                          شما این کارو کن خبرشو بهم بده
                          چندتا عکس واضح هم از قسمتای مختلف مدارت بزار ببینم
                          زندگی یعنی امید و حرکت
                          کارهایتان را آغاز کنید، توانایی انجام دادنش را بدست خواهید آورد
                          سؤالاتی که در انجمن قابل طرح شدن هستند در پیام خصوصی جواب داده نمی شود.
                          برای تشکر از دکمه تشکر کنار هر پست استفاده کنید، پست هایی که فقط حاوی تشکر هستند پاک می شوند.
                          به دلیل کار بر روی پایاننامه و دفاع، مدتی نیستم!

                          دیدگاه


                            #28
                            پاسخ : راه اندازی ماژول +nRF24L01

                            سلام
                            خیلی ممنون از جوابتون
                            قبلا اینکار را کردم و LED را در روتین وقفه گذاشتم اما تفاوتی نمی کنه
                            سرعت ارسال را هم هر 0.5 ثانیه گذاشتم
                            مدارم روی برد بورد نیست . PCB آماده دارم که آی سی ها روش نصب بوده و من فقط پایه های اضافی مورد لزوم را با سیم لحیم کردم و به یک IDC متصل کردم و با کابل آماده به ماژول وصل کردم .
                            تغییرات برنامه را نسبت به برنامه شما می گذارم :
                            کد:
                            [left]#define CE 	PORTE.5
                            #define CSN 	PORTB.0
                            #define LED1  	PORTD.7
                            --------------------------------------------------------
                            
                            
                            PORTB=0x00;
                            DDRB=0x07;
                             
                            PORTE=0x20;
                            DDRE=0x20;
                            
                              CSN = 1; 
                              CE = 0;
                              
                            // External Interrupt(s) initialization
                            // INT0: Off
                            // INT1: Off
                            // INT2: Off
                            // INT3: Off
                            // INT4: Off
                            // INT5: Off
                            // INT6: Off
                            // INT7: On
                            // INT7 Mode: Falling Edge
                            EICRA=0x00;
                            EICRB=0x80;
                            EIMSK=0x80;
                            EIFR=0x80; 
                            
                              // External Interrupt(s) initialization
                              // INT0: Off
                              // INT1: Off
                              // INT2: On
                              // INT2 Mode: Falling Edge
                            //  GICR|=0x20;
                            //  MCUCR=0x00;
                            //  MCUCSR=0x00;
                            //  GIFR=0x20;
                              
                            // SPI initialization
                            // SPI Type: Master
                            // SPI Clock Rate: 1000.000 kHz @ 16MHZ crystal
                            // SPI Clock Phase: Cycle Start
                            // SPI Clock Polarity: Low
                            // SPI Data Order: MSB First
                            SPCR=0x51;
                            SPSR=0x00; 
                             
                              // SPI initialization
                              // SPI Type: Master
                              // SPI Clock Rate: 2000.000 kHz
                              // SPI Clock Phase: Cycle Start
                              // SPI Clock Polarity: Low
                              // SPI Data Order: MSB First
                            //  SPCR=0x50;
                            //  SPSR=0x00;
                            
                              
                              #asm("sei")
                            
                            [/left]
                            
                            متشکرم

                            دیدگاه


                              #29
                              پاسخ : راه اندازی ماژول +nRF24L01

                              تنظیماتتون که درسته
                              ای کاش میتونستید اول با مگا 32 تست کنید بعد تغییرش میدادین.
                              آخه من مگاه 64و128 ندارم که خودمم تست کنم
                              زندگی یعنی امید و حرکت
                              کارهایتان را آغاز کنید، توانایی انجام دادنش را بدست خواهید آورد
                              سؤالاتی که در انجمن قابل طرح شدن هستند در پیام خصوصی جواب داده نمی شود.
                              برای تشکر از دکمه تشکر کنار هر پست استفاده کنید، پست هایی که فقط حاوی تشکر هستند پاک می شوند.
                              به دلیل کار بر روی پایاننامه و دفاع، مدتی نیستم!

                              دیدگاه


                                #30
                                پاسخ : راه اندازی ماژول +nRF24L01

                                سلام
                                دلیلی بر جواب ندادن نیست . اما اگر فکر میکنید که با مگا 32 جواب می ده ، باشه یک مدار برای فرستنده با مگا32 می بندم .
                                یک PCB دارم که مگا 32 نسخه SMD روش هست از همون استفاده می کنم . کلاکش هم 8 هست .
                                اگر فرستنده کلاکش 16 باشه و گیرنده کلاکش 8 موردی بوجود نخواهد آمد که ؟ البته قاعدتا نباید مشکلی باشد چون فرکانس ارسال SPI که تنظیم می شود . تاخیرها هم که فیکس هستند .

                                متشکرم

                                دیدگاه

                                لطفا صبر کنید...
                                X