Სარჩევი:

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

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

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

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

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

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

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

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

1. MPU-6000

2. ჟოლო პი

3. I2C კაბელი

4. I2C ფარი ჟოლოს პი

5. Ethernet კაბელი

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

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

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

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

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

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

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

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

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

ჟოლოს pi გამოყენების უპირატესობა ის არის, რომ თქვენ უზრუნველყოფთ პროგრამირების ენის მოქნილობას, რომლითაც გსურთ დაფის დაპროგრამება, რათა სენსორი მასთან დააკავშიროთ. ამ დაფის ამ უპირატესობის გამოყენებით, ჩვენ ვაჩვენებთ მის პროგრამირებას პითონში. პითონი არის ერთ -ერთი ყველაზე მარტივი პროგრამირების ენა უმარტივესი სინტაქსით. MPU-6000– ის პითონის კოდი შეგიძლიათ გადმოწეროთ ჩვენი GitHub საზოგადოებიდან, რომელიც არის Dcube Store

ისევე როგორც მომხმარებლების სიმარტივისთვის, ჩვენ აქ განვმარტავთ კოდს:

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

pypi.python.org/pypi/smbus-cffi/0.5.1

თქვენ ასევე შეგიძლიათ დააკოპიროთ სამუშაო კოდი აქედან:

smbus- ის იმპორტი

იმპორტის დრო

# მიიღეთ I2C busbus = smbus. SMBus (1)

# MPU-6000 მისამართი, 0x68 (104)

# შეარჩიეთ გიროსკოპის კონფიგურაციის რეგისტრატორი, 0x1B (27)

# 0x18 (24) სრული მასშტაბის დიაპაზონი = 2000 dps

bus.write_byte_data (0x68, 0x1B, 0x18)

# MPU-6000 მისამართი, 0x68 (104)

# აირჩიეთ აქსელერომეტრის კონფიგურაციის რეგისტრატორი, 0x1C (28)

# 0x18 (24) სრული მასშტაბის დიაპაზონი = +/- 16 გ

bus.write_byte_data (0x68, 0x1C, 0x18)

# MPU-6000 მისამართი, 0x68 (104)

# აირჩიეთ ენერგიის მართვის რეგისტრი 1, 0x6B (107)

# 0x01 (01) PLL xGyro მითითებით

bus.write_byte_data (0x68, 0x6B, 0x01)

დრო. ძილი (0.8)

# MPU-6000 მისამართი, 0x68 (104)

# წაიკითხეთ მონაცემები უკან 0x3B (59), 6 ბაიტიდან

# აქსელერომეტრი X-Axis MSB, X-Axis LSB, Y-Axis MSB, Y-Axis LSB, Z-Axis MSB, Z-Axis LSB

მონაცემები = bus.read_i2c_block_data (0x68, 0x3B, 6)

# გადააკეთეთ მონაცემები

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

თუ xAccl> 32767:

xAccl -= 65536

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

თუ yAccl> 32767:

yAccl -= 65536

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

თუ zAccl> 32767:

zAccl -= 65536

# MPU-6000 მისამართი, 0x68 (104)

# წაიკითხეთ მონაცემები 0x43– დან (67), 6 ბაიტიდან

# გირომეტრი X-Axis MSB, X-Axis LSB, Y-Axis MSB, Y-Axis LSB, Z-Axis MSB, Z-Axis LSB

მონაცემები = bus.read_i2c_block_data (0x68, 0x43, 6)

# გადააკეთეთ მონაცემები

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

თუ xGyro> 32767:

xGyro -= 65536

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

თუ yGyro> 32767:

yGyro -= 65536

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

თუ zGyro> 32767:

zGyro -= 65536

# მონაცემების გამოტანა ეკრანზე

ბეჭდვა "აჩქარება X- ღერძში: %d" %xAccl

ბეჭდვა "აჩქარება Y- ღერძში: %d" %yAccl

ბეჭდვა "აჩქარება Z- ღერძში: %d" %zAccl

ბეჭდვა "ბრუნვის X- ღერძი: %d" %xGyro

ბეჭდვა "ბრუნვის Y- ღერძი: %d" %yGyro

ბეჭდვა "ბრუნვის Z- ღერძი: %d" %zGyro

კოდი შესრულებულია შემდეგი ბრძანების გამოყენებით:

$> პითონი MPU-6000.py gt; პითონი MPU-6000.py

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

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

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

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

გირჩევთ: