ARDUINO-lgoo

ARDUINO GY87 kombinētā sensora testa skice

ARDUINO-GY87-Kombinētais Sensors-Test-Sketch-product

Ievads

Ja esat dedzīgs veidotājs vai robotikas entuziasts, esat saskāries ar šo mazo, bet jaudīgo moduli. Ja esat dedzīgs veidotājs vai robotikas entuziasts, jūs esat saskāries ar šo mazo, bet jaudīgo moduļa BMP085 barometru. GY-87 IMU modulis ir lielisks veids, kā pievienot jūsu projektiem kustības sensoru, piemēram, pašbalansējošu robotu vai kvadrokopteru.
Bet, pirms varat sākt eksperimentēt ar GY-87 IMU moduli, jums jāzina, kā to savienot ar savu Arduino plati. Šeit parādās šis emuārs! Nākamajos punktos mēs apskatīsim GY-87 IMU moduļa pamatus, kā to iestatīt un kā uzrakstīt Arduino kodu, lai nolasītu sensora datus. Mēs arī sniegsim dažus padomus un resursus bieži sastopamu problēmu novēršanai.
Tātad, ja esat gatavs sākt, ienirt un uzzināsim par GY-87 IMU moduļa savienošanu ar Arduino!

Kas ir GY-87 IMU MPU6050

Inerciālās mērīšanas vienības (IMU) moduļi, piemēram, GY-87, apvieno daudzus sensorus vienā komplektā, piemēram, MPU6050 akselerometru/žiroskopu, HMC5883L magnetometru un BMP085 barometriskā spiediena sensoru. Tādējādi GY-87 IMU MPU6050 ir viss vienā 9 asu kustības izsekošanas modulis, kas apvieno 3 asu žiroskopu, 3 asu akselerometru, 3 asu magnetometru un digitālo kustības procesoru. To bieži izmanto robotu projektos, piemēram, kvadrokopteros un citos bezpilota lidaparātos (UAV), jo tas var precīzi izmērīt un izsekot orientāciju un kustību. To izmanto arī citās lietojumprogrammās, piemēram, navigācijā, spēlēs un virtuālajā realitātē.

Aparatūras komponenti

Lai savienotu GY-87 IMU MPU6050 HMC5883L BMP085 moduli ar Arduino, jums būs nepieciešama šāda aparatūra.

Sastāvdaļas Vērtība Daudzums
Arduino UNO 1
MPU6050 Sensora modulis GY-87 1
Maizes dēlis 1
Džemperu vadi 1

GY-87 ar Arduino 

Tagad, kad esat sapratis GY-87, ir pienācis laiks izveidot saskarni ar Arduino. Lai to izdarītu, rīkojieties šādi. Tagad, kad esat sapratis GY-87, ir pienācis laiks izveidot saskarni ar Arduino. Lai to izdarītu, sekojiet

Shematisks

Izveidojiet savienojumus saskaņā ar tālāk norādīto shēmu

GY-87 IMU MPU6050 HMC5883L BMP085 ArduinoARDUINO-GY87-kombinētais sensors-tests-skice-1.att.Elektroinstalācija / Savienojumi

Arduino MPU6050 sensors
5V VCC
GND GND
A4 SDA
A5 SCA

Arduino IDE instalēšana 

Pirmkārt, jums ir jāinstalē Arduino IDE programmatūra no tās oficiālās webvietne Arduino. Šeit ir vienkāršs soli pa solim ceļvedis “Kā instalēt Arduino IDE”.

Bibliotēku instalēšana 

Pirms koda augšupielādes sākšanas lejupielādējiet un izpakojiet tālāk norādītās bibliotēkas vietnē /Program Files (x86)/Arduino/Bibliotēkas (noklusējums), lai izmantotu sensoru ar Arduino plati. Šeit ir vienkāršs soli pa solim ceļvedis “Kā pievienot bibliotēkas Arduino IDE”.

  • MPU6050
  • Adafruit_BMP085
  • HMC5883L_Vienkāršs

Kods 

Tagad nokopējiet šo kodu un augšupielādējiet to Arduino IDE programmatūrā.

