MPU9250

#include <Wire.h>

#define MPU9250_ADDRESS 0x68
#define MAG_ADDRESS 0x0C

#define GYRO_FULL_SCALE_250_DPS 0x00
#define GYRO_FULL_SCALE_500_DPS 0x08
#define GYRO_FULL_SCALE_1000_DPS 0x10
#define GYRO_FULL_SCALE_2000_DPS 0x18

#define ACC_FULL_SCALE_2_G 0x00
#define ACC_FULL_SCALE_4_G 0x08
#define ACC_FULL_SCALE_8_G 0x10
#define ACC_FULL_SCALE_16_G 0x18

 

// This function read Nbytes bytes from I2C device at address Address.
// Put read bytes starting at register Register in the Data array.

uint8_t ST1;
int16_t mag_int[3] = {0};

void writeBIT(int addr, int data, int adrrTrans){
Wire.beginTransmission(adrrTrans);
Wire.write(addr);
Wire.write(data);
Wire.endTransmission();
}
void I2Cread(uint8_t Address, uint8_t Register, uint8_t Nbytes, uint8_t* Data){
// Set register address
Wire.beginTransmission(Address);
Wire.write(Register);
Wire.endTransmission();
// Read Nbytes
Wire.requestFrom(Address, Nbytes);
uint8_t index=0;
while (Wire.available())
Data[index++]=Wire.read();
}

 

// Initializations
void setup()
{
// Arduino initializations
Wire.begin();
Serial.begin(115200);

Wire.setClock(400000L);
// Set accelerometers low pass filter at 5Hz
writeBIT(29, 0x06,MPU9250_ADDRESS);
// Set gyroscope low pass filter at 5Hz
writeBIT(26, 0x06,MPU9250_ADDRESS);
// Configure gyroscope range
writeBIT(27, GYRO_FULL_SCALE_2000_DPS,MPU9250_ADDRESS);
// Configure accelerometers range
writeBIT(28, ACC_FULL_SCALE_2_G,MPU9250_ADDRESS);
// Set by pass mode for the magnetometers
writeBIT(0x37, 0x02,MPU9250_ADDRESS);
// Request continuous magnetometer measurements in 16 bits
//writeBIT(0x0A, 0x16,MAG_ADDRESS);
delay(200);
// writeBIT(0x0A, mRes << 4 | 0x06 ,MAG_ADDRESS);

writeBIT(0x0A, 0x00 , MAG_ADDRESS); // Power down magnetometer
delay(20);
writeBIT(0x0A , 0x0F, MAG_ADDRESS); // Enter Fuse ROM access mode
delay(20);

 

}

 

 

// Main loop, read and display data
void loop()
{

// _______________
// ::: Counter :::

// Display data counter
// Serial.print (cpt++,DEC);
// Serial.print (“\t”);

// ____________________________________
// ::: accelerometer and gyroscope :::

// Read accelerometer and gyroscope
uint8_t Buf[14];
int16_t accel[3] = {0}, gyro_int[3] = {0}, MEAN_GYRO[3] = {0};;

I2Cread(MPU9250_ADDRESS,0x3B,14,Buf);

accel[0]=(Buf[0]<<8 | Buf[1]);
accel[1]=(Buf[2]<<8 | Buf[3]);
accel[2]=Buf[4]<<8 | Buf[5];

// Gyroscope
gyro_int[0]=(Buf[8]<<8 | Buf[9]) – MEAN_GYRO[0];
gyro_int[1]=(Buf[10]<<8 | Buf[11]) – MEAN_GYRO[1];
gyro_int[2]=Buf[12]<<8 | Buf[13] – MEAN_GYRO[2];

// Display values

// Accelerometer
Serial.print (accel[0],DEC);
Serial.print (“\t”);
Serial.print (accel[1],DEC);
Serial.print (“\t”);
Serial.print (accel[2],DEC);
Serial.print (“\t”);

// Gyroscope
Serial.print (gyro_int[0],DEC);
Serial.print (“\t”);
Serial.print (gyro_int[1],DEC);
Serial.print (“\t”);
Serial.print (gyro_int[2],DEC);
Serial.println(“\t”);

}


Kontrol Listesi

Merhabalar,

Eğer drone ile iligli bir parçanın çalışmadığını düşünüyorsanız. Bu yazıda ki adımları takip ederek sorunu bulabilir ve düzeltilmesi için bizim ile iletişime geçebilirsiniz.

1-) Şarj devresi

İlk olarak ESPcopter’i alt tarafında bulunan düğmeyi kullanarak kapalı konuma getiriniz. Daha sonra USB kablo ile ESPcopter’i bilgisayara bağlayınız. Eğer kırmızı ışık yanmıyor ise batarya şarj olmuyor demektir. Bu sorun büyük bir olasıkla kullandığınız USB kablodan kaynaklanmadır. Bazı kalitesiz USB kablolarda temazsızlık olabilmektedir. Başka USB kablo kullarak tekrardan deneyiniz.

2-) Kod yükleme devresi

İlk olarak eğitimler sayfamızda bulunan  Arduino Nasıl Yüklenir ve Kod Nasıl Yüklenir  yazılarında anlatılan adımları yapmanız gerekmektedir. Bu kurulumları yaptıkran sonra şarjı dolu olduğunu düşündüğünüz ESPcopter açık konuma getirin ve USB kablo ile bilgisayarınıza bağlanıyız. Eğer arduino ile ilgili bir problem yaşarsanız ESPcopter Forum sayfasından destek alabilirsiniz.

Kod yükleme devresini kontrol etmenin bir diğer yolu ise Uçuş kodu yükle yazısında anlatılan yolları izlemektir.

3-)Uçuş testi:

Uçuş kodunu yükledikten sonra ESPcopter’i açınız ve motorlara çok az miktarda güç vererek motorların verdiği tepkiyi izleyiniz eğer drone’nun yer ile olan açısına göre motor hızlarında değişme olmuyorsa. Mail adresimiz üzerinden bizim ile iletişime geçebilirsiniz.

4-) Bütün testler başarılı fakat hala ESPcopter’i uçuramıyorsanız.

  • Motor pervanelerini kontrol ediniz. Düşmeden dolayı bir bozulma veya bükülme varsa titreşim oluşturacağı için drone uçmayacaktır.
  • Motorlar pervaneleri korumalıklara sürtüyor olabilir. Drone kapalı konumda pervaneleri eliniz ile çevirerek kontrol ediniz. Eğer dönmesinde bir farklılık olan bir pervane olan varsa pervane değişikliği yapınız.
  • Motor ile pervane arasına kıl,ip gibi motorların dönüşünü engelleyen meteryaller takılmış olabilir. Yine drone kapalı konumda pervaneleri eliniz ile çevirerek kontrol ediniz. Eğer dönmesinde bir farklılık olan bir pervane olan varsa pervane değişikliği yapınız.


Uçuş Kodu Yükleme

ESPcopter ile programlama eğitimlerinden sonra uçuş kodunu drone’unuza geri yüklemek isterseniz. Bu yazı size yardımcı olacaktır.

İlk olarak uçuş kodunu bilgisayarınıza indiriniz.

Uçuş Kodu:

Daha sonra NodeMCU Flasher Programını bilgisayarınıza indiriniz.

Flasher İndir

İndirilen dosyayı masaüstüne çıkardıktan sonra nodemcu-flasher-master\Win64\Release klosürü içinde ESP8266Flasher.exe uygulamasını çalıştırın.

Begin program

 

 

 

 

 

 

 

 

 

Confing bölümünden daha önce indirdiğiniz .Bin dosyasınının klasör bağlantısını ilk sekmeye yapıştırınız.

Drone bağlantısı yaptıktan sonra drone’u açık hale getirin ve flash(f) düğmesine basın. Kod yüklenmeye başlıyacaktır.

Programming

Yazılım başarı ile yüklendi.

Program success

Kontrol Ekranına Giriş

Yazılımların yüklenmesini yaptıktan sonra drone açık konuma getirin. Telefonunuz wifi sekmesinde drone’nun ismini göreceksiniz.

WIFI_SSID “ESPcopter”
WIFI_PASSWORD “12345678”

Bağlantıyı yaptıktan sonra telefonunuzdan herhangi bir web browser uygulamasını açınız. Arama satırına 192.168.4.1 yazıp aratınız.

İlk tuşu aktif yaptığınızda motorlar çalışmaya başlayacaktır.

İyi uçuşlar.

 


Kod Nasıl Yüklenir

Bu yazıda ESPcopter’in içine Arduino üzerinden nasıl kod yükleyeceğimizi öğreneceğiz.

İhtiyacımız olan itemler:

  • Bilgisayar
  • ESPcopter
  • Micro USB kablo

Bir önce ki yazıda Arduino ide’nin kurulumunu yapmıştık. Arduino yazılımını açıyoruz ve seçenekler kısmından bazı ayarlamalar yapmamız gerekiyor.

İlk olarak board(kart) olarak Node MCU 1.0 Seçiyoruz. Diğer ayarlar ise şu şekilde:

CPU Frequency : 160MHZ

Flash Size: 4M(3M SPIFFS)

Upload Speed: 115200 . ( Her hızlı kod atmak isterseniz hız yükseltebilirsiniz)

Gerekli ayarlamaları yaptıktan sonra ESPcopter’i bilgisayar bağlıyoruz. Daha sonra Drone üzerinde bulunan açma kapama düğmesini ON konumuna getiriyoruz.

Port kısmında ESPcopter COMx (x sayı) formatında gözükecektir. Eğer bilgisayarınız görmez ise direver yazılımını manuel olarak yüklemeniz gerekmektedir.

Driver Yazılımını Yükle

Arduino Nasıl Yüklenir

ESPcopter programlanabilir drone Arduino üzerinden programlanmaktadır.  Bu yazıda Arduino programını nasıl bilgisayarınıza kuracağınızı öğreneceksiniz.

İlk olarak Arduino’nun sitesinden arduino programın son versiyonunu bilgisayarınıza indiriniz.

Arduino İndir

Kurulumu gerçekleştirdikten sonra programı açınız. Arduino programını ESPcopter üzerinde kullanabilmemiz için Arduino’ya ek bir board kütüphanesi daha kurmamız gerekmekte. Bunun için Arduino programından Seçenekler kısmını açmamız gerekmekte. (DosyaSeçenekler).

Aşağıda bulunan linki ” Ek kartlar URL” (“Additional Board Manager URLs” text box:). Kısmına yapıştırnız.

http://arduino.esp8266.com/stable/package_esp8266com_index.json

Adding Board Manager URL to Arduino preferences

 

Ok tuşuna bastıktan sonra sırada board yükleme kısmı var. Araçlar > Kartlar  > Kart Yöneticisi(Tools > Boards > Boards Manager.).  Adımlarını izleyiniz.  Arama kısmına ESP yazdıktan sonra gelen seçenekler arasında esp8266 by ESP8266 Community seçeneceğini göreceksiniz. 2.3.0 versiyonunu indiriniz.

 

Installing additional boards from Board Manager

İndirme işlemi internet hızınıza göre 10 dk kadar sürebilir.

İndirme işlemi bittikten sonra Araçlar sekmesinden NodeMCU 1.0 seçeneğini seçiniz.

Yukardaki işlemleri eksizsiz şekilde yaptık artık ESPcopteri Arduino üzeriden programlayabilirsiniz.