اطلاعیه

Collapse
No announcement yet.

شتاب سنج ADXL345 فروشگاه [فیلم+توضیحات+سوالات]

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

    شتاب سنج ADXL345 فروشگاه [فیلم+توضیحات+سوالات]

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


    این ماژول رو می توانید از فروشگاه خریداری نمایید:
    http://eshop.eca.ir/%D9%85%D8%A7%DA%98%D9%88%D9%84-%D9%87%D8%A7%DB%8C-%D8%B4%D8%AA%D8%A7%D8%A8-%D8%B3%D9%86%D8%AC-%D9%88-%DA%98%DB%8C%D8%B1%D9%88%D8%B3%DA%A9%D9%88%D9%BE/2170-%D9%85%D8%A7%DA%98%D9%88%D9%84-%D8%B3%D9%86%D8%B3%D9%88%D8%B1-%D8%B4%D8%AA%D8%A7%D8%A8%D8%B3%D9%86%D8%AC-%D8%AF%DB%8C%D8%AC%DB%8C%D8%AA%D8%A7%D9%84-adxl345.htmll

    البته دوستان مشهدی،نیز می توانند این ماژول را در مشهد نیز از طریق نمایندگی ECA در مشهد خریداری نمایند.
    ____________________________
    مشخصات:
    ولتاژ تغذیه بین 1.8 تا 3.6 ولت
    توان مصرفی پایین: 25 تا 130 میکرو آمپر در ولتاژ تغذیه 2.5 ولت
    پشتیبانی از پروتکهای SPI و I2C
    رزولوشن بالای 13 بیت در بازه 16g±
    قابلیت تشخیص و شناسایی single tap و Double tap
    مانیتور حالات Activity و inactivityتشخیص وضعیت سقوط آزاد
    و
    و
    و
    ______________________________
    به جهت آشنایی هرچه بیشتر کاربران سایت و فروشگاه ، کلیپی برای معرفی و تست عملی این ماژول در زیر قابل رویت می باشد:

    لینک فیلم در پارات:
    http://www.aparat.com/v/L9djh
    ____________________________________
    دیتاشیت ماژول:
    http://dl.roboticngo.com/uploads/ADXL345.pdf
    ____________________________________
    کتابخانه ی ADXL345:
    کتابخانه ی مقدماتی ولی کاربردی برای راه اندازی ماژول توسط خودم آماده شده است، که بر اساس زبان C و در کامپایلر کدویژن پیاده سازی شده است!
    این کتابخانه در حال تکمیل است، و نسخه های پیشرفته تر آن در آینده به روز رسانی خواهد شد.

    لینک دانلود:
    http://dl.roboticngo.com/uploads/ADXL345-Lib-v1-3.rar
    (هرگونه کپی برداری فقط با ذکر منبع مجاز است!)
    ____________________________________
    لطفاً از پست های غیر ضروری اجتناب فرمایید.
    هر گونه سوال و یا راهنمایی پیرامون این ماژول را در این تالار عنوان نمایید.

    با تشکر S_Ahmad
    همواره يادمان باشد:
    1-مردان بزرگ اراده مي کنند و مردان کوچک آرزو
    2-افراد بزرگ، هميشه به دنبال ايده هاي بزرگند و افراد کوچک به دنبال افراد بزرگ
    3-هميشه سعي کن آنقدر کامل باشي که بزرگترين تنبيه تو براي ديگران گرفتن خودت از آنها باشد.

    #2
    پاسخ : شتاب سنج ADXL345 فروشگاه [فیلم+توضیحات+سوالات]

    اول ممنون از توضیحات جامع
    من یه کد ببرای میکرو ARM زدم اگه میشه یه نگاه بهش بکنید
    اگه میشه کد AVR برای این سنسور رو هم بدارید
    مشکل برنامه کجاست که هر وقت میخوام دیتایی رو بخونم بهم صفر رو نمایش میده
    احساس میکنم یه پیش نیاز هایی که من رعایت نمیکنم
    رجیستر های اولیه شاید درست مقدار دهی نشده اند
    یا کد های مربوط به tft مشکل دارن
    برای دیباگ برنامه هر چند خط یه بار خواستم که یه عدد نشونم بده
    ولی موقعی میکرو رو پروگرم میکنم جاهایی که میخوام عددی رو بهم نشون بده صفر نشون میده
    اگه میشه کمکم کنند
    ممنون
    اینم کد
    کد:
    #include <at91sam7x256.h>
    #include <delay.h>
    #include <TFTLCD.h>
    #include <math.h>
    #include <stdlib.h>
    
    char PORTRAIT=0;
    
    unsigned int Accel_Xout_Val=0, Accel_Yout_Val=0, Accel_Zout_Val=0;
    int Accel_Xout_Normalized_Val=0, Accel_Yout_Normalized_Val=0, Accel_Zout_Normalized_Val=0;
     char Offset_X_Val=0,Offset_Y_Val=0,Offset_Z_Val=0;
    char Accel_XAngle=0, Accel_YAngle=0, Accel_ZAngle=0;
    
     char X_Angle[10];
     char Y_Angle[10];
     char Z_Angle[10];
    
    int tftshow_X;
    int tftshow_Y;
    int tftshow_Z;
    
    int main(){
    	
    	tftlcd_init();
    	tftlcd_putchar('1',BLUE,GREEN,1);
    	
    	*AT91C_PMC_PCER = (1<<9);
    	
    //I2c Configuration	PIO
     *AT91C_PIOA_PDR = (1<<10 | 1<<11);					  
     *AT91C_PIOA_ASR = (1<<10 | 1<<11);				    
     *AT91C_PIOA_MDER = (1<<10 | 1<<11);					  
     *AT91C_PIOA_PPUER = (1<<10 | 1<<11);
    	
    	//I2c Configuration 
     *AT91C_TWI_CWGR = 0x00017676;	
     *AT91C_TWI_CR =0x4;
    	
     *AT91C_TWI_MMR = 0x7B0200;//Device Address ADXL345=0xE5
     *AT91C_TWI_IADR = 0x3139;
     *AT91C_TWI_THR = 0x0B;
     delay_ms(1000);
    	
     *AT91C_TWI_MMR = 0x0E50100;//Device Address ADXL345=0xE5
     *AT91C_TWI_IADR = 0x2D;
     *AT91C_TWI_THR = 0x08;
     delay_ms(1000);
     
     *AT91C_TWI_MMR = 0x0E50100;//Device Address ADXL345=0xE5
     *AT91C_TWI_IADR = 0x2E;
     *AT91C_TWI_THR = 0x80;
     delay_ms(1000);
     
     tftlcd_putchar('2',BLUE,GREEN,1);
     
    	while(1){
    		
     *AT91C_TWI_MMR = 0xE51100;//Device Address ADXL345=0xE5
     *AT91C_TWI_IADR = 0x1E;
     *AT91C_TWI_CR =0x3;
     Offset_X_Val= *AT91C_TWI_RHR;
    	//	tftshow_X = (int)(Offset_X_Val);
    	//	sprintf(X_Angle,"%d",tftshow_X);
    	//	tftlcd_puts(X_Angle,BLUE,GREEN,1);
    
    
     *AT91C_TWI_MMR = 0xE51100;//Device Address ADXL345=0xE5
     *AT91C_TWI_IADR = 0x1F;
     Offset_Y_Val= *AT91C_TWI_RHR;
    
     *AT91C_TWI_MMR = 0xE51100;//Device Address ADXL345=0xE5
     *AT91C_TWI_IADR = 0x20;
     Offset_Z_Val= *AT91C_TWI_RHR;
    tftlcd_putchar('3',BLUE,GREEN,1);		
    	
    
    		
    		*AT91C_TWI_MMR = 0xE51100;//Device Address ADXL345=0xE5
     *AT91C_TWI_IADR = 0x33;
     Accel_Xout_Normalized_Val= *AT91C_TWI_RHR;
    		
    		*AT91C_TWI_MMR = 0xE51100;//Device Address ADXL345=0xE5
     *AT91C_TWI_IADR = 0x35;
     Accel_Yout_Normalized_Val= *AT91C_TWI_RHR;
     
     *AT91C_TWI_MMR = 0xE51100;//Device Address ADXL345=0xE5
     *AT91C_TWI_IADR = 0x37;
     Accel_Zout_Normalized_Val = *AT91C_TWI_RHR;
     tftlcd_putchar('4',BLUE,GREEN,1);
     
     
     
     // Convert Unsigned Int To Int
      Accel_Xout_Normalized_Val = Accel_Xout_Val;
      Accel_Yout_Normalized_Val = Accel_Yout_Val;
      Accel_Zout_Normalized_Val = Accel_Zout_Val;
    		tftlcd_putchar('5',BLUE,GREEN,1);
    		
    	Accel_Xout_Val = Accel_Xout_Val-Offset_X_Val;
     Accel_Yout_Val = Accel_Yout_Val-Offset_Y_Val;
    	Accel_Zout_Val = Accel_Zout_Val-Offset_Z_Val;
    	tftlcd_putchar('6',BLUE,GREEN,1);
    	
    	// Calculate The Angle Of Each Axis
    	Accel_XAngle = 57.295*atan((float) Accel_Xout_Normalized_Val / sqrt(pow((float)Accel_Zout_Normalized_Val,2)+pow((float)Accel_Yout_Normalized_Val,2)));
    	Accel_YAngle = 57.295*atan((float) Accel_Yout_Normalized_Val / sqrt(pow((float)Accel_Zout_Normalized_Val,2)+pow((float)Accel_Xout_Normalized_Val,2)));
     Accel_ZAngle = 57.295*atan((float) sqrt(pow((float)Accel_Xout_Normalized_Val,2)+pow((float)Accel_Yout_Normalized_Val,2))/ Accel_Zout_Normalized_Val );
    	tftlcd_putchar('7',BLUE,GREEN,1);
     // ftoa(Accel_XAngle,4,X_Angle);
    	
    	 tftshow_X = (int)(Accel_XAngle);
    	 tftshow_Y = (int)(Accel_YAngle);
    	 tftshow_Z = (int)(Accel_ZAngle);
    	 tftlcd_putchar('8',BLUE,GREEN,1);
    	 
    	 sprintf(X_Angle,"%d",tftshow_X);
    	 sprintf(Y_Angle,"%d",tftshow_Y);
    	 sprintf(Z_Angle,"%d",tftshow_Z);
    	 tftlcd_putchar('9',BLUE,GREEN,1);
    	 
    	 tftlcd_puts(X_Angle,BLUE,GREEN,1);
    	 tftlcd_puts(Y_Angle,BLUE,GREEN,1);
    	 tftlcd_puts(Z_Angle,BLUE,GREEN,1);
    	 tftlcd_putchar('10',BLUE,GREEN,1);
    	 
    	}
    	
    }

    دیدگاه


      #3
      پاسخ : شتاب سنج ADXL345 فروشگاه [فیلم+توضیحات+سوالات]

      سلام.
      ممنون از لطف شما!

      والا من تسلط رویTWI سری ARM Atmel ندارم!

      قصد داشتم با NXP راه اندازی کنم و روی نت بزارم ولی خوردم به امتحانات و ...
      _____________________

      راستی یک اشکال جزئی که شاید علت از اون باشه، اینکه مگه کتابخانه ی TFTLCD دست نویس نیست؟ اگه هست که باید به جای <> از " " استفاده کنید!
      همواره يادمان باشد:
      1-مردان بزرگ اراده مي کنند و مردان کوچک آرزو
      2-افراد بزرگ، هميشه به دنبال ايده هاي بزرگند و افراد کوچک به دنبال افراد بزرگ
      3-هميشه سعي کن آنقدر کامل باشي که بزرگترين تنبيه تو براي ديگران گرفتن خودت از آنها باشد.

      دیدگاه


        #4
        پاسخ : شتاب سنج ADXL345 فروشگاه [فیلم+توضیحات+سوالات]

        ممنون
        نه فقط میخواستم بدونم برای پیکربندی اولیه این میکرو چه رجیستر هایی رو باید مقدار داد؟
        راستی gain چیه؟
        بازم ممنونم

        دیدگاه


          #5
          پاسخ : شتاب سنج ADXL345 فروشگاه [فیلم+توضیحات+سوالات]

          نوشته اصلی توسط احسان خواجوی
          ممنون
          نه فقط میخواستم بدونم برای پیکربندی اولیه این میکرو چه رجیستر هایی رو باید مقدار داد؟
          راستی gain چیه؟
          بازم ممنونم
          پیکربندی I2C منظورتون هست؟
          در اینجا منظورتون میکرو AVR هست یا ARM?
          ___________________
          منظور کلی از Gain ، میزان تقوبت کنندگی می باشد.

          حالا Gain رو کجا دیدید؟ تا بگم اون بهره به چه منظور هست!
          همواره يادمان باشد:
          1-مردان بزرگ اراده مي کنند و مردان کوچک آرزو
          2-افراد بزرگ، هميشه به دنبال ايده هاي بزرگند و افراد کوچک به دنبال افراد بزرگ
          3-هميشه سعي کن آنقدر کامل باشي که بزرگترين تنبيه تو براي ديگران گرفتن خودت از آنها باشد.

          دیدگاه


            #6
            پاسخ : شتاب سنج ADXL345 فروشگاه [فیلم+توضیحات+سوالات]

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

            دیدگاه


              #7
              پاسخ : شتاب سنج ADXL345 فروشگاه [فیلم+توضیحات+سوالات]

              بله
              من برای این برنامه ابتدا به سه رجیسنر config A ,config B , mode register مقادیری که توی دیتا شیت بود رو نوشتم
              آیا همین سه رجیستر کافیه برای پیکر بندی اولیه؟
              یه جا نوشته بود gain = 5 یا یه جای دیگه نوشته بود if gain <6 ...
              ممنون از جوابتون

              دیدگاه


                #8
                پاسخ : شتاب سنج ADXL345 فروشگاه [فیلم+توضیحات+سوالات]

                سلام,کسی این ماِژول با bascom راه اندازی کرده؟

                دیدگاه


                  #9
                  پاسخ : شتاب سنج ADXL345 فروشگاه [فیلم+توضیحات+سوالات]

                  نوشته اصلی توسط احسان خواجوی
                  بله
                  من برای این برنامه ابتدا به سه رجیسنر config A ,config B , mode register مقادیری که توی دیتا شیت بود رو نوشتم
                  آیا همین سه رجیستر کافیه برای پیکر بندی اولیه؟
                  یه جا نوشته بود gain = 5 یا یه جای دیگه نوشته بود if gain <6 ...
                  ممنون از جوابتون
                  شما کتابخانه ی این فروم رو نگاه کردید؟اصلاً ؟

                  این سه رجیستری که عرض کردید اصلا در ADXL345 وجود ندارند.

                  این ها مربوط به قطب نمای HMC5883 هستن. در کتابخانه ای که برای قطب نمای HMC5883 نوشته بودم و در آدرس زیر هستش:
                  http://www.eca.ir/forum2/index.php?topic=86816.0
                  این سه رجیستر وجود دارند.
                  __________________________

                  به هر حال برای کانفیگ ماژول ADXL345 فقط کافیه تابع:
                  کد:
                  ADXL345_Init();
                  رو فراخوانی کنید!

                  همواره يادمان باشد:
                  1-مردان بزرگ اراده مي کنند و مردان کوچک آرزو
                  2-افراد بزرگ، هميشه به دنبال ايده هاي بزرگند و افراد کوچک به دنبال افراد بزرگ
                  3-هميشه سعي کن آنقدر کامل باشي که بزرگترين تنبيه تو براي ديگران گرفتن خودت از آنها باشد.

                  دیدگاه


                    #10
                    پاسخ : شتاب سنج ADXL345 فروشگاه [فیلم+توضیحات+سوالات]

                    اول ممنون از جوابتون
                    حواسم نبود ببخشید
                    مشکل شتابسنج حل شد
                    توی قطب نما تابه init خالیه!
                    توی قطب نما برای تنطیمات اولیه فقط باید همون سه تا رجیستر مقدار دهی بشن؟
                    بازم ممنن

                    دیدگاه


                      #11
                      پاسخ : شتاب سنج ADXL345 فروشگاه [فیلم+توضیحات+سوالات]

                      http://www.aparat.com/v/C4jHM
                      اینم یه ویدیو من از راه اندازی ماژول GY-80 با LPC1768 با لایبرری CMSIS و متلب النته فقط ADXL345 استفاده شده

                      دیدگاه


                        #12
                        پاسخ : شتاب سنج ADXL345 فروشگاه [فیلم+توضیحات+سوالات]

                        نوشته اصلی توسط atabakp
                        http://www.aparat.com/v/C4jHM
                        اینم یه ویدیو من از راه اندازی ماژول GY-80 با LPC1768 با لایبرری CMSIS و متلب النته فقط ADXL345 استفاده شده
                        خیلی خوبه !

                        من خودم قصد داشتم که با LPC هم این رو و سایر ماژول ها رو راه اندازی و سورسش رو منتشر کنم. ولی طبق برنامه ی کاری و مشغله ی زیاد هنوز به اون مرحله نرسیدم.

                        خوشحال می شویم که از تجربیات شما استفاده کنیم! اگر امکان داره اطلاعات تکمیلی پروژه رو برای دوستان در اینجا بزارید.
                        با این کار به هر حال شما کار ما رو ساده تر می کنید :mrgreen:

                        با سپاس
                        همواره يادمان باشد:
                        1-مردان بزرگ اراده مي کنند و مردان کوچک آرزو
                        2-افراد بزرگ، هميشه به دنبال ايده هاي بزرگند و افراد کوچک به دنبال افراد بزرگ
                        3-هميشه سعي کن آنقدر کامل باشي که بزرگترين تنبيه تو براي ديگران گرفتن خودت از آنها باشد.

                        دیدگاه


                          #13
                          پاسخ : شتاب سنج ADXL345 فروشگاه [فیلم+توضیحات+سوالات]

                          نوشته اصلی توسط S_Ahmad
                          خیلی خوبه !

                          من خودم قصد داشتم که با LPC هم این رو و سایر ماژول ها رو راه اندازی و سورسش رو منتشر کنم. ولی طبق برنامه ی کاری و مشغله ی زیاد هنوز به اون مرحله نرسیدم.

                          خوشحال می شویم که از تجربیات شما استفاده کنیم! اگر امکان داره اطلاعات تکمیلی پروژه رو برای دوستان در اینجا بزارید.
                          با این کار به هر حال شما کار ما رو ساده تر می کنید :mrgreen:

                          با سپاس
                          سورسش رو قرار میدم ولی اصلا خوانا نیست برنامه سعی میکنم تا چند روز یکم تمیزش کنم و قرار بدم فصل امتحانات هست و سره همه یکم شلوغه :nerd:

                          دیدگاه


                            #14
                            پاسخ : شتاب سنج ADXL345 فروشگاه [فیلم+توضیحات+سوالات]

                            نوشته اصلی توسط atabakp
                            سورسش رو قرار میدم ولی اصلا خوانا نیست برنامه سعی میکنم تا چند روز یکم تمیزش کنم و قرار بدم فصل امتحانات هست و سره همه یکم شلوغه :nerd:
                            بازهم ممنون
                            درسته درک می کنم. ان شا الله سر فرصت، یک کتابخانه تمیز ارائه بدید.

                            من هم در ایام امتحانات به سر می برم و همین الان وسط درس خواندن دارم ج می دم.
                            آخه واقعاً ، ECA اعتیاد آور هست! :mrgreen:
                            همواره يادمان باشد:
                            1-مردان بزرگ اراده مي کنند و مردان کوچک آرزو
                            2-افراد بزرگ، هميشه به دنبال ايده هاي بزرگند و افراد کوچک به دنبال افراد بزرگ
                            3-هميشه سعي کن آنقدر کامل باشي که بزرگترين تنبيه تو براي ديگران گرفتن خودت از آنها باشد.

                            دیدگاه


                              #15
                              پاسخ : شتاب سنج ADXL345 فروشگاه [فیلم+توضیحات+سوالات]

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

                              دیدگاه

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