#iekļauts “I2Cdev.h” #iekļauts “MPU6050.h” #iekļauts #iekļauts MPU085 accelgyro; Adafruit_BMP5883 bmp; HMC6050L_Vienkāršs kompass; int085_t ax, ay, az; int5883_t gx, gy, gz; #define LED_PIN 16 bool blinkState = false; void setup() { Serial.begin(16); Wire.begin(); // inicializēt ierīces Serial.println (“Inicializē I13C ierīces…”); // inicializēt bmp9600 if (!bmp.begin()) { Serial.println("Nevarēja atrast derīgu BMP2 sensoru, pārbaudiet (!bmp.begin())) { Serial.println("Nevarēja atrast derīgu BMP085 sensoru, pārbaudiet Serial.println(accelgyro.testConnection() ? "MPU085 savienojums ir veiksmīgs" : "MPU085 savienojums neizdevās"); accelgyro.setI6050CBypassEnabled(true); // iestatiet apiešanas režīmu vārtei uz hmc6050L // inicializē hmc2L, Comp. 5883, "E"); Compass.SetSamplingMode(COMPASS_SINGLE);
Compass.SetScale(COMPASS_SCALE_130);
Compass.SetOrientation(COMPASS_HORIZONTAL_X_NORTH); // konfigurēt Arduino LED darbības pārbaudei pinMode(LED_PIN, OUTPUT); } void loop() {
Serial.print("Temperatūra = "); Serial.print(bmp.readTemperature());
Serial.println(" *C"); Serial.print("Spiediens = ");
Serial.print(bmp.readPressure()); Serial.println("Pa"); // Aprēķināt augstumu, pieņemot 'standarta' barometrisko // spiedienu 1013.25 milibar = 101325 Pascal Serial.print("Augstums = "); Serial.print(bmp.readAltitude()); Serial.println(“metri”); Serial.print("Spiediens jūras līmenī (aprēķināts) = ");
Serial.print(bmp.readSealevelPressure()); Serial.println("Pa");
Serial.print("Reālais augstums = "); Serial.print(bmp.readAltitude(101500));
Serial.println("metri"); // nolasīt neapstrādātus accel/gyro mērījumus no ierīces accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz); // parādīt ar cilni atdalītas accel/gyro x/y/z vērtības 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); peldošais virziens =
Compass.GetHeadingDegrees(); Serial.print("Virsraksts: \t"); Serial.println( virsraksts ); // mirgo LED, lai norādītu aktivitāti blinkState = !blinkState;
digitalWrite(LED_PIN, blinkState); kavēšanās (500); }

Pārbaudīsim to 

Kad esat augšupielādējis kodu, ir pienācis laiks pārbaudīt ķēdi! Arduino programmas kods saskaras ar sensoriem, izmantojot to bibliotēkas, kas ļauj nolasīt sensoru datus un iestatīt dažādas sensoru konfigurācijas. Pēc tam tas izdrukā sensora datus, izmantojot seriālo portu. LED tiek izmantots, lai parādītu, ka ķēde kaut ko dara. Tas nozīmē, ka LED mirgo katru reizi, kad tiek palaista cilpas funkcija, norādot, ka kods aktīvi nolasa sensora vērtības.

Darba skaidrojums 

Kods ir galvenā lieta, uz kuras balstās ķēdes darbība. Tātad, sapratīsim kodu:.

  • Pirmkārt, tajā ir iekļautas vairākas bibliotēkas saskarnei ar sensoriem:
  • “I2Cdev.h” un “MPU6050.h” ir MPU6050 6 asu akselerometra/žiroskopa sensora bibliotēkas.
  • “Adafruit_BMP085.h” ir BMP085 barometriskā spiediena sensora bibliotēka.
  • “HMC5883L_Simple.h” ir HMC5883L magnetometra sensora bibliotēka.
  • Pēc tam tas izveido globālus objektus trim sensoriem: MPU6050 accelgyro, Adafruit_BMP085 bmp un HMC5883L_Simple Compass.
  • Tālāk tiek definēti daži mainīgie lielumi, lai saglabātu sensoru vērtības, piemēram, ax, ay un az MPU6050 akselerometram un HMC5883L magnetometram. Un tas definē LED_PIN konstanti un blinkState mainīgo.
  • Funkcija setup() sāk seriālo komunikāciju un sāk I2C saziņu. Pēc tam tas inicializē trīs sensorus:
  • Sensors BMP085 tiek inicializēts, izsaucot start() metodi. Ja tas atgriež false, norādot, ka sensoru nevarēja atrast, programma ievada bezgalīgu cilpu un izdrukā kļūdas ziņojumu pa seriālo portu.
  • Sensors MPU6050 tiek inicializēts, izsaucot inicializācijas() metodi un pārbaudot, vai tas darbojas pareizi. Un tas iestatīja I2C apvedceļu iespējotu MPU6050.
  • HMC5883L sensors tiek inicializēts, izsaucot dažas funkcijas, piemēram, SetDeclination, SetSamplingMode, SetScale un SetOrientation, lai iestatītu dažādas sensora konfigurācijas.
  • Funkcijā Loop () kods nolasa datus no trim sensoriem un izdrukā tos, izmantojot seriālo portu:
  • Tas no sensora nolasa temperatūru, spiedienu, augstumu un spiedienu jūras līmenī.
  • Tas nolasa neapstrādātus paātrinājuma un žiroskopa mērījumus no MPU6050 sensora.
  • Tas nolasa HMC5883L sensora virsrakstu, kas ir leņķis starp virzienu, kurā ir vērsts sensors, un virzienu, kurā atrodas magnētiskie ziemeļi.
  • Visbeidzot, tas mirgo gaismas diode, lai norādītu uz darbību, un brīdi pagaida, pirms atkārtoti nolasa sensorus.

Dokumenti / Resursi

ARDUINO GY87 kombinētā sensora testa skice [pdfLietotāja rokasgrāmata
GY87 kombinētā sensora pārbaudes skice, GY87, kombinētā sensora pārbaudes skice, sensora pārbaudes skice, testa skice

Atsauces

Atstājiet komentāru

Jūsu e-pasta adrese netiks publicēta. Obligātie lauki ir atzīmēti *