ماژول زاویه تیلت GY-25 با تراشه MPU6050
ماژول GY-25 یک ماژول تیلت برای ردیابی حرکت است که یک ژیروسکوپ 3 محوره و یک شتابسنج 3 محوره را در یک تراشه ترکیب میکند. این در برنامههای مختلفی مورد استفاده قرار میگیرد، از جمله رباتیک، پهپادها، کنترلگرهای بازی و سایر دستگاههایی که به ردیابی حرکت و تعیین جهت نیاز دارند. MPU6050 شامل یک ژیروسکوپ 3 محوره است که سرعت زاویهای را در اطراف محورهای X، Y و Z اندازهگیری میکند. این به شما امکان ردیابی نرخ چرخش یا حرکت را میدهد. این همچنین شامل یک شتابسنج 3 محوره است که شتاب خطی را در امتداد محورهای X، Y و Z اندازهگیری میکند. این برای اندازهگیری تغییرات سرعت یا تشخیص تغییرات در جهت به دلیل گرانش استفاده میشود. ماژول GY-25 MPU6050 از طریق پروتکلهای ارتباطی I2C (Inter-Integrated Circuit) یا SPI (Serial Peripheral Interface) با میکروکنترلرها ارتباط برقرار میکند.
مشخصات فنی ماژول زاویه تیلت GY-25 با تراشه MPU6050
- ماژول سنسور زاویه شیب MPU-6050 GY-25
- استفاده از تراشه: MCU+MPU6050
- مدل: GY-25Z
- ولتاژ کاری: 3-5 ولت (دارای ولتاژ کاهشی داخلی)
- روش ارتباط: ارتباط سریال (سرعت ارسال 9600 و 115200)، ارتباط I2C (فقط خواندن دادههای خام)
- اندازه ماژول: 15.5 میلیمتر در 11.5 میلیمتر
- فاصله پینها: 2.54 میلیمتر
- دادههای مستقیم: YAW (زاویه راهاندازی)، ROLL (زاویه چرخش)، PITCH (زاویه شیب)
- زاویه راهاندازی (YAW) ±180 درجه
- زاویه چرخش (ROLL) ±180 درجه
- زاویه شیب (PITCH) ±180 درجه (±90 درجه + ±90 درجه)
- دقت زاویه 0.01 درجه
بررسی پایه های ماژول زاویه تیلت GY-25 با تراشه MPU6050
- پین ۱: تغذیه VCC مثبت (3 ولت تا 5 ولت)
- پین ۲: دریافت داده از سریال (RX)
- پین ۳: ارسال داده از سریال (TX)
- پین ۴: زمین تغذیه (GND)
- پین ۵: RST (استفاده داخلی، بدون اتصال، خالی)
- پین ۶: B0 (استفاده داخلی، بدون اتصال، خالی)
- پین ۷: ساعت I2C (SCL)
- پین ۸: داده I2C (SDA)
به همراه سنسور زاویه تیلت gy-25 چه اقلامی باید خریداری شود؟
- برد آردوینو
- کابل فلت
- برد بورد
- ال ای دی
- رله
راه اندازی سنسور gy25 mpu6050 با آردوینو
برای ارتباط ماژول MPU6050 GY-25 با یک Arduino، میتوانید از کتابخانه Wire Arduino برای ارتباط I2C استفاده کنید. در زیر یک نمونه کد ساده Arduino برای خواندن داده از سنسور MPU6050 و نمایش آن در مانیتور سریال آورده شده است:
#include <Wire.h>
const int MPU6050_Address = 0x68; // آدرس I2C ماژول MPU6050
int16_t AcX, AcY, AcZ, Tmp, GyX, GyY, GyZ;
void setup() {
Wire.begin(); // شروع ارتباط I2C
Wire.beginTransmission(MPU6050_Address);
Wire.write(0x6B); // ثبت PWR_MGMT_1
Wire.write(0); // تنظیم به صفر (برعکس کردن خواب ماژول MPU-6050)
Wire.endTransmission(true);
Serial.begin(9600); // شروع ارتباط سریال
}
void loop() {
Wire.beginTransmission(MPU6050_Address);
Wire.write(0x3B); // شروع از ثبت 0x3B (ACCEL_XOUT_H)
Wire.endTransmission(false);
Wire.requestFrom(MPU6050_Address, 14, true); // درخواست 14 بایت داده
// خواندن دادههای شتابسنج و دما
AcX = Wire.read() << 8 | Wire.read();
AcY = Wire.read() << 8 | Wire.read();
AcZ = Wire.read() << 8 | Wire.read();
Tmp = Wire.read() << 8 | Wire.read();
// خواندن دادههای ژیروسکوپ
GyX = Wire.read() << 8 | Wire.read();
GyY = Wire.read() << 8 | Wire.read();
GyZ = Wire.read() << 8 | Wire.read();
// نمایش دادهها در مانیتور سریال
Serial.print("AcX = "); Serial.print(AcX);
Serial.print(" | AcY = "); Serial.print(AcY);
Serial.print(" | AcZ = "); Serial.print(AcZ);
Serial.print(" | Tmp = "); Serial.print(Tmp / 340.00 + 36.53); // دما به درجه سلسیوس
Serial.print(" | GyX = "); Serial.print(GyX);
Serial.print(" | GyY = "); Serial.print(GyY);
Serial.print(" | GyZ = "); Serial.println(GyZ);
delay(1000); // تاخیر برای خوانایی
}
راه اندازی سنسور gy25 mpu6050 با میکروپایتون
در ادامه یک نمونه کد میکروپایتون برای خواندن دادههای ماژول MPU6050 GY-25 و نمایش آن با استفاده از یک برد مبتنی بر ESP8266 مانند NodeMCU یا Wemos D1 Mini آورده شده است. قبل از استفاده از این کد، مطمئن شوید که میکروپایتون روی برد شما نصب شده باشد.
import machine
import time
# آدرس I2C ماژول MPU6050
MPU6050_ADDRESS = 0x68
# آدرسهای ثبت
MPU6050_REG_ACCEL_XOUT_H = 0x3B
MPU6050_REG_TEMP_OUT_H = 0x41
MPU6050_REG_GYRO_XOUT_H = 0x43
# مقداردهی اولیه ارتباط I2C
i2c = machine.I2C(scl=machine.Pin(5), sda=machine.Pin(4)) # از پینهای GPIO مناسب برای بردتان استفاده کنید
def read_word_2c(addr):
high = i2c.readfrom_mem(MPU6050_ADDRESS, addr, 1)
low = i2c.readfrom_mem(MPU6050_ADDRESS, addr + 1, 1)
val = (high[0] << 8) + low[0]
if val >= 0x8000:
return -((65535 - val) + 1)
else:
return val
def read_mpu6050_data():
accel_xout = read_word_2c(MPU6050_REG_ACCEL_XOUT_H)
temp_out = read_word_2c(MPU6050_REG_TEMP_OUT_H)
gyro_xout = read_word_2c(MPU6050_REG_GYRO_XOUT_H)
accel_xout_scaled = accel_xout / 16384.0
temp_out_scaled = (temp_out / 340.0) + 36.53
gyro_xout_scaled = gyro_xout / 131.0
return accel_xout_scaled, temp_out_scaled, gyro_xout_scaled
while True:
accel_x, temp, gyro_x = read_mpu6050_data()
print("شتابسنج X: {:.2f} گرم".format(accel_x))
print("دما: {:.2f} درج
مشخصات
- نوع ماژول
- شتاب و ژایرو
- ابعاد فیبر
- 15.5 * 11.5 سانتی متر
- ولتاژ مورد نياز
- 5 ولت DC
- پردازنده
- PT2272-M4S
- زاویه چرخش
- +- 180 درجه
- کد تجاری ماژول و برد
- GY-25
- نوع سنسور
- تیلت و تشخیص کجی
امکان راه اندازی چند سنسور DHT با ESP8266 با استفاده از MicroPython وجود دارد. سنسورهای DHT با پروتکل دیجیتال و از طریق پایههای GPIO قابل اتصال به میکروکنترلرها هستند.
برای ساخت یک سیستم کنترل دما با برد میکروکنترلر ESP32، به موارد زیر نیاز دارید:
یک برد میکروکنترلر ESP32
یک سنسور دما مثل DHT DS18B20
یک المان سرد کننده
با استفاده از کتابخانه DHT.h، میتوانید از سنسور دما برای خواندن دمای محیط استفاده کنید. سپس، میتوانید از این دما برای کنترل المان گرمایشی یا سرمایشی استفاده کنید.
در خصوص برنامه نویسی از کتابخانه DHT و در صورت نیاز کتابخانه وای فای برای ارسال دادهها به پلتفرم IoT باید استفاده کنید.