نمایش نتایج: از 1 به 10 از 110
Like Tree17 لایک

موضوع: سنسور جایرو و شتاب سنج سه محوره mpu6050 GY-521

Hybrid View

  1. #1
    مدیر گروه
    تاریخ عضویت
    Nov 2013
    محل سکونت
    ایران
    نوشته ها
    4,064
    نقل قول نوشته اصلی توسط farshad123456 نمایش پست ها
    مرسی
    من این قسمت را اضافه کردم
    int relaypin=3;
    if(accel_y_scalled<90) digitalWrite (relaypin,LOW);
    else digitalWrite (relaypin,HIGH);

    اینم کد:

    اینو تست کن :

    کد:
    /* Author = helscream (Omer Ikram ul Haq)
      Last edit date = 2014-10-08
      Website: Arduino with MPU6050 and angle calculation – HobbyLogs
      Location: Pakistan
      Ver: 0.1 beta --- Start
      Ver: 0.2 beta --- Bug fixed for calculating "angle_y_accel" and "angle_x_accel" in "Gyro_header.ino" file
    */
    
    
    
    
    #include <Wire.h>
    #include "gyro_accel.h"
    // Defining constants
    #define dt 20 // time difference in milli seconds
    #define rad2degree 57.3 // Radian to degree conversion
    #define Filter_gain 0.95 // e.g. angle = angle_gyro*Filter_gain + angle_accel*(1-Filter_gain)
    // ************************************************** *******************
    // Global Variables
    // ************************************************** *******************
    unsigned long t = 0; // Time Variables
    float angle_x_gyro = 0, angle_y_gyro = 0, angle_z_gyro = 0, angle _x_accel = 0, angle_y_accel = 0, angle_z_accel = 0, angle_x = 0, angle_y = 0, angle_z = 0;
    // ************************************************** *******************
    // Main Code
    void setup() {
      Serial.begin(115200);
      Wire.begin();
      MPU6050_ResetWake();
      MPU6050_SetGains(0, 1); // Setting the lows scale
      MPU6050_SetDLPF(0); // Setting the DLPF to inf Bandwidth for calibration
      MPU6050_OffsetCal();
      MPU6050_SetDLPF(6); // Setting the DLPF to lowest Bandwidth
    
    
      Serial.print("gyro_x_scalled");
      Serial.print("\tgyro_y_scalled");
      Serial.print("\tgyro_z_scalled");
      Serial.print("\taccel_x_scalled");
      Serial.print("\taccel_y_scalled");
      Serial.print("\taccel_z_scalled");
      Serial.print("\tangle_x_gyro");
      Serial.print("\tangle_y_gyro");
      Serial.print("\tangle_z_gyro");
      Serial.print("\tangle_x_accel");
      Serial.print("\tangle_y_accel");
      Serial.print("\tangle_z_accel");
      Serial.print("\tangle_x");
      Serial.print("\tangle_y");
      Serial.print("\tangle_z");
      Serial.println("\tLoad");
      t = millis();
    }
    
    
    void loop() {
      int relaypin = 3;
      t = millis();
      MPU6050_ReadData();
      angle_x_gyro = (gyro_x_scalled * ((float)dt / 1000) + angle_x);
      angle_y_gyro = (gyro_y_scalled * ((float)dt / 1000) + angle_y);
      
      if (angle_y_gyro < 90) digitalWrite (relaypin, LOW);
      else digitalWrite (relaypin, HIGH);
    
    
      angle_z_gyro = (gyro_z_scalled * ((float)dt / 1000) + angle_z);
    
    
      angle_z_accel = atan(accel_z_scalled / (sqrt(accel_y_scalled * accel_y_scalled + accel_x_scal led * accel_x_scalled))) * (float)rad2degree;
      angle_y_accel = -atan(accel_y_scalled / (sqrt(accel_y_scalled * accel_y_scalled + accel_z_scal led * accel_z_scalled))) * (float)rad2degree;
      angle_x_accel = atan(accel_x_scalled / (sqrt(accel_x_scalled * accel_x_scalled + accel_z_scal led * accel_z_scalled))) * (float)rad2degree;
    
    
      angle_x = Filter_gain * angle_x_gyro + (1 - Filter_gain) * angle_x_accel;
      angle_y = Filter_gain * angle_y_gyro + (1 - Filter_gain) * angle_y_accel;
      angle_z = Filter_gain * angle_z_gyro + (1 - Filter_gain) * angle_z_accel;
    
    
      Serial.print(gyro_x_scalled);
      Serial.print("\t");
      Serial.print(gyro_y_scalled);
      Serial.print("\t");
      Serial.print(gyro_z_scalled);
      Serial.print("\t");
    
    
    
    
      Serial.print(accel_x_scalled);
      Serial.print("\t");
      Serial.print(accel_y_scalled);
      Serial.print("\t");
      Serial.print(accel_z_scalled);
      Serial.print("\t");
    
    
      Serial.print(angle_x_gyro);
      Serial.print("\t");
      Serial.print(angle_y_gyro);
      Serial.print("\t");
      Serial.print(angle_z_gyro);
      Serial.print("\t");
    
    
      Serial.print(angle_x_accel);
      Serial.print("\t");
      Serial.print(angle_y_accel);
      Serial.print("\t");
      Serial.print(angle_z_accel);
      Serial.print("\t");
    
    
      Serial.print(angle_x);
      Serial.print("\t");
      Serial.print(angle_y);
      Serial.print("\t");
      Serial.print(angle_z);
      Serial.print("\t");
    
    
      Serial.println(((float)(millis() - t) / (float)dt) * 100);
    
    
    
    
      while ((millis() - t) < dt) { // Making sure the cycle time is equal to dt
        // Do nothing
      }
    }

  2. #2
    Junior Member
    تاریخ عضویت
    Oct 2015
    نوشته ها
    20
    نقل قول نوشته اصلی توسط magmagmary نمایش پست ها
    اینو تست کن :

    کد:
    /* Author = helscream (Omer Ikram ul Haq)
      Last edit date = 2014-10-08
      Website: Arduino with MPU6050 and angle calculation – HobbyLogs
      Location: Pakistan
      Ver: 0.1 beta --- Start
      Ver: 0.2 beta --- Bug fixed for calculating "angle_y_accel" and "angle_x_accel" in "Gyro_header.ino" file
    */
    
    
    
    
    #include <Wire.h>
    #include "gyro_accel.h"
    // Defining constants
    #define dt 20 // time difference in milli seconds
    #define rad2degree 57.3 // Radian to degree conversion
    #define Filter_gain 0.95 // e.g. angle = angle_gyro*Filter_gain + angle_accel*(1-Filter_gain)
    // ************************************************** *******************
    // Global Variables
    // ************************************************** *******************
    unsigned long t = 0; // Time Variables
    float angle_x_gyro = 0, angle_y_gyro = 0, angle_z_gyro = 0, angle _x_accel = 0, angle_y_accel = 0, angle_z_accel = 0, angle_x = 0, angle_y = 0, angle_z = 0;
    // ************************************************** *******************
    // Main Code
    void setup() {
      Serial.begin(115200);
      Wire.begin();
      MPU6050_ResetWake();
      MPU6050_SetGains(0, 1); // Setting the lows scale
      MPU6050_SetDLPF(0); // Setting the DLPF to inf Bandwidth for calibration
      MPU6050_OffsetCal();
      MPU6050_SetDLPF(6); // Setting the DLPF to lowest Bandwidth
    
    
      Serial.print("gyro_x_scalled");
      Serial.print("\tgyro_y_scalled");
      Serial.print("\tgyro_z_scalled");
      Serial.print("\taccel_x_scalled");
      Serial.print("\taccel_y_scalled");
      Serial.print("\taccel_z_scalled");
      Serial.print("\tangle_x_gyro");
      Serial.print("\tangle_y_gyro");
      Serial.print("\tangle_z_gyro");
      Serial.print("\tangle_x_accel");
      Serial.print("\tangle_y_accel");
      Serial.print("\tangle_z_accel");
      Serial.print("\tangle_x");
      Serial.print("\tangle_y");
      Serial.print("\tangle_z");
      Serial.println("\tLoad");
      t = millis();
    }
    
    
    void loop() {
      int relaypin = 3;
      t = millis();
      MPU6050_ReadData();
      angle_x_gyro = (gyro_x_scalled * ((float)dt / 1000) + angle_x);
      angle_y_gyro = (gyro_y_scalled * ((float)dt / 1000) + angle_y);
      
      if (angle_y_gyro < 90) digitalWrite (relaypin, LOW);
      else digitalWrite (relaypin, HIGH);
    
    
      angle_z_gyro = (gyro_z_scalled * ((float)dt / 1000) + angle_z);
    
    
      angle_z_accel = atan(accel_z_scalled / (sqrt(accel_y_scalled * accel_y_scalled + accel_x_scal led * accel_x_scalled))) * (float)rad2degree;
      angle_y_accel = -atan(accel_y_scalled / (sqrt(accel_y_scalled * accel_y_scalled + accel_z_scal led * accel_z_scalled))) * (float)rad2degree;
      angle_x_accel = atan(accel_x_scalled / (sqrt(accel_x_scalled * accel_x_scalled + accel_z_scal led * accel_z_scalled))) * (float)rad2degree;
    
    
      angle_x = Filter_gain * angle_x_gyro + (1 - Filter_gain) * angle_x_accel;
      angle_y = Filter_gain * angle_y_gyro + (1 - Filter_gain) * angle_y_accel;
      angle_z = Filter_gain * angle_z_gyro + (1 - Filter_gain) * angle_z_accel;
    
    
      Serial.print(gyro_x_scalled);
      Serial.print("\t");
      Serial.print(gyro_y_scalled);
      Serial.print("\t");
      Serial.print(gyro_z_scalled);
      Serial.print("\t");
    
    
    
    
      Serial.print(accel_x_scalled);
      Serial.print("\t");
      Serial.print(accel_y_scalled);
      Serial.print("\t");
      Serial.print(accel_z_scalled);
      Serial.print("\t");
    
    
      Serial.print(angle_x_gyro);
      Serial.print("\t");
      Serial.print(angle_y_gyro);
      Serial.print("\t");
      Serial.print(angle_z_gyro);
      Serial.print("\t");
    
    
      Serial.print(angle_x_accel);
      Serial.print("\t");
      Serial.print(angle_y_accel);
      Serial.print("\t");
      Serial.print(angle_z_accel);
      Serial.print("\t");
    
    
      Serial.print(angle_x);
      Serial.print("\t");
      Serial.print(angle_y);
      Serial.print("\t");
      Serial.print(angle_z);
      Serial.print("\t");
    
    
      Serial.println(((float)(millis() - t) / (float)dt) * 100);
    
    
    
    
      while ((millis() - t) < dt) { // Making sure the cycle time is equal to dt
        // Do nothing
      }
    }
    تست کردم....
    این خطا را داد
    Arduino: 1.6.6 Hourly Build 2015/10/22 05:42 (Windows 7), Board: "Arduino/Genuino Uno"

    F:\My circuits\gyro\omega-gyroXXX\omega-gyroXXX.ino:13:24: fatal error: gyro_accel.h: No such file or directory

    #include "gyro_accel.h"

    ^

    compilation terminated.

    exit status 1
    Error compiling.

    This report would have more information with
    "Show verbose output during compilation"
    enabled in File > Preferences.

  3. #3
    مدیر گروه
    تاریخ عضویت
    Nov 2013
    محل سکونت
    ایران
    نوشته ها
    4,064
    نقل قول نوشته اصلی توسط farshad123456 نمایش پست ها
    تست کردم....
    این خطا را داد
    Arduino: 1.6.6 Hourly Build 2015/10/22 05:42 (Windows 7), Board: "Arduino/Genuino Uno"

    F:\My circuits\gyro\omega-gyroXXX\omega-gyroXXX.ino:13:24: fatal error: gyro_accel.h: No such file or directory

    #include "gyro_accel.h"

    ^

    compilation terminated.

    exit status 1
    Error compiling.

    This report would have more information with
    "Show verbose output during compilation"
    enabled in File > Preferences.

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

  4. #4
    Junior Member
    تاریخ عضویت
    Oct 2015
    نوشته ها
    20
    نقل قول نوشته اصلی توسط magmagmary نمایش پست ها
    ممممممممم
    داره از کتابخونه ایراد میگیره
    کتابخونه رو اضافه کن مشکلت حل میشه
    مرسی
    لطفا فایل کتابخونه را برام بزارین.... کتابخونه قبلی جواب نمیده

  5. #5
    مدیر گروه
    تاریخ عضویت
    Nov 2013
    محل سکونت
    ایران
    نوشته ها
    4,064
    نقل قول نوشته اصلی توسط farshad123456 نمایش پست ها
    مرسی
    لطفا فایل کتابخونه را برام بزارین.... کتابخونه قبلی جواب نمیده
    هدر کد اسم کتابخونه هست
    جستجو کنید دوست عزیز

  6. #6
    Junior Member
    تاریخ عضویت
    Oct 2015
    نوشته ها
    20
    نقل قول نوشته اصلی توسط magmagmary نمایش پست ها
    هدر کد اسم کتابخونه هست
    جستجو کنید دوست عزیز
    مرسی...
    کتابخونه را استفاده کردم...فقط بازم خطا داد!

    Arduino: 1.6.6 Hourly Build 2015/10/22 05:42 (Windows 7), Board: "Arduino/Genuino Uno"

    In file included from F:\My circuits\!!!!!!!!!!!! ط¢ط±ط¯غŒظ†ظˆ\ط³ظپط§ط±ط´ط§ طھ ط®ط±غŒط¯\gy-521 mpu6050 example code\MPU6050_Arduino-master\Ver_0_1b\Gyro_header\farshad268\farshad268. ino:13:0:

    sketch\gyro_accel.h:1:19: warning: extra tokens at end of #ifndef directive [enabled by default]

    #ifndef gyro_accel.h

    ^

    sketch\gyro_accel.h:2:21: warning: ISO C99 requires whitespace after the macro name [enabled by default]

    #define gyro_accel.h

    ^

    farshad268:22: error: expected initializer before '_x_accel'

    F:\My circuits\!!!!!!!!!!!! ط¢ط±ط¯غŒظ†ظˆ\ط³ظپط§ط±ط´ط§ طھ ط®ط±غŒط¯\gy-521 mpu6050 example code\MPU6050_Arduino-master\Ver_0_1b\Gyro_header\farshad268\farshad268. ino: In function 'void loop()':

    farshad268:59: error: 'angle_x' was not declared in this scope

    farshad268:60: error: 'angle_y' was not declared in this scope

    farshad268:66: error: 'angle_z' was not declared in this scope

    farshad268:69: error: 'angle_z_accel' was not declared in this scope

    farshad268:69: error: 'accel_x_scal' was not declared in this scope

    farshad268:70: error: 'angle_y_accel' was not declared in this scope

    farshad268:70: error: 'accel_z_scal' was not declared in this scope

    farshad268:71: error: 'angle_x_accel' was not declared in this scope

    exit status 1
    expected initializer before '_x_accel'

    This report would have more information with
    "Show verbose output during compilation"
    enabled in File > Preferences.

  7. #7
    مدیر گروه
    تاریخ عضویت
    Nov 2013
    محل سکونت
    ایران
    نوشته ها
    4,064
    نقل قول نوشته اصلی توسط farshad123456 نمایش پست ها
    مرسی...
    کتابخونه را استفاده کردم...فقط بازم خطا داد!

    Arduino: 1.6.6 Hourly Build 2015/10/22 05:42 (Windows 7), Board: "Arduino/Genuino Uno"

    In file included from F:\My circuits\!!!!!!!!!!!! ط¢ط±ط¯غŒظ†ظˆ\ط³ظپط§ط±ط´ط§ طھ ط®ط±غŒط¯\gy-521 mpu6050 example code\MPU6050_Arduino-master\Ver_0_1b\Gyro_header\farshad268\farshad268. ino:13:0:

    sketch\gyro_accel.h:1:19: warning: extra tokens at end of #ifndef directive [enabled by default]

    #ifndef gyro_accel.h

    ^

    sketch\gyro_accel.h:2:21: warning: ISO C99 requires whitespace after the macro name [enabled by default]

    #define gyro_accel.h

    ^

    farshad268:22: error: expected initializer before '_x_accel'

    F:\My circuits\!!!!!!!!!!!! ط¢ط±ط¯غŒظ†ظˆ\ط³ظپط§ط±ط´ط§ طھ ط®ط±غŒط¯\gy-521 mpu6050 example code\MPU6050_Arduino-master\Ver_0_1b\Gyro_header\farshad268\farshad268. ino: In function 'void loop()':

    farshad268:59: error: 'angle_x' was not declared in this scope

    farshad268:60: error: 'angle_y' was not declared in this scope

    farshad268:66: error: 'angle_z' was not declared in this scope

    farshad268:69: error: 'angle_z_accel' was not declared in this scope

    farshad268:69: error: 'accel_x_scal' was not declared in this scope

    farshad268:70: error: 'angle_y_accel' was not declared in this scope

    farshad268:70: error: 'accel_z_scal' was not declared in this scope

    farshad268:71: error: 'angle_x_accel' was not declared in this scope

    exit status 1
    expected initializer before '_x_accel'

    This report would have more information with
    "Show verbose output during compilation"
    enabled in File > Preferences.
    وا
    این چیه!
    مممممممم
    فایل کتابخونتوبزار ببینم تو سیستم منم همینه!

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •  

SEO by vBSEO