BAĞLAN

Arduino İle Kendini Dengeleyen Robot Yapımı

  • Görüntüleme 12286
  • Kendi Robotunu Yap projelerimizin bu bölümünde arduino ile dengede duran robot yapımını anlatacağım.Önceki projelerimizde android kontrollü olan versiyonu anlatmıştık.Bu projemizde ise bizim kontrolümüzle hareket etmeyecek.Kendini Dengeleyen Robot projemize geçelim ve yapımına başlayalım.

    Malzemeler:

    • Arduino Uno veya Mega
    • L298N Motor Sürücü Kartı
    • Mpu 6050 6 eksen Gyro-İvmeölçer
    • 3 Adet potansiyometre
    • Mekanik için pleksi levha veya sert plastik kaplardan kesebilirsiniz.
    • 4 Adet yaklaşık 20 cm uzunluğunda vida çubuklar
    • 24 Adet Somun
    • 2 Adet 6v 250 rpm dc motor (tekerlekleri ile birlikte olanlardan alın)
    • Lipo pil

    Mekanik Kısım:

    20×8 cm ebatında üç adet pleksi levha keselim.Farklı ebatlarda da kesebilirsiniz.Kestikten sonra her levhanın köşelerine çubuk vidanın çapı kadar delik açalım.Her levha iki somun arasında kalacak şekilde çubuk vidaları ve somunları monte edelim.Levhaların birbirleri arasındaki boşluğun eşit olmasına dikkat edelim.Ardından motorlarımızı en altta bulunan levhanın sağ ve sol kenarına tam merkezde olacak şekilde demir telle bağlayıp silikonlayalım.Mekanik kısım bu kadar.

    Elektronik Kısım:

    Devre şeması:

    Kullandığımız motor sürücü kendi kütüphanesi ile motorları senkronize bir şekilde çalıştırıyor.Bu sayede de tam verimle motorların çalışıp sistemde hata olmamasını en aza indirgemiş oluyor.

    Motor sürücü üzerinde 12v enerji girişine lipo pilin artı kısmını takıyoruz.Gnd girişine de eksi ucunu takıyoruz.

    Devreye ek olarak 3 tane potansiyometreyi analog 0,1 ve 2 numaralı pinlere bağlıyoruz.Potansiyometrelerin burdaki görevi kp, kd ve ki değerlerini manual olarak ayarlayarak robotun en uygun denge noktasını bulmamızı sağlayacaktır.Mpu6050 gyro sensörü yatay şekilde en alt levhaya sabitleyelim.

    Yazılım Kısmı:

    Kütüphaneleri buradan indirelim >> Denge Robot Kütüphaneler

    Arduino Yazılımı:

    #include <PID_v1.h>
    #include <LMotorController.h>
    #include "I2Cdev.h"
    
    #include "MPU6050_6Axis_MotionApps20.h"
    
    #if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE
     #include "Wire.h"
    #endif
    
    
    #define LOG_INPUT 0
    #define MANUAL_TUNING 0
    #define LOG_PID_CONSTANTS 0 //MANUAL_TUNING must be 1
    #define MOVE_BACK_FORTH 0
    
    #define MIN_ABS_SPEED 30
    
    //MPU
    
    
    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
    
    
    #if MANUAL_TUNING
     double kp , ki, kd;
     double prevKp, prevKi, prevKd;
    #endif
    double originalSetpoint = 174.29;
    double setpoint = originalSetpoint;
    double movingAngleOffset = 0.3;
    double input, output;
    int moveState=0; //0 = balance; 1 = back; 2 = forth
    
    #if MANUAL_TUNING
     PID pid(&input, &output, &setpoint, 0, 0, 0, DIRECT);
    #else
     PID pid(&input, &output, &setpoint, 70, 240, 1.9, DIRECT);
    #endif
    
    
    //MOTOR CONTROLLER
    
    
    int ENA = 9;
    int IN1 = 11;
    int IN2 = 10;
    int IN3 = 5;
    int IN4 = 4;
    int ENB = 3;
    
    
    LMotorController motorController(ENA, IN1, IN2, ENB, IN3, IN4, 0.6, 1);
    
    
    //timers
    
    
    long time1Hz = 0;
    long time5Hz = 0;
    
    
    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)
     #if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE
     Wire.begin();
     TWBR = 24; // 400kHz I2C clock (200kHz if CPU is 8MHz)
     #elif I2CDEV_IMPLEMENTATION == I2CDEV_BUILTIN_FASTWIRE
     Fastwire::setup(400, true);
     #endif
    
     // initialize serial communication
     // (115200 chosen because it is required for Teapot Demo output, but it's
     // really up to you depending on your project)
     Serial.begin(115200);
     while (!Serial); // wait for Leonardo enumeration, others continue immediately
    
     // initialize device
     Serial.println(F("Initializing I2C devices..."));
     mpu.initialize();
    
     // verify connection
     Serial.println(F("Testing device connections..."));
     Serial.println(mpu.testConnection() ? F("MPU6050 connection successful") : F("MPU6050 connection failed"));
    
     // load and configure the DMP
     Serial.println(F("Initializing DMP..."));
     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
     Serial.println(F("Enabling DMP..."));
     mpu.setDMPEnabled(true);
    
     // enable Arduino interrupt detection
     Serial.println(F("Enabling interrupt detection (Arduino external interrupt 0)..."));
     attachInterrupt(0, dmpDataReady, RISING);
     mpuIntStatus = mpu.getIntStatus();
    
     // set our DMP Ready flag so the main loop() function knows it's okay to use it
     Serial.println(F("DMP ready! Waiting for first interrupt..."));
     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);
     
     unsigned long currentMillis = millis();
    
     if (currentMillis - time1Hz >= 1000)
     {
     loopAt1Hz();
     time1Hz = currentMillis;
     }
     
     if (currentMillis - time5Hz >= 5000)
     {
     loopAt5Hz();
     time5Hz = currentMillis;
     }
     }
    
     // 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);
     #if LOG_INPUT
     Serial.print("ypr\t");
     Serial.print(ypr[0] * 180/M_PI);
     Serial.print("\t");
     Serial.print(ypr[1] * 180/M_PI);
     Serial.print("\t");
     Serial.println(ypr[2] * 180/M_PI);
     #endif
     input = ypr[1] * 180/M_PI + 180;
     }
    }
    
    
    void loopAt1Hz()
    {
    #if MANUAL_TUNING
     setPIDTuningValues();
    #endif
    }
    
    
    void loopAt5Hz()
    {
     #if MOVE_BACK_FORTH
     moveBackForth();
     #endif
    }
    
    
    //move back and forth
    
    
    void moveBackForth()
    {
     moveState++;
     if (moveState > 2) moveState = 0;
     
     if (moveState == 0)
     setpoint = originalSetpoint;
     else if (moveState == 1)
     setpoint = originalSetpoint - movingAngleOffset;
     else
     setpoint = originalSetpoint + movingAngleOffset;
    }
    
    
    //PID Tuning (3 potentiometers)
    
    #if MANUAL_TUNING
    void setPIDTuningValues()
    {
     readPIDTuningValues();
     
     if (kp != prevKp || ki != prevKi || kd != prevKd)
     {
    #if LOG_PID_CONSTANTS
     Serial.print(kp);Serial.print(", ");Serial.print(ki);Serial.print(", ");Serial.println(kd);
    #endif
    
     pid.SetTunings(kp, ki, kd);
     prevKp = kp; prevKi = ki; prevKd = kd;
     }
    }
    
    
    void readPIDTuningValues()
    {
     int potKp = analogRead(A0);
     int potKi = analogRead(A1);
     int potKd = analogRead(A2);
     
     kp = map(potKp, 0, 1023, 0, 25000) / 100.0; //0 - 250
     ki = map(potKi, 0, 1023, 0, 100000) / 100.0; //0 - 1000
     kd = map(potKd, 0, 1023, 0, 500) / 100.0; //0 - 5
    }
    #endif
    

    Yazılımı yükleyip gerekli bağlantıları tamamlıyoruz. Robotumuzu çalıştırdıktan sonra dik konumda serbest bırakalım.Robotun dengede durmasında sıkıntı varsa potansiyometrelerle kp, ki ve kd değerlerini değiştiriyoruz.

    Yukarıdaki kodu kopyalıp almışsanız muhtemelen derlemede hata alacaksınız. Bundan dolayı Arduino Yazılım dosyasını buradan indirebilirsiniz.>> kendini dengeleyen Robot

    Kendi Robotunu Yap projelerimizin bu bölümünde arduino ile dengede duran robotumuzu tamamladık.Bir sonraki kendi robotunu yap projemizde görüşmek üzere.. iyi çalışmalar…

    User Rating: 5.0 (3 votes)
    Sending

    PAYLAŞ

    Sezgin GÜL

    Makine Mühendisi, Maker, Robotik Sistemler Uzmanı

    145 Yorum "Arduino İle Kendini Dengeleyen Robot Yapımı"

    1. Kazım
      30 Aralık 2016

      Hocam şekildeki gibi herşeyi yaptım ama tekerler sürekli aynı yönde dönüyor aorun nerdedir acaba yardımcı olabilirmisiniz

      Cevapla
    2. Ali
      27 Aralık 2016

      Merhaba burda gösterilenlerin hepsini yapyık ama çalışmıyor güc verince motor kartından ses geliyor ama tekerler dönmüyor

      Cevapla
    3. Taner
      27 Aralık 2016

      Potansiyometreler icin tek 5v ve tek gnd girisi var ucunu birden nasil beslicem?

      Cevapla
      • Sezgin GÜL
        Sezgin GÜL
        27 Aralık 2016

        Sizdeki potansiyometre iki bacaklı mı sinyal pini yoksa o farklı bir komponenttir.

        Cevapla
        • Taner
          27 Aralık 2016

          Yok hocam 3 bacakli, orta bacaklar a0, a1, a2 tamamda. Geri 2 bacak kaliyor (toplamda 6) bunlarida gnd ve 5 volta nasil baglicam. (4 bacak bos)

          Cevapla
          • Sezgin GÜL
            Sezgin GÜL
            28 Aralık 2016

            iki bacağın biri gnd diğeri de 5v’tur arduinonun gnd ve 5v pinlerine bağlayacaksın. potansiyometre datasheet olarak ara hangi bacağın gnd hangisinin vcc olduğunu görürsün.

            Cevapla
    4. cem koç
      26 Aralık 2016

      merhaba yukarıda anlatılanları yaptım ama motorlarda hiç çalışmadı ve seri pport ekranına balınca böyle bir hata veriyor Initializing I2C devices…
      Testing devicInitializing I2C devices…
      Testing device connections…
      MPU6050 connection failed
      Initializing DMP…
      DMP Initialization failed (code 1)

      sebebi nedir acaba

      Cevapla
      • Sezgin GÜL
        Sezgin GÜL
        27 Aralık 2016

        Hata şundan kaynaklı : ivme ölçere kesme göndererek sensörün tetiklenmesi gerekiyor. siz muhtemelen kesme pini yani int yazan pini arduinonun dijital 2 pinine bağlamadığınız için hata vermiş. Bağlamış iseniz de ivmeölçerde sorun olabilir.

        Cevapla
    5. efe
      14 Aralık 2016

      merhaba sezgin bey ben aynı işlemleri yaptım tek motor surekli aynı yöne dönüyor ve ivme sensörünün de bi etkisi yok

      Cevapla
      • Sezgin GÜL
        Sezgin GÜL
        15 Aralık 2016

        İvme sensörünü yatay şekilde konumlandır. Bir de devre bağlantıları tekrar kontrol et.

        Cevapla
    6. Muammer
      14 Aralık 2016

      Merhaba hocam benim aklima takilan sey potansetre ile yapilmak istenen ne yani potansetre nicin kullanildida jiroskop neden kullanilmadi

      Cevapla
      • Sezgin GÜL
        Sezgin GÜL
        15 Aralık 2016

        Potansiyometreler PID değerlerini ayarlamak için kullanıldı. Ayrıca ivme ve gyro ölçer de var sistemde .

        Cevapla
    7. Seyfi
      30 Ekim 2016

      Hocam kolay gelsin l293d motor sürü kartı ile bu proje gerçekleşir mi bunu soracaktım saygılar

      Cevapla
      • Sezgin GÜL
        31 Ekim 2016

        l293d kullanabilirsin fakat desteklediği akım 600 – 1200 mah olduğundan bu değerlere uygun motor kullanman sağlıklı olacaktır.

        Cevapla
    8. efe
      10 Ekim 2016

      sezgin bey merhaba atmış olduğunuz devre şemasının daha detaylısı var mı acaba

      Cevapla
    9. ahmet
      6 Ekim 2016

      merhaba hocam yüklerken hata oluştu verdiğiniz dosyayı indirdim yine aynı sorunla karşılaştım

      Cevapla
    10. Robotikçi
      1 Ekim 2016

      Merhabalar. Acaba İTÜRO’ya uygun yani 2. level’i de tamamlayan yani A noktasından B noktasına, sonra da B noktasından A noktasına gidebilen bir kod da var mı bunun içinde? Eğer yoksa yazabilir misiniz/verebilir misiniz/bulabilir misiniz lütfen?

      Cevapla
    11. Josephine
      28 Eylül 2016

      hi so i’ve replicated the robot however regardless when the power is turned on the wheels spin non-stop. however when tested the out puts of the arduino to the motor stepper are working fine and react to the position of the gyro. any thoughts?

      Cevapla
    12. ahad
      7 Haziran 2016

      how am i supposed to make it move around with a remote control ……. please help

      Cevapla
    13. eynm
      18 Mayıs 2016

      merhaba, lipo bataryaların nası bağlanması gerektiği hakkında bilgi verebilir misiniz?

      Cevapla
      • Sezgin GÜL
        18 Mayıs 2016

        motor sürücünün enerji pin girişlerine direk takıp bağlantıyı yapabilirsiniz.

        Cevapla
    14. Sercan ER
      30 Nisan 2016

      Merhabe Sezgin Bey;
      Robotu tam olarak yaptım, dengeye gelmek için ik- üç saniye kadar titreme hareketi yapıyor ve ardından dengeye gelince motorlara giden enerji kesiliyor ve düşüyor. Sebebi ne olabilir acaba?.
      Teşekkürler..

      Cevapla
      • Sezgin GÜL
        30 Nisan 2016

        üstteki cevabıma bakın motorların hızlarını eşitleyin.

        Cevapla
    15. mehmet y.
      25 Nisan 2016

      motor hızlarının farklı olmasının sebebi LMotorController motorController(ENA, IN1, IN2, ENB, IN3, IN4, 0.6, 1);
      satırındaki 0.6 dır. onu 1 yapmak gerekiyor

      Cevapla
    16. mehmet y.
      23 Nisan 2016

      7.4 v. 1050 mah olması zorunlu mu 450 mah olur mu?

      Cevapla
      • Sezgin GÜL
        23 Nisan 2016

        450 mah de zorlama akımını karşılamayacağı için yeterli değildir.

        Cevapla
    17. mehmet y.
      19 Nisan 2016

      Merhaba ,

      bende de bu şekilde bi beş altı satır hata veriyor.
      nasıl çözeriz

      :\Program Files (x86)\Arduino\libraries\MPU6050/MPU6050_6Axis_MotionApps20.h:639:52: warning: left shift count >= width of type [enabled by default]

      data[2] = ((packet[24] << 24) + (packet[25] << 16) + (packet[26] << 8) + packet[27]);

      Cevapla
      • Sezgin GÜL
        19 Nisan 2016

        Mpu6050 kütüphane hatası vermiş. Ya birden fazla kütüphane var ya da kütüphaneyi eklememişsin.

        Cevapla
        • mehmet y.
          20 Nisan 2016

          teşekkür ederim dediğine baktım ama yine devam ediyor

          Cevapla
        • mehmet y.
          20 Nisan 2016

          C:\Program Files (x86)\Arduino\libraries\MPU6050/MPU6050_6Axis_MotionApps20.h: In member function ‘uint8_t MPU6050::dmpGetAccel(int32_t*, const uint8_t*)’:

          C:\Program Files (x86)\Arduino\libraries\MPU6050/MPU6050_6Axis_MotionApps20.h:580:31: warning: left shift count >= width of type [enabled by default]

          data[0] = ((packet[28] << 24) + (packet[29] << 16) + (packet[30] <= width of type [enabled by default]

          data[0] = ((packet[28] << 24) + (packet[29] << 16) + (packet[30] <= width of type [enabled by default]

          data[1] = ((packet[32] << 24) + (packet[33] << 16) + (packet[34] <= width of type [enabled by default]

          data[1] = ((packet[32] << 24) + (packet[33] << 16) + (packet[34] <= width of type [enabled by default]

          data[2] = ((packet[36] << 24) + (packet[37] << 16) + (packet[38] <= width of type [enabled by default]

          data[2] = ((packet[36] << 24) + (packet[37] << 16) + (packet[38] <= width of type [enabled by default]

          data[0] = ((packet[0] << 24) + (packet[1] << 16) + (packet[2] <= width of type [enabled by default]

          data[0] = ((packet[0] << 24) + (packet[1] << 16) + (packet[2] <= width of type [enabled by default]

          data[1] = ((packet[4] << 24) + (packet[5] << 16) + (packet[6] <= width of type [enabled by default]

          data[1] = ((packet[4] << 24) + (packet[5] << 16) + (packet[6] <= width of type [enabled by default]

          data[2] = ((packet[8] << 24) + (packet[9] << 16) + (packet[10] <= width of type [enabled by default]

          data[2] = ((packet[8] << 24) + (packet[9] << 16) + (packet[10] <= width of type [enabled by default]

          data[3] = ((packet[12] << 24) + (packet[13] << 16) + (packet[14] <= width of type [enabled by default]

          data[3] = ((packet[12] << 24) + (packet[13] << 16) + (packet[14] <= width of type [enabled by default]

          data[0] = ((packet[16] << 24) + (packet[17] << 16) + (packet[18] <= width of type [enabled by default]

          data[0] = ((packet[16] << 24) + (packet[17] << 16) + (packet[18] <= width of type [enabled by default]

          data[1] = ((packet[20] << 24) + (packet[21] << 16) + (packet[22] <= width of type [enabled by default]

          data[1] = ((packet[20] << 24) + (packet[21] << 16) + (packet[22] <= width of type [enabled by default]

          data[2] = ((packet[24] << 24) + (packet[25] << 16) + (packet[26] <= width of type [enabled by default]

          data[2] = ((packet[24] << 24) + (packet[25] << 16) + (packet[26] << 8) + packet[27]);

          ^

          C:\Program Files (x86)\Arduino\libraries\I2Cdev\I2Cdev.cpp:64:14: warning: #warning Using current Arduino IDE with Wire library is functionally limiting. [-Wcpp]

          #warning Using current Arduino IDE with Wire library is functionally limiting.

          ^

          C:\Program Files (x86)\Arduino\libraries\I2Cdev\I2Cdev.cpp:65:14: warning: #warning Arduino IDE v1.0.1+ with I2CDEV_BUILTIN_FASTWIRE implementation is recommended. [-Wcpp]

          #warning Arduino IDE v1.0.1+ with I2CDEV_BUILTIN_FASTWIRE implementation is recommended.

          ^

          C:\Program Files (x86)\Arduino\libraries\I2Cdev\I2Cdev.cpp:66:14: warning: #warning This I2Cdev implementation does not support: [-Wcpp]

          #warning This I2Cdev implementation does not support:

          ^

          C:\Program Files (x86)\Arduino\libraries\I2Cdev\I2Cdev.cpp:67:14: warning: #warning – Timeout detection (some Wire requests block forever) [-Wcpp]

          #warning – Timeout detection (some Wire requests block forever)

          ^

          Cevapla
          • Sezgin GÜL
            20 Nisan 2016

            arduino program sürümünden kaynaklı olabilir. Bazı kütüphaneler kabul etmiyor. Güncel sürüm kullanmıyorsan güncelle.

            Cevapla
            • mehmet y.
              21 Nisan 2016

              bu şekildeyken yükledim. motorlardan biri hızlı çalışıyor. denge potlarla oynamama rağmen olmuyor. bi ara oldu gibi oldu ama sonra yine bozuldu. bi tahminin var mı kodlardan mıdır

            • mehmet y.
              22 Nisan 2016

              tamam 1.6.5 i yükledim onunla hatasız derledi. sistemi de kurdum çalışmıyor. denge yok

            • Sezgin GÜL
              22 Nisan 2016

              gyro sensörün int pinini dijital 2 pinine takıp dene. Bütün devre bağlantılarının doğru olduğundan emin ol.

            • mehmet y.
              22 Nisan 2016

              imunun hareketine göre tekerlek yön değiştiriyor. imuda sıkıntı yok gibi. potlar işe yaramıyor gibi geliyor. neyse aklına başka sorun gelmiyorsa uğraşayım

            • mehmet y.
              22 Nisan 2016

              arduino üzerinde tx ışığının yanması gerekmiyor mu ya yanmıyor o

    18. Ahmet
      15 Nisan 2016

      Hocam sensörün yatay konulması önemli imiş şimdi çalıştı biz alta dik takmışız

      Cevapla
    19. Ahmet
      14 Nisan 2016

      Hocam robotun tekerleri sürekli ileri doğru hızlı bir şekilde döndüğünden dengede durmuyor pot ile ayar yaptık ama hiç bir etkisi olmadı robotu boşta denediğimizde ise motorların hızı ve dönüşü değişmekte
      problem nedir hocam sizce ne yapmamızı önerirsiniz.

      Cevapla
    20. mehmet
      14 Nisan 2016

      sezgin hocam yaptık ama sürekli öne gidiyor pot la dengede kalması için denedik ama potun hiç bir etkisi olmadı

      Cevapla
    21. Kerem
      11 Nisan 2016

      Arduinonun 1 adet 5v cikis pini var
      yani 3 potun beslemesini o pindendemi almaliyim

      Cevapla
    22. Kerem
      11 Nisan 2016

      Potun beslemelerini nereden verdiniz

      Cevapla
    23. kerem
      2 Nisan 2016

      bağlantıları neye göre yapıyoruz resimlerde anlaşılmıyor,pot lar hangi pinlere bağlanıyor vs.

      Cevapla
    24. ahmed
      20 Mart 2016

      hi very nice robot i want to ask you did you use kalman filter or complementary filter in your project ???

      Cevapla
    25. Ata
      8 Mart 2016

      Merhaba Sezgin,yukarıda anlatılanlar gibi bağlantıları gerçekleştirdim fakat bir türlü dengeyi sağlayamadım.Gyro sensörünü tekerleklerin hizasına sabitledim.Tekerlekler ileri ve geri şeklinde son hızda hareket ettiler bazen de tekerlekler titreme hareketi yaparak durdular bu sırada potansiyometrelerle de oynadım fakat bir türlü dengede tutamadım.Senin bana önerilerin ne olur nerede hata yapıyorum.Önerilerin paylaşırsan çok sevinirim.Şimdiden teşekkür ederim.

      Cevapla
      • Sezgin GÜL
        9 Mart 2016

        Titremeler olduğu zaman denge anı oluyor yani motorların yönleri sürekli değişerek dengeyi korumak istedikleri için o titremeler meydana gelir. Potansiyometreler ile ayarlama yapman lazım. Gyronun çalıştığından emin ol konum alıyor mu bak. Bir de gyronun int pinini 2. dijital pine takıp öyle dene.

        Cevapla
    26. Josephine
      7 Mart 2016

      Im having trouble compiling the code;

      C:\Users\Josie\AppData\Local\Temp\arduino_5b5031d099ad2a33b5785c7c529e2241\sketch_mar07a.ino:2:20: fatal error: PID_v1.h: No such file or directory

      #include

      ^

      compilation terminated.

      exit status 1
      Error compiling.
      What do i do?

      Cevapla
    27. robot adam
      6 Mart 2016

      motorların gücü iyi motorlarda sıkıntı yok eminim sizin videoda kullandıgınız tekerlerin aynısı birde mekanik kısımda sizin yaptıgınız ile aynı 3 kat levha levha ların uzerine malzemeler oyle yani potlara gelince baya ugrastım ayarlamak icin lakin bişe değişmiyo lütfen yardımcı olur musunuz ?

      Cevapla
      • Sezgin GÜL
        7 Mart 2016

        ivmeölçeri doğru konumlandırmanız gerekir. Motorların yön değiştirdiği noktada robot yere dik olmalıdır. Onuda potansiyometreler ile ayarlamanız gerekir. Özellikle kp değeri dedengeye büyük oranda etki sağlar bunun için analog sıfır pinine bağlı olan potansiyometreyi ayarlayın.

        Cevapla
    28. robot adam
      6 Mart 2016

      hocam sensoru kendi elimle hareket ettirdiğim zaman tekerlerin yonu değişiyor fakat robot dengede durmuyor potansiyometre sanki hiç değişiklik yapmıyor potansiyometreyi cevirsem bile aynı ne yapmalıyım

      Cevapla
      • Sezgin GÜL
        6 Mart 2016

        motorların torku yetmiyor olabilir veya potansiyometreleri tam ayarlama yapmadığınız için kaynaklanıyor. Bir de mekanik kısım da dengeyi etkileyebilir.

        Cevapla
    29. robot adam
      4 Mart 2016

      surekli aynı yonde donuyor tekerlerin ikiside

      Cevapla
      • Sezgin GÜL
        4 Mart 2016

        Potları balayıp ayarladın mı ? gyro sensörün çalıştığından emin ol projedeki indirme bağlantısındaki dosyayı indir onu yükle. gyro sensör çalışmaz ise int pinini 2. dijital pine tak.

        Cevapla
    30. robot adam
      4 Mart 2016

      hocam bende yaptım fakat tekerler aynı yonde surekli dönüyor sensoru sabitledim yine aynı sensoru çıkarıp kendim hareket ettiriyorum bir türlü olmuyor dengede durmuyor ne yapmalıyım

      Cevapla
    31. Josephine
      2 Mart 2016

      where do the other two legs of the potentiometers get connected to?

      Cevapla
    32. Burak
      1 Mart 2016

      hocam sistemi kurduk enerji verince son sürat hareket ediyor
      sabit bir sekilde gyo sensörünü montaladım
      nasıl düzeltecegim bana yardımcı olabilirmisin birde bu potansiyo metreleri ne işe yarıyor

      Cevapla
      • Sezgin GÜL
        1 Mart 2016

        potansiyometreler pid değerlerini ayarlıyor. 3 potansiyometreyi takıp uygun şekilde ayarla dengeye gelmesini bekle.

        Cevapla
    33. burak
      25 Şubat 2016

      Merhaba,
      bu hatayı alıyorum kütüphaneyi bulamadım
      nasıl yapacagımı anlatırmısın

      In file included from C:\Program Files (x86)\Arduino\arduino_denge_robot\arduino_denge_robot.ino:5:0:

      C:\Program Files (x86)\Arduino\libraries\MPU6050/MPU6050_6Axis_MotionApps20.h:36:20: fatal error: I2Cdev.h: No such file or directory

      #include “I2Cdev.h”

      ^

      compilation terminated.

      exit status 1
      Derleme sırasında hata oluştu.
      bu kütüphane nasıl bulacagım yardımcı olabilirmisin.

      Cevapla
    34. Josephine
      15 Şubat 2016

      hello!
      where do you place and connect the 3 piece potentiometer? (in detail please!)
      what voltage is the lipo battery?
      if you add weight to the top of the robot will it try to balance is out?

      thankyou

      Cevapla
      • Sezgin GÜL
        15 Şubat 2016

        hello,

        the 3 piece potentiometer are signal pins Analog 0 , Analog 1, Analog 2 wear. Lipo battery use 7.2 v 1050 mah . The engine can put weight enough to meet the torque.

        Cevapla
        • Josephine
          16 Şubat 2016

          Thankyou!

          Cevapla
    35. ahmet
      7 Şubat 2016

      merhaba
      2 step motorlu nasıl yapabiliriz. ben kameralar için dengede tutan mekanizma yapmak istiyorum. ardunosuz direk •Mpu 6050 6 eksen Gyro-İvmeölçer çıkışlarını pulse üretecek şekilde step motor sürücüsüne bağlayamazmıyız. saygılarımla

      Cevapla
    36. MUSA
      6 Şubat 2016

      Tesekkürler ayni devre ye bu baglantilari koda ekledigimde sorunsuz calisir yani?
      hemen bluetoth ekleyip deneyim.sonucu yazarim.

      Cevapla
    37. MUSA
      6 Şubat 2016

      Simdi MPU yu en alt kisma aldim denge dahada saglamlasti gayet iyi su an.
      Birde su asagidaki linkdeki bluetoth ile yapilmis kodlari aynen bu uygulamaya yüklesem calisirmi?
      http://www.robimek.com/android-kontrollu-dengede-duran-robot-yapimi/
      Sundan dolayi soruyorum bu linkdeki yugulamda L293D Motor Sürücü kullanilmis dolaysiyla, sizin burdaki uygulamanizda ise L298N Motor Sürücü Kartı kullanmissiniz
      Yani burdaki sizin uygulaminizda pin baglantilari söyle:
      //MOTOR CONTROLLER
      int ENA = 3;
      int IN1 = 4;
      int IN2 = 8;
      int IN3 = 5;
      int IN4 = 7;
      int ENB = 6;

      diger linkdekinde ise böyle pin baglantilari yok kod icinde.Yani Bu bluetoth uygulamali hali sizin birdaki kdolara nasil uyarlayabiliriz ki , devrede birsey yapmadan calissin.Cünkü devredeki pin baglantilarini lehimledim.

      Cevapla
      • Sezgin GÜL
        6 Şubat 2016

        Android kontrolde motor pin kısmı bu koddaki pinlere kaşılığı aşağıda yazdım
        #define MOTOR_A_DIR 5 >> IN1
        #define MOTOR_A_BRAKE 8 >> IN2
        #define MOTOR_B_DIR 6 >> IN3
        #define MOTOR_B_BRAKE 12 >> >> IN4
        #define MOTOR_A_PWM 9 >> ENA
        #define MOTOR_B_PWM 10 >> ENB

        Cevapla
    38. devkan
      5 Şubat 2016

      merhaba hocam robotu yaptım fakat derlemede hata veriyor kütüphanelerde sıkıntı olabilir mi acaba?

      Cevapla
      • Sezgin GÜL
        5 Şubat 2016

        merhaba, ne hatası alıyorsunuz ?

        Cevapla
        • Devkan
          10 Şubat 2016

          Tamamdır hocam eksikmiş kütüphane tamamladım sağolun iyi çalışmalar.

          Cevapla
    39. Emre
      1 Şubat 2016

      Hocam bide ayni sekilde bu robota kamera baglayip buletooth modeliyle goruntuyu canlı bi sekilde telefona nasil alabiliriz ?

      Cevapla
      • Sezgin GÜL
        1 Şubat 2016

        bluetooth uzerinden görüntü aktarımı sıkıntılı olur yani çok donma yapar ip camera kullanabilirsin

        Cevapla
    40. Emre
      1 Şubat 2016

      Hocam ben bu robotu HC-06 Bluetooth modülüyle kontrol etmek istiyorum yani ileri geri saga sola şeklinde. Bunu nasil yapabilirim bilgi veririseniz cok sevinicem şimdiden teşekkür ederim 🙂

      Cevapla
    41. MUSA
      29 Ocak 2016

      Sorunum sU:
      cok titreme oluyor ve dengeyi sagladiktan sonra robat hep bir yönde Dogru hizla gitemye basliyor ve sonra denge bozulup düsüyor.

      Cevapla
      • Sezgin GÜL
        29 Ocak 2016

        video da gayet iyi dengeliyor. titremelerin nedeni dengeyi ayarlamada pid değer faktörüdür. gyro sensörü üste değil de alta ve plakanın ortasına koy

        Cevapla
    42. MUSA
      29 Ocak 2016

      sonunda yaptim,
      youtube.com/watch?v=7Du47AIa_hc

      acaba bir bakarmisiniz, calismasi normalmi?
      bagladigim potansiyemetrelerin debgelemede hic bir faktörü olmuyor acaba neden olabilir??

      Cevapla
    43. Süleyman
      27 Ocak 2016

      Sezgin Bey öncelikle paylaşımınız için teşekkür ederim.Sormak istediğim potlarda PID değerlerini ayarlıyoruz ama bluetooth modulünü olarak yaptığımızda ileri ,geri ,sağa, sola hareketlerde PID değerlerin sürekli olarak değişmesi gerekiyor eğer yanlış bilmiyorsam bunu bu sistem sağlıya bilecek mi sabit pot değerleri bağlı iken .

      Cevapla
      • Sezgin GÜL
        28 Ocak 2016

        Süleyman bey PID katsayı değerleri hatasal oranlama hesaplar. Robotun düzlemle eğimini referans alıp bu eğimi yok etmek yani robotu düzlemle dik açı yaptırmak için motorların hızını bu oranla arttırır. Kısacası yön fonksiyonları kullanırken PID katsayı değerleri sabit kalır. Android telefon ile kontrolü için buradaki projeye bakabilirsin http://www.robimek.com/android-kontrollu-dengede-duran-robot-yapimi/

        Cevapla
    44. GökhN
      20 Ocak 2016

      çalıştıramadım hocam new_pid yeri diğer kodda en alt satırdaki pot yerimi oluyor

      Cevapla
      • Sezgin GÜL
        20 Ocak 2016

        change pid kısmı robotun pid hesabı ve hareket fonksiyonu. Şöyle yap bir de blue.available kısmını Serial.available yap yani onun serial iletişimini kullanma standart ileşimi kullan. Bt car control uygulamasıyla kontrol etmen daha kolaydır. F B R L karakterleri gönderiyor.

        Cevapla
    45. GökhN
      20 Ocak 2016

      Hocam diğer android kontrollü robotu çalıştıramadık.Bu robota bluetoth yazılımını eklemeye uğraştım amaolmadı..ben bu programda denge robotunu çalıştırdım..üzerine bluetooth nasıl ekleriz yardımcı olurmusunuz

      Cevapla
      • Sezgin GÜL
        20 Ocak 2016

        Diğer programdaki hareket kodlarını alıp buna entegre et ve kullanacağın android uygulamasındaki gönderilen veriye göre kodu düzenleyip çalıştırabilirsin

        Cevapla
    46. MUSA
      16 Ocak 2016

      DC Motor istenen standartlada (6v 250rpm) bulamiyorum.
      Kücük oyuncak arabalardaki DC motorlardan olurmu?
      Yada cevremde hangi cihazlardaki DC motorlar olur?
      Eski CD Rom v.s?

      Cevapla
      • Sezgin GÜL
        16 Ocak 2016

        250 den düşüklerde sıkıntı yaşarsınız sistemi taşımaz . 250 den büyük olsun sorun olmaz 500 rpm de olur

        Cevapla
    47. MUSA
      15 Ocak 2016

      Sanirim benim kullandigim servolarin hizindan kaynaklaniyor.Ben normal iki servo motoru hacking yaptim. simdi aynen DC Motor gibi + ve – ile 360 derece tam devir dönüyorlar.Ama hizlari tabiki yavas.
      Nette arastirdim normal servo motorlar 60 rmp hizina sahipmis.
      MPU 6050 calisiyor, asagi yukari yaptigimda motorlarin devir yönü degisiyor.Fakat MPU yu Robot üzerine monta ettigimde bir türlü dengede duracak setpoint ayarini yapamiyorum.
      Neyse DC Motor bulursam onlarla deneyim birde!!

      Cevapla
      • Sezgin GÜL
        15 Ocak 2016

        servoların 1.5ms olarak belirlenmiş bir duruş pozisyonu vardır yani hızı default olarak sabit olacaktır. o nedenle yavaş hareket edeceğinden sorun yaşarsınız. Siz normal dc motor ile deneyin. Setpoint noktasını bu şekilde rahat bularak dengeyi sağlarsınız

        Cevapla
    48. MUSA
      15 Ocak 2016

      potosiyelmetreleri saga sola ceviriyorum hic bir funksiyonu yok.
      yani hic bir islem yapmiyor.Tuhaf!!

      Cevapla
    49. musa
      15 Ocak 2016

      iste ben dengeyi nasil saglayacagim?
      mpu 6050 yi elimde düz tutup yukari asagi yaptigimda motorlarin yönü degisiyor.
      mpu’yu Robot üzerinde yere parelel selkilde sabitledigimde Uygun dengeyi bulamiyorum.
      motorlar devamli dönüyor , robotu kendim egdigimde belirli noktada tekerler ters yöne dönüyor ama devamli dönüyor.
      ben dengeyi nasil saglayacagim? Kod icinde degistirmem gereken bir islem varmi?
      kullandigim motorlar servo, tabiki dveir sayilari normal dc ye göre düsük sanirim.

      Cevapla
      • Sezgin GÜL
        15 Ocak 2016

        potansiyometrelerle pid ayarı yapacaksın. uygun setpoint notasına ayarladığında robot dengede duracaktır. Yani denemeyle denge noktasını bulman gerek

        Cevapla
    50. musa
      14 Ocak 2016

      Teekkürler,
      ben 2 adet servo Motor MG 996R icindeki potonsiyelmetreleri kestim ve motorlarin DC Motor gibi calismasini sagladim.
      devreyi ve mekanigi kurdum.
      hersey güzel calisiyor, mpu ‘yu asagi yukari yaptigimda motorlarin yönü degisiyor.
      fakat motorlar ivmelerde hemen diger yöne gecmeyi gec yapiyor.
      sanairim sizin verdiginiz kodda PID 250 RPM’e göre ayarlanmis.
      ben simdi bu kullandigim servomotorlara göre PID’i nasil hesaplayabilirim?
      Nasil yapmaliyim?
      3 adet bahsettiginiz potansielmetreleride taktim yine ayni.Elle mpu yu asagi yukari yaptigimda motorlarin yönü degisiyor fakat Robot üstünde mooprlar devamli dönüyor.

      Cevapla
      • Sezgin GÜL
        15 Ocak 2016

        motor hareketi buradaki satırda gerçekleşiyor =>> motorController.move(output, MIN_ABS_SPEED);
        output pid çıktısı MIN_ABS_SPEED ise hız değeridir. #define MIN_ABS_SPEED 30 burdaki 30 değerini değiştirirseniz hızını değiştirirsiniz. Fakat uygun dengeyi ayarlamanız gerekir aksi halde dengeyi sağlayamassınız.

        Cevapla
    51. musa
      10 Ocak 2016

      Potonsiyemetrelerin baglanti sekli nasil olmali?
      Potansiyemetrelerde 3 er bacak var bunlar nerelere baglanacak?

      Cevapla
      • Sezgin GÜL
        11 Ocak 2016

        orta bacak sinyal bu pinler A0 A1 ve A2 pinlerine takılacak. diğer iki bacağın biri 5 v diğeride gnd ye takılacak

        Cevapla
    52. Kemal
      5 Ocak 2016

      Merhaba benim kullandığım motorlar epey hızlı, bunu kod üzerinde nereden kontrol edebilirim acaba?

      Cevapla
      • Sezgin GÜL
        6 Ocak 2016

        Motorların çok hızlı olması dengeyi bozmaz ama sorun olursa da pid.SetOutputLimits(-255, 255); buradaki değerleri değiştir veya akımı az pil kullan.

        Cevapla
    53. İbrahim
      23 Aralık 2015

      Merhaba, verilen kodu arduinoya yükledim sadece sensör bağlantısını yaparak seri porttan okumayı deniyorum ancak sürekli fifo overflow yazıyor. Bütün girişleri doğru bağladım. Hata nerede olabilir?

      Cevapla
      • Sezgin GÜL
        23 Aralık 2015

        merhaba ibrahim, yazılımda bir fonksiyon pasif durumda olduğundan onu gösteriyor. O kısım aktif edildi yazılım güncellendi tekrar dene.

        Cevapla
        • İbrahim
          24 Aralık 2015

          Kodun yeni halini denedim ancak derlemede birçok syntax hatası aldım. Syntax hatalarını düzelttiğimi düşünürken bu seferde kütüphaneler ile ilgili hata aldım. Kodun ilk halinde problem olmamıştı.

          Cevapla
    54. GökhN
      20 Aralık 2015

      mpu nun ınterrupt pinini interrupta bağlamak gerekiyor

      mpu nun ınterrupt hangi bacağa bağlamak gerekiyor

      Cevapla
      • Sezgin GÜL
        20 Aralık 2015

        Arduinonun kesme pini olan 2.dijital pine bağlamalısın.

        Cevapla
    55. Gokhan
      15 Aralık 2015

      Hocam denge robotunda mpu6050 değerleri nasıl hesaplanıyor ..mekanik akşamı yaptıktan sonrami hesaplaniyor

      Cevapla
      • Sezgin GÜL
        15 Aralık 2015

        Mekanik aksama yata konumda yerleştirin. Eksenel harekete göre ivmelenme analizi yaparak bu değerler pid ile hesaplanarak motorların hız ve yön değerleri motorlara aktarılarak motorların hareketi sağlanır.

        Cevapla
    56. cem
      16 Kasım 2015

      merhaba potansiyometrelerin değeri nedir, lipo pil motorları sürmek için değil mi ? kaç volt kaç amper pil gerekiyor

      Cevapla
      • Sezgin GÜL
        16 Kasım 2015

        Potların değeri 10k. lipo pil motorları beslemek için kullan. Gyro ve potların beslemesini arduino üzerinden ayrı pille besle Lipo pil 7.2 volt 1050 mah yeterlidir

        Cevapla
    57. Sezgin GÜL
      6 Kasım 2015

      GÖKHAN gyro sensör kütüphanesindeki örnek kodların birini yükle serialden verilere bakarsın

      Cevapla
      • gökhan odabaşı
        7 Kasım 2015

        ok sensörden veri geliyor, başlaması biraz zaman alıyor ama sonra geliyor

        ancak bizim yazılımda şimdi fifo overflow diyor , motorlar yine tam gaz, potansşyometre ve gyro hareketi motorlarda değişiklik yapmıyor

        Cevapla
        • Sezgin GÜL
          7 Kasım 2015

          Okuma işlemine geçmiyor demek. Kodu attıktan sonra sistemin enerjisini kesip tekrar taktınız mı ? Örnek kodda veriler gecikmeyle geliyorsa sensörde sorun olabilir

          Cevapla
          • gökhan odabaşı
            8 Kasım 2015

            merhaba

            mpu nun ınterrupt pinini interrupta bağlamak gerekiyor 🙂

            Cevapla
            • Sezgin GÜL
              8 Kasım 2015

              Bazı modüllerde gerekiyor. Kesme yaparak tetiklemesini sağlıyor. Sorun çözülmüştür o zaman 🙂

    58. NADİCAN
      6 Kasım 2015

      Hocam skype adresinizi alabilirmiyim mümkünse

      Cevapla
      • Sezgin GÜL
        6 Kasım 2015

        skype kullanmıyorum facebooktan ulaşın facebook.com/sezgin.gul.08

        Cevapla
    59. NADİCAN
      6 Kasım 2015

      Hocam tekrar merhaba,
      Devreyi verdiğin şekilde kurdum programıda derleyerek içersine attım fakat hiçbir tepki yok.
      Motor beslemesini 5vdan yaptıgım zaman ince bi ses geliyor motorlardan fakat 12v ile beslediğimde herhangi bi tepki yok motorlar hareket etmiyor yani.
      Sorun neyden kaynaklanıyor olabilir

      Cevapla
      • Sezgin GÜL
        6 Kasım 2015

        Kullandığınız pilin değeri 6v dan fazla olmalıdır ki 12v girişinden enerji alabilsin. Ayrıca devrenizi tekrar kontrol edin. Büyük ihtimalle enerji yetersizdir.

        Cevapla
    60. gökhan odabaşı
      6 Kasım 2015

      merhaba,

      Paylaşım için teşekkürler

      Bir sorunum var

      burada kalıyor

      Initializing I2C devices…
      Testing device connections…
      MPU6050 connection successful
      Initializing DMP…
      Enabling DMP…
      Enabling interrupt detection (Arduino external interrupt 0)…
      DMP ready! Waiting for first interrupt…

      Cevapla
      • Sezgin GÜL
        6 Kasım 2015

        Merhaba Gökhan, bu mesajda gyro sensör okuma işlemini başlatmış yani bağlantı başarılı. Sorun nedir ? motorlar mı hareket etmiyor ?

        Cevapla
        • gökhan odabaşı
          6 Kasım 2015

          burada kalıyor ve motorlar ters yönde doğru son hız dönüyorlar

          Cevapla
          • gökhan odabaşı
            6 Kasım 2015

            merhaba,

            potansiyometre bağlantılarını tarif edebilir misiniz?
            teşekkür ederim

            Cevapla
            • Sezgin GÜL
              6 Kasım 2015

              Potansiyometrelerin sinyal pinleri Analog 0,1,2 pinlerine takın

          • Sezgin GÜL
            6 Kasım 2015

            Gyro sensörden veri alınmadığından motorlar kontrol edilmiyordur. Sistemin enerjisini kesip tekrar deneyin. Ayrıca motorların dönme yönleri aynı yönde olmalıdır. Ve sistemi robotun üzerinde deneyin Çünkü gyro sensör serbest olmalı ki eğilme yönüne göre motorları kontrol etsin.Sabit ise motorlar sürekli dönecektir.

            Cevapla
            • gökhan odabaşı
              6 Kasım 2015

              gyro sensorden veri gelmiyor gibi, sensörü hareket ettirdiğim halde motor hızları hiç değişmiyor
              sensörden veri gelip gelmediğini yazılıma serial print ekleyerek monitörden nasıl görebilirim,

              teşekkürler

    61. NADİCAN
      6 Kasım 2015

      Merhaba,
      Derleme sırasında şöyle bir hata alıyorum

      In file included from C:\Program Files (x86)\Arduino\arduino_denge_robot\arduino_denge_robot.ino:5:0:

      C:\Program Files (x86)\Arduino\libraries\MPU6050/MPU6050_6Axis_MotionApps20.h:36:20: fatal error: I2Cdev.h: No such file or directory

      #include “I2Cdev.h”

      ^

      compilation terminated.

      exit status 1
      Derleme sırasında hata oluştu.

      Neden olduğunu söyleyebilirmisin

      Cevapla
      • Sezgin GÜL
        6 Kasım 2015

        Merhaba Nadircan, hatanın nedeni I2Cdev.h kütüphanesinin yüklü olmamasıdır. Kütüphaneyi yüklersen hata ortadan kalkar.

        Cevapla
    62. Günışık
      31 Ekim 2015

      arduino nano kullanarak robotu kurdum yazılımı attım ama tekerler sureklı son hızda calısıyo baglantılar dogru farklı yazılım attıgımda motorlar ıstedıgım hızda calısıyor.Yazılım üzeride yapmam gereken bir degişiklik varmı?

      Cevapla
      • Sezgin GÜL
        31 Ekim 2015

        Bunları yapın tekrar deneyin.
        Yazılımı attıktan sonra arduinonun enerjisini kesip tekrar takın. Gyro sensör aktif olması için.
        Bir de yazılımı robotun üzerinde mi denediniz .Eğer gyro sabit yerdeyse yani robotla hareket halinde değilse motorlar gyronun konumunu düzeltmeye çalışacağından sürekli dönmeye devam ederler.
        Son olarak bütün bağlantıları tekrar kontrol edip deneyin.

        Cevapla
    63. nadican
      28 Ekim 2015

      merhabalar.Lipo pil ve potansiyometre değerlerini yazarmısınız.

      Cevapla
      • Sezgin GÜL
        28 Ekim 2015

        merhaba Nadircan, potansiyometre değeri 10k, lipo ise 7.2v 1050 mah kullanıldı.

        Cevapla
    64. André Donizete
      13 Ekim 2015

      Hello, good morning. Am technical school student , I’m 16 years old , have a scientific design of an inverted pendulum for people users of the wheelchair . I am in the assembly of the prototype , and I’m using almost all its components , such as the one Arduino , I’m using MPU6050 , and the bridge h L298d , however this bridge h is not the keyes , does this code will function normally ?? I am very grateful to be can answer me and give me some tips for I am a little confused in this part ! Thanks for attention.

      Cevapla
      • Sezgin GÜL
        13 Ekim 2015

        The project needs to use the motor drive card.Pins are shown in Figure

        Cevapla
    65. mustafa
      9 Ekim 2015

      merhabalar.Currentmillisde hata veriyor arduino kod neden acaba?

      Cevapla
    66. 16 Eylül 2015

      Merhaba yukarıdaki dosyada değişik yazım biçimleri var.
      PID pid(&input, &output, &setpoint,
      gibi.
      normal dosya olarak indirebileceğimiz bir yere koyabilirmisin..

      Cevapla
      • Sezgin GÜL
        16 Eylül 2015

        Yazılımın altında dosya mevcut indirebilirsiniz.

        Cevapla
        • abdurrahman ulusoy
          9 Şubat 2016

          teşekkürler..

          Cevapla

    Bir yorum yaz

    E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

    Projeler Devamı

    Bizi Takip Et

    izmir escort- izmir escort- izmir escort- izmir escort- izmir escort