ARDUINO-lgoo

ARDUINO GY87 គំនូរព្រាងសាកល្បងឧបករណ៍ចាប់សញ្ញារួមបញ្ចូលគ្នា

ARDUINO-GY87-រួមបញ្ចូលគ្នា-ឧបករណ៍ចាប់សញ្ញា-សាកល្បង-គំនូរព្រាង-ផលិតផល

សេចក្តីផ្តើម

ប្រសិនបើអ្នកជាអ្នកផលិតចូលចិត្ត ឬជាអ្នកចូលចិត្តមនុស្សយន្ត អ្នកបានឆ្លងកាត់ម៉ូឌុលដ៏តូច ប៉ុន្តែមានថាមពលនេះ ប្រសិនបើអ្នកជាអ្នកផលិតចូលចិត្ត ឬជាអ្នកចូលចិត្តមនុស្សយន្ត អ្នកបានឆ្លងកាត់ម៉ូឌុលដ៏តូចមួយនេះ ប៉ុន្តែមានអនុភាព BMP085 barometer ។ ម៉ូឌុល GY-87 IMU គឺជាមធ្យោបាយដ៏ល្អមួយដើម្បីបន្ថែមការចាប់ចលនាទៅក្នុងគម្រោងរបស់អ្នក ដូចជាមនុស្សយន្តដែលមានតុល្យភាពដោយខ្លួនឯង ឬម៉ាស៊ីន quadcopter ជាដើម។
ប៉ុន្តែមុនពេលអ្នកអាចចាប់ផ្តើមពិសោធន៍ជាមួយម៉ូឌុល GY-87 IMU អ្នកត្រូវដឹងពីរបៀបធ្វើអន្តរកម្មវាជាមួយបន្ទះ Arduino របស់អ្នក។ នោះហើយជាកន្លែងដែលប្លុកនេះចូលមក! នៅក្នុងកថាខណ្ឌខាងក្រោម យើងនឹងរៀបរាប់អំពីមូលដ្ឋានគ្រឹះនៃម៉ូឌុល GY-87 IMU របៀបកំណត់វា និងរបៀបសរសេរកូដ Arduino ដើម្បីអានទិន្នន័យឧបករណ៍ចាប់សញ្ញា។ យើងក៏នឹងផ្តល់នូវគន្លឹះ និងធនធានមួយចំនួនសម្រាប់ការដោះស្រាយបញ្ហាទូទៅផងដែរ។
ដូច្នេះ ប្រសិនបើអ្នកត្រៀមខ្លួនរួចជាស្រេចដើម្បីចាប់ផ្តើម សូមចូលមើល និងស្វែងយល់អំពីការភ្ជាប់ម៉ូឌុល GY-87 IMU ជាមួយ Arduino!

តើអ្វីទៅជា GY-87 IMU MPU6050

ម៉ូឌុលវាស់និចលភាព (IMU) ដូចជា GY-87 រួមបញ្ចូលគ្នានូវឧបករណ៍ចាប់សញ្ញាជាច្រើនទៅក្នុងកញ្ចប់តែមួយ ដូចជា MPU6050 accelerometer/gyroscope, ម៉ាញេទិក HMC5883L និងឧបករណ៍ចាប់សញ្ញាសម្ពាធបារ៉ូម៉ែត្រ BMP085 ។ ដូច្នេះ GY-87 IMU MPU6050 គឺជាម៉ូឌុលតាមដានចលនា 9-axis ដែលរួមបញ្ចូលគ្នានូវ gyroscope 3-axis, 3-axis accelerometer, 3-axis magnetometer និង digital motion processor។ វាត្រូវបានគេប្រើច្រើននៅក្នុងគម្រោងមនុស្សយន្ត ដូចជា quadcopters និងយានជំនិះគ្មានមនុស្សបើកផ្សេងទៀត (UAVs) ព្រោះវាអាចវាស់វែង និងតាមដានការតំរង់ទិស និងចលនាបានយ៉ាងត្រឹមត្រូវ។ វាក៏ត្រូវបានប្រើនៅក្នុងកម្មវិធីផ្សេងទៀតដូចជា ការរុករក ការលេងហ្គេម និងការពិតនិម្មិត។

សមាសធាតុផ្នែករឹង

អ្នកនឹងត្រូវការផ្នែករឹងខាងក្រោមសម្រាប់ Interfacing GY-87 IMU MPU6050 HMC5883L BMP085 Module ជាមួយ Arduino ។

សមាសធាតុ តម្លៃ ចំនួន
Arduino UNO 1
MPU ៦០០០ ម៉ូឌុលឧបករណ៍ចាប់សញ្ញា GY-87 1
ក្តារនំប៉័ង 1
Jumper Wires 1

GY-87 ជាមួយ Arduino 

ឥឡូវនេះអ្នកបានយល់ពី GY-87 ហើយវាដល់ពេលដែលត្រូវទាក់ទងជាមួយ Arduino ។ ដើម្បីធ្វើដូច្នេះ សូមធ្វើតាមឥឡូវនេះ ដែលអ្នកបានយល់ពី GY-87 វាដល់ពេលដែលត្រូវភ្ជាប់ជាមួយ Arduino ។ ដើម្បីធ្វើដូច្នេះ សូមធ្វើតាម

គ្រោងការណ៍

ធ្វើការតភ្ជាប់តាមដ្យាក្រាមសៀគ្វីដែលបានផ្តល់ឱ្យខាងក្រោម

GY-87 IMU MPU6050 HMC5883L BMP085 ArduinoARDUINO-GY87-Combined-Sensor-Test-Sketch-fig 1ខ្សែ / ការតភ្ជាប់

អាឌូណូ ឧបករណ៍ចាប់សញ្ញា MPU6050
5V វី.ស៊ី.ស៊ី
GND GND
A4 អេសឌីអេ
A5 SCA

ការដំឡើង Arduino IDE 

ដំបូងអ្នកត្រូវដំឡើងកម្មវិធី Arduino IDE ពីផ្លូវការរបស់វា។ webគេហទំព័រ Arduino ។ នេះគឺជាការណែនាំជាជំហាន ៗ សាមញ្ញមួយនៅលើ "របៀបតំឡើង Arduino IDE" ។

ការដំឡើងបណ្ណាល័យ 

មុនពេលអ្នកចាប់ផ្តើមផ្ទុកឡើងកូដ សូមទាញយក និងពន្លាបណ្ណាល័យខាងក្រោមនៅ /កម្មវិធី Files (x86)/Arduino/Libraries (លំនាំដើម) ដើម្បីប្រើឧបករណ៍ចាប់សញ្ញាជាមួយបន្ទះ Arduino ។ នេះគឺជាការណែនាំជាជំហាន ៗ សាមញ្ញមួយស្តីពី "របៀបបន្ថែមបណ្ណាល័យនៅក្នុង Arduino IDE" ។

  • MPU ៦០០០
  • Adafruit_BMP085
  • HMC5883L_សាមញ្ញ

កូដ 

ឥឡូវចម្លងកូដខាងក្រោម ហើយបង្ហោះវាទៅកម្មវិធី Arduino IDE ។

#include “I2Cdev.h” #include “MPU6050.h” #include # រួមបញ្ចូល MPU085 accelgyro; Adafruit_BMP5883 bmp; HMC6050L_ត្រីវិស័យសាមញ្ញ; int085_t ax, ay, az; int5883_t gx, gy, gz; #define LED_PIN 16 bool blinkState = មិនពិត; ការដំឡើងចាត់ទុកជាមោឃៈ () { Serial.begin(16); Wire.begin(); // ចាប់ផ្តើមឧបករណ៍ Serial.println(“ចាប់ផ្តើមឧបករណ៍ I13C…”); // ចាប់ផ្តើម bmp9600 ប្រសិនបើ (!bmp.begin()) { Serial.println(“មិនអាចរកឃើញឧបករណ៍ចាប់សញ្ញា BMP2 ត្រឹមត្រូវទេ សូមពិនិត្យមើល (!bmp.begin()) { Serial.println(“មិនអាចរកឃើញឧបករណ៍ចាប់សញ្ញា BMP085 ត្រឹមត្រូវទេ, ពិនិត្យមើល Serial.println(accelgyro.testConnection() ? "ការភ្ជាប់ MPU085 ជោគជ័យ" : "ការតភ្ជាប់ MPU085 បានបរាជ័យ"); accelgyro.setI6050CBypassEnabled(ពិត); 6050, 'E');amplingMode(COMPASS_SINGLE);
Compass.SetScale(COMPASS_SCALE_130);
Compass.SetOrientation(COMPASS_HORIZONTAL_X_NORTH); // កំណត់រចនាសម្ព័ន្ធ Arduino LED សម្រាប់ពិនិត្យមើលសកម្មភាព pinMode(LED_PIN, OUTPUT); } void loop() {
Serial.print(“សីតុណ្ហភាព = “); Serial.print(bmp.readTemperature());
Serial.println(“*C”); Serial.print(“សម្ពាធ = “);
Serial.print(bmp.readPressure()); Serial.println("ប៉ា"); // គណនារយៈកំពស់សន្មត់ថា 'ស្តង់ដារ' barometric // សម្ពាធ 1013.25 millibar = 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("ម៉ែត្រ"); // អានការវាស់វែង accel/gyro ឆៅពីឧបករណ៍ accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz); // បង្ហាញតម្លៃបំបែកដោយផ្ទាំង accel/gyro x/y/z Serial.print(“a/g:\t”); Serial.print(អ័ក្ស);
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(ក្បាល); // ព្រិចភ្នែក LED ដើម្បីបង្ហាញពីសកម្មភាព blinkState = !blinkState;
digitalWrite(LED_PIN, blinkState); ការពន្យាពេល (500); }

តោះសាកល្បងវា។ 

ពេល​បង្ហោះ​កូដ​ហើយ ដល់​ពេល​សាកល្បង​សៀគ្វី​ហើយ! កូដនៅក្នុងកម្មវិធី Arduino ភ្ជាប់ជាមួយឧបករណ៍ចាប់សញ្ញាដោយប្រើបណ្ណាល័យរបស់ពួកគេ ដែលអនុញ្ញាតឱ្យវាអានទិន្នន័យឧបករណ៍ចាប់សញ្ញា និងកំណត់ការកំណត់រចនាសម្ព័ន្ធផ្សេងៗនៃឧបករណ៍ចាប់សញ្ញា។ បន្ទាប់មកវាបោះពុម្ពទិន្នន័យឧបករណ៍ចាប់សញ្ញានៅលើច្រកសៀរៀល។ LED ត្រូវបានប្រើដើម្បីបង្ហាញថាសៀគ្វីកំពុងធ្វើអ្វីមួយ។ នេះមានន័យថា LED ភ្លឹបភ្លែតៗរាល់ពេលដែលមុខងាររង្វិលជុំត្រូវបានដំណើរការ ដែលបង្ហាញថាលេខកូដកំពុងអានតម្លៃឧបករណ៍ចាប់សញ្ញាយ៉ាងសកម្ម។

ការពន្យល់ការងារ 

កូដគឺជារឿងសំខាន់ដែលដំណើរការរបស់សៀគ្វីមានមូលដ្ឋាន។ ដូច្នេះ​សូម​យើង​យល់​អំពី​កូដ​៖ .

  • ជាដំបូង វារួមបញ្ចូលបណ្ណាល័យជាច្រើន ដើម្បីភ្ជាប់ជាមួយឧបករណ៍ចាប់សញ្ញា៖
  • “I2Cdev.h” និង “MPU6050.h” គឺ​ជា​បណ្ណាល័យ​សម្រាប់ MPU6050 6-axis accelerometer/gyroscope sensor
  • “Adafruit_BMP085.h” គឺជាបណ្ណាល័យសម្រាប់ឧបករណ៍ចាប់សញ្ញាសម្ពាធបារ៉ូម៉ែត្រ BMP085 ។
  • “HMC5883L_Simple.h” គឺជាបណ្ណាល័យសម្រាប់ឧបករណ៍ចាប់សញ្ញាមេដែក HMC5883L ។
  • បន្ទាប់មកវាបង្កើតវត្ថុសកលសម្រាប់ឧបករណ៍ចាប់សញ្ញាទាំងបី៖ MPU6050 accelgyro, Adafruit_BMP085 bmp និង HMC5883L_Simple Compass ។
  • បន្ទាប់មក វាកំណត់អថេរមួយចំនួនដើម្បីរក្សាទុកតម្លៃរបស់ឧបករណ៍ចាប់សញ្ញា ដូចជា ax, ay និង az សម្រាប់ accelerometer របស់ MPU6050 និងឆ្ពោះទៅរកមេដែកនៃ HMC5883L ។ ហើយវាកំណត់អថេរ LED_PIN និងអថេរ blinkState ។
  • មុខងារ setup() ចាប់ផ្តើមទំនាក់ទំនងសៀរៀល ហើយចាប់ផ្តើមទំនាក់ទំនង I2C ។ បន្ទាប់មកវាចាប់ផ្តើមឧបករណ៍ចាប់សញ្ញាទាំងបី៖
  • ឧបករណ៍ចាប់សញ្ញា BMP085 ត្រូវបានចាប់ផ្តើមដោយហៅវិធីសាស្ត្រ start() ។ ប្រសិនបើវាត្រឡប់មិនពិត ដោយបង្ហាញថាមិនអាចរកឃើញឧបករណ៍ចាប់សញ្ញានោះ កម្មវិធីនឹងចូលទៅក្នុងរង្វិលជុំគ្មានកំណត់ ហើយបោះពុម្ពសារកំហុសនៅលើច្រកសៀរៀល។
  • ឧបករណ៍ចាប់សញ្ញា MPU6050 ត្រូវបានចាប់ផ្តើមដោយហៅវិធីសាស្ត្រ initialize() ហើយពិនិត្យមើលថាតើវាដំណើរការត្រឹមត្រូវឬអត់។ ហើយវាកំណត់ផ្លូវវាង I2C បានបើកសម្រាប់ MPU6050។
  • ឧបករណ៍ចាប់សញ្ញា HMC5883L ត្រូវបានចាប់ផ្តើមដោយការហៅមុខងារមួយចំនួនដូចជា SetDeclination, SetSamplingMode, SetScale, និង SetOrientation សម្រាប់កំណត់ការកំណត់ផ្សេងៗសម្រាប់ឧបករណ៍ចាប់សញ្ញា។
  • នៅក្នុងមុខងារ loop() កូដអានទិន្នន័យពីឧបករណ៍ចាប់សញ្ញាទាំងបី ហើយបោះពុម្ពវាចេញតាមច្រកសៀរៀល៖
  • វាអានសីតុណ្ហភាព សម្ពាធ កម្ពស់ និងសម្ពាធនៅកម្រិតទឹកសមុទ្រពីឧបករណ៍ចាប់សញ្ញា។
  • វាអានការបង្កើនល្បឿនឆៅ និងការវាស់វែង gyroscope ពីឧបករណ៍ចាប់សញ្ញា MPU6050។
  • វាអានក្បាលពីឧបករណ៍ចាប់សញ្ញា HMC5883L ដែលជាមុំរវាងទិសដៅដែលឧបករណ៍ចាប់សញ្ញាកំពុងចង្អុល និងទិសដៅដែលម៉ាញ៉េទិចស្ថិតនៅខាងជើង។
  • ជាចុងក្រោយ វានឹងព្រិចភ្នែក LED ដើម្បីបង្ហាញពីសកម្មភាព ហើយរង់ចាំមួយភ្លែត មុនពេលអានឧបករណ៍ចាប់សញ្ញាឡើងវិញ។

ឯកសារ/ធនធាន

ARDUINO GY87 គំនូរព្រាងសាកល្បងឧបករណ៍ចាប់សញ្ញារួមបញ្ចូលគ្នា [pdf] សៀវភៅណែនាំអ្នកប្រើប្រាស់
GY87 Combined Sensor Test Sketch, GY87, Combined Sensor Test Sketch, Sensor Test Sketch, Test Sketch

ឯកសារយោង

ទុកមតិយោបល់

អាសយដ្ឋានអ៊ីមែលរបស់អ្នកនឹងមិនត្រូវបានផ្សព្វផ្សាយទេ។ វាលដែលត្រូវការត្រូវបានសម្គាល់ *