ARDUINO GY87 സംയോജിത സെൻസർ ടെസ്റ്റ് സ്കെച്ച്
ആമുഖം
നിങ്ങളൊരു ഉത്സാഹിയായ നിർമ്മാതാവോ റോബോട്ടിക്സ് പ്രേമിയോ ആണെങ്കിൽ, നിങ്ങൾ ഈ ചെറുതും എന്നാൽ ശക്തവുമായ മൊഡ്യൂൾ കണ്ടിട്ടുണ്ട്, നിങ്ങളൊരു ഉത്സാഹിയായ നിർമ്മാതാവോ റോബോട്ടിക്സ് പ്രേമിയോ ആണെങ്കിൽ, ചെറുതും ശക്തവുമായ ഈ മൊഡ്യൂൾ BMP085 ബാരോമീറ്റർ നിങ്ങൾ കണ്ടിട്ടുണ്ട്. GY-87 IMU മൊഡ്യൂൾ ഒരു സെൽഫ് ബാലൻസിംഗ് റോബോട്ട് അല്ലെങ്കിൽ ക്വാഡ്കോപ്റ്റർ പോലെ നിങ്ങളുടെ പ്രോജക്റ്റുകളിലേക്ക് ചലന സെൻസിംഗ് ചേർക്കുന്നതിനുള്ള മികച്ച മാർഗമാണ്.
എന്നാൽ നിങ്ങൾ GY-87 IMU മൊഡ്യൂൾ ഉപയോഗിച്ച് പരീക്ഷണം ആരംഭിക്കുന്നതിന് മുമ്പ്, അത് നിങ്ങളുടെ Arduino ബോർഡുമായി എങ്ങനെ ഇന്റർഫേസ് ചെയ്യണമെന്ന് നിങ്ങൾ അറിഞ്ഞിരിക്കണം. അവിടെയാണ് ഈ ബ്ലോഗ് വരുന്നത്! ഇനിപ്പറയുന്ന ഖണ്ഡികകളിൽ, GY-87 IMU മൊഡ്യൂളിന്റെ അടിസ്ഥാനകാര്യങ്ങൾ, അത് എങ്ങനെ സജ്ജീകരിക്കാം, സെൻസർ ഡാറ്റ വായിക്കാൻ Arduino കോഡ് എങ്ങനെ എഴുതാം. പൊതുവായ പ്രശ്നങ്ങൾ പരിഹരിക്കുന്നതിനുള്ള ചില നുറുങ്ങുകളും ഉറവിടങ്ങളും ഞങ്ങൾ നൽകും.
അതിനാൽ, നിങ്ങൾ ആരംഭിക്കാൻ തയ്യാറാണെങ്കിൽ, നമുക്ക് ഡൈവ് ചെയ്ത് GY-87 IMU മൊഡ്യൂൾ Arduino ഉപയോഗിച്ച് ഇന്റർഫേസ് ചെയ്യുന്നതിനെക്കുറിച്ച് പഠിക്കാം!
എന്താണ് GY-87 IMU MPU6050
GY-87 പോലെയുള്ള ഇനേർഷ്യൽ മെഷർമെന്റ് യൂണിറ്റ് (IMU) മൊഡ്യൂളുകൾ MPU6050 ആക്സിലറോമീറ്റർ/ഗൈറോസ്കോപ്പ്, HMC5883L മാഗ്നെറ്റോമീറ്റർ, BMP085 ബാരോമെട്രിക് പ്രഷർ സെൻസർ എന്നിങ്ങനെ നിരവധി സെൻസറുകളെ ഒരൊറ്റ പാക്കേജായി സംയോജിപ്പിക്കുന്നു. അതിനാൽ, GY-87 IMU MPU6050 എന്നത് 9-ആക്സിസ് ഗൈറോസ്കോപ്പ്, 3-ആക്സിസ് ആക്സിലറോമീറ്റർ, 3-ആക്സിസ് മാഗ്നെറ്റോമീറ്റർ, ഒരു ഡിജിറ്റൽ മോഷൻ പ്രോസസർ എന്നിവ സംയോജിപ്പിക്കുന്ന ഒരു ഓൾ-ഇൻ-വൺ 3-ആക്സിസ് മോഷൻ ട്രാക്കിംഗ് മൊഡ്യൂളാണ്. ക്വാഡ്കോപ്റ്ററുകളും മറ്റ് ആളില്ലാ വിമാനങ്ങളും (UAV) പോലുള്ള റോബോട്ടിക് പ്രോജക്റ്റുകളിൽ ഇത് ധാരാളം ഉപയോഗിക്കുന്നു, കാരണം ഇതിന് ഓറിയന്റേഷനും ചലനവും കൃത്യമായി അളക്കാനും ട്രാക്കുചെയ്യാനും കഴിയും. നാവിഗേഷൻ, ഗെയിമിംഗ്, വെർച്വൽ റിയാലിറ്റി തുടങ്ങിയ മറ്റ് ആപ്ലിക്കേഷനുകളിലും ഇത് ഉപയോഗിക്കുന്നു.
ഹാർഡ്വെയർ ഘടകങ്ങൾ
Arduino ഉപയോഗിച്ച് GY-87 IMU MPU6050 HMC5883L BMP085 മൊഡ്യൂൾ ഇന്റർഫേസ് ചെയ്യുന്നതിന് നിങ്ങൾക്ക് ഇനിപ്പറയുന്ന ഹാർഡ്വെയർ ആവശ്യമാണ്.
ഘടകങ്ങൾ | മൂല്യം | Qty |
Arduino UNO | – | 1 |
Mpu6050 സെൻസർ മൊഡ്യൂൾ | GY-87 | 1 |
ബ്രെഡ്ബോർഡ് | – | 1 |
ജമ്പർ വയറുകൾ | – | 1 |
ആർഡ്വിനോയ്ക്കൊപ്പം GY-87
ഇപ്പോൾ നിങ്ങൾ GY-87 മനസ്സിലാക്കി, Arduino-മായി ഇന്റർഫേസ് ചെയ്യാനുള്ള സമയമാണിത്. അത് ചെയ്യുന്നതിന്, ഇപ്പോൾ പിന്തുടരുക നിങ്ങൾ GY-87 മനസ്സിലാക്കി, Arduino-മായി ഇന്റർഫേസ് ചെയ്യേണ്ട സമയമാണിത്. അത് ചെയ്യുന്നതിന്, പിന്തുടരുക
സ്കീമാറ്റിക്
താഴെ നൽകിയിരിക്കുന്ന സർക്യൂട്ട് ഡയഗ്രം അനുസരിച്ച് കണക്ഷനുകൾ ഉണ്ടാക്കുക
GY-87 IMU MPU6050 HMC5883L BMP085 Arduinoവയറിംഗ് / കണക്ഷനുകൾ
ആർഡ്വിനോ | MPU6050 സെൻസർ |
5V | വി.സി.സി |
ജിഎൻഡി | ജിഎൻഡി |
A4 | എസ്.ഡി.എ |
A5 | എസ്.സി.എ |
Arduino IDE ഇൻസ്റ്റാൾ ചെയ്യുന്നു
ആദ്യം, നിങ്ങൾ അതിന്റെ ഔദ്യോഗികത്തിൽ നിന്ന് Arduino IDE സോഫ്റ്റ്വെയർ ഇൻസ്റ്റാൾ ചെയ്യണം webസൈറ്റ് Arduino. "Arduino IDE എങ്ങനെ ഇൻസ്റ്റാൾ ചെയ്യാം" എന്നതിനെക്കുറിച്ചുള്ള ലളിതമായ ഒരു ഘട്ടം ഘട്ടമായുള്ള ഗൈഡ് ഇതാ.
ലൈബ്രറികൾ ഇൻസ്റ്റാൾ ചെയ്യുന്നു
നിങ്ങൾ കോഡ് അപ്ലോഡ് ചെയ്യാൻ തുടങ്ങുന്നതിനുമുമ്പ്, /പ്രോഗ്രാമിൽ ഇനിപ്പറയുന്ന ലൈബ്രറികൾ ഡൗൺലോഡ് ചെയ്ത് അൺസിപ്പ് ചെയ്യുക FileArduino ബോർഡിനൊപ്പം സെൻസർ ഉപയോഗിക്കുന്നതിന് s (x86)/Arduino/ലൈബ്രറികൾ (സ്ഥിരസ്ഥിതി). "Arduino IDE-ൽ ലൈബ്രറികൾ എങ്ങനെ ചേർക്കാം" എന്നതിനെക്കുറിച്ചുള്ള ലളിതമായ ഒരു ഘട്ടം ഘട്ടമായുള്ള ഗൈഡ് ഇതാ.
- Mpu6050
- അഡാഫ്രൂട്ട്_BMP085
- HMC5883L_Simple
കോഡ്
ഇനി താഴെ പറയുന്ന കോഡ് കോപ്പി ചെയ്ത് Arduino IDE Software-ലേക്ക് അപ്ലോഡ് ചെയ്യുക.
#“I2Cdev.h” ഉൾപ്പെടുത്തുക #“MPU6050.h” ഉൾപ്പെടുത്തുക #ഉൾപ്പെടുത്തുക #ഉൾപ്പെടുന്നു MPU085 accelgyro; Adafruit_BMP5883 bmp; HMC6050L_ലളിതമായ കോമ്പസ്; int085_t കോടാലി, ay, az; int5883_t gx, gy, gz; #നിർവചിക്കുക LED_PIN 16 bool blinkState = false; അസാധുവായ സജ്ജീകരണം () {Serial.begin(16); Wire.begin(); // ഉപകരണങ്ങൾ ആരംഭിക്കുക Serial.println (“I13C ഉപകരണങ്ങൾ ആരംഭിക്കുന്നു…”); // എങ്കിൽ bmp9600 ആരംഭിക്കുക (!bmp.begin()) { Serial.println("ഒരു സാധുവായ BMP2 സെൻസർ കണ്ടെത്താൻ കഴിഞ്ഞില്ല, പരിശോധിക്കുക (!bmp.begin()) { Serial.println("ഒരു സാധുവായ BMP085 സെൻസർ കണ്ടെത്താൻ കഴിഞ്ഞില്ല, Serial.println പരിശോധിക്കുക 085, 'ഇ'); Compass.SetSampലിംഗ് മോഡ്(COMPASS_SINGLE);
Compass.SetScale(COMPASS_SCALE_130);
Compass.SetOrientation(COMPASS_HORIZONTAL_X_NORTH); // ആക്റ്റിവിറ്റി പിൻമോഡ് പരിശോധിക്കുന്നതിനായി Arduino LED കോൺഫിഗർ ചെയ്യുക (LED_PIN, OUTPUT); } ശൂന്യമായ ലൂപ്പ്() {
Serial.print("താപനില = "); Serial.print(bmp.readTemperature());
Serial.println(" *C"); Serial.print("മർദ്ദം = ");
Serial.print(bmp.readPressure()); Serial.println("പാ"); // 'സ്റ്റാൻഡേർഡ്' ബാരോമെട്രിക് അനുമാനിച്ച് ഉയരം കണക്കാക്കുക // 1013.25 മില്ലിബാറിന്റെ മർദ്ദം = 101325 Pascal Serial.print(“Altitude = “); Serial.print(bmp.readAltitude()); Serial.println("മീറ്റർ"); Serial.print("സീലവലിലെ മർദ്ദം (കണക്കാക്കിയത്) = ");
Serial.print(bmp.readSealevelPressure()); Serial.println("പാ");
Serial.print(“യഥാർത്ഥ ഉയരം = “); Serial.print(bmp.readAltitude(101500));
Serial.println("മീറ്ററുകൾ"); // accelgyro.getMotion6 (&ax, &ay, &az, &gx, &gy, &gz) ഉപകരണത്തിൽ നിന്ന് റോ ആക്സൽ/ഗൈറോ അളവുകൾ വായിക്കുക; // ഡിസ്പ്ലേ ടാബ്-വേർതിരിക്കപ്പെട്ട accel/gyro x/y/z മൂല്യങ്ങൾ Serial.print(“a/g:\t”); Serial.print(ax);
Serial.print(“\t”); Serial.print(ay); Serial.print(“\t”); Serial.print(az);
Serial.print(“\t”); Serial.print(gx); Serial.print(“\t”); Serial.print(gy);
Serial.print(“\t”); Serial.println(gz); ഫ്ലോട്ട് തലക്കെട്ട് =
Compass.GetHeadingDegrees(); Serial.print(“തലക്കെട്ട്: \t”); Serial.println( തലക്കെട്ട് ); // ബ്ലിങ്ക് എൽഇഡി പ്രവർത്തനത്തെ സൂചിപ്പിക്കാൻ ബ്ലിങ്ക്സ്റ്റേറ്റ് = !blinkState;
ഡിജിറ്റൽ റൈറ്റ് (LED_PIN, blinkState); കാലതാമസം (500); }
നമുക്ക് ഇത് പരീക്ഷിക്കാം
നിങ്ങൾ കോഡ് അപ്ലോഡ് ചെയ്തുകഴിഞ്ഞാൽ, സർക്യൂട്ട് പരിശോധിക്കാനുള്ള സമയമാണിത്! Arduino പ്രോഗ്രാമിലെ കോഡ് അവരുടെ ലൈബ്രറികൾ ഉപയോഗിച്ച് സെൻസറുകളുമായി ഇന്റർഫേസ് ചെയ്യുന്നു, ഇത് സെൻസർ ഡാറ്റ വായിക്കാനും സെൻസറുകളുടെ വിവിധ കോൺഫിഗറേഷനുകൾ സജ്ജമാക്കാനും അനുവദിക്കുന്നു. തുടർന്ന് അത് സീരിയൽ പോർട്ടിലൂടെ സെൻസർ ഡാറ്റ പ്രിന്റ് ചെയ്യുന്നു. സർക്യൂട്ട് എന്തെങ്കിലും ചെയ്യുന്നുണ്ടെന്ന് കാണിക്കാൻ എൽഇഡി ഉപയോഗിക്കുന്നു. ഇതിനർത്ഥം ലൂപ്പ് ഫംഗ്ഷൻ പ്രവർത്തിപ്പിക്കുമ്പോഴെല്ലാം എൽഇഡി മിന്നിമറയുന്നു, ഇത് കോഡ് സെൻസർ മൂല്യങ്ങൾ സജീവമായി വായിക്കുന്നുവെന്ന് സൂചിപ്പിക്കുന്നു.
പ്രവർത്തന വിശദീകരണം
സർക്യൂട്ടിന്റെ പ്രവർത്തനത്തെ അടിസ്ഥാനമാക്കിയുള്ള പ്രധാന സംഗതിയാണ് കോഡ്. അതിനാൽ, നമുക്ക് കോഡ് മനസ്സിലാക്കാം :.
- ആദ്യം, സെൻസറുകളുമായി ഇന്റർഫേസ് ചെയ്യുന്നതിനുള്ള നിരവധി ലൈബ്രറികൾ ഇതിൽ ഉൾപ്പെടുന്നു:
- "I2Cdev.h", "MPU6050.h" എന്നിവ MPU6050 6-ആക്സിസ് ആക്സിലറോമീറ്റർ/ഗൈറോസ്കോപ്പ് സെൻസറിനുള്ള ലൈബ്രറികളാണ്.
- BMP085 ബാരോമെട്രിക് പ്രഷർ സെൻസറിനുള്ള ഒരു ലൈബ്രറിയാണ് "Adafruit_BMP085.h".
- "HMC5883L_Simple.h" എന്നത് HMC5883L മാഗ്നെറ്റോമീറ്റർ സെൻസറിനുള്ള ഒരു ലൈബ്രറിയാണ്.
- തുടർന്ന് അത് മൂന്ന് സെൻസറുകൾക്കായി ആഗോള ഒബ്ജക്റ്റുകൾ സൃഷ്ടിക്കുന്നു: MPU6050 accelgyro, Adafruit_BMP085 bmp, HMC5883L_Simple Compass.
- അടുത്തതായി, MPU6050-ന്റെ ആക്സിലറോമീറ്ററിനും HMC5883L-ന്റെ മാഗ്നെറ്റോമീറ്ററിനും വേണ്ടിയുള്ള ax, ay, az പോലുള്ള സെൻസർ മൂല്യങ്ങൾ സംഭരിക്കാൻ ചില വേരിയബിളുകൾ ഇത് നിർവ്വചിക്കുന്നു. കൂടാതെ ഇത് LED_PIN സ്ഥിരാങ്കവും ബ്ലിങ്ക്സ്റ്റേറ്റ് വേരിയബിളും നിർവചിക്കുന്നു.
- സെറ്റപ്പ്() ഫംഗ്ഷൻ ഒരു സീരിയൽ കമ്മ്യൂണിക്കേഷൻ ആരംഭിക്കുകയും I2C ആശയവിനിമയം ആരംഭിക്കുകയും ചെയ്യുന്നു. തുടർന്ന് അത് മൂന്ന് സെൻസറുകൾ സമാരംഭിക്കുന്നു:
- BMP085 സെൻസർ ആരംഭിക്കുന്നത് () രീതി വിളിക്കുന്നതിലൂടെയാണ്. സെൻസർ കണ്ടെത്താനായില്ലെന്ന് സൂചിപ്പിക്കുന്ന ഇത് തെറ്റായി നൽകുകയാണെങ്കിൽ, പ്രോഗ്രാം അനന്തമായ ലൂപ്പിൽ പ്രവേശിച്ച് സീരിയൽ പോർട്ടിൽ ഒരു പിശക് സന്ദേശം പ്രിന്റ് ചെയ്യുന്നു.
- MPU6050 സെൻസർ ആരംഭിക്കുന്നത് ഇനീഷ്യലൈസ്() രീതി വിളിച്ച് അത് ശരിയായി പ്രവർത്തിക്കുന്നുണ്ടോ എന്ന് പരിശോധിച്ചാണ്. ഇത് MPU2-നായി I6050C ബൈപാസ് പ്രവർത്തനക്ഷമമാക്കി.
- HMC5883L സെൻസർ, SetDeclination, SetS പോലെയുള്ള ചില ഫംഗ്ഷനുകൾ വിളിച്ച് ആരംഭിക്കുന്നുampസെൻസറിനായി വ്യത്യസ്ത കോൺഫിഗറേഷനുകൾ ക്രമീകരിക്കുന്നതിന് lingMode, SetScale, SetOrientation എന്നിവ.
- ലൂപ്പ്() ഫംഗ്ഷനിൽ, കോഡ് മൂന്ന് സെൻസറുകളിൽ നിന്നുള്ള ഡാറ്റ വായിക്കുകയും സീരിയൽ പോർട്ടിലൂടെ പ്രിന്റ് ചെയ്യുകയും ചെയ്യുന്നു:
- സെൻസറിൽ നിന്ന് സമുദ്രനിരപ്പിലെ താപനില, മർദ്ദം, ഉയരം, മർദ്ദം എന്നിവ ഇത് വായിക്കുന്നു.
- ഇത് MPU6050 സെൻസറിൽ നിന്നുള്ള അസംസ്കൃത ആക്സിലറേഷനും ഗൈറോസ്കോപ്പ് അളവുകളും വായിക്കുന്നു.
- ഇത് HMC5883L സെൻസറിൽ നിന്നുള്ള തലക്കെട്ട് വായിക്കുന്നു, സെൻസർ ചൂണ്ടിക്കാണിക്കുന്ന ദിശയും കാന്തിക വടക്ക് കിടക്കുന്ന ദിശയും തമ്മിലുള്ള കോണാണിത്.
- അവസാനമായി, ഇത് പ്രവർത്തനത്തെ സൂചിപ്പിക്കാൻ LED മിന്നുകയും സെൻസറുകൾ വീണ്ടും വായിക്കുന്നതിന് മുമ്പ് ഒരു നിമിഷം കാത്തിരിക്കുകയും ചെയ്യുന്നു.
പ്രമാണങ്ങൾ / വിഭവങ്ങൾ
![]() |
ARDUINO GY87 സംയോജിത സെൻസർ ടെസ്റ്റ് സ്കെച്ച് [pdf] ഉപയോക്തൃ മാനുവൽ GY87 കമ്പൈൻഡ് സെൻസർ ടെസ്റ്റ് സ്കെച്ച്, GY87, കമ്പൈൻഡ് സെൻസർ ടെസ്റ്റ് സ്കെച്ച്, സെൻസർ ടെസ്റ്റ് സ്കെച്ച്, ടെസ്റ്റ് സ്കെച്ച് |