Съдържание:

Измерване на ускорението с помощта на H3LIS331DL и Raspberry Pi: 4 стъпки
Измерване на ускорението с помощта на H3LIS331DL и Raspberry Pi: 4 стъпки

Видео: Измерване на ускорението с помощта на H3LIS331DL и Raspberry Pi: 4 стъпки

Видео: Измерване на ускорението с помощта на H3LIS331DL и Raspberry Pi: 4 стъпки
Видео: Залил Дедов САМОГОН!! Mark2 1JZ-GTE раздает ДОЛГИ!! 2024, Ноември
Anonim
Image
Image

H3LIS331DL е високоефективен 3-осен линеен акселерометър с ниска мощност, принадлежащ към семейството „нано“, с цифров I²C сериен интерфейс. H3LIS331DL има избираеми от потребителя пълни скали от ± 100 g/± 200 g/± 400 g и е в състояние да измерва ускорения с изходни скорости на данни от 0,5 Hz до 1 kHz. Гарантирано е, че H3LIS331DL ще работи в разширен температурен диапазон от -40 ° C до +85 ° C.

В този урок ще демонстрираме взаимодействието на H3LIS331DL с Raspberry Pi, използвайки python като език за програмиране.

Стъпка 1: Изисква се хардуер:

Необходим хардуер
Необходим хардуер
Необходим хардуер
Необходим хардуер
Необходим хардуер
Необходим хардуер

Материалите, от които се нуждаем за постигане на целта ни, включват следните хардуерни компоненти:

1. H3LIS331DL

2. Малина Пи

3. I2C кабел

4. I2C щит за малиново пи

5. Ethernet кабел

Стъпка 2: Свързване на хардуера:

Хардуерно свързване
Хардуерно свързване
Хардуерно свързване
Хардуерно свързване

Разделът за свързване на хардуер основно обяснява необходимите кабелни връзки между сензора и малиновото пи. Осигуряването на правилни връзки е основната необходимост, докато работите върху всяка система за желания изход. И така, необходимите връзки са както следва:

H3LIS331DL ще работи през I2C. Ето примерната електрическа схема, демонстрираща как да свържете всеки интерфейс на сензора.

Извън кутията, дъската е конфигурирана за I2C интерфейс, като такава препоръчваме да използвате тази връзка, ако иначе не сте агностици. Всичко, от което се нуждаете, са четири проводника!

Изискват се само четири връзки Vcc, Gnd, SCL и SDA щифтове и те са свързани с помощта на I2C кабел.

Тези връзки са показани на снимките по -горе.

Стъпка 3: Python код за измерване на ускорението:

Python код за измерване на ускорението
Python код за измерване на ускорението

Предимството на използването на малинов pi е, че ви предоставя гъвкавостта на езика за програмиране, на който искате да програмирате платката, за да свържете интерфейса на сензора с нея. Използвайки това предимство на тази дъска, ние демонстрираме тук нейното програмиране в python. Python е един от най -лесните езици за програмиране с най -лесен синтаксис. Кодът на python за H3LIS331DL може да бъде изтеглен от нашата github общност, която е DCUBE Store.

Освен за улеснение на потребителите, ние обясняваме кода и тук:

Като първа стъпка от кодирането трябва да изтеглите библиотеката SMBus в случай на python, тъй като тази библиотека поддържа функциите, използвани в кода. Така че, за да изтеглите библиотеката, можете да посетите следната връзка:

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

Можете също да копирате работния код от тук:

внос smbus

време за импортиране

# Вземете I2C шина = smbus. SMBus (1)

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

# Изберете контролен регистър 1, 0x20 (32)

# 0x27 (39) Режим на включено захранване, Изходна скорост = 50 Hz# X, Y, Z-ос е разрешена

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

# H3LIS331DL адрес, 0x18 (24)# Изберете контролен регистър 4, 0x23 (35)

# 0x00 (00) Непрекъснато актуализиране, пълен избор на мащаб = +/- 100g

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

time.sleep (0.5)

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

# Прочетете данните обратно от 0x28 (40), 2 байта

# X-ос LSB, X-ос MSB

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

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

# Конвертирайте даннитеxAccl = data1 * 256 + data0

ако xAccl> 32767:

xAccl -= 65536

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

# Прочетете данните обратно от 0x2A (42), 2 байта

# Y-ос LSB, Y-ос MSB

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

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

# Конвертирайте данните

yAccl = данни1 * 256 + данни0

ако yAccl> 32767:

yAccl -= 65536

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

# Прочетете данните обратно от 0x2C (44), 2 байта

# Z-ос LSB, Z-ос MSB

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

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

# Конвертирайте данните

zAccl = данни1 * 256 + данни0

ако zAccl> 32767:

zAccl -= 65536

# Извеждане на данни на екрана

отпечатайте "Ускорение по ос X: %d" %xAccl

отпечатайте "Ускорение по оста Y: %d" %yAccl

отпечатайте "Ускорение по ос Z: %d" %zAccl

Кодът се изпълнява със следната команда:

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

Изходът на сензора е показан на горната снимка за справка на потребителя.

Стъпка 4: Приложения:

Приложения
Приложения

Акселерометрите като H3LIS331DL намират своето приложение най -вече в игрите и превключването на профилите на дисплея. Този сензорен модул се използва и в усъвършенстваната система за управление на захранването за мобилни приложения. H3LIS331DL е триаксиален цифров сензор за ускорение, който е интегриран с интелигентен контролер за прекъсвания, задействан от движение на чипа.

Препоръчано: