ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ورود برای شما نمایش داده نمیشود، اینجا را کلیک کنید.









اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.






جهت تبلیغ در وب سایت ECA کلیک کنید.

کاربران برچسب زده شده

نمایش نتایج: از 1 به 3 از 3
  1. #1
    2016/12/15
    17
    3

    مشکل در اضافه کردن کتابخانه به صورت "i2cdev.h" include# در آردوینو

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

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    <PID_v1.h>

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    <LMotorController.h>

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    "I2Cdev.h"

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    "MPU6050_6Axis_MotionApps20.h"


    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    "Wire.h"

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت




    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    MIN_ABS_SPEED 20


    MPU6050 mpu;


    // MPU control/status vars
    bool dmpReady = false; // set true if DMP init was successful
    uint8_t mpuIntStatus; // holds actual interrupt status byte from MPU
    uint8_t devStatus; // return status after each device operation (0 = success, !0 = error)
    uint16_t packetSize; // expected DMP packet size (default is 42 bytes)
    uint16_t fifoCount; // count of all bytes currently in FIFO
    uint8_t fifoBuffer[64]; // FIFO storage buffer


    // orientation/motion vars
    Quaternion q; // [w, x, y, z] quaternion container
    VectorFloat gravity; // [x, y, z] gravity vector
    float ypr[3]; // [yaw, pitch, roll] yaw/pitch/roll container and gravity vector


    //PID
    double originalSetpoint =167;
    double setpoint = originalSetpoint;
    double movingAngleOffset = 0.1;
    double input, output;


    //adjust these values to fit your own design
    double Kp = 100;
    double Kd = 8;
    double Ki = 60;
    PID pid(&input, &output, &setpoint, Kp, Ki, Kd, DIRECT);


    double motorSpeedFactorLeft = 0.6;
    double motorSpeedFactorRight = 0.6;
    //MOTOR CONTROLLER
    int ENA = 5;
    int IN1 = 6;
    int IN2 = 7;
    int IN3 = 8;
    int IN4 = 9;
    int ENB = 10;
    LMotorController motorController(ENA, IN1, IN2, ENB, IN3, IN4, motorSpeedFactorLeft, motorSpeedFactorRight);


    volatile bool mpuInterrupt = false; // indicates whether MPU interrupt pin has gone high
    void dmpDataReady()
    {
    mpuInterrupt = true;
    }




    void setup()
    {
    // join I2C bus (I2Cdev library doesn't do this automatically)

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE
    Wire.begin();
    TWBR = 24; // 400kHz I2C clock (200kHz if CPU is 8MHz)

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    I2CDEV_IMPLEMENTATION == I2CDEV_BUILTIN_FASTWIRE
    Fastwire::setup(400, true);

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت




    mpu.initialize();


    devStatus = mpu.dmpInitialize();


    // supply your own gyro offsets here, scaled for min sensitivity
    mpu.setXGyroOffset(220);
    mpu.setYGyroOffset(76);
    mpu.setZGyroOffset(-85);
    mpu.setZAccelOffset(1788); // 1688 factory default for my test chip


    // make sure it worked (returns 0 if so)
    if (devStatus == 0)
    {
    // turn on the DMP, now that it's ready
    mpu.setDMPEnabled(true);


    // enable Arduino interrupt detection
    attachInterrupt(0, dmpDataReady, RISING);
    mpuIntStatus = mpu.getIntStatus();


    // set our DMP Ready flag so the main loop() function knows it's okay to use it
    dmpReady = true;


    // get expected DMP packet size for later comparison
    packetSize = mpu.dmpGetFIFOPacketSize();

    //setup PID
    pid.SetMode(AUTOMATIC);
    pid.SetSampleTime(10);
    pid.SetOutputLimits(-255, 255);
    }
    else
    {
    // ERROR!
    // 1 = initial memory load failed
    // 2 = DMP configuration updates failed
    // (if it's going to break, usually the code will be 1)
    Serial.print(F("DMP Initialization failed (code "));
    Serial.print(devStatus);
    Serial.println(F(")"));
    }
    }




    void loop()
    {
    // if programming failed, don't try to do anything
    if (!dmpReady) return;


    // wait for MPU interrupt or extra packet(s) available
    while (!mpuInterrupt && fifoCount < packetSize)
    {
    //no mpu data - performing PID calculations and output to motors
    pid.Compute();
    motorController.move(output, MIN_ABS_SPEED);

    }


    // reset interrupt flag and get INT_STATUS byte
    mpuInterrupt = false;
    mpuIntStatus = mpu.getIntStatus();


    // get current FIFO count
    fifoCount = mpu.getFIFOCount();


    // check for overflow (this should never happen unless our code is too inefficient)
    if ((mpuIntStatus & 0x10) || fifoCount == 1024)
    {
    // reset so we can continue cleanly
    mpu.resetFIFO();
    Serial.println(F("FIFO overflow!"));


    // otherwise, check for DMP data ready interrupt (this should happen frequently)
    }
    else if (mpuIntStatus & 0x02)
    {
    // wait for correct available data length, should be a VERY short wait
    while (fifoCount < packetSize) fifoCount = mpu.getFIFOCount();


    // read a packet from FIFO
    mpu.getFIFOBytes(fifoBuffer, packetSize);

    // track FIFO count here in case there is > 1 packet available
    // (this lets us immediately read more without waiting for an interrupt)
    fifoCount -= packetSize;


    mpu.dmpGetQuaternion(&q, fifoBuffer);
    mpu.dmpGetGravity(&gravity, &q);
    mpu.dmpGetYawPitchRoll(ypr, &q, &gravity);
    input = ypr[1] * 180/M_PI + 180;
    }
    }
  2. #2
    2018/02/22
    1,096
    694

    پاسخ : مشکل در اضافه کردن کتابخانه به صورت "i2cdev.h" include# در آردوینو

    درود، از دو روش یک و دو استفاده کنید بهتره

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت



    اگر در روش اول نشد ، میتونید نام کتابخونه رو در گوگل سرچ کنید مثلاً i2cdev و از نتایج جستجو ، سایت های گیت هاب برای دانلود کتابخونه مناسب هستند
  3. #3
    2016/12/15
    17
    3

    پاسخ : مشکل در اضافه کردن کتابخانه به صورت "i2cdev.h" include# در آردوینو

    ممنون درست شد
نمایش نتایج: از 1 به 3 از 3

موضوعات مشابه

  1. ساخت "KV"کیلو ولت متر برای مدارات "های ولتاژ" +تصویر
    توسط seeto در انجمن ترانسفورماتورها و ماشين هاي الکتريکي
    پاسخ: 17
    آخرين نوشته: 2019/01/29, 21:13
  2. تفاوت یا تعریف "switching frequency" و "response time" چیست ؟
    توسط majidshahrouzi در انجمن الكترونيك صنعتي
    پاسخ: 5
    آخرين نوشته: 2015/02/01, 09:53
  3. پاسخ: 4
    آخرين نوشته: 2015/01/28, 10:41
  4. پاسخ: 4
    آخرين نوشته: 2013/07/10, 11:15
  5. "فوري" مشکل پروگرام کردن EP4CE6E22C8
    توسط meyti1121 در انجمن PLD , SPLD , GAL , CPLD , FPGA
    پاسخ: 0
    آخرين نوشته: 2012/08/16, 13:25

کلمات کلیدی این موضوع

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

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

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