- தேவையான கூறுகள்:
- MPU6050 கைரோ சென்சார்:
- விளக்கம்:
- சுற்று வரைபடம் மற்றும் விளக்கம்:
- MPU6050 கைரோ சென்சாருக்கு ராஸ்பெர்ரி பை கட்டமைக்கிறது:
- நிரலாக்க விளக்கம்:
MPU6050 சென்சார் ஒற்றை சில்லுக்கு மேல் பல செயல்பாடுகளைக் கொண்டுள்ளது. இது ஒரு MEMS முடுக்கமானி, ஒரு MEMS கைரோ மற்றும் வெப்பநிலை சென்சார் ஆகியவற்றைக் கொண்டுள்ளது. அனலாக் மதிப்புகளை டிஜிட்டலுக்கு மாற்றும் போது இந்த தொகுதி மிகவும் துல்லியமானது, ஏனெனில் இது ஒவ்வொரு சேனலுக்கும் டிஜிட்டல் மாற்றி வன்பொருளுக்கு 16 பிட் அனலாக் உள்ளது. இந்த தொகுதி x, y மற்றும் z சேனலை ஒரே நேரத்தில் கைப்பற்றும் திறன் கொண்டது. ஹோஸ்ட் கட்டுப்படுத்தியுடன் தொடர்பு கொள்ள இது ஒரு I2C இடைமுகத்தைக் கொண்டுள்ளது. இந்த MPU6050 தொகுதி முடுக்கமானி மற்றும் கைரோ இரண்டையும் கொண்ட ஒரு சிறிய சிப் ஆகும். ட்ரோன்கள், ரோபோக்கள், மோஷன் சென்சார்கள் போன்ற பல பயன்பாடுகளுக்கு இது மிகவும் பயனுள்ள சாதனம். இது கைரோஸ்கோப் அல்லது டிரிபிள் அச்சின் முடுக்கமானி என்றும் அழைக்கப்படுகிறது.
இன்று இந்த கட்டுரையில் நாம் இந்த MPU6050 ஐ ராஸ்பெர்ரி பை உடன் இடைமுகப்படுத்தப் போகிறோம் மற்றும் 16x2 எல்சிடிக்கு மேல் மதிப்புகளைக் காட்டுகிறோம்.
தேவையான கூறுகள்:
- ராஸ்பெர்ரி பை
- MPU-6050
- 10 கே பாட்
- ஜம்பர் கம்பி
- ப்ரெட்போர்டு
- மின்சாரம்
MPU6050 கைரோ சென்சார்:
MPU-6050 என்பது ஒரு ஒற்றை சிப்பில் 8 முள் 6 அச்சு கைரோ மற்றும் முடுக்கமானி ஆகும். இந்த தொகுதி முன்னிருப்பாக I2C தொடர் தகவல்தொடர்புகளில் செயல்படுகிறது, ஆனால் அதை SPI இடைமுகத்திற்கு பதிவு செய்வதன் மூலம் கட்டமைக்க முடியும். I2C க்கு இது SDA மற்றும் SCL கோடுகளைக் கொண்டுள்ளது. ஏறக்குறைய அனைத்து ஊசிகளும் பல செயல்பாட்டுடன் உள்ளன, ஆனால் இங்கே நாம் I2C பயன்முறை ஊசிகளுடன் மட்டுமே தொடர்கிறோம்.

முள் கட்டமைப்பு:
வி.சி.சி: - இந்த முள் MPU6050 தொகுதிக்கு தரையைப் பொறுத்தவரை பயன்படுத்தப்படுகிறது
GND: - இது ஒரு தரை முள்
SDA: - கட்டுப்படுத்தி மற்றும் mpu6050 தொகுதிக்கு இடையிலான தரவுகளுக்கு SDA முள் பயன்படுத்தப்படுகிறது
எஸ்சிஎல்: - கடிகார உள்ளீட்டிற்கு எஸ்சிஎல் முள் பயன்படுத்தப்படுகிறது
எக்ஸ்.டி.ஏ: - இது வெளிப்புற சென்சார்களிடமிருந்து கட்டமைக்க மற்றும் படிப்பதற்கான சென்சார் I2C எஸ்.டி.ஏ தரவு வரி ((விரும்பினால்) எங்கள் விஷயத்தில் பயன்படுத்தப்படவில்லை)
எக்ஸ்சிஎல்: - இது வெளிப்புற சென்சார்களிடமிருந்து கட்டமைக்க மற்றும் படிக்க சென்சார் I2C எஸ்சிஎல் கடிகாரக் கோடு ((விரும்பினால்) எங்கள் விஷயத்தில் பயன்படுத்தப்படவில்லை)
ADO: - I2C அடிமை முகவரி LSB (எங்கள் விஷயத்தில் பொருந்தாது)
INT: - தரவு தயாராக இருப்பதைக் குறிப்பதற்கான குறுக்கீடு முள்.
நாங்கள் முன்பு MPU6050 ஐ Arduino உடன் இணைத்துள்ளோம்.
விளக்கம்:
இந்த கட்டுரையில், ராஸ்பெர்ரி பை உடன் MPU6050 ஐப் பயன்படுத்தி எல்சிடி வழியாக வெப்பநிலை, கைரோ மற்றும் முடுக்க அளவி அளவீடுகளைக் காண்பிக்கிறோம். நீங்கள் ராஸ்பெர்ரி பைக்கு புதியவர் என்றால், எங்கள் ராஸ்பெர்ரி பை டுடோரியல்கள் பிரிவின் வழியாக சென்று ராஸ்பெர்ரி பை மூலம் தொடங்க கற்றுக்கொள்ளுங்கள்.
இந்த திட்டத்தில், எல்.சி.டி.க்கு மேல் வெப்பநிலை மதிப்பை முதலில் காட்டியுள்ளோம், சிறிது நேரம் கழித்து கைரோ மதிப்புகளைக் காட்டுகிறோம், பின்னர் சிறிது நேரம் கழித்து கீழேயுள்ள படங்களில் காட்டப்பட்டுள்ளபடி முடுக்கமானி அளவீடுகளைக் கொண்டுள்ளோம்:


சுற்று வரைபடம் மற்றும் விளக்கம்:
MPU6050 ஐ ராஸ்பெர்ரி பை உடன் இணைப்பதற்கான சுற்று வரைபடம், இங்கே மிகவும் எளிது, நாங்கள் ஒரு எல்சிடி மற்றும் MPU6050 ஐப் பயன்படுத்தினோம். எல்சிடியின் பிரகாசத்தைக் கட்டுப்படுத்த 10 கே பானை பயன்படுத்தப்படுகிறது. MPU6050 உடன், நாங்கள் 4 இணைப்புகளைச் செய்துள்ளோம், இதில் 3.3v மின்சாரம் மற்றும் MPU6050 இன் நிலத்தை 3.3v மற்றும் ராஸ்பெர்ரி பை தரையில் இணைத்துள்ளோம். MPU6050 இன் SCL மற்றும் SDA ஊசிகளும் ராஸ்பெர்ரியின் உடல் முள் 3 (GPIO2) மற்றும் முள் 5 (GPIO3) உடன் இணைக்கப்பட்டுள்ளன. எல்.சி.டி.யின் ஆர்.எஸ்., ஆர்.டபிள்யூ மற்றும் ஈ.என் ஆகியவை நேரடியாக ஜி.பி.ஐ.ஓ 18 உடன் இணைக்கப்பட்டுள்ளன, மேலும் 23 ராஸ்பெர்ரி பை. தரவு முள் நேரடியாக டிஜிட்டல் முள் எண் GPIO24, GPIO25, GPIO8 மற்றும் GPIO7 உடன் இணைக்கப்பட்டுள்ளது. ராஸ்பெர்ரி பை உடன் எல்சிடியை இடைமுகப்படுத்துவது பற்றி மேலும் அறிக.

MPU6050 கைரோ சென்சாருக்கு ராஸ்பெர்ரி பை கட்டமைக்கிறது:
நிரலாக்கத்தைத் தொடங்குவதற்கு முன், கொடுக்கப்பட்ட முறையைப் பயன்படுத்தி ராஸ்பெர்ரி பை இன் i2c ஐ இயக்க வேண்டும்:
படி 1: I2C தகவல்தொடர்பு இயக்கவும்
அடாஃப்ரூட் SSD1306 நூலகத்தை நிறுவுவதற்கு முன், ராஸ்பெர்ரி பையில் I2C தகவல்தொடர்புகளை இயக்க வேண்டும்.
ராஸ்பெர்ரி பை கன்சோலில் இந்த வகையைச் செய்ய:
sudo raspi -config
பின்னர் ஒரு நீல திரை தோன்றும். இப்போது இடைமுக விருப்பத்தைத் தேர்ந்தெடுக்கவும்

இதற்குப் பிறகு, நாம் I2C ஐத் தேர்ந்தெடுக்க வேண்டும்

இதற்குப் பிறகு, நாம் ஆம் என்பதைத் தேர்ந்தெடுத்து Enter ஐ அழுத்தி சரி

இதற்குப் பிறகு, கீழே உள்ள கட்டளையை வழங்குவதன் மூலம் ராஸ்பெர்ரி பைவை மீண்டும் துவக்க வேண்டும்:
சோடோ மறுதொடக்கம்
படி 2: பைதான்-பிப் மற்றும் ஜிபிஐஓ நூலகத்தை நிறுவவும்
sudo apt-get install build-அத்தியாவசிய பைதான்-தேவ் பைதான்-பிப்
இதற்குப் பிறகு, ராஸ்பெர்ரி பை ஜிபிஐஓ நூலகத்தை நிறுவ வேண்டும்
sudo குழாய் RPi.GPIO ஐ நிறுவுகிறது
படி 3: smbus நூலகத்தை நிறுவவும்
இறுதியாக, கொடுக்கப்பட்ட கட்டளையைப் பயன்படுத்தி ராஸ்பெர்ரி பைவில் உள்ள smbus நூலகத்தை நிறுவ வேண்டும்:
sudo apt-get install python-smbus

படி 4: MPU6050 நூலகத்தை நிறுவவும்
இதற்குப் பிறகு கொடுக்கப்பட்ட கட்டளையைப் பயன்படுத்தி MPU6050 நூலகத்தை நிறுவ வேண்டும்

sudo pip install mpu6050
இப்போது எடுத்துக்காட்டுகளில் உதாரணக் குறியீடுகளைக் காணலாம். ராஸ்பெர்ரி பைக்கு நேரடியாக பதிவேற்றுவதன் மூலம் பயனர் அந்த குறியீட்டை சோதிக்கலாம் அல்லது தேவைக்கேற்ப தனிப்பயனாக்கலாம். இங்கே MPU6050 இன் X, Y மற்றும் Z அச்சு மதிப்புகளை 16x2 LCD இல் காட்டியுள்ளோம். டுடோரியலின் முடிவில் முழு பைதான் குறியீட்டைக் காணலாம்.
நிரலாக்க விளக்கம்:
முழுமையான பைதான் குறியீடு இங்கே கொடுக்கப்பட்டுள்ளது, குறியீட்டின் சில முக்கியமான பகுதியை இங்கே விளக்குகிறோம்.
பைதான் திட்டத்தில், நேரம், smbus மற்றும் GPIO போன்ற தேவையான சில நூலகங்களை நாங்கள் இறக்குமதி செய்துள்ளோம்.
இறக்குமதி smbus இறக்குமதி நேரம் RPi.GPIO ஐ gpio ஆக இறக்குமதி செய்க
இதற்குப் பிறகு, MPU6050 ஐ உள்ளமைக்கவும், அதிலிருந்து மதிப்புகளைப் பெறவும் சில பதிவு முகவரியை எடுக்க வேண்டும். I2C க்கான பஸ்ஸை அளவீடு செய்வதற்கும் துவக்குவதற்கும் சில மாறிகள் எடுத்துள்ளோம்.
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 = 0x_x = 0x4 AxCal = 0 AyCal = 0 AzCal = 0 GxCal = 0 GyCal = 0 GzCal = 0
ஓட்டுநர் 16x2LCD க்கு டெஃப் ஸ்டார்ட் (), டெஃப் செம்டி (சி), டெஃப் ரைட் (சி), டெஃப் பிரிண்ட் ( ஸ்ட்ரா ), டெஃப் க்ளியர் () போன்ற சில செயல்பாடுகளை எழுதியுள்ளோம். ராஸ்பெர்ரி பை மூலம் எல்சிடியின் இடைமுகத்தை நீங்கள் மேலும் சரிபார்க்கலாம்.
இதற்குப் பிறகு, MPU6050 தொகுதியை நாம் துவக்க வேண்டும்
def InitMPU (): bus.write_byte_data (Device_Address, DIV, 7) bus.write_byte_data (Device_Address, PWR_M, 1) bus.write_byte_data (Device_Address, CONFIG, 0) bus.write_byte_dd_D_D_D_D_D_, INT_EN, 1) நேரம். தூக்கம் (1)
இதற்குப் பிறகு, MPU6050 இலிருந்து மதிப்புகளைப் படித்து அவற்றை எல்சிடியில் காண்பிக்க சில செயல்பாடுகளை எழுத வேண்டும். MPU6050 இலிருந்து தரவைப் படிக்க கொடுக்கப்பட்ட செயல்பாடு பயன்படுத்தப்படுகிறது
def readMPU (addr): high = bus.read_byte_data (Device_Address, addr) low = bus.read_byte_data (Device_Address, addr + 1) value = ((high << 8) - low) if (value> 32768): value = value - 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 (Ax) display (Ax, Ay, 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) display (Gx, Gy, Gz) time.sleep (. 01)
இதற்குப் பிறகு, வெப்பநிலை வாசிப்பு செயல்பாட்டை எழுதியுள்ளோம்
def temp (): tempRow = readMPU (TEMP) tempC = (tempRow / 340.0) + 36.53 tempC = "%. 2f"% tempC print tempC setCursor (0,0) அச்சிடு ("தற்காலிக:") அச்சிடு (str (tempC)) time.sleep (.2)
MPU6050 ஐ அளவீடு செய்ய def calibrate () செயல்பாடு பயன்படுத்தப்படுகிறது மற்றும் LCD இல் மதிப்புகளைக் காண்பிக்க def display () செயல்பாடு பயன்படுத்தப்படுகிறது. கீழே கொடுக்கப்பட்டுள்ள முழு குறியீட்டில் இந்த செயல்பாடுகளை சரிபார்க்கவும்.
இதற்குப் பின் நாங்கள் துவக்க, எல்சிடி தொடங்கியுள்ளன மற்றும் MPU6050 அளவீடு மற்றும் வேண்டும் பின்னர் போது வளைய நாம் அனைவரும் மூன்று MPU- மதிப்புகள் தொகுப்பு என அழைக்கப்படுகிறது வேண்டும் வெப்பநிலை, முடுக்க மற்றும் கைரோ மற்றும் எல்சிடி அவர்களுக்கு காட்டியது.
தொடங்கு (); அச்சிடு ("MPU6050 இடைமுகம்") setCursor (0,1) அச்சிடு ("சர்க்யூட் டைஜஸ்ட்") நேரம். தூக்கம் (2) InitMPU () அளவீடு () அதே நேரத்தில் 1: InitMPU () தெளிவான () i வரம்பில் (20): தற்காலிக () தெளிவான () அச்சு ("ஆக்செல்") நேரம்: கைரோ()


MPU6050 கைரோ மற்றும் முடுக்கமானி இரண்டும் எந்த சாதனத்தின் நிலை மற்றும் நோக்குநிலையைக் கண்டறியப் பயன்படுத்தப்படுகின்றன. X, y மற்றும் z- அச்சு நிலைகளைத் தீர்மானிக்க கைரோ பூமி ஈர்ப்பைப் பயன்படுத்துகிறது மற்றும் இயக்கத்தின் மாற்றத்தின் வீதத்தின் அடிப்படையில் முடுக்கமானி கண்டறியும். எங்கள் பல திட்டங்களில் ஏற்கனவே ஆர்டுயினோவுடன் முடுக்கமானியைப் பயன்படுத்தினோம்:
- முடுக்கமானி அடிப்படையிலான கை சைகை கட்டுப்படுத்தப்பட்ட ரோபோ
- Arduino அடிப்படையிலான வாகன விபத்து எச்சரிக்கை அமைப்பு
- Arduino ஐப் பயன்படுத்தி பூகம்பத்தைக் கண்டறியும் அலாரம்
