- MPU6050 Gyroscopic & Accelerometer سینسر
- فلیکس سینسر
- 3D پرنٹ شدہ روبوٹک آرم کو تیار کرنا:
- مطلوبہ اجزاء:
- سرکٹ ڈایاگرام:
- دستانے میں ایم پی یو 6050 اور فلیکس سینسر بڑھتے ہوئے
- روبوٹک بازو کے لئے پروگرامنگ اردوینو نینو
- ارڈوینو کا استعمال کرتے ہوئے اشارے پر قابو پانے والے اشارے پر کام کرنا
انجینئرنگ کی دلچسپ تخلیقات میں سے ایک روبوٹک اسلحہ ہے اور انسان کے بازو کی طرح پیچیدہ چیزوں کو انجام دینے کے ل to ان چیزوں کو جھکاؤ اور گھماؤ دیکھنا ہمیشہ ہی دلچسپ ہوتا ہے۔ یہ روبوٹک ہتھیار عمومی طور پر اسمبلی لائن میں صنعتوں میں پایا جاسکتا ہے جیسے شدید میکانی کام جیسے ویلڈنگ ، سوراخ کرنے والی ، پینٹنگ وغیرہ کی کارکردگی کا مظاہرہ کرتے ہیں ، حال ہی میں اعلی صحت سے متعلق جدید روبوٹک ہتھیاروں کو بھی پیچیدہ سرجیکل آپریشن انجام دینے کے لئے تیار کیا جارہا ہے۔ اس سے قبل ، ہم نے 3D میں ایک روبوٹک بازو پرنٹ کیا اور اے آر ایم 7 مائکروکنٹرولر کا استعمال کرکے ایک ڈی آئی وائی پک اینڈ پلیس روبوٹک بازو بنایا۔ ہم پھر وہی تھری ڈی پرنٹ شدہ روبوٹک بازو استعمال کریں گے جس میں ارڈینو نینو ، ایم پی یو 6050 گائروسکوپ اور فلیکس سینسر کا استعمال کرتے ہوئے ہاتھ کے اشارے پر قابو پانے والے روبوٹک آرم کو بنایا جاسکے۔
اس 3D چھپی ہوئی روبوٹک بازو کی پوزیشن کو ہینڈ دستانے کے ذریعے کنٹرول کیا جاتا ہے جو MPU6050 جیروسکوپ اور ایک فلیکس سینسر کے ساتھ منسلک ہوتا ہے ۔ فلیکس سینسر روبوٹک بازو کے گریپر سرو کو کنٹرول کرنے کے لئے استعمال کیا جاتا ہے اور ایم پی یو 6050 کو ایکس اور وائی محور میں روبوٹک کی نقل و حرکت کے لئے استعمال کیا جاتا ہے۔ اگر آپ کے پاس پرنٹر نہیں ہے تو ، آپ اپنا بازو سادہ گتے سے بھی بنا سکتے ہیں جیسا کہ ہم نے اپنے اردوینو روبوٹک آرم پراجیکٹ کے لئے بنایا تھا۔ پریرتا کے ل you ، آپ ریکارڈ اور پلے روبوٹک بازو کا بھی حوالہ دے سکتے ہیں جو ہم نے ارڈینو کے استعمال سے پہلے تعمیر کیا تھا۔
تفصیل میں جانے سے پہلے ، پہلے ہم MPU6050 سینسر اور فلیکس سینسر کے بارے میں جانیں۔
MPU6050 Gyroscopic & Accelerometer سینسر
MPU6050 مائیکرو مکینیکل سسٹمز (MEMS) ٹکنالوجی پر مبنی ہے۔ اس سینسر میں 3-محور ایکسلرومیٹر ، 3 محور جائرسکوپ ، اور ایک اندرونی درجہ حرارت سینسر ہے ۔ اس کا استعمال ایکسلریشن ، رفتار ، اورینٹیشن ، نقل مکانی ، وغیرہ جیسے پیرامیٹرز کی پیمائش کے لئے کیا جاسکتا ہے۔ اس سے قبل ہم MPU6050 کو آرڈینو اور راسبیری پائی کے ساتھ انٹرفیس کرچکے ہیں اور اس کے استعمال سے کچھ پروجیکٹس بھی بنا چکے ہیں جیسے سیلف بیلینسنگ روبوٹ ، اردوینو ڈیجیٹل پروٹیکٹر ، اور ارڈینو انکلیوومیٹر۔
MPU6050 سینسر میں خصوصیات:
- مواصلات: I2C پروٹوکول ترتیب I2C ایڈریس کے ساتھ
- ان پٹ بجلی کی فراہمی: 3-5V
- بلٹ ان 16 بٹ اے ڈی سی اعلی درستگی فراہم کرتا ہے
- بلٹ ان DMP اعلی کمپیوٹیشنل پاور فراہم کرتا ہے
- میگنیٹومیٹر جیسے دوسرے I2C آلات کے ساتھ انٹرفیس کرنے کے لئے استعمال کیا جا سکتا ہے
- بلٹ میں درجہ حرارت سینسر
ایم پی یو 6050 کی پن آؤٹ تفصیلات:
پن | استعمال |
وی سی سی | ماڈیول کے لئے طاقت فراہم کرتا ہے ، + 3V سے + 5V ہوسکتا ہے۔ عام طور پر + 5 وی استعمال ہوتا ہے |
زمین | گراؤنڈ آف سسٹم سے منسلک |
سیریل گھڑی (ایس سی ایل) | I2C مواصلات کے لئے گھڑی کی نبض فراہم کرنے کے لئے استعمال کیا جاتا ہے |
سیریل ڈیٹا (SDA) | I2C مواصلات کے ذریعے ڈیٹا کی منتقلی کے لئے استعمال کیا جاتا ہے |
معاون سیریل ڈیٹا (XDA) | MPU6050 کے ساتھ دوسرے I2C ماڈیول کو انٹرفیس کرنے کے لئے استعمال کیا جاسکتا ہے |
معاون سیریل گھڑی (ایکس سی ایل) | MPU6050 کے ساتھ دوسرے I2C ماڈیول کو انٹرفیس کرنے کے لئے استعمال کیا جاسکتا ہے |
AD0 | اگر ایک سے زیادہ MPU6050 میں ایک ہی MCU استعمال کیا جاتا ہے ، تو اس پن کو ایڈریس کو مختلف کرنے کے لئے استعمال کیا جاسکتا ہے |
رکاوٹ (INT) | ایم سی یو کو پڑھنے کے ل data ڈیٹا دستیاب ہونے کی نشاندہی کرنے کیلئے مداخلت کی پن |
فلیکس سینسر
فلیکس سینسر متغیر مزاحم کے سوا کچھ نہیں ہیں۔ سینسر جھکا ہوا ہے جب فلیکس سینسر مزاحمت تبدیل. وہ عام طور پر دو سائز 2.2 انچ اور 4.5 انچ میں دستیاب ہوتے ہیں ۔
ہم اپنے منصوبے میں فلیکس سینسر کیوں استعمال کرتے ہیں؟
اس اشارے پر قابو پانے والے روبوٹک بازو میں ، روبوٹک بازو کی گرفت کو کنٹرول کرنے کے لئے ایک فلیکس سینسر استعمال کیا جاتا ہے۔ جب ہینڈ دستانے پر فلیکس سینسر جھکا ہوا ہوتا ہے ، تو گریپر سے منسلک سرو موٹر گھوم جاتا ہے اور گریپر کھل جاتا ہے۔
فلیکس سینسر بہت ساری ایپلی کیشنز میں کارآمد ثابت ہوسکتے ہیں اور ہم نے فلیکس سینسر جیسے گیم کنٹرولر ، ٹون جنریٹر وغیرہ کا استعمال کرتے ہوئے کچھ پروجیکٹس بنائے ہیں۔
3D پرنٹ شدہ روبوٹک آرم کو تیار کرنا:
اس ٹیوٹوریل میں 3D پرنٹ شدہ روبوٹک بازو EEZYbotARM کے ذریعہ دیئے گئے ڈیزائن پر عمل کرکے تیار کیا گیا تھا جو Thingiverse میں دستیاب ہے۔ تھری ڈی پرنٹ شدہ روبوٹک بازو بنانے اور ویڈیو کے ساتھ جمع کرنے کی تفصیل کے لئے مکمل طریقہ کار تھنجیورس لنک میں موجود ہے ، جو اوپر شیئر کیا گیا ہے۔
اوپر 4 سروو موٹرز کے ساتھ جمع ہونے کے بعد میری تھری ڈی پرنٹ شدہ روبوٹک بازو کی تصویر ہے۔
مطلوبہ اجزاء:
- اردوینو نینو
- فلیکس سینسر
- 10 ک ریزٹر
- MPU6050
- ہاتھ دستانے
- مربوط تاروں
- بریڈ بورڈ
سرکٹ ڈایاگرام:
مندرجہ ذیل تصویر آردوینو پر مبنی اشارے سے کنٹرول شدہ روبوٹک بازو کے سرکٹ کنکشن کو دکھاتی ہے ۔
MPU6050 اور ارڈینو نینو کے مابین سرکٹ کنکشن:
MPU6050 |
اردوینو نینو |
وی سی سی |
+ 5 وی |
GND |
GND |
ایس ڈی اے |
A4 |
ایس سی ایل |
A5 |
سروو موٹرز اور اردوینو نینو کے مابین سرکٹ کنکشن:
اردوینو نینو |
سرور موٹر |
پاور اڈاپٹر |
ڈی 2 |
امدادی 1 اورنج (PWM پن) |
- |
ڈی 3 |
सर्वो 2 اورنج (پی ڈبلیو ایم پن) |
- |
ڈی 4 |
सर्वो 3 اورنج (پی ڈبلیو ایم پن) |
- |
ڈی 5 |
सर्वो 4 اورنج (پی ڈبلیو ایم پن) |
- |
GND |
سروکو 1،2،3،4 براؤن (GND پن) |
GND |
- |
سروکو 1،2،3،4 سرخ (+ 5V پن) |
+ 5 وی |
ایک فلیکس سینسر میں دو پن شامل ہیں۔ اس میں پولرائزڈ ٹرمینلز نہیں ہیں۔ لہذا پن ون P1 آرڈینو نینو کے ینالاگ پن A0 سے جڑا ہوا ہے جس میں 10 ک کے پل اپ اپ ریزٹر ہیں اور پن ٹو P2 کو ارڈینو کے ساتھ کھڑا کردیا گیا ہے۔
دستانے میں ایم پی یو 6050 اور فلیکس سینسر بڑھتے ہوئے
ہم نے MPU6050 اور فلیکس سینسر کو ایک دستی دستانے پر لگایا ہے۔ یہاں ایک وائرڈ کنکشن کو دستانے اور روبوٹک بازو کو جوڑنے کے لئے استعمال کیا جاتا ہے لیکن اسے RF کنکشن یا بلوٹوتھ کنکشن کا استعمال کرکے وائرلیس بنایا جاسکتا ہے۔
ہر رابطے کے بعد ، اشارے پر قابو پانے والے روبوٹک بازو کا حتمی سیٹ اپ نیچے کی تصویر کی طرح لگتا ہے:
روبوٹک بازو کے لئے پروگرامنگ اردوینو نینو
ہمیشہ کی طرح ، اس ٹیوٹوریل کے آخر میں ایک ورکنگ ویڈیو کے ساتھ مکمل کوڈ دیا گیا ہے۔ یہاں کوڈ کی کچھ اہم لائنوں کی وضاحت کی گئی ہے۔
1. پہلے ، ضروری لائبریری کی فائلیں شامل کریں۔ Aireino Nano & MPU6050 اور सर्वो موٹر کو کنٹرول کرنے کے لئے servo.h کے مابین I2C مواصلت کیلئے Wire.h لائبریری کا استعمال کیا جاتا ہے ۔
# شامل کریں
2. اس کے بعد ، کلاس امدادی اشیاء کے لئے اعلان کیا گیا ہے۔ چونکہ ہم چار सर्वो موٹرز کا استعمال کرتے ہیں ، چار اشیاء جیسے servo_1 ، servo_2 ، servo_3 ، servo_4 بنائے جاتے ہیں۔
امدادی امدادی__1 امدادی خدمت 3؛ امدادی خدمت 14؛ امدادی سرو؛
3۔ اگلا ، MPU6050 کا I2C ایڈریس اور استعمال ہونے والے متغیرات کا اعلان کردیا گیا ہے۔
const IN MPU_addr = 0x68؛ // MPU6050 I2C ایڈریس int16_t محور_ X ، محور_ Y ، محور_ زیڈ؛ int minVal = 265؛ انٹ میکسوال = 402؛ ڈبل ایکس؛ ڈبل y؛ ڈبل Z؛
Next. باطل سیٹ اپ کے بعد ، سیریل مواصلات کے لئے 00 9600 of کی باؤڈ ریٹ مقرر کی گئی ہے۔
سیریل.بیگین (9600)؛
اور ارڈینو نینو اور MPU6050 کے مابین I2C مواصلت قائم ہے:
تار.بیگین ()؛ // I2C مواصلات وائر شروع کریں۔ بیگین ٹرانسمیشن (MPU_addr)؛ // MPU6050 Wire.write (0x6B) کے ساتھ بات چیت کا آغاز ؛ // 6B وائر رجسٹر کرنے کے لئے لکھتے ہیں۔ رائٹ (0)؛ // WB.endTransmission (true) ری سیٹ کرنے کے لئے 0B میں 6B لکھتے ہیں ۔ // I2C ٹرانسمیشن ختم ہوتا ہے
نیز ، چار موٹر ڈبلیو ایم پنوں کو सर्वो موٹر کنکشن کے ل defined بیان کیا گیا ہے۔
servo_1.attach (2)؛ // فارورڈ / ریورس_موٹر servo_2.attach (3)؛ // اوپر / نیچے_موٹر servo_3.attach (4)؛ // گریپر_موٹر servo_4.attach (5)؛ // بائیں / دائیں_موٹر
5. اگلے باطل لوپ فنکشن میں ، پھر MPU6050 اور ارڈینو نینو کے مابین I2C کنکشن قائم کریں اور پھر MPU6050 کے رجسٹر سے X ، Y ، Z-Axis ڈیٹا پڑھنا شروع کریں اور ان کو اسی متغیر میں اسٹور کریں۔
Wire.beginTransmission (MPU_addr)؛ وائر ڈاٹ رائٹ (0x3B)؛ // ریگیسٹر 0x3B وائر کے ساتھ شروع کریں۔ منتقلی (جھوٹی)؛ Wire.requestFrom (MPU_addr، 14، سچ)؛ // پڑھیں 14 رجسٹر محور_ X = وائر.ریڈ () << 8-Wire.read ()؛ محور_ Y = وائر.ریڈ () << 8-Wire.read ()؛ axis_Z = Wire.read () << 8-Wire.read ()؛
اس کے بعد ، MPU6050 سینسر سے محور کے اعداد و شمار کی کم سے کم اور زیادہ سے زیادہ قیمت کو -90 سے 90 کی حد میں نقشہ بنائیں۔
int xAng = نقشہ (محور_ X ، منٹ وال ، میکسول ، -90،90)؛ int yAng = نقشہ (محور_ Y، منٹ وال، میکس وال، -90،90)؛ انٹ زیڈ = نقشہ (محور_ زیڈ ، من وال ، میکس وال ، -90،90)؛
اس کے بعد ، x ، y ، z کی قدر 0 سے 360 کے حساب سے حساب کرنے کے لئے درج ذیل فارمولے کا استعمال کریں۔
x = RAD_TO_DEG * (atan2 (-yAng، -zAng) + PI)؛ y = RAD_TO_DEG * (atan2 (-xAng، -zAng) + PI)؛ z = RAD_TO_DEG * (atan2 (-yAng، -xAng) + PI)؛
اس کے بعد ارڈینو نینو کے A0 پن پر فلیکس سینسر اینالاگ آؤٹ پٹ ڈیٹا پڑھیں اور فلیکس سینسر کی ڈیجیٹل ویلیو کے مطابق گریپر کا سروو اینگل سیٹ کریں۔ لہذا اگر فلیکس سینسر کا ڈیٹا 750 سے زیادہ ہو تو گریپر کا सर्वो موٹر زاویہ 0 ڈگری ہے اور اگر 750 سے کم ہے تو یہ 180 ڈگری ہے۔
INT gripper؛ int flex_sensorip = ینالاگ ریڈ (A0)؛ اگر (flex_sensorip> 750) { کے gripper = 0؛ } دوسری { گرفت = 180؛ } servo_3.writ (gripper)؛
پھر 0 سے 60 تک ایکس محور پر MPU6050 کی نقل و حرکت کو سرو موٹر کی فارورڈ / ریورس موشن روبوٹک بازو کے لئے 0 سے 90 ڈگری کے لحاظ سے نقشہ بنایا گیا ہے۔
اگر (X> = 0 && ایکس <= 60) { INT mov1 = نقشہ (X، 0،60،0،90)؛ سیریل.پرنٹ ("F / R =" میں تحریک)؛ سیریل.پرنٹ (موو 1)؛ سیریل.پرنٹلن ((چارٹ) 176)؛ servo_1.writ (Mov1)؛ }
اور 250 سے 360 تک ایکس محور پر MPU6050 کی نقل و حرکت کو سرو موٹر کی یوپی / ڈاون موشن روبوٹک بازو کے لئے 0 سے 90 ڈگری کے لحاظ سے نقشہ بنایا گیا ہے۔
ورنہ اگر (X> = 300 && ایکس <= 360) { INT mov2 = نقشہ (X، 360،250،0،90)؛ سیریل.پرنٹ ("اوپر / نیچے میں تحریک =")؛ سیریل.پرنٹ (موو 2)؛ سیریل.پرنٹلن ((چارٹ) 176)؛ servo_2.writ (موو 2)؛ }
0 سے 60 تک Y محور پر MPU6050 کی نقل و حرکت کو روبوٹک بازو کی امدادی موٹر کی بائیں تحریک کے لئے 90 سے 180 ڈگری کے لحاظ سے نقشہ بنایا گیا ہے۔
اگر (Y> = 0 && Y <= 60) { INT mov3 = نقشہ (Y، 0،60،90،180)؛ سیریل.پرنٹ ("بائیں میں تحریک =")؛ سیریل.پرنٹ (موو 3)؛ سیریل.پرنٹلن ((چارٹ) 176)؛ servo_4.writ (موو 3)؛ }
300 سے 360 تک Y- محور میں MPU6050 کی نقل و حرکت کو سروو موٹر کے دائیں موومنٹ آف روبوٹک بازو کیلئے 0 سے 90 ڈگری کے لحاظ سے نقشہ بنایا گیا ہے۔
ورنہ اگر (Y> = 300 && Y <= 360) { INT mov3 = نقشہ (Y، 360،300،90،0)؛ سیریل.پرنٹ ("دائیں طرف نقل و حرکت =")؛ سیریل.پرنٹ (موو 3)؛ سیریل.پرنٹلن ((چارٹ) 176)؛ servo_4.writ (موو 3)؛ }
ارڈوینو کا استعمال کرتے ہوئے اشارے پر قابو پانے والے اشارے پر کام کرنا
آخر میں ، کوڈ کو ارودوینو نینو میں اپ لوڈ کریں اور MPU6050 اور فلیکس سینسر کے ساتھ لگے ہوئے ہینڈ دستانے پہنیں۔
1. اب روبوٹک بازو کو آگے بڑھانے کے لئے ہاتھ کو نیچے کی طرف بڑھیں اور روبوٹک بازو کو اوپر منتقل کرنے کے لئے اوپر کی طرف بڑھیں۔
2. پھر روبوٹک بازو کو بائیں یا دائیں مڑنے کے لئے ہاتھ کو بائیں یا دائیں طرف جھکائیں۔
the. گرفت دستی کھولنے کے ل hand ہینڈ دستانے کی انگلی سے لگی ہوئی فلیکس کیبل کو موڑیں اور پھر اسے بند کرنے کے لئے اسے چھوڑ دیں۔
ذیل میں دی گئی ویڈیو میں مکمل کام کا مظاہرہ کیا گیا ہے۔