Мазмуну:

H3LIS331DL жана Raspberry Pi колдонуу менен ылдамданууну өлчөө: 4 кадам
H3LIS331DL жана Raspberry Pi колдонуу менен ылдамданууну өлчөө: 4 кадам

Video: H3LIS331DL жана Raspberry Pi колдонуу менен ылдамданууну өлчөө: 4 кадам

Video: H3LIS331DL жана Raspberry Pi колдонуу менен ылдамданууну өлчөө: 4 кадам
Video: Product Showcase: H3LIS331DL Triple Axis Accelerometer Breakout 2024, Ноябрь
Anonim
Image
Image

H3LIS331DL-бул санариптик I²C сериялык интерфейси бар, "нано" үй-бүлөсүнө таандык, аз кубаттуу, 3 октук сызыктуу акселерометр. H3LIS331DL колдонуучунун ± 100g/± 200g/± 400g тандап ала турган толук таразасына ээ жана ал 0,5 Гцтен 1 кГцке чейин маалымат ылдамдыгын ылдамдатууга жөндөмдүү. H3LIS331DL -40 ° Cдан +85 ° C чейин узартылган температура диапазонунда иштөө кепилдикке ээ.

Бул окуу куралында биз H3LIS331DLдин Raspberry Pi менен интерфейсин көрсөтөбүз, pythonду программалоо тили катары колдонобуз.

1 -кадам: Аппараттык камсыздоо талап кылынат:

Аппараттык камсыздоо талап кылынат
Аппараттык камсыздоо талап кылынат
Аппараттык камсыздоо талап кылынат
Аппараттык камсыздоо талап кылынат
Аппараттык камсыздоо талап кылынат
Аппараттык камсыздоо талап кылынат

Максатыбызга жетүү үчүн бизге керектүү материалдар төмөнкү аппараттык компоненттерди камтыйт:

1. H3LIS331DL

2. Raspberry Pi

3. I2C кабели

4. Малина pi үчүн I2C Shield

5. Ethernet кабели

2 -кадам: Аппараттык туташуу:

Аппараттык туташуу
Аппараттык туташуу
Аппараттык туташуу
Аппараттык туташуу

Аппараттык туташуу бөлүмү негизинен сенсор менен малина пи ортосунда талап кылынган зым байланыштарын түшүндүрөт. Туура туташууларды камсыздоо каалаган өндүрүш үчүн кандайдыр бир системада иштеп жатканда негизги зарылчылык болуп саналат. Ошентип, керектүү байланыштар төмөнкүлөр:

H3LIS331DL I2C үстүндө иштейт. Бул жерде сенсордун ар бир интерфейсин кантип зым менен жабуу керектигин көрсөтүүчү зымдардын схемасы келтирилген.

Кутудан тышкары, такта I2C интерфейси үчүн конфигурацияланган, андыктан эгер сиз агностиксиз болсоңуз, анда бул байланышты колдонууну сунуштайбыз. Сизге болгону төрт зым керек!

Vcc, Gnd, SCL жана SDA төөнөгүчтөрүнө төрт гана туташуу керек жана алар I2C кабелинин жардамы менен туташкан.

Бул байланыштар жогорудагы сүрөттөрдө көрсөтүлгөн.

3 -кадам: Ылдамданууну өлчөө үчүн Python коду:

Ылдамданууну өлчөө үчүн Python коду
Ылдамданууну өлчөө үчүн Python коду

анын малина пи колдонуунун артыкчылыгы, башкача айтканда, сенсорго интерфейс үчүн тактаны программалоону каалаган программалоо тилинин ийкемдүүлүгүн камсыздайт. Бул тактанын артыкчылыгынан пайдаланып, биз бул жерде анын питондогу программалоосун көрсөтүп жатабыз. Python - эң оңой синтаксиси бар эң оңой программалоо тилдеринин бири. H3LIS331DL үчүн питон кодун биздин github коомчулугунан көчүрүп алса болот DCUBE дүкөнү.

Колдонуучулардын ыңгайлуулугу үчүн, биз бул жерде кодду түшүндүрүп жатабыз:

Коддоонун биринчи кадамы катары сиз питон үчүн SMBus китепканасын жүктөп алышыңыз керек, анткени бул китепкана коддо колдонулган функцияларды колдойт. Ошентип, китепкананы жүктөө үчүн төмөнкү шилтемеге кире аласыз:

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

Жумуш кодун бул жерден көчүрүп алсаңыз болот:

smbus импорттоо

импорттоо убактысы

# Get I2C busbus = smbus. SMBus (1)

# H3LIS331DL дареги, 0x18 (24)

# Башкаруу регистрин тандоо 1, 0x20 (32)

# 0x27 (39) Power ON режими, Маалымат чыгаруу ылдамдыгы = 50 Гц# X, Y, Z-Axis иштетилген

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

# H3LIS331DL дареги, 0x18 (24)# 4 башкаруу регистрин тандоо, 0x23 (35)

# 0x00 (00) Үзгүлтүксүз жаңыртуу, Толук масштабдуу тандоо = +/- 100г

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

убакыт.уйку (0.5)

# H3LIS331DL дареги, 0x18 (24)

# Маалыматтарды 0x28 (40), 2 байттан кайра окуу

# X-Axis LSB, X-Axis MSB

data0 = bus.read_byte_data (0x18, 0x28)

data1 = bus.read_byte_data (0x18, 0x29)

# Convert the dataxAccl = data1 * 256 + data0

эгер xAccl> 32767:

xAccl -= 65536

# H3LIS331DL дареги, 0x18 (24)

# 0x2A (42), 2 байт маалыматтарын кайра окуу

# Y-Axis LSB, Y-Axis MSB

data0 = bus.read_byte_data (0x18, 0x2A)

data1 = bus.read_byte_data (0x18, 0x2B)

# Маалыматтарды айландыруу

yAccl = data1 * 256 + data0

эгер yAccl> 32767:

yAccl -= 65536

# H3LIS331DL дареги, 0x18 (24)

# Окууну 0x2C (44), 2 байттан кайра окуу

# Z-Axis LSB, Z-Axis MSB

data0 = bus.read_byte_data (0x18, 0x2C)

data1 = bus.read_byte_data (0x18, 0x2D)

# Маалыматтарды айландыруу

zAccl = data1 * 256 + data0

эгер zAccl> 32767:

zAccl -= 65536

# Экранга маалыматтарды чыгаруу

басып чыгаруу "Акселерде ылдамдануу: %d" %xAccl

басып чыгаруу "Y огунда ылдамдануу: %d" %yAccl

басып чыгаруу "Z-огунда ылдамдануу: %d" %zAccl

Код төмөнкү буйруктун жардамы менен аткарылат:

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

Сенсордун чыгышы колдонуучунун маалымдамасы үчүн жогорудагы сүрөттө көрсөтүлгөн.

4 -кадам: Тиркемелер:

Колдонмолор
Колдонмолор

H3LIS331DL сыяктуу акселерометрлер көбүнчө оюндарды колдонууда табышат жана профилдин которулушун көрсөтүшөт. Бул сенсор модулу мобилдик тиркемелер үчүн заманбап кубатты башкаруу тутумунда да колдонулат. H3LIS331DL-бул үч фазалуу санариптик ылдамдатуу сенсору, ал интеллектуалдык микросхемадагы кыймылдын үзгүлтүккө учуроочу контроллери менен коштолгон.

Сунушталууда: