
Სარჩევი:
2025 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2025-01-23 14:50


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



ჩვენი ამოცანის შესასრულებლად საჭირო მასალები მოიცავს ქვემოთ ჩამოთვლილ აპარატურულ კომპონენტებს:
1. MPU-6000
2. ნაწილაკების ფოტონი
3. I2C კაბელი
4. I2C ფარი ნაწილაკების ფოტონისთვის
ნაბიჯი 2: აპარატურის დაკავშირება:


აპარატურის დაკავშირების განყოფილება ძირითადად განმარტავს გაყვანილობის კავშირებს სენსორსა და ნაწილაკ ფოტონს შორის. სწორი კავშირების უზრუნველყოფა არის ძირითადი აუცილებლობა ნებისმიერ სისტემაზე მუშაობისას სასურველი გამომუშავებისთვის. ამრიგად, საჭირო კავშირები შემდეგია:
MPU-6000 იმუშავებს I2C– ზე. აქ არის გაყვანილობის დიაგრამა, რომელიც აჩვენებს, თუ როგორ უნდა დააკავშიროთ სენსორის თითოეული ინტერფეისი.
ყუთის გარეშე, დაფა კონფიგურირებულია I2C ინტერფეისისთვის, ამიტომ ჩვენ გირჩევთ გამოიყენოთ ეს კავშირი, თუ სხვაგვარად ხართ აგნოსტიკოსი. ყველაფერი რაც თქვენ გჭირდებათ არის ოთხი მავთული!
მხოლოდ ოთხი კავშირია საჭირო Vcc, Gnd, SCL და SDA ქინძისთავები და ეს დაკავშირებულია I2C კაბელის დახმარებით.
ეს კავშირები ნაჩვენებია ზემოთ მოცემულ სურათებში.
ნაბიჯი 3: მოძრაობის თვალთვალის კოდი:

დავიწყოთ ნაწილაკების კოდით ახლა.
სენსორული მოდულის arduino– ს გამოყენებისას, ჩვენ ვიყენებთ application.h და spark_wiring_i2c.h ბიბლიოთეკას. "application.h" და spark_wiring_i2c.h ბიბლიოთეკა შეიცავს ფუნქციებს, რომლებიც ხელს უწყობს სენსორსა და ნაწილაკს შორის i2c კომუნიკაციას.
მომხმარებლის ნაწილის მოხერხებულობისთვის ქვემოთ მოცემულია ნაწილაკების მთელი კოდი:
#მოიცავს #მოიცავს // MPU-6000 I2C მისამართი არის 0x68 (104) #განსაზღვრეთ Addr 0x68 int xGyro = 0, yGyro = 0, zGyro = 0, xAccl = 0, yAccl = 0, zAccl = 0; void setup () {// ცვლადის დაყენება Particle.variable ("i2cdevice", "MPU-6000"); ნაწილაკი. ცვლადი ("xAccl", xAccl); ნაწილაკი. ცვლადი ("yAccl", yAccl); ნაწილაკი. ცვლადი ("zAccl", zAccl); ნაწილაკი. ცვლადი ("xGyro", xGyro); ნაწილაკი. ცვლადი ("yGyro", yGyro); ნაწილაკი. ცვლადი ("zGyro", zGyro); // I2C კომუნიკაციის ინიციალიზაცია როგორც Master Wire.begin (); // სერიული კომუნიკაციის ინიციალიზაცია, დაყენებული baud rate = 9600 Serial.begin (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); } void loop () {ხელმოუწერელი int მონაცემები [6]; // დაწყება I2C გადაცემა Wire.beginTransmission (Addr); // მონაცემთა რეგისტრაციის არჩევა Wire.write (0x3B); // შეაჩერე I2C გადამცემი Wire.endTransmission (); // მოითხოვეთ მონაცემების 6 ბაიტი Wire.requestFrom (Addr, 6); // წაიკითხეთ მონაცემების 6 ბაიტი თუ (Wire.available () == 6) {data [0] = Wire.read (); მონაცემები [1] = Wire.read (); მონაცემები [2] = Wire.read (); მონაცემები [3] = Wire.read (); მონაცემები [4] = Wire.read (); მონაცემები [5] = Wire.read (); } დაყოვნება (800); // მონაცემების კონვერტაცია xAccl = ((მონაცემები [1] * 256) + მონაცემები [0]); თუ (xAccl> 32767) {xAccl -= 65536; } yAccl = ((მონაცემები [3] * 256) + მონაცემები [2]); if (yAccl> 32767) {yAccl -= 65536; } zAccl = ((მონაცემები [5] * 256) + მონაცემები [4]); if (zAccl> 32767) {zAccl -= 65536; } დაყოვნება (800); // I2C გადაცემის დაწყება Wire.beginTransmission (Addr); // მონაცემთა რეგისტრაციის არჩევა Wire.write (0x43); // შეაჩერე I2C გადამცემი Wire.endTransmission (); // მოითხოვეთ მონაცემების 6 ბაიტი Wire.requestFrom (Addr, 6); // წაიკითხეთ მონაცემების 6 ბაიტი თუ (Wire.available () == 6) {data [0] = Wire.read (); მონაცემები [1] = Wire.read (); მონაცემები [2] = Wire.read (); მონაცემები [3] = Wire.read (); მონაცემები [4] = Wire.read (); მონაცემები [5] = Wire.read (); } // მონაცემების კონვერტაცია xGyro = ((მონაცემები [1] * 256) + მონაცემები [0]); თუ (xGyro> 32767) {xGyro -= 65536; } yGyro = ((მონაცემები [3] * 256) + მონაცემები [2]); თუ (yGyro> 32767) {yGyro -= 65536; } zGyro = ((მონაცემები [5] * 256) + მონაცემები [4]); if (zGyro> 32767) {zGyro -= 65536; } // მონაცემების გამოტანა დაფაზე Particle.publish ("აჩქარება X- ღერძში:", სიმებიანი (xAccl)); დაგვიანება (1000); Particle.publish ("აჩქარება Y- ღერძში:", სიმებიანი (yAccl)); დაგვიანება (1000); Particle.publish ("აჩქარება Z- ღერძში:", სიმებიანი (zAccl)); დაგვიანება (1000); Particle.publish ("ბრუნვის X- ღერძი:", სიმებიანი (xGyro)); დაგვიანება (1000); Particle.publish ("ბრუნვის Y- ღერძი:", სიმებიანი (yGyro)); დაგვიანება (1000); Particle.publish ("ბრუნვის Z- ღერძი:", სიმებიანი (zGyro)); დაგვიანება (1000); }
Particle.variable () ფუნქცია ქმნის ცვლადებს სენსორის გამომუშავების შესანახად და Particle.publish () ფუნქცია აჩვენებს გამომავალს საიტის დაფაზე.
სენსორის გამომავალი ნაჩვენებია ზემოთ მოცემულ სურათზე თქვენი მითითებისთვის.
ნაბიჯი 4: პროგრამები:

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

ადამიანის თვალის მოძრაობის თვალყურის დევნება: ეს პროექტი მიზნად ისახავს ადამიანის თვალის მოძრაობის დაფიქსირებას და აჩვენებს მის მოძრაობას თვალის ფორმაში მოთავსებული LED ნათურების ნაკრებზე. ამ ტიპის პროექტს პოტენციურად ბევრი გამოყენება ექნება რობოტიკის სფეროში და კონკრეტულად ჰუმას
აჩქარების გაზომვა ADXL345 და ნაწილაკების ფოტონის გამოყენებით: 4 ნაბიჯი

ADXL345 და ნაწილაკების ფოტონის გამოყენებით აჩქარების გაზომვა: ADXL345 არის პატარა, თხელი, ულტრა დაბალი სიმძლავრის, 3 ღერძიანი ამაჩქარებელი მაღალი გარჩევადობის (13 ბიტიანი) გაზომვით ± 16 გ-მდე. ციფრული გამომავალი მონაცემები ფორმატირებულია, როგორც 16 ბიტიანი ორეული და არის ხელმისაწვდომი I2 C ციფრული ინტერფეისის საშუალებით. ზომავს
მაგნიტური ველის გაზომვა HMC5883 და ნაწილაკების ფოტონის გამოყენებით: 4 ნაბიჯი

მაგნიტური ველის გაზომვა HMC5883 და ნაწილაკების ფოტონის გამოყენებით: HMC5883 არის ციფრული კომპასი, რომელიც შექმნილია დაბალი ველის მაგნიტური ზონდირებისათვის. ამ მოწყობილობას აქვს მაგნიტური ველის ფართო დიაპაზონი +/- 8 Oe და გამომავალი სიჩქარე 160 ჰც. HMC5883 სენსორი მოიცავს სამაგრების ავტომატური მოხსნას დრაივერებზე, ოფსეტური გაუქმებით და
QeMotion - მოძრაობის თვალყურის დევნება ყველა ყურსასმენისთვის!: 5 ნაბიჯი (სურათებით)

QeMotion - მოძრაობის თვალყურის დევნება ყველა ყურსასმენისთვის!: მიმოხილვა: ეს მოწყობილობა საშუალებას გაძლევთ გამოიყენოთ თქვენი თავის მოძრაობა მოვლენების გასააქტიურებლად ძირითადად ნებისმიერ ვიდეო თამაშში. ის მუშაობს თქვენი თავის მოძრაობის თვალყურის დევნებით (ან ყურსასმენი ამის გათვალისწინებით) და კლავიატურის დაჭერით გარკვეული მოძრაობებისთვის. ასე რომ, თქვენი კომპ
თვალის მოძრაობის თვალყურის დევნება ინფრაწითელი სენსორის გამოყენებით: 5 ნაბიჯი

თვალის მოძრაობის თვალყურის დევნება ინფრაწითელი სენსორის გამოყენებით: მე გამოვიყენე ინფრაწითელი სენსორი თვალის მოძრაობების გასაზრდელად და LED- ის გასაკონტროლებლად. მე გავაკეთე თვალის კაკლები LED ლენტით NeoPixel