- مطلوبہ اجزاء:
- MPU6050 گیرو سینسر:
- تفصیل:
- سرکٹ ڈایاگرام اور وضاحت:
- MPU6050 گائرو سینسر کیلئے راسبیری پائی کی تشکیل:
- پروگرامنگ کی وضاحت:
MPU6050 سینسر کے سنگل چپ پر بہت سے کام ہوتے ہیں۔ اس میں ایک MEMS ایکسلرومیٹر ، ایک MEMS گائرو ، اور درجہ حرارت سینسر ہے۔ یہ ماڈیول ینالاگ قدروں کو ڈیجیٹل میں تبدیل کرتے وقت بہت درست ہے کیونکہ اس میں ہر چینل کے لئے ڈیجیٹل کنورٹر ہارڈویئر میں 16 بٹ اینالاگ موجود ہیں۔ یہ ماڈیول ایک ہی وقت میں x ، y اور z چینل پر قبضہ کرنے کے قابل ہے۔ اس میں میزبان کنٹرولر کے ساتھ بات چیت کرنے کے لئے I2C انٹرفیس ہے۔ یہ MPU6050 ماڈیول ایک کمپیکٹ چپ ہے جس میں ایکسلریومیٹر اور گائرو دونوں موجود ہیں ۔ یہ ڈرون ، روبوٹ ، موشن سینسر جیسے بہت سے ایپلی کیشنز کے لئے ایک بہت ہی کارآمد آلہ ہے۔ اسے جیروسکوپ یا ٹرپل محور ایکسلرومیٹر بھی کہا جاتا ہے ۔
آج اس مضمون میں ہم اس MPU6050 کو انٹرفیس کرنے جارہے ہیں راسبیری پائی کے ساتھ اور 16x2 LCD سے زیادہ کی اقدار دکھا رہے ہیں۔
مطلوبہ اجزاء:
- راسباری پائی
- MPU-6050
- 10K POT
- جمپر تار
- بریڈ بورڈ
- بجلی کی فراہمی
MPU6050 گیرو سینسر:
ایم پی یو 6050 ایک چپ میں 8 پن 6 محور گائرو اور ایکسلرومیٹر ہے۔ یہ ماڈیول I2C سیریل مواصلات پر بطور ڈیفالٹ کام کرتا ہے لیکن ایس پی آئی انٹرفیس کے ل register اس کو رجسٹر کرکے تشکیل کرسکتا ہے۔ I2C کے ل this اس میں ایس ڈی اے اور ایس سی ایل لائنیں ہیں۔ تقریبا تمام پنوں ملٹی کام کرنے والی ہیں لیکن یہاں ہم صرف I2C موڈ پنوں کے ساتھ آگے بڑھ رہے ہیں۔

پن کی تشکیل:
وی سی سی : - اس پن کو گراؤنڈ کے حوالے سے MPU6050 ماڈیول کو طاقت دینے کے لئے استعمال کیا جاتا ہے
GND: - یہ ایک زمینی پن ہے
ایس ڈی اے: - ایس ڈی اے پن کنٹرولر اور ایم پی یو 6050 ماڈیول کے مابین ڈیٹا کیلئے استعمال ہوتا ہے
ایس سی ایل: - ایس سی ایل پن گھڑی کے ان پٹ کے لئے استعمال ہوتا ہے
ایکس ڈی اے: - یہ بیرونی سینسروں کی تشکیل اور پڑھنے کے ل sens سینسر I2C SDA ڈیٹا لائن ہے ((اختیاری) ہمارے معاملے میں استعمال نہیں ہوتا ہے)
ایکس سی ایل: - یہ بیرونی سینسروں کی تشکیل اور پڑھنے کے ل sens سینسر I2C ایس سی ایل گھڑی لائن ہے ((اختیاری) ہمارے معاملے میں استعمال نہیں ہوتا ہے)
ADO: - I2C غلام ایڈریس LSB (ہمارے معاملے میں قابل اطلاق نہیں)
INT: - ڈیٹا تیار ہونے کے اشارے کیلئے مداخلت کی پن۔
اس سے قبل ہم نے اردوینو کے ساتھ MPU6050 انٹرفیس کیا ہے۔
تفصیل:
اس مضمون میں ، ہم راسبیری پائ کے ساتھ MPU6050 کا استعمال کرتے ہوئے LCD پر درجہ حرارت ، گائرو اور ایکسلرومیٹر ریڈنگز دکھا رہے ہیں ۔ اگر آپ راسبیری پائی میں نئے ہیں تو ہمارے رسبری پِی سبق آموز سیکشن میں جائیں اور راسبیری پِی سے شروعات کرنا سیکھیں۔
اس پروجیکٹ میں ، ہم نے سب سے پہلے ایل سی ڈی سے زیادہ درجہ حرارت کی قیمت دکھائی ہے اور کچھ عرصے کے بعد ہم گیرو اقدار دکھاتے ہیں اور پھر کچھ دیر بعد ہمارے پاس ایکسیلومیٹر ریڈنگ ہوتی ہے جیسا کہ ذیل کی تصاویر میں دکھایا گیا ہے:


سرکٹ ڈایاگرام اور وضاحت:
راسبیری پائی کے ساتھ MPU6050 کو انٹرفیس کرنے کے لئے سرکٹ ڈایاگرام ، یہاں بہت آسان ہے ہم نے LCD اور MPU6050 استعمال کیا ہے۔ ایل سی ڈی کی چمک کو کنٹرول کرنے کے لئے 10 کٹ کا برتن استعمال کیا جاتا ہے۔ MPU6050 کے سلسلے میں ، ہم نے 4 کنکشن کیے ہیں جس میں ہم نے MP360 کی 3.3v بجلی کی فراہمی اور گراؤنڈ کو راسبیری پائی کے 3.3v اور گراؤنڈ سے جوڑا ہے۔ ایم پی یو 6050 کے ایس سی ایل اور ایس ڈی اے پنوں راسبیری کے جسمانی پن 3 (جی پی آئی او 2) اور پن 5 (جی پی آئی او 3) کے ساتھ جڑے ہوئے ہیں۔ LCD کے RS ، RW ، اور EN براہ راست GPIO18 ، اور رسبری pi کے 23 سے جڑے ہوئے ہیں۔ ڈیٹا پن براہ راست ڈیجیٹل پن نمبر GPIO24 ، GPIO25 ، GPIO8 ، اور GPIO7 سے منسلک ہوتا ہے۔ راسبیری پائی کے ساتھ LCD میں مداخلت کرنے کے بارے میں مزید معلومات حاصل کریں۔

MPU6050 گائرو سینسر کیلئے راسبیری پائی کی تشکیل:
پروگرامنگ شروع کرنے سے پہلے ، ہمیں دیئے گئے طریقہ کا استعمال کرکے راسبیری پائی کے i2c کو اہل بنانا ہوگا:
مرحلہ 1: I2C مواصلات کو فعال کریں
اڈفریٹ ایس ایس ڈی1306 لائبریری کو انسٹال کرنے سے پہلے ہمیں راسبیری پائی میں I2C مواصلات کو اہل بنانا ہوگا۔
اس قسم کے راسبیری پائی کنسول میں کرنے کے ل::
sudo raspi -config
اور پھر ایک نیلی اسکرین نمودار ہوگی۔ اب انٹرفیس کا اختیار منتخب کریں

اس کے بعد ، ہمیں I2C کو منتخب کرنے کی ضرورت ہوگی
اور

اس کے بعد ، ہمیں ہاں کو منتخب کرنے کی ضرورت ہے اور enter دبائیں اور پھر ٹھیک ہے

اس کے بعد ، ہمیں نیچے کمانڈ جاری کرکے رسبری پائی کو دوبارہ شروع کرنے کی ضرورت ہے:
سوڈو ریبوٹ
مرحلہ 2: ازگر پائپ اور جی پی آئ او لائبریری انسٹال کریں
sudo apt-get انسٹال کریں بلڈ-لازمی ازگر-دیو ازگر پائپ
اس کے بعد ، ہمیں رسبری پائ GPIO لائبریری نصب کرنے کی ضرورت ہے
sudo پائپ RPI.GPIO انسٹال کرتا ہے
مرحلہ 3: سمبس لائبریری انسٹال کریں
آخر میں ، ہمیں دیئے ہوئے کمانڈ کا استعمال کرکے راسبیری پائی میں سمبس لائبریری انسٹال کرنے کی ضرورت ہے۔
sudo apt-get python-smbus انسٹال کریں

مرحلہ 4: لائبریری MPU6050 انسٹال کریں
اس کے بعد ہمیں دی گئی کمانڈ کا استعمال کرکے MPU6050 لائبریری انسٹال کرنے کی ضرورت ہے

sudo پائپ انسٹال کریں mpu6050
اب ہم مثالوں میں مثال کے کوڈ تلاش کرسکتے ہیں۔ صارف راسبیری پائی پر براہ راست اپ لوڈ کرکے اس کوڈ کو جانچ سکتا ہے یا ضرورت کے مطابق اسے اپنی مرضی کے مطابق بنا سکتا ہے۔ یہاں ہم نے 16x2 LCD پر MPU6050 کی X ، Y اور Z محور قدریں ظاہر کیں۔ سبق کے آخر میں آپ کو پورا پورا پورا کوڈ مل سکتا ہے ۔
پروگرامنگ کی وضاحت:
مکمل ازگر کوڈ یہاں آخر میں دیا گیا ہے ہم کوڈ کے کچھ اہم حصے کی وضاحت کر رہے ہیں۔
ازگر پروگرام میں ، ہم نے کچھ مطلوبہ لائبریری جیسے وقت ، سمبس ، اور جی پی آئی او درآمد کیا ہے۔
درآمد smbus درآمد وقت درآمد RPi.GPIO بطور gpio
اس کے بعد ، ہمیں MPU6050 تشکیل کرنے اور اسی سے قدریں حاصل کرنے کے ل register کچھ رجسٹر ایڈریس لینے کی ضرورت ہے۔ ہم نے I2C کے لئے بس کیلیبریٹنگ اور شروع کرنے کے ل some کچھ متغیرات بھی لی ہیں۔
PWR_M = 0x6B DIV = 0x19 CONFIG = 0x1A GYRO_CONFIG = 0x1B INT_EN = 0x38 ACCEL_X = 0x3B ACCEL_Y = 0x3D ACCEL_Z = 0x3F GYRO_X = 0x43 GYRO_Y = 0x4 Gx_sx_sx_sx_sx_sx_sx_sx_sx_gxg4g4g4g4g4g4g4g4g4g4g4g4g4gg_g4g4g4g4g4g4g4g4g4 پر @ पर AxCal = 0 AyCal = 0 AzCal = 0 GxCal = 0 GyCal = 0 GzCal = 0
پھر ہم نے 16x2LCD ڈرائیونگ کے لئے کچھ کام لکھے ہیں جیسے ڈیف بیگنیٹ () ، ڈیف سینٹی میٹر (CH) ، ڈیف رائٹ (ch) ، Def پرنٹ (str) ، Def کلیئر () وغیرہ ۔ آپ راسبیری پائ کے ساتھ LCD کے انٹرفیسنگ کو مزید جانچ سکتے ہیں۔
اس کے بعد ، ہمیں MPU6050 ماڈیول کو شروع کرنے کی ضرورت ہے
ڈیف انیمپی یو (): بس.روائٹ_بیٹ_ڈیٹا (ڈیوائس_ایڈریس ، ڈی آئی وی ، 7) بس.روائٹ_بیٹ_ڈیٹا (ڈیوائس_ایڈریس ، پی ڈبلیو آر_یم ، 1) بس.روائٹ_بیٹ_ڈیٹا (ڈیوائس_ایڈریس ، CONFIG ، 0) بس ڈرائٹ_ڈیٹ ایڈریس (ڈیوائس) ، INT_EN ، 1) وقت۔ نیند (1)
اس کے بعد ، ہمیں MPU6050 سے قدریں پڑھنے اور LCD میں ڈسپلے کرنے کے ل some کچھ فنکشن لکھنے کی ضرورت ہے۔ دی گئی فنکشن MPU6050 کے ڈیٹا کو پڑھنے کے لئے استعمال ہوتی ہے
Def readMPU (addr): high = bus.read_byte_data (ڈیوائس_ایڈریس ، ایڈر) کم = bus.read_byte_data (ڈیوائس_ایڈریس ، اضافہ +1) ویلیو = ((اعلی << 8) - کم) اگر (قدر> 32768): ویلیو = ویلیو - 65536 واپسی کی قیمت
دی گئی تقریب کا استعمال اکیلرومیٹر اور گائرو میٹر ڈیٹا کو پڑھنے کے لئے کیا جاتا ہے
Def accel (): x = readMPU (ACCEL_X) y = readMPU (ACCEL_Y) z = readMPU (ACCEL_Z) Ax = (x / 16384.0-AxCal) Ay = (y / 16384.0-AyCal) Az = (z / 16384.0-AzCal) #print "X =" + STR (ایکس) ڈسپلے (کلہاڑی، سوال، AZ) time.sleep (.01) def کی gyro کے (): عالمی GxCal عالمی GyCal عالمی GzCal X = readMPU (GYRO_X) Y = readMPU (GYRO_Y) Z = readMPU (GYRO_Z) Gx = x / 131.0 - GxCal Gy = y / 131.0 - GyCal Gz = z / 131.0 - GzCal #print "X =" + str (Gx) ڈسپلے (Gx، Gy، Gz) ٹائم سلیپ (۔ 01)
اس کے بعد ، ہم نے درجہ حرارت پڑھنے کی تقریب لکھی ہے
Def temp (): tempRow = readMPU (TEMP) tempC = (tempRow / 340.0) + 36.53 tempC = "٪. 2f"٪ tempC پرنٹ tempC سیٹ کرسر (0،0) پرنٹ ("ٹیمپ:") پرنٹ (str (tempC)) وقت۔ نیند (.2)
ڈی ایف کیلیبریٹ () فنکشن MPU6050 کیلیبریٹ کرنے کے لئے استعمال ہوتا ہے اور ڈیف ڈسپلے () فنکشن ایل سی ڈی پر اقدار کو ظاہر کرنے کے لئے استعمال ہوتا ہے۔ ذیل میں دیئے گئے مکمل کوڈ میں ان افعال کو چیک کریں۔
اس کے بعد، ہم ابتدا LCD شروع کر دیا ہے، اور MPU6050 مدرج اور پھر میں جبکہ لوپ ہم MPU- سے اقدار کی تمام تینوں سیٹ بلایا ہے درجہ حرارت، accelerometer اور gyro کے اور LCD پر ان کو دکھایا.
شروع ()؛ پرنٹ ("MPU6050 انٹرفیس") سیٹ کرسر (0،1) پرنٹ ("سرکٹ ڈائجسٹ") ٹائم۔نسل (2) انشیم پی یو () کیلیبریٹ () جبکہ 1: انیم پی یو () کلیئر () میں رینج (20): ٹی ایم پی () واضح () پرنٹ ("ایکسل") وقت۔ نیند (1) میں رینج میں (30): اکیل () صاف () پرنٹ ("گائرو") وقت۔ نیند (1) میں حد میں (30): گائرو ()


MPU6050 گائرو اور ایکسلرومیٹر دونوں کسی بھی ڈیوائس کی پوزیشن اور واقفیت کا پتہ لگانے کے لئے استعمال ہوتے ہیں۔ جیرو زمین ، کشش ثقل کا استعمال x ، y اور z-axis پوزیشنوں کا تعین کرنے کے لئے کرتا ہے اور حرکت کی تبدیلی کی شرح کی بنیاد پر ایکسیلومیٹر کا پتہ لگاتا ہے۔ ہم پہلے ہی اپنے بہت سارے پروجیکٹس میں ارڈینو کے ساتھ ایکسلرومیٹر استعمال کر چکے ہیں۔
- ایکیلرومیٹر بیسڈ ہینڈ اشارہ کنٹرولڈ روبوٹ
- اردوینو بیسڈ وہیکل ایکسیڈنٹ الرٹ سسٹم
- ارڈوینو کا استعمال کرتے ہوئے زلزلہ پکڑنے والا الارم
