- ایکسیلیومیٹر اور گائروسکوپک سینسر کیا ہے؟
- MPU6050 ایکسلرومیٹر اور گائروسکوپک سینسر ماڈیول
- ضروری اجزاء
- سرکٹ ڈایاگرام
- پروگرامنگ وضاحت
MPU6050 ایک آایسی ہے 3 محور accelerometer اور مل کر ایک 3 محور gyroscope ایک یونٹ میں. اس میں ایک درجہ حرارت سینسر اور ایک پیچیدہ کام انجام دینے کے لئے ڈی سی ایم بھی موجود ہے۔ MPU6050 عام طور پر ڈرون اور دیگر ریموٹ روبوٹ جیسے خود توازن رکھنے والے روبوٹ کی تعمیر میں استعمال ہوتا ہے ۔ اس پروجیکٹ میں ہم MPU6050 اور ارڈینو کا استعمال کرتے ہوئے ڈیجیٹل پروٹیکٹر بنائیں گے۔ یہاں ایک پروٹوکٹر شبیہہ پر زاویہ ظاہر کرنے کے لئے ایک सर्वो موٹر کا استعمال کیا جاتا ہے۔ امدادی موٹر شافٹ ایک انجکشن کے ساتھ منسلک ہے جو زاویہ کی نشاندہی کرنے کے لئے پروٹیکٹر کی تصویر پر گھومتا ہے جو 16xLCD ڈسپلے پر بھی ظاہر ہوتا ہے۔ تفصیلات میں جانے سے پہلے آئیے جائروسکوپ سینسر کے بارے میں جانیں۔
ایکسیلیومیٹر اور گائروسکوپک سینسر کیا ہے؟
ایکسلرومیٹر ایکسلریشن کی پیمائش کے لئے استعمال ہوتا ہے۔ یہ اصل میں مستحکم اور متحرک سرعت دونوں کو محسوس کرتا ہے۔ مثال کے طور پر ، موبائل فون ایکسلرومیٹر سینسر کا استعمال کرتے ہوئے یہ سمجھتا ہے کہ موبائل زمین کی تزئین کی وضع یا پورٹریٹ وضع پر ہے۔ اس سے پہلے ہم بہت سارے پروجیکٹس بنانے کے لئے ارڈینو کے ساتھ ایکسلرومیٹر استعمال کرتے تھے۔
ایک جیروسکوپ کونیی کی رفتار کی پیمائش کے لئے استعمال کیا جاتا ہے جو حرکت میں آبجیکٹ کی واقفیت کا تعین کرنے کے لئے زمین کی کشش ثقل کا استعمال کرتا ہے۔ کونیی کی رفتار ایک گھومنے والے جسم کی کونیی پوزیشن میں تبدیلی کی شرح ہوتی ہے۔
مثال کے طور پر ، آج کے موبائل موبائل فون کی واقفیت کے مطابق موبائل کھیل کھیلنے کے لئے جیروسکوپک سینسر کا استعمال کرتے ہیں۔ نیز ، وی آر ہیڈسیٹ 360 واقفیت میں نظریات رکھنے کے لئے جیروسکوپ سینسر کا استعمال کرتا ہے
لہذا جبکہ ایکسلرومیٹر لکیری ایکسلریشن کی پیمائش کرسکتا ہے ، لیکن گائروسکوپ گھماؤ سرعت تلاش کرنے میں مدد کرسکتا ہے۔ جب دونوں سینسرز کو الگ الگ ماڈیول کے طور پر استعمال کریں تو ، واقفیت ، مقام اور رفتار تلاش کرنا مشکل ہوجاتا ہے۔ لیکن ان دونوں سینسروں کو ملا کر یہ ایک جڑنا پیمائش یونٹ (آئی ایم یو) کے طور پر کام کرتا ہے ۔ لہذا ایم پی یو 6050 ماڈیول میں ، واقفیت ، پوزیشن اور رفتار کو تلاش کرنے کے لئے ایکسلرومیٹر اور گائروسکوپ ایک ہی پی سی بی پر موجود ہیں۔
درخواستیں:
- سمت کنٹرول کے لئے ڈرونز میں استعمال ہوتا ہے
- خود توازن رکھنے والے روبوٹ
- روبوٹک بازو پر قابو رکھنا
- جھکاؤ سینسر
- موبائل فون ، ویڈیو گیم کنسولز میں استعمال کیا جاتا ہے
- ہیومینائڈ روبوٹ
- ہوائی جہاز ، آٹوموٹو وغیرہ میں استعمال ہوتا ہے۔
MPU6050 ایکسلرومیٹر اور گائروسکوپک سینسر ماڈیول
ایم پی یو 6050 ایک مائکرو الیکٹرو مکینیکل سسٹمز (ایم ای ایم ایس) ہے جو اس کے اندر 3 محور ایکسلرومیٹر اور 3 محور جائروسکوپ پر مشتمل ہے۔ اس میں درجہ حرارت سینسر بھی ہے۔
یہ پیمائش کرسکتا ہے:
- ایکسلریشن
- رفتار
- واقفیت
- نقل مکانی
- درجہ حرارت
اس ماڈیول میں اس کے اندر ایک (DMP) ڈیجیٹل موشن پروسیسر بھی ہے جو پیچیدہ حساب کتاب کرنے کے ل powerful اتنا طاقتور ہے اور اس طرح مائکروکنٹرولر کے لئے کام کو آزاد کر دیتا ہے۔
ماڈیول میں دو معاون پن بھی ہیں جو میگنیٹومیٹر جیسے بیرونی IIC ماڈیول کو انٹرفیس کرنے کے لئے استعمال ہوسکتے ہیں۔ چونکہ ماڈیول کا IIC ایڈریس ترتیب کے قابل ہے ، لہذا AD0 پن کا استعمال کرتے ہوئے ایک سے زیادہ MPU6050 سینسر کو مائکروقابو کرنے والے کے ساتھ انٹرفیس کیا جاسکتا ہے۔
خصوصیات اور نردجیکرن:
- بجلی کی فراہمی: 3-5V
- مواصلات: I2C پروٹوکول
- بلٹ ان 16 بٹ اے ڈی سی اعلی درستگی فراہم کرتا ہے
- بلٹ ان DMP اعلی کمپیوٹیشنل پاور فراہم کرتا ہے
- میگنیٹومیٹر جیسے دیگر IIC آلات کے ساتھ انٹرفیس کرنے کے لئے استعمال کیا جا سکتا ہے
- قابل ترتیب IIC ایڈریس
- بلٹ میں درجہ حرارت سینسر
ایم پی یو 6050 کا پن آؤٹ:
پن نمبر | پن کا نام | استعمال کریں |
1 | وی سی سی | ماڈیول کے لئے طاقت فراہم کرتا ہے ، + 3V سے + 5V ہوسکتا ہے۔ عام طور پر + 5 وی استعمال ہوتا ہے |
2 | زمین | گراؤنڈ آف سسٹم سے منسلک |
3 | سیریل گھڑی (ایس سی ایل) | I2C مواصلات کے لئے گھڑی کی نبض فراہم کرنے کے لئے استعمال کیا جاتا ہے |
4 | سیریل ڈیٹا (SDA) | I2C مواصلات کے ذریعے ڈیٹا کی منتقلی کے لئے استعمال کیا جاتا ہے |
5 | معاون سیریل ڈیٹا (XDA) | MPU6050 کے ساتھ دوسرے I2C ماڈیول کو انٹرفیس کرنے کے لئے استعمال کیا جاسکتا ہے۔ یہ اختیاری ہے |
6 | معاون سیریل گھڑی (ایکس سی ایل) | MPU6050 کے ساتھ دوسرے I2C ماڈیول کو انٹرفیس کرنے کے لئے استعمال کیا جاسکتا ہے۔ یہ اختیاری ہے |
7 | AD0 | اگر ایک سے زیادہ MPU6050 میں ایک ہی MCU استعمال کیا جاتا ہے ، تو اس پن کو ایڈریس کو مختلف کرنے کے لئے استعمال کیا جاسکتا ہے |
8 | رکاوٹ (INT) | ایم سی یو کو پڑھنے کے ل data اعداد و شمار دستیاب ہونے کی نشاندہی کرنے کیلئے مداخلت کی پن |
اس سے قبل ہم نے خود توازن رکھنے والے روبوٹ اور انکلیوومیٹر کی تعمیر کیلئے اردوینو کے ساتھ MPU6050 استعمال کیا تھا ۔
ضروری اجزاء
- اردوینو یو این او
- MPU6050 Gyroscope Module
- 16x2 LCD ڈسپلے
- پوٹینومیٹر 10 ک
- ایس جی 90-سروو موٹر
- پروٹیکٹر امیج
سرکٹ ڈایاگرام
اس ڈی آئی وائی آردوینو پروٹیکٹر کے لئے سرکٹ ڈایاگرام ذیل میں دیا گیا ہے:
ارڈینوو یو این او اور ایم پی یو 6050 کے مابین سرکٹ رابطے:
MPU6050 |
اردوینو یو این او |
وی سی سی |
+ 5 وی |
GND |
GND |
ایس سی ایل |
A5 |
ایس ڈی اے |
A4 |
ارڈینوو یو این او اور سروو موٹر کے مابین سرکٹ رابطے:
امدادی موٹر |
اردوینو یو این او |
سرخ (وی سی سی) |
+ 5 وی |
اورنج (پی ڈبلیو ایم) |
9 |
براؤن (GND) |
GND |
ارڈینوو یو این او اور 16x2 LCD کے مابین سرکٹ رابطے:
LCD |
اردوینو نینو |
وی ایس ایس |
GND |
وی ڈی ڈی |
+ 5 وی |
V0 |
پوٹینومیٹر سینٹر کا PIN LCD کے برعکس کو کنٹرول کرنے کے ل. |
RS |
2 |
آر ڈبلیو |
GND |
ای |
3 |
ڈی 4 |
4 |
ڈی 5 |
5 |
ڈی 6 |
6 |
ڈی 7 |
7 |
A |
+ 5 وی |
K |
GND |
پروگرامنگ وضاحت
ہمیشہ کی طرح اس ٹیوٹوریل کے آخر میں ایک مظاہرہ ویڈیو کے ساتھ مکمل پروگرام دیا جاتا ہے۔
یہاں سروو موٹر اردوینو کے ساتھ منسلک ہے اور اس کا شافٹ پروٹیکٹر امیج پر لگایا گیا ہے جس میں مائل MPU6050 کا زاویہ ظاہر ہوتا ہے۔ اس سبق کے لئے پروگرامنگ آسان ہے۔ آئیے اسے تفصیل سے دیکھیں۔
سب سے پہلے تمام مطلوب لائبریریاں شامل کریں۔ امدادی موٹر لائبریری کو سروو ، ایل سی ڈی لائبریری کے استعمال کے ل using لائبریری اور آئی 2 سی مواصلات کے استعمال کے لire وائر لائبریری شامل کریں
MPU6050 I2C مواصلات کا استعمال کرتا ہے اور اس وجہ سے ، اسے Ardino کے I2C پنوں سے ہی مربوط ہونا چاہئے۔ لہذا ، وائر ڈگری لائبریری کا استعمال اردوینو یو این او اور ایم پی یو 6050 کے مابین مواصلت قائم کرنے کے لئے کیا جاتا ہے۔ اس سے قبل ہم نے MPU6050 کو آرڈینو کے ساتھ انٹرفیس کیا اور x ، y ، z کوآرڈینیٹ اقدار کو 16x2 LCD پر ظاہر کیا۔
# شامل کریں
اگلا ایل سی ڈی ڈسپلے پنوں کی وضاحت کریں RS، E، D4، D5، D6، D7 جو آردوینو یو این او کے ساتھ جڑے ہوئے ہیں۔
لیکویڈ کرسٹل ایل سی ڈی (2،3،4،5،6،7)؛
اگلا MPU6050 کے I2C ایڈریس کی وضاحت کی گئی ہے۔
const IN MPU_addr = 0x68؛
پھر ایکس ، وائی اور زیڈ محور کی اقدار کو ذخیرہ کرنے کے لئے سروو کلاس اور تین متغیرات کو استعمال کرنے کے لئے میسروو آبجیکٹ شروع کریں ۔
امدادی میسرو۔ int16_t محور_ X ، محور_ Y ، محور_ زیڈ؛
0 سے 360 تک زاویہ کی پیمائش کے لئے اگلی کم سے کم اور زیادہ سے زیادہ قیمت 265 اور 402 مقرر کی گئی ہے۔
int minVal = 265؛ انٹ میکسوال = 402؛
باطل سیٹ اپ ():
میں باطل سیٹ اپ تقریب پہلی I2C مواصلات شروع کر دیا جاتا ہے اور ٹرانسمیشن 0x68 کے ایڈریس کے ساتھ MPU6050 ساتھ شروع کر دیا ہے.
تار.بیگین ()؛ Wire.beginTransmission (MPU_addr)؛
ایم پی یو 6050 کو 0x6B لکھ کر نیند کے موڈ میں رکھیں اور پھر 0 لکھ کر اسے بیدار کریں
وائر ڈاٹ رائٹ (0x6B)؛ وائر ڈاٹ رائٹ (0)؛
MPU6050 کو فعال بنانے کے بعد ، ٹرانسمیشن ختم کریں
Wire.endTransmission (true)؛
یہاں سروو موٹر کا پی ڈبلیو ایم پن اردوینو یو این او پن 9 کے ساتھ منسلک ہے۔
myservo.attach (9)؛
جیسے ہی ہم سرکٹ کو طاقت دیتے ہیں ، LCD ایک خوش آئند پیغام دکھاتا ہے اور 3 سیکنڈ کے بعد اسے صاف کر دیتا ہے
lcd.begin (16،2)؛ // ایل سی ڈی کو 16 ایکس 2 موڈ میں سیٹ کریں lcd.print ("سرکٹ ڈائجسٹ")؛ تاخیر (1000)؛ lcd.clear ()؛ lcd.setCursor (0،0)؛ lcd.print ("ارڈینو")؛ lcd.setCursor (0،1)؛ lcd.print ("MPU6050")؛ تاخیر (3000)؛ lcd.clear ()؛
باطل لوپ ():
ایک بار پھر ، I2C مواصلت MPU6050 سے شروع کی گئی ہے۔
Wire.beginTransmission (MPU_addr)؛
پھر رجسٹر 0x3B (ACCEL_XOUT_H) کے ساتھ شروع کریں
وائر ڈاٹ رائٹ (0x3B)؛
اب عمل کو اختتامی ٹرانسمیشن کے ذریعہ دوبارہ شروع کیا گیا ہے جیسا کہ غلط ہے لیکن کنکشن فعال ہے۔
Wire.endTransmission (false)؛
اس کے بعد اب 14 رجسٹروں سے ڈیٹا کی درخواست کریں۔
Wire.requestFrom (MPU_addr، 14، سچ)؛
اب معزز محور رجسٹر اقدار (x، y، z) حاصل کی جاتی ہیں اور متغیر axis_X، axis_Y، axis_Z میں محفوظ کی جاتی ہیں۔
axis_X = وائر.ریڈ () << 8-Wire.read ()؛ محور_ Y = وائر.ریڈ () << 8-Wire.read ()؛ axis_Z = Wire.read () << 8-Wire.read ()؛
پھر ان اقدار کو 265 سے 402 تک -90 سے 90 تک نقشہ بنائیں۔ یہ تینوں محوروں کے لئے کیا جاتا ہے۔
int xAng = نقشہ (محور_ X ، منٹ وال ، میکسول ، -90،90)؛ int yAng = نقشہ (محور_ Y، منٹ وال، میکس وال، -90،90)؛ انٹ زیڈ = نقشہ (محور_ زیڈ ، من وال ، میکس وال ، -90،90)؛
ڈگری میں x ویلیو (0 سے 360) حساب کرنے کا فارمولا ذیل میں دیا گیا ہے۔ یہاں ہم صرف ایکس میں تبدیل ہوجاتے ہیں کیونکہ सर्वो موٹر گردش ایکس ویلیو موومنٹ پر مبنی ہے۔
x = RAD_TO_DEG * (atan2 (-yAng، -zAng) + PI)؛
ایکس زاویہ قیمت ، 0 سے 360 ڈگری تک ، 0 سے 180 میں تبدیل ہوجاتی ہے۔
int pos = نقشہ (x، 0،180،0،180)؛
پھر پروٹوٹر امیج پر سروو کو گھومنے کے لئے زاویہ کی قیمت لکھیں اور ان اقدار کو 16x2 LCD ڈسپلے پر پرنٹ کریں۔
myservo.writ (pos)؛ lcd.setCursor (0،0)؛ lcd.print ("زاویہ")؛ lcd.setCursor (0،1)؛ lcd.print (x)؛ تاخیر (500)؛ lcd.clear ()؛
لہذا اس طرح سے اروڈینو کے ساتھ MPU6050 زاویہ کی پیمائش کرنے کے لئے استعمال کیا جاسکتا ہے۔ اس منصوبے کے لئے مکمل کوڈ اور ویڈیو ذیل میں دیا گیا ہے۔