Mundarija:

H3LIS331DL va Raspberry Pi yordamida tezlashtirishni o'lchash: 4 qadam
H3LIS331DL va Raspberry Pi yordamida tezlashtirishni o'lchash: 4 qadam

Video: H3LIS331DL va Raspberry Pi yordamida tezlashtirishni o'lchash: 4 qadam

Video: H3LIS331DL va Raspberry Pi yordamida tezlashtirishni o'lchash: 4 qadam
Video: День Стройки #Лайфхак #Ким #свс Азы Новичкам база знаний #theants Underground Kingdom 2024, Noyabr
Anonim
Image
Image

H3LIS331DL-bu "nano" oilasiga mansub, kam quvvatli, yuqori quvvatli, 3 o'qli chiziqli tezlatgich, raqamli I²C ketma-ket interfeysi. H3LIS331DL foydalanuvchi tomonidan tanlanishi mumkin bo'lgan to'liq o'lchovlar ± 100g/± 200g/± 400g va 0,5 Gts dan 1 kHz gacha bo'lgan chiqish tezligi tezligini o'lchashga qodir. H3LIS331DL -40 ° C dan +85 ° C gacha bo'lgan harorat oralig'ida ishlashi kafolatlangan.

Ushbu qo'llanmada biz dasturlash tili sifatida pythondan foydalangan holda, Raspberry Pi bilan H3LIS331DL interfeysini namoyish qilmoqchimiz.

1 -qadam: Uskuna kerak:

Uskunalar talab qilinadi
Uskunalar talab qilinadi
Uskunalar talab qilinadi
Uskunalar talab qilinadi
Uskunalar talab qilinadi
Uskunalar talab qilinadi

Maqsadga erishish uchun bizga kerak bo'lgan materiallar quyidagi apparat komponentlarini o'z ichiga oladi:

1. H3LIS331DL

2. Raspberry Pi

3. I2C kabeli

4. Malina pi uchun I2C qalqoni

5. Ethernet kabeli

2 -qadam: Uskuna ulanishi:

Uskuna ulanishi
Uskuna ulanishi
Uskuna ulanishi
Uskuna ulanishi

Uskuna ulanish bo'limi, asosan, sensori va malina pi o'rtasida zarur bo'lgan simi ulanishlarini tushuntiradi. To'g'ri ulanishni ta'minlash har qanday tizimda kerakli chiqish uchun ishlashning asosiy zarurati hisoblanadi. Shunday qilib, kerakli ulanishlar quyidagilar:

H3LIS331DL I2C ustida ishlaydi. Sensorning har bir interfeysini qanday ulash kerakligini ko'rsatadigan simlar sxemasi.

Qutidan tashqari, taxta I2C interfeysi uchun tuzilgan, shuning uchun agar siz agnostik bo'lsangiz, biz ushbu ulanishni ishlatishni maslahat beramiz. Sizga faqat to'rtta sim kerak!

Vcc, Gnd, SCL va SDA pinlari uchun faqat to'rtta ulanish kerak va ular I2C kabeli yordamida ulangan.

Bu ulanishlar yuqoridagi rasmlarda ko'rsatilgan.

3 -qadam: Tezlikni o'lchash uchun Python kodi:

Tezlikni o'lchash uchun Python kodi
Tezlikni o'lchash uchun Python kodi

u malina pi -ni ishlatishning afzalligi shundaki, bu sizga sensorni interfeysga ulash uchun taxtani dasturlashni xohlagan dasturlash tilining moslashuvchanligini ta'minlaydi. Ushbu taxtaning afzalliklaridan foydalanib, biz bu erda uning pitonda dasturlashini namoyish qilamiz. Python - sintaksisiga ega bo'lgan eng oson dasturlash tillaridan biri. H3LIS331DL uchun python kodini bizning github hamjamiyatidan yuklab olish mumkin DCUBE do'koni.

