Оглавление:

Raspberry Pi - 3-осевой акселерометр ADXL345, учебное пособие по Python: 4 шага
Raspberry Pi - 3-осевой акселерометр ADXL345, учебное пособие по Python: 4 шага

Видео: Raspberry Pi - 3-осевой акселерометр ADXL345, учебное пособие по Python: 4 шага

Видео: Raspberry Pi - 3-осевой акселерометр ADXL345, учебное пособие по Python: 4 шага
Видео: Учебное пособие по Python для 3-осевого акселерометра Raspberry Pi ADXL345 2024, Июль
Anonim

ADXL345 - это небольшой, тонкий, сверхмалопотребляющий 3-осевой акселерометр с высоким разрешением (13 бит) и измерением до ± 16 г. Данные цифрового вывода форматируются как 16-битное дополнение до двоек и доступны через цифровой интерфейс I2C. Он измеряет статическое ускорение свободного падения в приложениях для измерения наклона, а также динамическое ускорение, возникающее в результате движения или удара. Его высокое разрешение (3,9 мг / младший значащий бит) позволяет измерять изменения наклона менее 1,0 °. Вот это демонстрация с Raspberry Pi с использованием кода Python.

Шаг 1: Что вам нужно..

Что вам нужно..!!
Что вам нужно..!!
Что вам нужно..!!
Что вам нужно..!!

1. Raspberry Pi

2. ADXL345

3. Кабель I²C

4. I²C Shield для Raspberry Pi

5. Кабель Ethernet.

Шаг 2: Подключение:

Связь
Связь
Связь
Связь
Связь
Связь
Связь
Связь

Возьмите щит I2C для raspberry pi и осторожно наденьте его на контакты gpio raspberry pi.

Затем подключите один конец кабеля I2C к датчику ADXL345, а другой конец - к экрану I2C.

Также подключите кабель Ethernet к Pi, или вы можете использовать модуль Wi-Fi.

Подключения показаны на картинке выше.

Шаг 3: Код:

Код
Код

Код Python для ADXL345 можно загрузить из нашего репозитория GitHub - Dcube Store.

Вот ссылка на то же самое:

github.com/DcubeTechVentures/ADXL345..

Мы использовали библиотеку SMBus для кода Python, шаги по установке SMBus на Raspberry Pi описаны здесь:

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

Вы также можете скопировать код отсюда, он выглядит следующим образом:

# Распространяется по свободной лицензии.

# Используйте его как хотите, для получения прибыли или бесплатно, при условии, что он соответствует лицензиям на связанные с ним работы.

# ADXL345

# Этот код разработан для работы с мини-модулем ADXL345_I2CS I2C, доступным в Dcube Store.

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

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

# Получить шину I2C

автобус = smbus. SMBus (1)

# ADXL345 адрес, 0x53 (83)

# Выбрать регистр пропускной способности, 0x2C (44) # 0x0A (10) Нормальный режим, выходная скорость передачи данных = 100 Гц

bus.write_byte_data (0x53, 0x2C, 0x0A)

# ADXL345 адрес, 0x53 (83)

# Выбрать регистр управления мощностью, 0x2D (45)

# 0x08 (08) Отключение автоматического перехода в спящий режим

bus.write_byte_data (0x53, 0x2D, 0x08)

# ADXL345 адрес, 0x53 (83)

# Выбрать регистр формата данных, 0x31 (49)

# 0x08 (08) Самотестирование отключено, 4-проводный интерфейс

# Полное разрешение, диапазон = +/- 2g

bus.write_byte_data (0x53, 0x31, 0x08)

time.sleep (0,5)

# ADXL345 адрес, 0x53 (83)

# Считать данные обратно из 0x32 (50), 2 байта

# X-Axis LSB, X-Axis MSB

data0 = bus.read_byte_data (0x53, 0x32)

data1 = bus.read_byte_data (0x53, 0x33)

# Преобразовать данные в 10-битные

xAccl = ((данные1 & 0x03) * 256) + данные0

если xAccl> 511:

xAccl - = 1024

# ADXL345 адрес, 0x53 (83)

# Считать данные обратно из 0x34 (52), 2 байта

# Y-Axis LSB, Y-Axis MSB

data0 = bus.read_byte_data (0x53, 0x34)

data1 = bus.read_byte_data (0x53, 0x35)

# Преобразовать данные в 10-битные

yAccl = ((данные1 & 0x03) * 256) + данные0

если yAccl> 511:

yAccl - = 1024

# ADXL345 адрес, 0x53 (83)

# Считать данные обратно из 0x36 (54), 2 байта

# Z-Axis LSB, Z-Axis MSB

data0 = bus.read_byte_data (0x53, 0x36)

data1 = bus.read_byte_data (0x53, 0x37)

# Преобразовать данные в 10-битные

zAccl = ((данные1 & 0x03) * 256) + данные0

если zAccl> 511:

zAccl - = 1024

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

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

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

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

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

ADXL345 - это небольшой, тонкий, 3-осевой акселерометр со сверхнизким энергопотреблением, который можно использовать в мобильных телефонах, медицинских приборах и т. Д. Его применение также включает игровые и указывающие устройства, промышленные приборы, персональные навигационные устройства и защиту жесткого диска (HDD).

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