راهاندازی و استفاده از سنسور شتابسنج MPU6050 با Arduino و نمایش اطلاعات در OLED SSD1306 با کمک هوش مصنوعی شاتوت
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
const int MPU_ADDR = 0x68; // آدرس MPU6050
int16_t accelerometer_x, accelerometer_y, accelerometer_z;
float pitch, roll;
void setup() {
Wire.begin();
display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // آدرس OLED
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
display.setCursor(0, 0);
display.println("shahtut.com");
display.display();
delay(2000);
}
void loop() {
Wire.beginTransmission(MPU_ADDR);
Wire.write(0x3B); // آدرس شروع خواندن داده•ها از سنسور
Wire.endTransmission(false);
Wire.requestFrom(MPU_ADDR, 14, true); // خواندن 14 بایت داده از سنسور
accelerometer_x = Wire.read() << 8 | Wire.read();
accelerometer_y = Wire.read() << 8 | Wire.read();
accelerometer_z = Wire.read() << 8 | Wire.read();
pitch = atan2(accelerometer_y, sqrt(accelerometer_x * accelerometer_x + accelerometer_z * accelerometer_z)) * 180 / PI;
roll = atan2(accelerometer_x, sqrt(accelerometer_y * accelerometer_y + accelerometer_z * accelerometer_z)) * 180 / PI;
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
display.setCursor(0, 0);
display.print("Pitch: ");
display.println(pitch);
display.print("Roll: ");
display.println(roll);
display.display();
delay(500);
}
لینک پروژه شبیه سازی شده بر روی wokwi
سنسورهای شتابسنج در بسیاری از کاربردهای الکترونیکی و رباتیک استفاده میشوند. یکی از سنسورهای محبوب در این دسته، MPU6050 است که امکان اندازهگیری شتاب خطی و زاویه چرخش را فراهم میکند. در این مقاله، راهاندازی سنسور MPU6050 با استفاده از Arduino و نمایش دادههای آن بر روی OLED SSD1306 را بررسی خواهیم کرد. جالب اینکه که کل این کد رو با استفاده از هوش مصنوعی شاتوت نوشتیم و در صورتی که بخشی از کد رو متوجه نشیم می تونیم با کمک هوش مصنوعی مشکلاتمون رو برطرف کنیم .
مراحل راهاندازی:
- اتصال سنسور: ابتدا، سنسور MPU6050 را به Arduino متصل کنید. از طریق کتابخانه Wire.h و با استفاده از پروتکل I2C، ارتباط بین آردوینو و سنسور برقرار میشود.
- نصب کتابخانهها: برای استفاده از سنسور و نمایش دادهها بر روی OLED، کتابخانههای Wire.h، Adafruit_GFX و Adafruit_SSD1306 را در آردوینو نصب کنید.
- خواندن دادهها: با استفاده از کد مناسب، دادههای شتابسنج را از سنسور MPU6050 خوانده و مقادیر pitch و roll را محاسبه کنید.
- نمایش دادهها: با استفاده از کد مناسب، مقادیر pitch و roll را بر روی OLED SSD1306 نمایش دهید. همچنین، میتوانید اطلاعات تکمیلی مانند عنوان و لوگوی وبسایت خود را نیز در این نمایشگر نمایش دهید.
نتیجهگیری:
در این مقاله، راهاندازی سنسور شتابسنج MPU6050 با استفاده از Arduino و نمایش دادههای آن بر روی OLED SSD1306 را بررسی کردیم. با اجرای کد مناسب، میتوانید دادههای شتابسنج را دریافت و مقادیر pitch و roll را محاسبه کنید. همچنین، با نمایش این اطلاعات بر روی نمایشگر OLED، میتوانید اطلاعات تکمیلی مانند لوگو و عنوان وبسایت خود را نیز نمایش دهید. این راهحل مناسبی برای کاربردهای مختلفی از جمله رباتیک، پروژههای الکترونیکی و اینترنت اشیا است.