Სარჩევი:
ვიდეო: Raspberry Pi - MPL3115A2 Precision Altimeter Sensor Python Tutorial: 4 Steps
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:16
MPL3115A2 იყენებს MEMS წნევის სენსორს I2C ინტერფეისით, რათა უზრუნველყოს წნევის/სიმაღლისა და ტემპერატურის ზუსტი მონაცემები. სენსორის გამოსასვლელი ციფრულდება მაღალი რეზოლუციის 24-ბიტიანი ADC საშუალებით. შიდა დამუშავება ხსნის კომპენსაციის ამოცანებს მასპინძელი MCU სისტემიდან. მას შეუძლია აღმოაჩინოს ცვლილება მხოლოდ 0.05 kPa– ში, რაც უდრის სიმაღლის 0.3 მ ცვლილებას. აქ არის მისი დემონსტრირება ჟოლოს პი პითონის კოდის გამოყენებით.
ნაბიჯი 1: რაც გჭირდებათ..
1. ჟოლო პი
2. MPL3115A2
3. I²C კაბელი
4. I²C ფარი ჟოლოს პიისთვის
5. Ethernet კაბელი
ნაბიჯი 2: კავშირები:
აიღეთ I2C ფარი ჟოლოსთვის და ნაზად წაუსვით ჟოლოს პი გპიოს ქინძისთავებზე.
შემდეგ შეაერთეთ I2C კაბელის ერთი ბოლო MPL3115A2 სენსორთან და მეორე ბოლო I2C ფარს.
ასევე დაუკავშირეთ Ethernet კაბელი pi- ს ან შეგიძლიათ გამოიყენოთ WiFi მოდული.
კავშირები ნაჩვენებია ზემოთ მოცემულ სურათზე.
ნაბიჯი 3: კოდი:
MPL3115A2– ის პითონის კოდი შეგიძლიათ გადმოწეროთ ჩვენი Github საცავიდან- DCUBE Store Community.
აქ არის ბმული
ჩვენ გამოვიყენეთ SMBus ბიბლიოთეკა პითონის კოდისთვის, ჟოლოს პიზე SMBus– ის დაყენების ნაბიჯები აღწერილია აქ:
pypi.python.org/pypi/smbus-cffi/0.5.1
თქვენ ასევე შეგიძლიათ დააკოპიროთ კოდი აქედან, იგი მოცემულია შემდეგნაირად:
# განაწილებულია თავისუფალი ნების ლიცენზიით.
# გამოიყენეთ ის, როგორც გსურთ, მოგება ან უფასო, იმ პირობით, რომ იგი ჯდება ლიცენზიებში მასთან დაკავშირებული სამუშაოების შესახებ.
# MPL3115A2
# ეს კოდი შექმნილია MPL3115A2_I2CS I2C მინი მოდულთან მუშაობისთვის
smbus- ის იმპორტი
იმპორტის დრო
# მიიღეთ I2C ავტობუსი
ავტობუსი = smbus. SMBus (1)
# MPL3115A2 მისამართი, 0x60 (96)
# აირჩიეთ საკონტროლო რეგისტრი, 0x26 (38)
# 0xB9 (185) აქტიური რეჟიმი, OSR = 128, ალტიმეტრის რეჟიმი
bus.write_byte_data (0x60, 0x26, 0xB9)
# MPL3115A2 მისამართი, 0x60 (96)
# აირჩიეთ მონაცემთა კონფიგურაციის რეგისტრატორი, 0x13 (19)
# 0x07 (07) მონაცემთა მომზადების ღონისძიება ჩართულია სიმაღლეზე, წნევაზე, ტემპერატურაზე
bus.write_byte_data (0x60, 0x13, 0x07)
# MPL3115A2 მისამართი, 0x60 (96)
# აირჩიეთ საკონტროლო რეგისტრი, 0x26 (38)
# 0xB9 (185) აქტიური რეჟიმი, OSR = 128, ალტიმეტრის რეჟიმი
bus.write_byte_data (0x60, 0x26, 0xB9)
დრო. ძილი (1)
# MPL3115A2 მისამართი, 0x60 (96)
# წაიკითხეთ მონაცემები უკან 0x00 (00), 6 ბაიტი
# სტატუსი, tHeight MSB1, tHeight MSB, tHeight LSB, temp MSB, temp LSB
მონაცემები = bus.read_i2c_block_data (0x60, 0x00, 6)
# გადააქციეთ მონაცემები 20 ბიტად
tHeight = ((მონაცემები [1] * 65536) + (მონაცემები [2] * 256) + (მონაცემები [3] & 0xF0)) / 16
temp = ((მონაცემები [4] * 256) + (მონაცემები [5] & 0xF0)) / 16
სიმაღლე = t სიმაღლე / 16.0
cTemp = temp / 16.0
fTemp = cTemp * 1.8 + 32
# MPL3115A2 მისამართი, 0x60 (96)
# აირჩიეთ საკონტროლო რეგისტრი, 0x26 (38)
# 0x39 (57) აქტიური რეჟიმი, OSR = 128, ბარომეტრის რეჟიმი
bus.write_byte_data (0x60, 0x26, 0x39)
დრო. ძილი (1)
# MPL3115A2 მისამართი, 0x60 (96)
# წაიკითხეთ მონაცემები უკან 0x00 (00), 4 ბაიტი
# სტატუსი, pres MSB1, pres MSB, pres LSB
მონაცემები = bus.read_i2c_block_data (0x60, 0x00, 4)
# გადააკეთეთ მონაცემები 20 ბიტად
pres = ((მონაცემები [1] * 65536) + (მონაცემები [2] * 256) + (მონაცემები [3] & 0xF0)) / 16
წნევა = (pres / 4.0) / 1000.0
# მონაცემების გამოტანა ეკრანზე
ბეჭდვა "წნევა: %.2f kPa" %წნევა
დაბეჭდე "სიმაღლე: %.2f მ" %სიმაღლე
დაბეჭდე "ტემპერატურა ცელსიუსში: %.2f C" %cTemp
დაბეჭდე "ტემპერატურა ფარენჰეიტში: %.2f F" %fTemp
ნაბიჯი 4: პროგრამები:
MPL3115A2– ის სხვადასხვა პროგრამა მოიცავს მაღალი სიზუსტის ალტიმეტრიას, სმარტფონებს/ტაბლეტებს, პერსონალურ ელექტრონიკას ალტიმეტრიას და სხვა. ის ასევე შეიძლება ჩართული იყოს GPS Dead Reckoning– ში, GPS– ის გაძლიერებაში გადაუდებელ სამსახურში, რუქის დახმარებაში, ნავიგაციაში, ასევე ამინდის სადგურის აღჭურვილობაში.
გირჩევთ:
Raspberry Pi - ADXL345 3 -Axis Accelerometer Python Tutorial: 4 Steps
Raspberry Pi-ADXL345 3 ღერძიანი ამაჩქარებელი პითონის სახელმძღვანელო: ADXL345 არის პატარა, თხელი, ულტრა დაბალი სიმძლავრის, 3 ღერძიანი ამაჩქარებელი მაღალი გარჩევადობის (13 ბიტიანი) გაზომვით ± 16 გ-მდე. ციფრული გამომავალი მონაცემები ფორმატირებულია, როგორც 16 ბიტიანი ორეული და არის ხელმისაწვდომი I2 C ციფრული ინტერფეისის საშუალებით. ზომავს
Raspberry Pi MMA8452Q 3-Axis 12-bit/8-bit Digital Accelerometer Python Tutorial: 4 Steps
Raspberry Pi MMA8452Q 3-Axis 12-bit/8-bit Digital Accelerometer Python Tutorial: MMA8452Q არის ჭკვიანი, დაბალი სიმძლავრის, სამ ღერძიანი, ტევადი, მიკრო მექანიზებული ამაჩქარებელი, 12 ბიტიანი გარჩევადობით. მოქნილი მომხმარებლის პროგრამირებადი ვარიანტები მოცემულია ამაჩქარებელში ჩამონტაჟებული ფუნქციების დახმარებით, კონფიგურირებადი ორი შეწყვეტისთვის
Raspberry Pi - BH1715 Digital Ambient Light Sensor Python Tutorial: 4 Steps
Raspberry Pi - BH1715 ციფრული გარემოს სინათლის სენსორი Python სამეურვეო პროგრამა: BH1715 არის ციფრული გარე განათების სენსორი I²C ავტობუსის ინტერფეისით. BH1715 ჩვეულებრივ გამოიყენება გარე განათების მონაცემების მოსაპოვებლად, მობილური მოწყობილობებისთვის LCD და კლავიატურის შუქნიშნის სიმძლავრის შესაცვლელად. ეს მოწყობილობა გთავაზობთ 16 ბიტიან გარჩევადობას და დამატებით
Raspberry Pi - TSL45315 Ambient Light Sensor Python Tutorial: 4 Steps
Raspberry Pi - TSL45315 Ambient Light Sensor Python Tutorial: TSL45315 არის ციფრული გარე განათების სენსორი. იგი უახლოვდება ადამიანის თვალის რეაქციას სხვადასხვა განათების პირობებში. მოწყობილობებს აქვთ სამი შერჩევითი ინტეგრაციის დრო და უზრუნველყოფენ პირდაპირ 16 ბიტიან ლუქს გამომუშავებას I2C ავტობუსის ინტერფეისის საშუალებით. მოწყობილობა თანამშრომლობს
Raspberry Pi A1332 Precision Hall - Effect Angle Sensor Java Tutorial: 4 Steps
Raspberry Pi A1332 Precision Hall - Effect Angle Sensor Java Tutorial: A1332 არის 360 ° უკონტაქტო მაღალი რეზოლუციის პროგრამირებადი მაგნიტური კუთხის პოზიციის სენსორი. ის განკუთვნილია ციფრული სისტემებისთვის I2C ინტერფეისის გამოყენებით. იგი აგებულია წრიული ვერტიკალური დარბაზის (CVH) ტექნოლოგიაზე და პროგრამირებადი მიკროპროცესორული სიგნალის საფუძველზე