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”);

}


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.