اطلاعیه

Collapse
No announcement yet.

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

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

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

    ماژول USB NRF24L01P
    10 تومان، خیلی حال کردم باهاش


    از سختی نترس! این سختی هاست که جایگاه و مقام انسان را بالا میبرد...

    دیدگاه


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


      ماژول USB NRF24L01P
      10 تومان، خیلی حال کردم باهاش
      خوب به چه کار میاد؟ یعنی مثل فلش به دوتا کامپیوتر وصل میشه و یک لینک ارتباطی ایجاد میکنه؟

      دیدگاه


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

        سلام
        کسی توانسته ارتباط دوطرفه بین دو میکرو و همزمان راه بیاندازه؟ راهی نیست؟
        [glow=red,2,300]برنامه های آموزشی تست شده برای NXP LPC1768 با توابع CMSIS[/glow]
        http://www.eca.ir/forum2/index.php?topic=76623.0

        دیدگاه


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

          نوشته اصلی توسط saeed210
          خوب به چه کار میاد؟ یعنی مثل فلش به دوتا کامپیوتر وصل میشه و یک لینک ارتباطی ایجاد میکنه؟
          این ماژول یک فرستنده گیرنده بیسیم می باشد که از طریق پورت USB به کامپیوتر و لپتاب متصل می گردد و این امکان را به شما می دهد تا به سادگی و از طریق پورت سریال مجازی با سایر ماژول های NRF24L01 ارتباط بیسیم برقرار نموده و داده های خود را ارسال و دریافت کنید. با این ماژول فوق العاده ، ارزان قیمت و کوچک می توان با کمک یک ماژول +NRF24L01 معمولی با بردهای آردوینو و یا سایر میکروها ارتباط برقرار نمود و به عنوان مثال یک کوادکوپتر کوچک را به راحتی و به صورت بیسیم کنترل نمایید.

          منبع:
          http://shop.aftabrayaneh.com/NRF24L01P_USB_Module.html
          از سختی نترس! این سختی هاست که جایگاه و مقام انسان را بالا میبرد...

          دیدگاه


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

            سلام
            کسی توانسته ارتباط دوطرفه بین دو میکرو و همزمان راه بیاندازه؟ راهی نیست؟
            راستش من خودم با این ماژول مشکل زیاد دارم ولی برای اینکاری که شما میخوای فکر کنم خودش این قابلیت رو نداره و راهی که بنظرم میرسه همون تقسیم زمانیه یعنی شما بعد از 1ثانیه که از ماژول tx فرستادی توسط tx به rx بگی حالا نوبت تو هست که اطلاعات بفرستس و فرستنده رو گیرنده کنی و اون که تا حالا داشت میگرفت رو فرستنده کنی و این کار رو هی انجام بدی میتونی برای سرعت بیشتر 1 ثانیه رو بکنی 0.1 ثانیه یعنی یک جورایی این تقسیم زمانی رو خودت مدریت کنی
            البته شاید یک راه دیگه هم باشه راه ساده تر و اصولی تر باید تست کنم اگه جواب گرفتم اینجا هم میزارم

            شما با pic این ماژول رو راه انداختی؟ اگه با pic نوشتی با چه کامپایلری؟ چون من با pic به مشکل خوردم :angry:

            دیدگاه


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

              ممنون با 1768 راه انداختم.ممنون از کمکتون.اگر راهی به ذهنم رسید بهتون میگویم
              [glow=red,2,300]برنامه های آموزشی تست شده برای NXP LPC1768 با توابع CMSIS[/glow]
              http://www.eca.ir/forum2/index.php?topic=76623.0

              دیدگاه


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

                این 1768 چیه؟ چه نوع میکرویی؟

                دیدگاه


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

                  میکروی arm از شرکت nxp مدل lpc1768
                  [glow=red,2,300]برنامه های آموزشی تست شده برای NXP LPC1768 با توابع CMSIS[/glow]
                  http://www.eca.ir/forum2/index.php?topic=76623.0

                  دیدگاه


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

                    آقا رضا این ماژول ها یک قابلیتی دارن که میگه: گیرنده میتونه در جواب فرستنده علاوه بر بیت ACK یک payload برای فرستنده بفرسته.
                    شما با این قابلیتش کار کردی؟
                    اینجوری شما دیگه لازم نیست اون تقسیمات زمانی که من گفتم رو خودت بسازی میتونی از این قابلیت استفاده کنی خیلی ساده خیلی خوشمزه :biggrin:
                    من امروز راهش انداختم خوب و جالبه :nice:

                    اضافه شده در تاریخ :
                    دوستای عزیز
                    اگه کسی این ماژول رو با pic و کامپایلر CCS راه انداخته بگه من سوال دارم؟

                    دیدگاه


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

                      نوشته اصلی توسط saeed210
                      آقا رضا این ماژول ها یک قابلیتی دارن که میگه: گیرنده میتونه در جواب فرستنده علاوه بر بیت ACK یک payload برای فرستنده بفرسته.
                      شما با این قابلیتش کار کردی؟
                      اینجوری شما دیگه لازم نیست اون تقسیمات زمانی که من گفتم رو خودت بسازی میتونی از این قابلیت استفاده کنی خیلی ساده خیلی خوشمزه :biggrin:
                      من امروز راهش انداختم خوب و جالبه :nice:
                      میشه مقداری توضیح دهید و بگویید چطوری این کار رو کردید؟
                      [glow=red,2,300]برنامه های آموزشی تست شده برای NXP LPC1768 با توابع CMSIS[/glow]
                      http://www.eca.ir/forum2/index.php?topic=76623.0

                      دیدگاه


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

                        بله آقا رضا چرا نمی شه شما دستور بفرمایید
                        فقط اون مشکل من توی پست 146 رو بخون اگه نطری داری بگو

                        توی هردوتا ماژول فرستنده و گیرنده باید این تنظیمات رو انجام بدی
                        1- کامند acrivate (شماره کامند 0x50 ) کد 0x73 رو بنویسی
                        2- توی رجیستر DYNPD (شماره رجیستر 0x1c) پایپ مورد نظرت رو فعال کنی
                        3- بیت EN_DPL و بیت EN_ACK_PAY توی رجیستر FEATURE (شماره رجیستر 0x1d) رو فعال کن

                        حالا توی گیرنده اطلاعاتی رو که میخوای به فرستنده بفرستی رو توی کامند W_ACK_PAYLOAD (شماره کامند 10101ppp ) بنویس که ppp همون شماره پایپ مورد نظر هست
                        بعد از این که اطلاعات رو توسط فرستنده فرستادی گیرنده بهت جواب میده که اطلاعات فرستاده شده توسط گیرنده رو توی فرستنده از طریق کامند R_RX_PAYLOAD (شماه کامند 0x61 ) می تونی بخونی و تمام.

                        دیدگاه


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

                          نوشته اصلی توسط shahin2222
                          ماژول USB NRF24L01P
                          10 تومان، خیلی حال کردم باهاش


                          با سلام به نظر من بهتر نیست که این USB NRF24L01P هم به فروشگاه اضافه بشه راستش من این ماژولNRF24L01فرستنده و گیرنده رو دو سال پیش که تهران رفته بودم خریدم و راش انداختم تو این تاپیک این USB NRF24L01P خیلی نظر من رو جلب کرد میخوام باهاش کار کنم البته اگر پیدا کنم ویا سفارش بدم بیاد راستش میخوام با ویزوال بیسک یه عکسی رو بفرستم به میکرو و این رو تو نمایشگر که مال گوش 2630 نوکیا که با رزولیشن 240*320 با چیپ ست SPFD54124B هست نمایش بده خب البته که تو مموری کارت هم ذخیره میکنه در ضمن این ال سی دی و فرستنده و گیرنده رو با بسکام راش انداختم راستی ال سی دی n95 8gاصل نوکیا رو هم با بسکام راش انداختم قصد دارم همه ی این ها رو تو سایت بزارم البته اگه پروژم کامل بشه که به لطف خدا انشا الله کامل میشه فعلا.. :bye

                          اضافه شده در تاریخ :
                          ببخشید ال سی دی 2730 بود نه 2630 . اشتباه تایپی :biggrin:

                          دیدگاه


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

                            دوستان لطفا یکی راجعبه کامند FLUSH TX توضیح بده من هرچی موخونم نمی فهمم چیه؟

                            دیدگاه


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

                              سلام
                              ممنون از پاسختون اقای saeed210
                              توضیحات شما را تا حدودی متوجه نشدم!
                              با توجه به این هدر باید چه کد هایی رو داخل برنامه ام بنویسم؟
                              کد:
                              /*
                               * @author
                               * Copyright (C) 2012 Luis R. Hilario http://www.luisdigital.com
                               *
                               */
                              
                              // Bits
                              
                              /**
                               * Data Ready RX FIFO interrupt
                               */
                              #define _RX_DR (1<<6)
                              
                              /**
                               * Data Sent TX FIFO interrupt
                               */
                              #define _TX_DS (1<<5)
                              
                              /**
                               * Maximum number of TX retransmits interrupt
                               */
                              #define _MAX_RT (1<<4)
                              
                              /** Power Down mode
                               *
                               * Minimal current consumption, SPI can be activated
                               *
                               * @see NRF24L01_Set_Power(char Mode)
                               */
                              #define _POWER_DOWN	0
                              
                              /** Power Up mode
                               *
                               * Standby-I mode
                               *
                               * @see NRF24L01_Set_Power(char Mode)
                               */
                              #define _POWER_UP	(1<<1)
                              
                              /** Mode radio transmitter
                               *
                               * @see NRF24L01_Set_Device_Mode(char Device_Mode)
                               * @see NRF24L01_Init(char Device_Mode, char CH, char DataRate,
                              		char *Address, char Address_Width, char Size_Payload)
                               */
                              #define _TX_MODE	0
                              
                              /** Mode radio receiver
                               *
                               * @see NRF24L01_Set_Device_Mode(char Device_Mode)
                               * @see NRF24L01_Init(char Device_Mode, char CH, char DataRate,
                              		char *Address, char Address_Width, char Size_Payload)
                               */
                              #define _RX_MODE	1
                              
                              /** Air data rate = 1 Mbps
                               *
                               *
                               * @see NRF24L01_Init(char Device_Mode, char CH, char DataRate,
                              		char *Address, char Address_Width, char Size_Payload)
                               */
                              #define	_1Mbps	0
                              
                              /** Air data rate = 2 Mbps
                               *
                               * @see NRF24L01_Init(char Device_Mode, char CH, char DataRate,
                              		char *Address, char Address_Width, char Size_Payload)
                               */
                              #define	_2Mbps	(1<<3)
                              
                              #define  _250kbps  (1<<5)
                              /** Enable ShockBurst
                              
                               Automatic Retransmission (Up to 1 Re-Transmit on fail of AA)
                              
                               Auto Acknowledgment (data pipe 0)
                              
                               @see NRF24L01_Set_ShockBurst(char Mode)
                               */
                              #define _ShockBurst_ON 1
                              
                              /** Disable ShockBurst
                               *
                               @see NRF24L01_Set_ShockBurst(char Mode)
                               */
                              #define _ShockBurst_OFF 0
                              
                              
                              // REGISTERS
                              #define CONFIG		0x00
                              #define EN_AA		0x01
                              #define EN_RXADDR	0x02
                              #define SETUP_AW	0x03
                              #define SETUP_RETR	0x04
                              #define RF_CH		0x05
                              #define RF_SETUP	0x06
                              #define STATUS		0x07
                              #define OBSERVE_TX	0x08
                              #define CD			0x09
                              #define RX_ADDR_P0	0x0A
                              #define RX_ADDR_P1	0x0B
                              #define RX_ADDR_P2	0x0C
                              #define RX_ADDR_P3	0x0D
                              #define RX_ADDR_P4	0x0E
                              #define RX_ADDR_P5	0x0F
                              #define TX_ADDR		0x10
                              #define RX_PW_P0	0x11
                              #define RX_PW_P1	0x12
                              #define RX_PW_P2	0x13
                              #define RX_PW_P3	0x14
                              #define RX_PW_P4	0x15
                              #define RX_PW_P5	0x16
                              #define FIFO_STATUS	0x17
                              #define DYNPD		0x1C
                              #define FEATURE		0x1D
                              
                              // COMMANDS
                              #define R_REGISTER			0x00
                              #define W_REGISTER			0x20
                              #define R_RX_PAYLOAD    0x61
                              #define W_TX_PAYLOAD    0xA0
                              #define FLUSH_TX   		0xE1
                              #define FLUSH_RX	 		0xE2
                              #define REUSE_TX_PL 		0xE3
                              #define ACTIVATE      0x50
                              #define R_RX_PL_WID     0x60
                              #define W_ACK_PAYLOAD		0xA8
                              #define W_TX_PAYLOAD_NOACK	0x58
                              #define NOP         0xFF
                              
                              /*
                               * SPI functions for NRF24L01
                               */
                              char NRF24L01_ReadReg(char Reg);
                              char NRF24L01_WriteReg(char Reg, char Value);
                              char NRF24L01_ReadRegBuf(char Reg, char *Buf, int Size);
                              char NRF24L01_WriteRegBuf(char Reg, char *Buf, int Size);
                              
                              /*
                               * NRF24L01 functions
                               */
                              char NRF24L01_Get_Status(void);
                              char NRF24L01_Get_CD(void);
                              void NRF24L01_Set_Power(char Mode);
                              void NRF24L01_Set_CH(char CH);
                              void NRF24L01_Set_ShockBurst(char Mode);
                              void NRF24L01_Set_Address_Width(char Width);
                              void NRF24L01_Set_Device_Mode(char Device_Mode);
                              void NRF24L01_Set_RX_Pipe(char PipeNum, char *Address, int AddressSize, char PayloadSize);
                              void NRF24L01_Disable_All_Pipes(void);
                              char NRF24L01_Clear_Interrupts(void);
                              void NRF24L01_Set_TX_Address(char *Address, int Size);
                              void NRF24L01_Flush_TX(void);
                              void NRF24L01_Flush_RX(void);
                              void NRF24L01_Init(char Device_Mode, char CH, char DataRate,
                              		char *Address, char Address_Width, char Size_Payload);
                              void NRF24L01_RF_TX(void);
                              void NRF24L01_Write_TX_Buf(char *Buf, int Size);
                              void NRF24L01_Read_RX_Buf(char *Buf, int Size);
                              [glow=red,2,300]برنامه های آموزشی تست شده برای NXP LPC1768 با توابع CMSIS[/glow]
                              http://www.eca.ir/forum2/index.php?topic=76623.0

                              دیدگاه


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

                                چقدر هدر مختلف هستش :surprised:
                                آقا رضا من از این هدر استفاده نکردم :sad:و از هدری که خودم نوشتم استفاده کردم :smile: که البته چیز عجیبی هم نیست فقط اونجوری که خودم می خواستم و لازم داشتم نوشتمش :read:
                                شما هم که فقط اسم تابع ها رو گذاشتید و من نیمدونم اینها چیکار می کنند oo:
                                حالا چند تا راه وجود داره
                                1- شما این هدر رو کامل بزارید من تابع ها رو ببینم و اگه تونستم کمکتون کنم
                                2- خودتون این کار رو بکنید
                                3- شما این ها رو امتحان کنید شاید کار کنه اگه نکرد هدر تون رو کامل بزارید ببینم

                                کد:
                                nrf_csn=low;
                                spi(ACTIVATE);
                                spi(0x73);
                                nrf_csn=high;
                                
                                NRF24L01_WriteReg(DYNPD,0x01);	//Enable dyn. payload length data pipe 0.
                                NRF24L01_WriteReg(FEATURE,0x01);//Enables Dynamic Payload Length & Enables Payload with ACK
                                توی کدهای بالا nrf_csn همون پایه ای از میکروتون هست که به پایه csn ماژول وصله low هم یعنی این پایه باید صقر بشه و high هم یعنی باید یک بشه (هرجوری که کامپایلرتون این دستورات رو ساپورت میکنه بنویسید)
                                دستور ()spi هم توی کامپایلر کدویژن avr معتبر هست که هم برای خوندن هم نوشتن باس spi استفاده میشه شما نسبت به کامپایلر خودتون تغییرش بدید
                                بقیه دستورات رو هم که از روی همون هر خودتون نوشتم
                                کد ها بالا باید توی هر دوتا ماژول فرستنده و گیرنده نوشته شوند و حتما بعد از دستور NRF24L01_Init نوشته شوند

                                حالا توی گیرنده برای وارد کردن payload که باید به فرستنده فرستاده بشه این ها رو بنویس

                                کد:
                                nrf_csn=low;
                                spi(W_ACK_PAYLOAD);
                                for(i=0 ; i<lenth ;i ++ )
                                	spi ( PLD[i] );
                                nrf_csn=high;
                                pld یک آرایه از نوع char هستش که اطلاعاتی که می خوای برای فرستنده اطسال کنی رو باید توی اون بنویسی و lenth هم طول این آرایه هست


                                و برای فرستنده هم که باید بعد از ارسال اطلاعات R_RX_PAYLOAD رو بخونی که نمیدونم کدوم تابع هدرتون هست اگه شما هم نمی دونید از این ها استفاده کنید
                                کد:
                                nrf_csn=low;
                                spi(R_RX_PAYLOAD);
                                for(i=0 ; i<lenth ;i ++ )
                                	pld[i]=spi ( 0x00 );
                                nrf_csn=high;
                                فقط یادتون باشه که حتما از دستورات معتبر کامپایلر خودتون استفاده کنید من اصلن با lpc کار نکردم شما از تابع های spi خودتون استفاده کنید

                                بازم اگه نشد من در خدمتم

                                یا حق

                                دیدگاه

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