Სარჩევი:

მოძრაობის თვალყურის დევნება MPU-6000 და Arduino Nano გამოყენებით: 4 ნაბიჯი
მოძრაობის თვალყურის დევნება MPU-6000 და Arduino Nano გამოყენებით: 4 ნაბიჯი

ვიდეო: მოძრაობის თვალყურის დევნება MPU-6000 და Arduino Nano გამოყენებით: 4 ნაბიჯი

ვიდეო: მოძრაობის თვალყურის დევნება MPU-6000 და Arduino Nano გამოყენებით: 4 ნაბიჯი
ვიდეო: საერთაშორისო გადაზიდვების პროგრამა TFS 2024, დეკემბერი
Anonim
Image
Image

MPU-6000 არის 6-ღერძიანი მოძრაობის თვალთვალის სენსორი, რომელსაც აქვს 3-ღერძიანი ამაჩქარებელი და 3-ღერძიანი გიროსკოპი. ამ სენსორს შეუძლია ეფექტურად აკონტროლოს ობიექტის ზუსტი მდებარეობა და მდებარეობა სამგანზომილებიან სიბრტყეში. ის შეიძლება გამოყენებულ იქნას სისტემებში, რომლებიც საჭიროებენ პოზიციის ანალიზს უმაღლესი სიზუსტით.

ამ გაკვეთილში ილუსტრირებულია MPU-6000 სენსორული მოდულის ინტერფეისი არდუინო ნანოსთან. აჩქარების და ბრუნვის კუთხის მნიშვნელობების წასაკითხად, ჩვენ გამოვიყენეთ arduino nano I2c ადაპტერით. ეს I2C ადაპტერი სენსორულ მოდულთან კავშირს იოლი და საიმედო ხდის.

ნაბიჯი 1: საჭირო აპარატურა:

საჭირო აპარატურა
საჭირო აპარატურა
საჭირო აპარატურა
საჭირო აპარატურა
საჭირო აპარატურა
საჭირო აპარატურა

მასალები, რომლებიც ჩვენ გვჭირდება ჩვენი მიზნის მისაღწევად, მოიცავს შემდეგ ტექნიკურ კომპონენტებს:

1. MPU-6000

2. არდუინო ნანო

3. I2C კაბელი

4. I2C ფარი არდუინო ნანოსთვის

ნაბიჯი 2: აპარატურის დაკავშირება:

აპარატურის დაკავშირება
აპარატურის დაკავშირება
აპარატურის დაკავშირება
აპარატურის დაკავშირება

აპარატურის დაკავშირების განყოფილება ძირითადად განმარტავს გაყვანილობის კავშირებს სენსორსა და არდუინო ნანოს შორის. სწორი კავშირების უზრუნველყოფა არის ძირითადი აუცილებლობა ნებისმიერ სისტემაზე მუშაობისას სასურველი გამომუშავებისთვის. ამრიგად, საჭირო კავშირები შემდეგია:

MPU-6000 იმუშავებს I2C– ზე. აქ არის გაყვანილობის დიაგრამა, რომელიც აჩვენებს, თუ როგორ უნდა დააკავშიროთ სენსორის თითოეული ინტერფეისი.

ყუთის გარეშე, დაფა კონფიგურირებულია I2C ინტერფეისისთვის, ამიტომ ჩვენ გირჩევთ გამოიყენოთ ეს კავშირი, თუ სხვაგვარად ხართ აგნოსტიკოსი.

ყველაფერი რაც თქვენ გჭირდებათ არის ოთხი მავთული! მხოლოდ ოთხი კავშირია საჭირო Vcc, Gnd, SCL და SDA ქინძისთავები და ეს დაკავშირებულია I2C კაბელის დახმარებით.

ეს კავშირები ნაჩვენებია ზემოთ მოცემულ სურათებში.

ნაბიჯი 3: მოძრაობის თვალთვალის კოდი:

მოძრაობის თვალთვალის კოდი
მოძრაობის თვალთვალის კოდი

დავიწყოთ არდუინოს კოდით ახლავე.

სენსორული მოდულის arduino– ს გამოყენებისას ჩვენ ვრთავთ Wire.h ბიბლიოთეკას. "მავთულის" ბიბლიოთეკა შეიცავს ფუნქციებს, რომლებიც ხელს უწყობს სენსორსა და არდუინოს დაფას შორის i2c კომუნიკაციას.

მთელი arduino კოდი მოცემულია მომხმარებლის მოხერხებულობისთვის ქვემოთ:

#ჩართეთ

// MPU-6000 I2C მისამართი არის 0x68 (104)

#განსაზღვრეთ Addr 0x68

ბათილად დაყენება ()

{

// I2C კომუნიკაციის ინიციალიზაცია როგორც ოსტატი

Wire.begin ();

// სერიული კომუნიკაციის ინიციალიზაცია, დაყენებული baud rate = 9600

სერიული.დაწყება (9600);

// დაიწყეთ I2C გადაცემა

Wire.beginTransmission (Addr);

// შეარჩიეთ გიროსკოპის კონფიგურაციის რეგისტრი

Wire.write (0x1B);

// სრულმასშტაბიანი დიაპაზონი = 2000 dps

Wire.write (0x18);

// შეაჩერე I2C გადაცემა

Wire.endTransmission ();

// დაიწყეთ I2C გადაცემა

Wire.beginTransmission (Addr);

// აირჩიეთ აქსელერომეტრის კონფიგურაციის რეგისტრი

Wire.write (0x1C);

// მასშტაბის დიაპაზონი = +/- 16 გ

Wire.write (0x18);

// შეაჩერე I2C გადაცემა

Wire.endTransmission ();

// დაიწყეთ I2C გადაცემა

Wire.beginTransmission (Addr);

// ენერგიის მართვის რეესტრის არჩევა

Wire.write (0x6B);

// PLL xGyro მითითებით

Wire.write (0x01);

// შეაჩერე I2C გადაცემა

Wire.endTransmission ();

დაგვიანება (300);

}

ბათილი მარყუჟი ()

{

ხელმოუწერელი int მონაცემები [6];

// დაიწყეთ I2C გადაცემა

Wire.beginTransmission (Addr);

// მონაცემთა რეგისტრაციის არჩევა

Wire.write (0x3B);

// შეაჩერე I2C გადაცემა

Wire.endTransmission ();

// მოითხოვეთ მონაცემების 6 ბაიტი

მავთული. მოთხოვნა (Addr, 6);

// წაიკითხეთ მონაცემების 6 ბაიტი

if (Wire. Available () == 6)

{

მონაცემები [0] = Wire.read ();

მონაცემები [1] = Wire.read ();

მონაცემები [2] = Wire.read ();

მონაცემები [3] = Wire.read ();

მონაცემები [4] = Wire.read ();

მონაცემები [5] = Wire.read ();

}

// მონაცემების კონვერტაცია

int xAccl = მონაცემი [0] * 256 + მონაცემი [1];

int yAccl = მონაცემი [2] * 256 + მონაცემი [3];

int zAccl = მონაცემი [4] * 256 + მონაცემი [5];

// დაიწყეთ I2C გადაცემა

Wire.beginTransmission (Addr);

// მონაცემთა რეგისტრაციის არჩევა

Wire.write (0x43);

// შეაჩერე I2C გადაცემა

Wire.endTransmission ();

// მოითხოვეთ მონაცემების 6 ბაიტი

მავთული. მოთხოვნა (Addr, 6);

// წაიკითხეთ მონაცემების 6 ბაიტი

თუ (Wire. Available () == 6)

{

მონაცემები [0] = Wire.read ();

მონაცემები [1] = Wire.read ();

მონაცემები [2] = Wire.read ();

მონაცემები [3] = Wire.read ();

მონაცემები [4] = Wire.read ();

მონაცემები [5] = Wire.read ();

}

// მონაცემების კონვერტაცია

int xGyro = მონაცემი [0] * 256 + მონაცემი [1];

int yGyro = მონაცემები [2] * 256 + მონაცემები [3];

int zGyro = მონაცემი [4] * 256 + მონაცემი [5];

// სერიული მონიტორის მონაცემების გამოტანა

Serial.print ("აჩქარება X- ღერძში:");

Serial.println (xAccl);

Serial.print ("აჩქარება Y- ღერძში:");

Serial.println (yAccl);

Serial.print ("აჩქარება Z- ღერძში:");

Serial.println (zAccl);

Serial.print ("ბრუნვის X- ღერძი:");

Serial.println (xGyro);

Serial.print ("ბრუნვის Y- ღერძი:");

Serial.println (yGyro);

Serial.print ("ბრუნვის Z- ღერძი:");

Serial.println (zGyro);

დაგვიანება (500);

}

მავთულის ბიბლიოთეკაში Wire.write () და Wire.read () გამოიყენება ბრძანებების დასაწერად და სენსორის გამომავალი წაკითხვისთვის.

Serial.print () და Serial.println () გამოიყენება Arduino IDE– ის სერიულ მონიტორზე სენსორის გამომუშავების საჩვენებლად.

სენსორის გამოსავალი ნაჩვენებია ზემოთ მოცემულ სურათზე.

ნაბიჯი 4: პროგრამები:

პროგრამები
პროგრამები

MPU-6000 არის მოძრაობის თვალთვალის სენსორი, რომელიც აღმოაჩენს მის გამოყენებას სმარტფონებისა და ტაბლეტების მოძრაობის ინტერფეისში. სმარტფონებში ეს სენსორები შეიძლება გამოყენებულ იქნას ისეთ პროგრამებში, როგორიცაა ჟესტების ბრძანებები პროგრამებისთვის და ტელეფონის კონტროლი, გაძლიერებული თამაში, გაძლიერებული რეალობა, პანორამული ფოტო გადაღება და ნახვა და ფეხით მოსიარულეთა და მანქანების ნავიგაცია. MotionTracking ტექნოლოგიას შეუძლია გადააქციოს ტელეფონები და ტაბლეტები ძლიერ 3D ინტელექტუალურ მოწყობილობებად, რომლებიც შეიძლება გამოყენებულ იქნას პროგრამებში ჯანმრთელობისა და ფიტნესის მონიტორინგიდან დაწყებული ადგილმდებარეობის სერვისებით დამთავრებული.

გირჩევთ: