АРДУИНО-лгоо

ARDUINO GY87 Нақшаи санҷиши омехтаи сенсор

ARDUINO-GY87-Sensor-Sketch-маҳсулоти омехта

Муқаддима

Агар шумо як созандаи ҳавас ё дӯстдори робототехника бошед, шумо бо ин модули ночиз, вале пурқувват дучор шудаед Агар шумо як созандаи ҳавас ва ё дӯстдори робототехника бошед, шумо бо ин модули хурд, вале пурқуввати BMP085 барометр дучор шудаед. Модули GY-87 IMU як роҳи олии илова кардани ҳисси ҳаракат ба лоиҳаҳои шумост, ба монанди роботи худбаробаркунӣ ё квадрокоптер.
Аммо пеш аз он ки шумо ба озмоиш бо модули GY-87 IMU оғоз кунед, шумо бояд донед, ки чӣ гуна онро бо тахтаи Arduino-и худ пайваст кунед. Дар он ҷо ин блог ворид мешавад! Дар параграфҳои зерин мо асосҳои модули GY-87 IMU, чӣ гуна танзим кардани он ва чӣ гуна навиштани рамзи Arduino-ро барои хондани маълумоти сенсор баррасӣ хоҳем кард. Мо инчунин баъзе маслиҳатҳо ва захираҳоро барои ҳалли мушкилоти умумӣ пешниҳод хоҳем кард.
Пас, агар шумо барои оғоз кардан омода бошед, биёед ворид шавем ва дар бораи интерфейси модули GY-87 IMU бо Arduino омӯзем!

GY-87 IMU MPU6050 чист

Модулҳои воҳиди ченкунии инерсиалӣ (IMU) ба монанди GY-87 бисёр сенсорҳоро дар як бастаи ягона муттаҳид мекунанд, ба монанди акселерометр/гироскоп MPU6050, магнитометри HMC5883L ва сенсори фишори барометрии BMP085. Аз ин рӯ, GY-87 IMU MPU6050 як модули пайгирии ҳаракати 9-меҳвар аст, ки гироскопи 3-меҳвар, акселерометри 3-меҳвар, магнитометри 3-меҳвар ва протсессори рақамии ҳаракатро муттаҳид мекунад. Он дар лоиҳаҳои роботсозӣ, ба монанди квадрокоптер ва дигар мошинҳои бесарнишин (UAVs) зиёд истифода мешавад, зеро он метавонад самт ва ҳаракатро дақиқ андоза ва пайгирӣ кунад. Он инчунин дар дигар барномаҳо, аз қабили паймоиш, бозӣ ва воқеияти виртуалӣ истифода мешавад.

Қисмҳои сахтафзор

Барои интерфейси модули GY-87 IMU MPU6050 HMC5883L BMP085 бо Arduino ба шумо таҷҳизоти зерин лозим мешавад.

Компонентхо Арзиш Миқдори
Arduino UNO 1
MPU 6050 Модули сенсор ГЙ-87 1
Панели нон 1
Симҳои Jumper 1

GY-87 бо Arduino 

Акнун, ки шумо GY-87-ро фаҳмидед, вақти он расидааст, ки бо Arduino интерфейс кунед. Барои ин, пайравӣ кунед Акнун, ки шумо GY-87-ро фаҳмидед, вақти он расидааст, ки бо Arduino интерфейс кунед. Барои ин, пайравӣ кунед

Нақшаи

Мувофиқи схемаи схемаи дар поён овардашуда пайвастҳоро созед

GY-87 IMU MPU6050 HMC5883L BMP085 ArduinoARDUINO-GY87-Setch-санҷиш-санҷиш-санҷиш 1Ноқилҳо / Пайвастшавӣ

Arduino Сенсори MPU6050
5V VCC
GND GND
A4 SDA
A5 SCA

Насб кардани Arduino IDE 

Аввалан, шумо бояд нармафзори Arduino IDE-ро аз расмии он насб кунед webсайти Arduino. Ин аст дастури оддии қадам ба қадам дар бораи "Чӣ тавр насб кардани Arduino IDE."

Насб кардани китобхонаҳо 

Пеш аз оғози боркунии код, китобхонаҳои зеринро дар /Program зеркашӣ кунед ва кушоед Files (x86)/Arduino/Libraries (пешфарз) барои истифодаи сенсор бо тахтаи Arduino. Ин аст дастури оддии қадам ба қадам дар бораи "Чӣ тавр илова кардани китобхонаҳо дар Arduino IDE."

  • MPU 6050
  • Adafruit_BMP085
  • HMC5883L_Оддӣ

Кодекс 

Акнун рамзи зеринро нусхабардорӣ кунед ва онро ба Arduino IDE Software бор кунед.

#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 = бардурӯғ; void setup() { Serial.begin(16); Wire.begin(); // дастгоҳҳоро оғоз кунед Serial.println (“Оғоз кардани дастгоҳҳои I13C…”); // initialize bmp9600 if (!bmp.begin()) { Serial.println("Сенсори дурусти BMP2 ёфт нашуд, санҷед (!bmp.begin()) { Serial.println("Сенсори дурусти BMP085 ёфт нашуд, санҷед Serial.println(accelgyro.testConnection() ? "Пайваст бомуваффақияти MPU085": "Пайвастшавии MPU085 ноком шуд"); 6050, 'E'); Compass.SetSamplingMode (COMPASS_SINGLE);
Compass.SetScale(COMPASS_SCALE_130);
Compass.SetOrientation(COMPASS_HORIZONTAL_X_NORTH); // танзим кардани Arduino LED барои санҷиши фаъолияти pinMode (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("метр"); // ченакҳои хоми 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-меҳвари акселерометр/сенсори гироскоп мебошанд
  • "Adafruit_BMP085.h" китобхона барои сенсори фишори барометрии BMP085 мебошад.
  • "HMC5883L_Simple.h" китобхона барои сенсори магнитометрии HMC5883L мебошад.
  • Сипас он барои се сенсор объектҳои глобалиро эҷод мекунад: MPU6050 accelgyro, Adafruit_BMP085 bmp ва HMC5883L_Simple Compass.
  • Баъдан, он баъзе тағирёбандаҳоро барои нигоҳ доштани арзишҳои сенсорӣ, ба монанди ax, ay ва az барои акселерометри MPU6050 ва ба сӯи магнитометри HMC5883L муайян мекунад. Ва он як доимии LED_PIN ва тағирёбандаи blinkState -ро муайян мекунад.
  • Функсияи setup() иртиботи пайдарпайро оғоз мекунад ва иртиботи I2C-ро оғоз мекунад. Сипас он се сенсорро оғоз мекунад:
  • Сенсори BMP085 бо даъват кардани усули start() оғоз карда мешавад. Агар ин бардурӯғ баргардонад, ки нишон медиҳад, ки сенсор ёфт нашуд, барнома ба ҳалқаи беохир ворид мешавад ва паёми хатогиро дар порти силсилавӣ чоп мекунад.
  • Сенсори MPU6050 тавассути занг задан ба усули initialize() ва санҷидани он, ки дуруст кор мекунад, оғоз карда мешавад. Ва он гузариши I2C-ро барои MPU6050 фаъол кардааст.
  • Сенсори HMC5883L бо даъват кардани баъзе функсияҳо, ба монанди SetDeclination, SetS оғоз карда мешавад.amplingMode, SetScale ва SetOrientation, барои танзими конфигуратсияҳои гуногун барои сенсор.
  • Дар функсияи loop (), код маълумотро аз се сенсор мехонад ва онро тавассути порти силсилавӣ чоп мекунад:
  • Он аз сенсор ҳарорат, фишор, баландӣ ва фишорро дар сатҳи баҳр мехонад.
  • Он ченакҳои шитоб ва гироскопи хомро аз сенсори MPU6050 мехонад.
  • Он сарлавҳаро аз сенсори HMC5883L мехонад, ки кунҷи байни самте, ки сенсор ба он ишора мекунад ва самте, ки шимоли магнитӣ дар он ҷойгир аст.
  • Дар ниҳоят, он барои нишон додани фаъолият LED-ро мижа мекунад ва пеш аз хондани сенсорҳо як лаҳза интизор мешавад.

Ҳуҷҷатҳо / Сарчашмаҳо

ARDUINO GY87 Нақшаи санҷиши омехтаи сенсор [pdf] Дастури корбар
Нақшаи озмоишии омехтаи сенсори GY87, GY87, эскизи озмоишии омехтаи сенсор, эскизи санҷиши сенсор, эскизи санҷиши

Иқтибосҳо

Назари худро гузоред

Суроғаи почтаи электронии шумо нашр намешавад. Майдонҳои зарурӣ қайд карда шудаанд *