راهاندازی و استفاده از سنسور شتابسنج MPU6050 با Arduino و نمایش اطلاعات در OLED SSD1306 با کمک هوش مصنوعی شاتوت
#include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64 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، میتوانید اطلاعات تکمیلی مانند لوگو و عنوان وبسایت خود را نیز نمایش دهید. این راهحل مناسبی برای کاربردهای مختلفی از جمله رباتیک، پروژههای الکترونیکی و اینترنت اشیا است.