Оглавление:

Измерение ускорения с помощью H3LIS331DL и Raspberry Pi: 4 шага
Измерение ускорения с помощью H3LIS331DL и Raspberry Pi: 4 шага

Видео: Измерение ускорения с помощью H3LIS331DL и Raspberry Pi: 4 шага

Видео: Измерение ускорения с помощью H3LIS331DL и Raspberry Pi: 4 шага
Видео: Product Showcase: SparkFun Triple Axis Accelerometer Breakout 2024, Июль
Anonim
Image
Image

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

В этом руководстве мы собираемся продемонстрировать взаимодействие H3LIS331DL с Raspberry Pi, используя python в качестве языка программирования.

Шаг 1: Требуемое оборудование:

Требуемое оборудование
Требуемое оборудование
Требуемое оборудование
Требуемое оборудование
Требуемое оборудование
Требуемое оборудование

Материалы, которые нам нужны для достижения нашей цели, включают следующие компоненты оборудования:

1. H3LIS331DL

2. Raspberry Pi

3. Кабель I2C

4. I2C Shield для raspberry pi

5. Кабель Ethernet.

Шаг 2: Подключение оборудования:

Подключение оборудования
Подключение оборудования
Подключение оборудования
Подключение оборудования

В разделе «Подключение оборудования» в основном объясняются проводные соединения, необходимые между датчиком и Raspberry Pi. Обеспечение правильных соединений является основной необходимостью при работе с любой системой для достижения желаемого результата. Итак, необходимые подключения следующие:

H3LIS331DL будет работать по I2C. Вот пример схемы подключения, демонстрирующий, как подключить каждый интерфейс датчика.

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

Требуются только четыре соединения, выводы Vcc, Gnd, SCL и SDA, которые подключаются с помощью кабеля I2C.

Эти соединения показаны на рисунках выше.

Шаг 3: Код Python для измерения ускорения:

Код Python для измерения ускорения
Код Python для измерения ускорения

Преимущество использования raspberry pi заключается в том, что он обеспечивает гибкость языка программирования, на котором вы хотите запрограммировать плату, для взаимодействия с ней датчика. Используя это преимущество этой платы, мы демонстрируем ее программирование на питоне. Python - один из самых простых языков программирования с самым простым синтаксисом. Код Python для H3LIS331DL можно загрузить в нашем сообществе github, которое называется DCUBE Store.

Помимо удобства пользователей, мы также объясняем код здесь:

В качестве первого шага кодирования вам необходимо загрузить библиотеку SMBus в случае python, потому что эта библиотека поддерживает функции, используемые в коде. Итак, чтобы скачать библиотеку, вы можете перейти по следующей ссылке:

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

Вы также можете скопировать рабочий код отсюда:

импортировать smbus

время импорта

# Получить I2C busbus = smbus. SMBus (1)

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

# Выбрать управляющий регистр 1, 0x20 (32)

# 0x27 (39) Режим включения питания, скорость вывода данных = 50 Гц # Оси X, Y, Z включены

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

# H3LIS331DL адрес, 0x18 (24) # Выбрать управляющий регистр 4, 0x23 (35)

# 0x00 (00) Непрерывное обновление, выбор полной шкалы = +/- 100 г

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

time.sleep (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)

# Конвертируем данные xAccl = 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 = данные1 * 256 + данные0

если 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 = данные1 * 256 + данные0

если zAccl> 32767:

zAccl - = 65536

# Выводить данные на экран

print "Ускорение по оси X:% d"% xAccl

print "Ускорение по оси Y:% d"% yAccl

print "Ускорение по оси Z:% d"% zAccl

Код выполняется с помощью следующей команды:

$> питон H3LIS331DL.py gt; python H3LIS331DL.py

Выходные данные датчика показаны на рисунке выше для справки пользователя.

Шаг 4: Приложения:

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

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

Рекомендуемые: