ماژول ژیروسکوپ سه جهته مهندسیکا با درایور mpu6050 مدل GY-521
ماژولهای سازگار با آردوینو به دسته ای از قطعات الکترونیک گفته میشود که علاوه بر سازگاری مشخصات پایه های ورودی و خروجی قابلیت دسترسی به کدهای برنامه نویسی و توابع کتابخانه ای ماژول نیز به سادگی میسر است.این ماژولها همچنین به روشهای ساده تری قابل راه اندازی هستند که نیازی به میکرومنترلر ندارند با توجه به سطح ولتاژ ماژول میتوان به راحتی با ماژول رله 5 ولت مهندسیکا عملکرد را مشاهده نمود، ماژول زیروسکوپ سه محوره کاربردهای متنعی در رباتیک و هوشمند سازی دارد.
ماژول GY-521 بر پایه سنسور MPU6050 یک ژیروسکوپ و شتاب سنج ۳ محوره است، پروتکل ارتباطی این ماژول I2C بوده و با استفاده از ۲ پایه SCL و SDA می توانید خروجی های MPU6050 را بخوانید. سنسور MPU6050 علاوه بر ژیروسکوپ و شتاب سنج ، دارای یک دماسنج دیجیتال هم می باشد. از دیگر ویژگی این ماژول، وجود پردازشگر دیجیتال حرکت با قابلیت برنامه ریزی و انجام عملیات است .
شماتیک اتصالات ماژول به شکل زیر است
- پایه VCC سنسور را به پایه+۵ ماژول آردوینو متصل کنید .
- پایه GND سنسور را به پایه GND ماژول آردوینو متصل کنید
- پایه SCL سنسور را به پایه A5ماژول آردوینو متصل کنید .
- پایه SDA سنسور را به پایهA4 ماژول آردوینو متصل کنید .
راه اندازی با ماژول آردوینو نانو Arduino nano
الف ) شماتیک اتصالات بر روی بردبورد
راه اندازی با ماژول آردوینو اونو Arduino UNO
الف ) شماتیک اتصالات بر روی ماژول
کدنویسی برنامه آردوینو :
دو برنامه جهت این ماژول معرفی شده است در برنامه اول خروجی سنسورها نمایش داده میشود و در برنامه دوم با حرکت سنسور خروجی نمایش داده میشود.
جهت برنامه نویسی توابع کتابخانه زیر را طبق توضیحات فصل اول نصب نمایید .
#include <Adafruit_MPU6050.h>
#include <Adafruit_Sensor.h>
#include <Wire.h>
کد زیر را روی برد آردوینو آپلود کنید. این کد خروجی سنسور ژیروسکوپ و شتاب سنج خوانده شده را در پنجره ی سریال نمایش می دهد. همچنین دمای محیط را اندازه گیری میکند
لینک برنامه۰۰۱ : ۰۵۳ sketch_GY_521_MPU6050_001.ino
- // Basic demo for accelerometer readings from Adafruit MPU6050
- // GY-521 (MPU6050) 3-Axis Accelerometer-Gyroscope Sensor
- #include <Adafruit_MPU6050.h>
- #include <Adafruit_Sensor.h>
- #include <Wire.h>
- Adafruit_MPU6050 mpu;
- void setup(void) {
- begin(9600);
- while (!Serial)
- delay(10); // will pause Zero, Leonardo, etc until serial console opens
- println(“Adafruit MPU6050 test!”);
- // Try to initialize!
- if (!mpu.begin()) {
- println(“Failed to find MPU6050 chip”);
- while (1) {
- delay(10);
- }
- }
- println(“MPU6050 Found!”);
- setAccelerometerRange(MPU6050_RANGE_8_G);
- print(“Accelerometer range set to: “);
- switch (mpu.getAccelerometerRange()) {
- case MPU6050_RANGE_2_G:
- println(“+-2G”);
- break;
- case MPU6050_RANGE_4_G:
- println(“+-4G”);
- break;
- case MPU6050_RANGE_8_G:
- println(“+-8G”);
- break;
- case MPU6050_RANGE_16_G:
- println(“+-16G”);
- break;
- }
- setGyroRange(MPU6050_RANGE_500_DEG);
- print(“Gyro range set to: “);
- switch (mpu.getGyroRange()) {
- case MPU6050_RANGE_250_DEG:
- println(“+- 250 deg/s”);
- break;
- case MPU6050_RANGE_500_DEG:
- println(“+- 500 deg/s”);
- break;
- case MPU6050_RANGE_1000_DEG:
- println(“+- 1000 deg/s”);
- break;
- case MPU6050_RANGE_2000_DEG:
- println(“+- 2000 deg/s”);
- break;
- }
- setFilterBandwidth(MPU6050_BAND_21_HZ);
- print(“Filter bandwidth set to: “);
- switch (mpu.getFilterBandwidth()) {
- case MPU6050_BAND_260_HZ:
- println(“260 Hz”);
- break;
- case MPU6050_BAND_184_HZ:
- println(“184 Hz”);
- break;
- case MPU6050_BAND_94_HZ:
- println(“94 Hz”);
- break;
- case MPU6050_BAND_44_HZ:
- println(“44 Hz”);
- break;
- case MPU6050_BAND_21_HZ:
- println(“21 Hz”);
- break;
- case MPU6050_BAND_10_HZ:
- println(“10 Hz”);
- break;
- case MPU6050_BAND_5_HZ:
- println(“5 Hz”);
- break;
- }
- println(“”);
- delay(100);
- }
- void loop() {
- /* Get new sensor events with the readings */
- sensors_event_t a, g, temp;
- getEvent(&a, &g, &temp);
- /* Print out the values */
- print(“Acceleration X: “);
- print(a.acceleration.x);
- print(“, Y: “);
- print(a.acceleration.y);
- print(“, Z: “);
- print(a.acceleration.z);
- println(” m/s^2″);
- print(“Rotation X: “);
- print(g.gyro.x);
- print(“, Y: “);
- print(g.gyro.y);
- print(“, Z: “);
- print(g.gyro.z);
- println(” rad/s”);
- print(“Temperature: “);
- print(temp.temperature);
- println(” degC”);
- println(“”);
- delay(500);
- }
خروجی بر روی سریال مانیتور قابل مشاهده است دقت کنید تنظیمات سریال روی ۹۶۰۰boud باشد
کد زیر را روی برد آردوینو آپلود کنید. این کد خروجی سنسور را با حرکت ماژول در پنجره ی سریال نمایش می دهد.
Weight | 100 kg |
---|---|
Dimensions | 10 × 10 × 5 cm |
Related products
Electronic KITs