Სარჩევი:

3 ღერძიანი გიროსკოპის სენსორის ურთიერთკავშირი BMG160 ნაწილაკით: 5 ნაბიჯი
3 ღერძიანი გიროსკოპის სენსორის ურთიერთკავშირი BMG160 ნაწილაკით: 5 ნაბიჯი

ვიდეო: 3 ღერძიანი გიროსკოპის სენსორის ურთიერთკავშირი BMG160 ნაწილაკით: 5 ნაბიჯი

ვიდეო: 3 ღერძიანი გიროსკოპის სენსორის ურთიერთკავშირი BMG160 ნაწილაკით: 5 ნაბიჯი
ვიდეო: Arduino Nano და GY-521 MPU6050 3 ღერძიანი გიროსკოპი, 3 ღერძიანი აქსელერომეტრი და DMP 2024, ივლისი
Anonim
Image
Image

დღევანდელ მსოფლიოში, ახალგაზრდების და ბავშვების ნახევარზე მეტს უყვარს თამაში და ყველა მათ, ვინც მას უყვარს, თამაშების ტექნიკური ასპექტებით მოხიბლული იცის ამ სფეროში მოძრაობის შეგრძნების მნიშვნელობა. ჩვენც გაოგნებული ვიყავით ერთიდაიგივე და მხოლოდ დაფაზე რომ მოვიყვანეთ, ჩვენ ვიფიქრეთ გიროსკოპის სენსორზე მუშაობაზე, რომელსაც შეუძლია ნებისმიერი ობიექტის კუთხის სიჩქარის გაზომვა. ამრიგად, სენსორი, რომელიც ჩვენ დავაყენეთ ამოცანის შესასრულებლად არის BMG160. BMG160 არის 16 ბიტიანი, ციფრული, ტრიაქსიალური, გიროსკოპის სენსორი, რომელსაც შეუძლია გაზომოთ კუთხის სიჩქარე ოთახის სამ პერპენდიკულარულ განზომილებაში.

ამ სახელმძღვანელოში ჩვენ ვაპირებთ BMG160– ის მუშაობის დემონსტრირებას ნაწილაკების ფოტონთან ერთად.

აპარატურა, რომელიც დაგჭირდებათ ამ მიზნით, არის შემდეგი:

1. BMG160

2. ნაწილაკების ფოტონი

3. I2C კაბელი

4. ნაწილაკების ფოტონის I2C ფარი

ნაბიჯი 1: BMG160 მიმოხილვა:

Რა გჭირდება..!!
Რა გჭირდება..!!

უპირველეს ყოვლისა, ჩვენ გვსურს გაეცნოთ სენსორული მოდულის ძირითად მახასიათებლებს, რომელიც არის BMG160 და საკომუნიკაციო პროტოკოლი, რომელზეც ის მუშაობს.

BMG160 ძირითადად არის 16-ბიტიანი, ციფრული, ტრიაქსიალური, გიროსკოპის სენსორი, რომელსაც შეუძლია გაზომოთ კუთხის სიჩქარე. მას შეუძლია გამოთვალოს კუთხის სიჩქარე ოთახის სამ პერპენდიკულარულ განზომილებაში, x-, y- და z ღერძი და უზრუნველყოს შესაბამისი გამომავალი სიგნალები. მას შეუძლია ჟოლოს პი დაფაზე კომუნიკაცია I2C საკომუნიკაციო პროტოკოლის გამოყენებით. ეს კონკრეტული მოდული შექმნილია იმისათვის, რომ დააკმაყოფილოს მოთხოვნები როგორც სამომხმარებლო პროგრამებისთვის, ასევე სამრეწველო მიზნებისთვის.

საკომუნიკაციო ოქმი, რომელზეც მუშაობს სენსორი არის I2C. I2C ნიშნავს ინტეგრირებულ წრეს. ეს არის საკომუნიკაციო პროტოკოლი, რომელშიც კომუნიკაცია ხდება SDA (სერიული მონაცემები) და SCL (სერიული საათი) ხაზებით. ეს საშუალებას გაძლევთ დააკავშიროთ რამდენიმე მოწყობილობა ერთდროულად. ეს არის ერთ -ერთი ყველაზე მარტივი და ეფექტური საკომუნიკაციო პროტოკოლი.

ნაბიჯი 2: რაც გჭირდებათ..

Რა გჭირდება..!!
Რა გჭირდება..!!
Რა გჭირდება..!!
Რა გჭირდება..!!
Რა გჭირდება..!!
Რა გჭირდება..!!

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

1. BMG160

2. ნაწილაკების ფოტონი

3. I2C კაბელი

4. I2C ფარი ნაწილაკების ფოტონისთვის

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

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

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

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

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

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

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

ნაბიჯი 4: 3 ღერძიანი გიროსკოპის გაზომვის ნაწილაკების კოდი:

3 ღერძი გიროსკოპის გაზომვის ნაწილაკების კოდი
3 ღერძი გიროსკოპის გაზომვის ნაწილაკების კოდი
3 ღერძი გიროსკოპის გაზომვის ნაწილაკების კოდი
3 ღერძი გიროსკოპის გაზომვის ნაწილაკების კოდი

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

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

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

#ჩართეთ

#ჩართეთ

// BMG160 I2C მისამართი არის 0x68 (104)

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

int xGyro = 0, yGyro = 0, zGyro = 0;

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

{

// ცვლადის დაყენება

ნაწილაკი. ცვლადი ("i2cdevice", "BMG160");

ნაწილაკი. ცვლადი ("xGyro", xGyro);

ნაწილაკი. ცვლადი ("yGyro", yGyro);

ნაწილაკი. ცვლადი ("zGyro", zGyro);

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

Wire.begin ();

// სერიული კომუნიკაციის ინიციალიზაცია

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

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

Wire.beginTransmission (Addr);

// აირჩიეთ დიაპაზონის რეგისტრი

Wire.write (0x0F);

// სრული მასშტაბის კონფიგურაცია 2000 dps

Wire.write (0x80);

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

Wire.endTransmission ();

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

Wire.beginTransmission (Addr);

// აირჩიეთ გამტარუნარიანობის რეგისტრატორი

Wire.write (0x10);

// სიჩქარის დაყენება = 200 ჰერცი

Wire.write (0x04);

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

Wire.endTransmission ();

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

}

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

{

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

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

Wire.beginTransmission (Addr);

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

Wire.write (0x02);

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

Wire.endTransmission ();

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

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

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

// xGyro lsb, xGyro msb, yGyro lsb, yGyro msb, zGyro lsb, zGyro msb

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

{

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

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

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

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

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

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

}

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

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

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

if (xGyro> 32767)

{

xGyro -= 65536;

}

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

თუ (yGyro> 32767)

{

yGyro -= 65536;

}

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

if (zGyro> 32767)

{

zGyro -= 65536;

}

// მონაცემების გამოტანა საინფორმაციო დაფაზე

Particle.publish ("ბრუნვის X- ღერძი:", სიმებიანი (xGyro));

Particle.publish ("ბრუნვის Y- ღერძი:", სიმებიანი (yGyro));

Particle.publish ("ბრუნვის Z- ღერძი:", სიმებიანი (zGyro));

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

}

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

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

BMG160– ს აქვს მრავალფეროვანი პროგრამა იმ მოწყობილობებში, როგორიცაა მობილური ტელეფონები, ადამიანის აპარატის ინტერფეისის მოწყობილობები. ეს სენსორული მოდული შემუშავებულია მომხმარებლის მოთხოვნების დასაკმაყოფილებლად, როგორიცაა გამოსახულების სტაბილიზაცია (DSC და კამერა-ტელეფონი), სათამაშო და საჩვენებელი მოწყობილობები. იგი ასევე გამოიყენება სისტემებში, რომლებიც მოითხოვს ჟესტების აღიარებას და სისტემებს, რომლებიც გამოიყენება შიდა ნავიგაციაში.

გირჩევთ: