اطلاعیه

Collapse
No announcement yet.

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

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

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

    سلام به همه ی دوستان عزیز سوال در مورد nrfداشتم شما فرض کنین میخوام یه رشته رو که متشکل از ۶۴ تا کاراکتر هست رو با nrfبه یه میکروی دیگه بفرستم چون بیشتر از ۳۲ بایت رو نمیتونیم تو یه دفعه ارسال کنیم من میام دو بار ۳۲بایت میفرستم
    char data[64];
    send_data(32,&data[0]);
    send_data(32,&data[32]);
    خب حالا مشکل اینجاس که من نمیدونم طرف گیرنده چطوری اینارو تو یه ارایه ذخیره کنم اگه ممکنه کمی توضیح بدین ممنون
    جدیدترین ویرایش توسط 313mahdifaraji; ۰۱:۲۰ ۱۳۹۶/۰۶/۱۰.
    یا راهی خواهم یافت یا راهی خواهم ساخت

    دیدگاه


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

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

      دیدگاه


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

        سلام روشی که شما کار میکیردین صحیح بنظر میرسه آیا به نتیجه رسیدین؟؟

        دلیل: ادغام دو پست برای جلوگیری از اسپم

        نوشته اصلی توسط m.maazi نمایش پست ها
        سلام دوستان.
        من تازه وارد انجمن شدم و راستشو بخاین تازه وارد علم الکترونیک شدم و مبتدی هستم.
        اما تو این مدت کوتاه علاقه شدیدی بهش پیدا کردم و دوست دارم اینجا از شما مطالب جدید و مفید یاد بگیرم.
        یه سوال در مورد این ماژول داشتم. کتابخونه ماژول دستور ارسال اطلاعات رو با این فانکشن اجرا میکنه:
        Send_Data(char num , char *data)
        من توضیحات قبلی رو خوندم ولی هنوز متوجه نشدم که ارگومان num چه کاربردی داره و چه نیازی بهش هست.
        در ضمن ظاهرا ماژول قابلیت ارسال با 6 پایپ رو داره. اگر راهنمایی بفرمایید که چجوری پایپ رو عوض کنم، ممنون میشم.
        هدف کلی من شبکه کردن چند ماژول بعنوان سنسور و یه ماژول بعنوان نمایشگر هستش. منظورم شبکه ستاره ای هست و نمایشگر وسط شبکه قرار میگیره.
        تعداد فرستنده ها بیشتر از 6 هست.
        کاری که من کردم این بود که برای هر سنسور یه آیدی تعریف کردم و روی حالت گیرنده گذاشتم. نمایشگر رو هم طوری برنامه ریزی کردم که به ترتیب این آیدی ها رو بفرسته و منتظر جواب بمونه (گیرنده بشه) . از اونجایی که همه سنسورها گیرنده هستن، همگی اطلاعات فرستاده شده توسط نمایشگر رو میخونن و با مقایسه اون با آیدی خودشون، در صورت انطباق آیدی، مقدار سنسور رو به نمایشگر میفرستن و دوباره به حالت گیرنده میرن. نمایشگر هم اطلاعات مربوط به آیدی ارسالی رو دریافت میکنه و همین چرخه برای آیدی های بعدی تکرار میشه.
        مشکلی که هست اینه که اطلاعات به دلایلی با هم تداخل دارن و با در نظر گرفتن فاصله زمانی برای هر چرخه باز هم مشکل حل نشد.
        شما راه حلی براش سراغ دارید؟ یا اگر راه بهتر و اصولی تری برای شبکه کردن این تعداد سنسور و گیرنده سراغ دارید، ممنون میشم راهنمایی بفرمایید.
        در ضمن من با میکرو کنترلر کار میکنم و دسترسی به بردهای توسعه ندارم.
        بازم ممنون

        روش شما کاملا منطقی هستش اشکال از کجا بود؟

        دیدگاه


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

          دوستان نحوه استفاه از وقفه توی nrf به چه شکلیه میشه یه توضیحی بدید من خیلی گیج شدم

          دیدگاه


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

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

            دیدگاه


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

              و بنظر میرسه که خیلی از لینک ها نیاز به بارگذاری مجدد دارند. چون پست اول فایل ها ی تکراری قرار دادند و در ادامه هم در مورد یدیتشیت فارسی نام بردند که من ندیدم

              دیدگاه


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

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

                دیدگاه


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

                  نوشته اصلی توسط armanil74 نمایش پست ها
                  سلام.میخوام با استفاده از این ماژول البته بی سیمش با اندروید ارتباط برقرار کنم.ایا امکانش هست؟
                  سلام
                  خیر ، درسته این ماژول تو فرکانس 2.4 گیگ هست اما امکان برقراری ارتباط با گوشی نیست
                  شما باید از ماژولهای بلوتوث و وایفای استفاده کنید

                  دیدگاه


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

                    نوشته اصلی توسط mohammadh1387 نمایش پست ها
                    سلام به همه دوستان
                    خیلی وقت هست که از این ماژول دارم استفاده میکنم. الان دارم روی یک پروژه کار میکنم که تعداد چند تا از این ماژول ها باید دیتا رو به یک BaseStation بفرستن. برای تفکیک هر Node، من از یک کانال دارم استفاده میکنم. شماره هرکانال مختص یک نود هست و BaseStation با انتخاب کانال، نود مورد نظر رو عوض میکنه. اوایل کار من نرخ ارسال رو روی 2Mbps گذاشته بودم. یک مشکل عجیی که برخوردم این بود که توی بعضی ازکانال هایی که حتی توشون هیچ فرستنده ای نبود دیتا دریافت میکردم :eek: !!!!!! متوجه شدم که سرعت تعویض کانال خیلی تاثر داره و با کم کردن اون وضع بهتر شد ولی باز هم مشکل پابرجا بود. مثلا اوایل هر 3-4 بار یک بار این اتفاق میافتاد ولی بعدش هر 10-15 بار. بعد متوجه شدم که نرخ ارسال زیاد هست و با کم کردن اون) تونستم این خطا رو خیلی کم کنم. ولی مشکل این هست که هنوز این اتفاق میفته! مثلا از هر 40-50 تا ارسال یک بار روی کانالی که هیچ فرستنده ایی قرار نداره دیتا دریافت میکنم! کسی تاحالا به همچین مشکلی برخورده؟؟؟ الان من بین تعویض هر کانال 500 میلی ثانیه تاخیر گذاشتم. توجه کنید اگر مثلا این تاخیر رو به 5 ثانیه برسونم تقریبا مشکل حل میشه ولی از اونجا که ممکنه 100 تا فرستنده داشته باشم برای دریافت دیتا کل شبکه چیزی حدود 500 ثانیه طول میکشه! که اصلا درست نیست! همین 500 میلی ثانیه هم زیاده! اگر کسی تجربه ای داره دریغ نکنه.
                    با تشکر
                    با سلام میشه کاملتر توضیح بدی دقیقا چطور میتونیم نرخ
                    ارسال
                    همون سرعت چطوری و کجا تنظیم کنیم؟ با تشکر

                    دیدگاه


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

                      نوشته اصلی توسط farzintey نمایش پست ها
                      با سلام میشه کاملتر توضیح بدی دقیقا چطور میتونیم نرخ
                      ارسال
                      همون سرعت چطوری و کجا تنظیم کنیم؟ با تشکر
                      سلام
                      یه توضیح مختصر میدم امیدوارم متوجه بشی
                      این جدول مربوط به تنظیمات نرخ ارسال هست :

                      همینطور که تو جدول مشخصه آدرس 6 هگز مربوط به تنظیمات نرخ ارسال و توان فرستنده هست
                      در تابع nRF_Config از هدر nRF24L01+ قسمت زیر مربوط به تنظیمات خانه 6 هگز هست:
                      کد:
                        Command_Reg = 0x06;   
                      Set_Reg(0x26);
                      Command_Reg مقداری هست که در خانه 6 هگز ذخیره میشه
                      مثلا اگه بخوایم توان ماژول رو روی 0 دسی بل و سرعت ارسال رو 250 کیلوبایت در ثانیه قرار بدیم مقدار Command_Reg به صورت زیر تغییر میکنه:
                      بیت اول : 0
                      بیت دوم :1
                      بیت سوم:1
                      بیت چهارم:0
                      بیت پنجم:0
                      بیت ششم:1
                      بیت هفتم:0
                      بیت هشتم:0
                      که میشه 26 هگز
                      هرجاش رو متجه نشدی بگو توضیح بدم
                      موفق باشی

                      دیدگاه


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

                        نوشته اصلی توسط M3R-E نمایش پست ها
                        سلام
                        یه توضیح مختصر میدم امیدوارم متوجه بشی
                        این جدول مربوط به تنظیمات نرخ ارسال هست :

                        همینطور که تو جدول مشخصه آدرس 6 هگز مربوط به تنظیمات نرخ ارسال و توان فرستنده هست
                        در تابع nRF_Config از هدر nRF24L01+ قسمت زیر مربوط به تنظیمات خانه 6 هگز هست:
                        کد:
                          Command_Reg = 0x06;   
                        Set_Reg(0x26);
                        Command_Reg مقداری هست که در خانه 6 هگز ذخیره میشه
                        مثلا اگه بخوایم توان ماژول رو روی 0 دسی بل و سرعت ارسال رو 250 کیلوبایت در ثانیه قرار بدیم مقدار Command_Reg به صورت زیر تغییر میکنه:
                        بیت اول : 0
                        بیت دوم :1
                        بیت سوم:1
                        بیت چهارم:0
                        بیت پنجم:0
                        بیت ششم:1
                        بیت هفتم:0
                        بیت هشتم:0
                        که میشه 26 هگز
                        هرجاش رو متجه نشدی بگو توضیح بدم
                        موفق باشی
                        با سلام ممنونم از راهنماییتان فقط 2 سوال برام هست اولی اینکه
                        در تابع nRF_Config از هدر nRF24L01+ که فرمودید من در کتابخانه که در
                        libraries به نام RF24-master جاگذاری شده داخل برنامه گشتم چییزی به نام Command_Reg پیدا نکردم که بقول شما بنونیم مقدارشو تغییر بدیم البته فکر کنم شما تو توابع بسکام گفتید من با اردینو کار میکنم

                        من عکس فایل کتابخانه ای گذاشتم توی اینارو میگفتیم گشتم اون عبارتی که شما فرمودید باید تغییر بدیم پیدا نکردم


                        دومین سوالم این هست اون هشت بیتی که بصورت صفر و یک جاگذاری کردی که شده 26 هگز رو چه مبنایی و اون صفر یک از کجا باید بدونیم به اون شکل بذاریم البته اینو میدونم که تبدیل اون عدد باینری به هگز شده 26 فقط از رو چه مبنایی جایگذاری کردی؟ من کمی مبتدی هستم بی زحمت تو این مورد بیشتر برام توضیح بده اجرت با خدا و اینکه بصورت پیش فرض نرخ تبادل رو چند هستش؟


                        از این کد میشه استفاده کرد برای تغییرات سرعت و قدرت؟
                        // Max power setPALevel( RF24_PA_MAX ) ; 
                        setPALevel( RF24_PA_MAX ) ;

                        // Min speed (for better range I presume)
                        setDataRate( RF24_250KBPS ) ;


                        // 8 bits CRC
                        setCRCLength( RF24_CRC_8 ) ;


                        // Disable dynamic payloads
                        write_register(DYNPD,0);


                        // increase the delay between retries & # of retries

                        setRetries(15,15);

                        جدیدترین ویرایش توسط farzintey; ۰۵:۱۲ ۱۳۹۶/۱۱/۱۵.

                        دیدگاه


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

                          سلام
                          اگه توتنظیمات دقت کرده باشین یه قسمت هست
                          flash unsigned char base_address[5]={0x02,0x01,0x03,0x07,0x00};
                          unsigned char temp_address[5]={0x02,0x01,0x03,0x07,0x00};

                          که برای فرستنده و گیرنده باید یکی باشه تا هم دیگر رو بشناسند
                          من اگه بخوام یه قسمت مثلا 0x02 رو هر بار با کد ویژن عوض نکنم برابرش کنم با مثلا با پورت C و از اون طرف دیپ سوییچ براش بزارم و راحت با دیپ سوییچ کد ها عوض بشه و هر بار با کامپیوتر سر و کار نداشته باشم چه کدی باید بنویسم
                          گاهی نمی شود که نمی شود
                          گاهی قرعه نگفته به نام تو می شود
                          گاهی گدای گدایی و چاره چیست
                          گاهی تمام شهر گدای تو میشود
                          ای بنده بدان در این عالم ___هرچه خدا خواست همان می شور

                          دیدگاه


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

                            نوشته اصلی توسط mfazl22 نمایش پست ها
                            سلام
                            اگه توتنظیمات دقت کرده باشین یه قسمت هست
                            flash unsigned char base_address[5]={0x02,0x01,0x03,0x07,0x00};
                            unsigned char temp_address[5]={0x02,0x01,0x03,0x07,0x00};

                            که برای فرستنده و گیرنده باید یکی باشه تا هم دیگر رو بشناسند
                            من اگه بخوام یه قسمت مثلا 0x02 رو هر بار با کد ویژن عوض نکنم برابرش کنم با مثلا با پورت C و از اون طرف دیپ سوییچ براش بزارم و راحت با دیپ سوییچ کد ها عوض بشه و هر بار با کامپیوتر سر و کار نداشته باشم چه کدی باید بنویسم
                            سلام دوست عزیز برای عوض کردن ادرس حتما باید ایسی کامپایل بشه منظورم از بابت نرم افزاری هست اونی که شما میگی سخت افزاری هست که عملی نیست برای ادرس دهی و شناسایی فرستنده و گیرنده باید حتما باید کامپایل بشه

                            دیدگاه


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

                              نوشته اصلی توسط farzintey نمایش پست ها
                              با سلام ممنونم از راهنماییتان فقط 2 سوال برام هست اولی اینکه
                              در تابع nRF_Config از هدر nRF24L01+ که فرمودید من در کتابخانه که در
                              libraries به نام RF24-master جاگذاری شده داخل برنامه گشتم چییزی به نام Command_Reg پیدا نکردم که بقول شما بنونیم مقدارشو تغییر بدیم البته فکر کنم شما تو توابع بسکام گفتید من با اردینو کار میکنم

                              من عکس فایل کتابخانه ای گذاشتم توی اینارو میگفتیم گشتم اون عبارتی که شما فرمودید باید تغییر بدیم پیدا نکردم


                              دومین سوالم این هست اون هشت بیتی که بصورت صفر و یک جاگذاری کردی که شده 26 هگز رو چه مبنایی و اون صفر یک از کجا باید بدونیم به اون شکل بذاریم البته اینو میدونم که تبدیل اون عدد باینری به هگز شده 26 فقط از رو چه مبنایی جایگذاری کردی؟ من کمی مبتدی هستم بی زحمت تو این مورد بیشتر برام توضیح بده اجرت با خدا و اینکه بصورت پیش فرض نرخ تبادل رو چند هستش؟


                              از این کد میشه استفاده کرد برای تغییرات سرعت و قدرت؟
                              // Max power setPALevel( RF24_PA_MAX ) ; 
                              setPALevel( RF24_PA_MAX ) ;

                              // Min speed (for better range I presume)
                              setDataRate( RF24_250KBPS ) ;


                              // 8 bits CRC
                              setCRCLength( RF24_CRC_8 ) ;


                              // Disable dynamic payloads
                              write_register(DYNPD,0);


                              // increase the delay between retries & # of retries

                              setRetries(15,15);

                              سلام
                              من فکر کردم از هدری که تو این تاپیک هست استفاده میکنید!!
                              دستوراتی که استفاده کردین هم که مشخص هست هر کدومش چه کاری انجام میده مشکل چیه؟
                              واسه اون کدهایی هم که گذاشتم اگه به عکسی که گذاشتم دقت کنید متوجه میشید چطوری اون 0 و 1 ها رو انتخاب کردم

                              دلیل: ادغام دو پست برای جلوگیری از اسپم

                              نوشته اصلی توسط mfazl22 نمایش پست ها
                              سلام
                              اگه توتنظیمات دقت کرده باشین یه قسمت هست
                              flash unsigned char base_address[5]={0x02,0x01,0x03,0x07,0x00};
                              unsigned char temp_address[5]={0x02,0x01,0x03,0x07,0x00};

                              که برای فرستنده و گیرنده باید یکی باشه تا هم دیگر رو بشناسند
                              من اگه بخوام یه قسمت مثلا 0x02 رو هر بار با کد ویژن عوض نکنم برابرش کنم با مثلا با پورت C و از اون طرف دیپ سوییچ براش بزارم و راحت با دیپ سوییچ کد ها عوض بشه و هر بار با کامپیوتر سر و کار نداشته باشم چه کدی باید بنویسم
                              سلام
                              کافیه متغیر رو از نوع فلش بیارید بیرون و مقداری که از پورت خوندید رو جایگزین هر کدوم از این خانه هایی که میخواید بکنید و بعد دوباره ماژول رو کانفیگ کنید

                              دیدگاه


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

                                نوشته اصلی توسط M3R-E نمایش پست ها
                                سلام
                                من فکر کردم از هدری که تو این تاپیک هست استفاده میکنید!!
                                دستوراتی که استفاده کردین هم که مشخص هست هر کدومش چه کاری انجام میده مشکل چیه؟
                                واسه اون کدهایی هم که گذاشتم اگه به عکسی که گذاشتم دقت کنید متوجه میشید چطوری اون 0 و 1 ها رو انتخاب کردم

                                دلیل: ادغام دو پست برای جلوگیری از اسپم



                                سلام
                                کافیه متغیر رو از نوع فلش بیارید بیرون و مقداری که از پورت خوندید رو جایگزین هر کدوم از این خانه هایی که میخواید بکنید و بعد دوباره ماژول رو کانفیگ کنید
                                اون طور توی خود برنامه باید بنویسم یا کتاب خانه؟؟؟
                                مثلا پورت C رو بدست آوردم که باید بزارم توی این آرایه اینو بلد نیستم راه نشون میدین
                                گاهی نمی شود که نمی شود
                                گاهی قرعه نگفته به نام تو می شود
                                گاهی گدای گدایی و چاره چیست
                                گاهی تمام شهر گدای تو میشود
                                ای بنده بدان در این عالم ___هرچه خدا خواست همان می شور

                                دیدگاه

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