كيفية عرض بيانات جيروسكوب mpu6050 على شاشة OLED مع استخدام Arduino - DIY Channel3

DIY Channel3

Arduino│ESP8266│ESP32│Drone│Robot

كيفية عرض بيانات جيروسكوب mpu6050 على شاشة OLED مع استخدام Arduino

مشاركة هذا

 







مستشعرات الجيروسكوب (الموضع) (MPU6050) مع Arduino - كيفية الوصول إلى زوايا الانحراف واللف والانعراج تعد MPU6050 وحدة متعددة الاستخدامات يمكنها قياس اتجاهها وتسارعها في جميع الأبعاد الثلاثة. ومع ذلك واجهوا صعوبة في العثور على مكتبة عمل سهلة الاستخدام. كانت المكتبة التي استقرت عليها في النهاية (بعد تجربة حوالي 4 آخرين) هي مكتبة MPU_6050_light. هذا متاح من داخل Arduino IDE - كما هو موضح في الفيديو. قائمة الأجزاء التابعة ملاحظة: لا تحتاج إلى شاشة OLED للتحقق الأساسي ، يمكن إرسال النتائج من خلال الشاشة التسلسلية التي تريدها. أستخدمه لأنه يسهل رؤية الأشياء بدلاً من قائمة التمرير بالأرقام على الشاشة التسلسلية. يمكن أن يكون Arduino موجودًا ، ولا يحتاج إلى أن يكون نانو. لقد قمت بإدراج ثلاثة خيارات. تم عرض الرمز لاستخدام هذا الرمز التجريبي مع الشاشة ، ستحتاج إلى مكتبتين إضافيتين ، وكلاهما متاح من خلال ميزة "إدارة المكتبات" في Arduino IDE وكلاهما من Adafruit. ستحتاج إلى مكتبة "Adafruit SSD1306" و "Adafruit gfx". إذا كنت تستخدم OLED


- المكونات الاساسية :

- Arduino UNO R3


- OLED Display


- MPU6050 Sensor


- Breadborad


- Jumper wires

--------------------------------------------------------------------------------

- مخطط الرسم البياني :

- تحميل الكود أردوينو :


// Project : MPU6050 sensor with OLED and Arduino UNO
// By : DIY Channel
// My Youtube Channel : https://www.youtube.com/c/DIYChannel2019

#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <MPU6050_light.h>

#define SCREEN_WIDTH 128 
#define SCREEN_HEIGHT 64 

Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire);


MPU6050 mpu(Wire);
unsigned long timer = 0;

void setup() {
  Serial.begin(115200);                                
  if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C))   
  { 
    Serial.println(F("SSD1306 allocation failed"));
    for(;;);                                      
  } 
  display.setTextSize(1);             
  display.setTextColor(SSD1306_WHITE);            
  display.clearDisplay();                         
  Wire.begin();
  mpu.begin();
  display.println(F("Calculating gyro By : DIY CHANNEL"));
  display.display();        
  mpu.calcGyroOffsets();                         
  display.setTextSize(2);          
}

void loop() {
  mpu.update();  
  if((millis()-timer)>10)                         
  {                                           
    display.clearDisplay();                       
    display.setCursor(0,0);                         
    display.print("P : ");
    display.println(mpu.getAngleX()); 
    display.print("R : ");
    display.println(mpu.getAngleY());
    display.print("Y : ");
    display.print(mpu.getAngleZ());
    display.display();                            
    timer = millis();  
  }
}
-------------------------------------------------------------



No comments:

Post a Comment