Foydalanuvchilarning qulayligi uchun biz bu erda ham kodni tushuntiramiz:

Kodlashning birinchi bosqichi sifatida siz python uchun SMBus kutubxonasini yuklab olishingiz kerak, chunki bu kutubxona kodda ishlatiladigan funktsiyalarni qo'llab -quvvatlaydi. Shunday qilib, kutubxonani yuklab olish uchun quyidagi havolaga kirishingiz mumkin:

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

Ish kodini bu erdan nusxalashingiz mumkin:

smbus import qilish

import vaqti

# I2C avtobusini oling = smbus. SMBus (1)

# H3LIS331DL manzili, 0x18 (24)

# 1, 0x20 boshqaruv registrini tanlang (32)

# 0x27 (39) Quvvatni yoqish rejimi, Ma'lumotlarni chiqarish tezligi = 50 Hz# X, Y, Z o'qi yoqilgan

avtobus.write_byte_data (0x18, 0x20, 0x27)

# H3LIS331DL manzili, 0x18 (24)# Boshqarish registrini tanlang 4, 0x23 (35)

# 0x00 (00) Doimiy yangilanish, To'liq o'lchovli tanlov = +/- 100g

bus.write_byte_data (0x18, 0x23, 0x00)

vaqt uyqu (0,5)

# H3LIS331DL manzili, 0x18 (24)

# Ma'lumotni 0x28 (40), 2 baytdan qaytarib o'qing

# X o'qi LSB, X o'qi MSB

ma'lumotlar0 = avtobus.read_byte_data (0x18, 0x28)

ma'lumotlar1 = avtobus.read_byte_data (0x18, 0x29)

# DataxAccl = data1 * 256 + data0 ga aylantiring

agar xAccl> 32767:

xAccl -= 65536

# H3LIS331DL manzili, 0x18 (24)

# 0x2A (42), 2 baytdan ma'lumotlarni qayta o'qing

# Y-o'qi LSB, Y-o'qi MSB

ma'lumotlar0 = bus.read_byte_data (0x18, 0x2A)

ma'lumotlar1 = bus.read_byte_data (0x18, 0x2B)

# Ma'lumotni aylantirish

yAccl = ma'lumotlar1 * 256 + ma'lumotlar0

agar yAccl> 32767 bo'lsa:

yAccl -= 65536

# H3LIS331DL manzili, 0x18 (24)

# 0x2C (44), 2 baytdan ma'lumotlarni o'qing

# Z-Axis LSB, Z-Axis MSB

ma'lumotlar0 = bus.read_byte_data (0x18, 0x2C)

ma'lumotlar1 = bus.read_byte_data (0x18, 0x2D)

# Ma'lumotni aylantirish

zAccl = ma'lumotlar1 * 256 + ma'lumotlar0

agar zAccl> 32767:

zAccl -= 65536

# Ma'lumotlarni ekranga chiqarish

chop etish "X o'qida tezlashtirish: %d" %xAccl

chop etish "Y o'qida tezlashtirish: %d" %yAccl

chop etish "Z o'qida tezlashtirish: %d" %zAccl

Kod quyidagi buyruq yordamida bajariladi:

$> python H3LIS331DL.py gt; python H3LIS331DL.py

Sensor chiqishi foydalanuvchining ma'lumoti uchun yuqoridagi rasmda ko'rsatilgan.

4 -qadam: Ilovalar:

Ilovalar
Ilovalar

H3LIS331DL kabi akselerometrlar, asosan, o'z o'yinlarini o'yinlarda topadi va profilni almashtirishni ko'rsatadi. Ushbu sensorli modul, shuningdek, mobil ilovalar uchun quvvatni boshqarishning ilg'or tizimida ham qo'llaniladi. H3LIS331DL-bu uch fazali raqamli tezlashtirish sensori bo'lib, u chipda harakatlanuvchi tetikli uzilishlar boshqaruvchisi bilan jihozlangan.

Tavsiya: