Оглавление:

3-осевой акселерометр, ADXL345 с Raspberry Pi с использованием Python: 6 шагов
3-осевой акселерометр, ADXL345 с Raspberry Pi с использованием Python: 6 шагов

Видео: 3-осевой акселерометр, ADXL345 с Raspberry Pi с использованием Python: 6 шагов

Видео: 3-осевой акселерометр, ADXL345 с Raspberry Pi с использованием Python: 6 шагов
Видео: Домашняя автоматизация с использованием акселерометра 2024, Ноябрь
Anonim
3-осевой акселерометр, ADXL345 с Raspberry Pi с использованием Python
3-осевой акселерометр, ADXL345 с Raspberry Pi с использованием Python

Подумайте о гаджете, который может проверить точку, в которой ваш внедорожник наклонен, чтобы задержаться. Разве это не было бы приятно, если кто-то настроится, когда есть вероятность опрокидывания? Очевидно да. Он будет по-настоящему полезен тем, кто любит походы в горы и командировки.

Без сомнения, настал поистине блестящий период продвинутой расчетной оценки IoT. Как любители гаджетов и программирования, мы полагаем, что Raspberry Pi, ПК с микролинуксией, обработал творческие способности людей в целом, неся с собой взрыв инновационных методологий. Итак, каковы возможные результаты того, что мы можем сделать, если рядом будут Raspberry Pi и 3-осевой акселерометр? Мы должны открыть! В этой задаче мы будем определять ускорение по 3 осям, X, Y и Z, используя Raspberry Pi и ADXL345, 3-осевой акселерометр. Итак, в этой экскурсии мы должны понаблюдать, чтобы создать основу для измерения трехмерного ускорения вверх или G-Force.

Шаг 1. Базовое оборудование, которое нам необходимо

Базовое оборудование, которое нам требуется
Базовое оборудование, которое нам требуется
Базовое оборудование, которое нам требуется
Базовое оборудование, которое нам требуется
Базовое оборудование, которое нам требуется
Базовое оборудование, которое нам требуется

Для нас проблем было меньше, так как у нас есть масса вещей, над которыми можно поработать. Тем не менее, мы знаем, насколько сложно для других собрать нужную деталь в идеальное время из подходящего места, и это оправдано независимо от каждой копейки. Так что мы поможем вам во всех регионах. Прочтите следующее, чтобы получить полный список деталей.

1. Raspberry Pi

Первым шагом было приобретение платы Raspberry Pi. Этот крошечный компьютер с низким энергопотреблением обеспечивает дешевую и, как правило, простую основу для предприятий электроники, Интернета вещей (IoT), умных городов и школьного образования.

2. I2C Shield для Raspberry Pi

Главное, чего действительно не хватает Raspberry Pi, - это порт I²C. Таким образом, разъем TOUTPI2 I²C дает вам смысл использовать Rasp Pi с НЕСКОЛЬКИМИ устройствами I²C. Он доступен в магазине DCUBE.

3. 3-осевой акселерометр, ADXL345

ADXL345, производимый компанией Analog Devices, представляет собой маломощный 3-осевой акселерометр с 13-битным измерением высокого разрешения при давлении до ± 16g. Мы приобрели этот датчик в магазине DCUBE.

4. Соединительный кабель

У нас был соединительный кабель I2C, доступный в магазине DCUBE.

5. Кабель Micro USB

Самым незначительным, но самым строгим с точки зрения энергопотребления является Raspberry Pi! Самый простой способ включить Raspberry Pi - использовать кабель Micro USB.

6. Веб-доступ - это необходимость

Доступ в Интернет можно обеспечить через кабель Ethernet (LAN), связанный с локальной сетью и Интернетом. С другой стороны, вы можете подключиться к беспроводной сети с помощью беспроводного USB-ключа, который потребует настройки.

7. Кабель HDMI / удаленный доступ

Имея встроенный кабель HDMI, вы можете подключить его к цифровому телевизору или монитору. Нужно сэкономить деньги! Raspberry Pi можно удаленно подключить к использованию различных стратегий, таких как SSH и доступ через Интернет. Вы можете использовать исходное программное обеспечение PuTTYopen.

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

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

Сделайте схему согласно появившейся схеме. Нарисуйте план и сознательно следуйте конфигурации.

Подключение Raspberry Pi и I2C Shield

Прежде всего, возьмите Raspberry Pi и найдите на нем I2C Shield. Осторожно прижмите экран к контактам GPIO Pi, и мы закончили с этой прогрессией, такой простой, как круговая (см. Оснастку).

Подключение сенсора и Raspberry Pi

Возьмите датчик и соедините с ним кабель I2C. Для правильной работы этого кабеля помните, что выход I2C ВСЕГДА связан с входом I2C. То же самое необходимо сделать для Raspberry Pi с экраном I2C, установленным над контактами GPIO.

Мы рекомендуем использовать кабель I2C, так как он опровергает требование внимательно изучать распиновку, пайку и недомогание, вызванное даже малейшей ошибкой. С помощью этого стандартного кабеля Plug and Play вы можете легко вводить, заменять устройства или добавлять другие устройства в приложение. Это делает вещи несложными.

Примечание. Коричневый провод должен надежно соединяться с заземлением (GND) между выходом одного устройства и входом другого устройства

Интернет-сеть - ключ к успеху

Чтобы наше предприятие было успешным, нам требуется подключение к Интернету для Raspberry Pi. Для этого у вас есть альтернативы, такие как подключение кабеля Ethernet (LAN) к домашней системе. Кроме того, как вариант, полезный способ - использовать разъем Wi-Fi. Иногда для этого вам понадобится драйвер, чтобы заставить его работать. Так что склоняйтесь к тому, что изображено на Linux.

Источник питания

Подключите кабель Micro USB к разъему питания Raspberry Pi. Зажги его, и мы готовы идти.

Подключение к экрану

Мы можем связать кабель HDMI с другим экраном. В некоторых случаях вам нужно добраться до Raspberry Pi, не подключая его к экрану, или вам может потребоваться просмотреть некоторые данные с него из другого места. Очевидно, существуют новаторские и финансово подкованные подходы к работе как таковой. Один из них - SSH (удаленный вход в командную строку). Вы также можете использовать для этого программное обеспечение PuTTY.

Шаг 3. Кодирование Python для Raspberry Pi

Кодирование Python для Raspberry Pi
Кодирование Python для Raspberry Pi

Код Python для датчика Raspberry Pi и ADXL345 доступен в нашем репозитории Github.

Прежде чем переходить к коду, убедитесь, что вы прочитали рекомендации, приведенные в документе Readme, и настройте Raspberry Pi в соответствии с ним. Он просто остановится на минуту, чтобы сделать это как таковое.

Акселерометр - это устройство, которое измеряет правильное ускорение; собственное ускорение - это не то же самое, что координатное ускорение (скорость изменения скорости). Одно- и многоосные модели акселерометра доступны для определения величины и направления надлежащего ускорения в виде векторной величины и могут использоваться для определения ориентации, координат ускорения, вибрации, ударов и падения в резистивной среде.

Код прост перед вами, он имеет самую простую структуру, которую вы можете себе представить, и у вас не должно быть никаких проблем.

# Распространяется по свободной лицензии # Используйте его любым способом, коммерческим или бесплатным, при условии, что он соответствует лицензиям на связанные с ним работы. # ADXL345 # Этот код разработан для работы с мини-модулем ADXL345_I2CS I2C, доступным на сайте dcubestore.com # https://dcubestore.com/product/adxl345-3-axis-accelerometer-13-bit-i%C2%B2c-mini -модуль /

импортировать 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-проводное соединение interface # Полное разрешение, диапазон = +/- 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 = ((data1 & 0x03) * 256) + data0, если xAccl> 511: xAccl - = 1024

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

# Считать данные обратно из 0x34 (52), 2 байта # Младший бит по оси Y, MSB по оси Y data0 = bus.read_byte_data (0x53, 0x34) data1 = bus.read_byte_data (0x53, 0x35)

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

yAccl = ((data1 & 0x03) * 256) + data0, если 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 = ((data1 & 0x03) * 256) + data0, если zAccl> 511: zAccl - = 1024

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

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

Шаг 4: Практичность Кодекса

Практичность Кодекса
Практичность Кодекса

Загрузите (или выполните git pull) код с Github и откройте его в Raspberry Pi.

Выполните команды для компиляции и загрузки кода в терминал и просмотрите результат на мониторе. Через несколько секунд он покажет все параметры. Убедившись, что все работает легко, вы можете взять на себя более серьезную задачу.

Шаг 5. Приложения и функции

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

Шаг 6: Заключение

Надеюсь, эта задача побудит к дальнейшим экспериментам. Этот датчик I2C необычайно гибкий, дешевый и доступный. Поскольку это в значительной степени непостоянная система, есть интересные способы расширить эту задачу и даже улучшить ее.

Например, вы можете начать с идеи инклинометра, используя ADXL345 и Raspberry Pi. В приведенном выше проекте мы использовали базовые расчеты. Вы можете импровизировать код для значений G, углов наклона (или наклона), высоты или понижения объекта относительно силы тяжести. Затем вы можете проверить дополнительные параметры, такие как углы поворота для крена (ось спереди назад, X), тангажа (ось из стороны в сторону, Y) и рыскания (вертикальная ось, Z). Этот акселерометр отображает 3-D G-Force. Таким образом, вы можете использовать этот датчик по-разному.

Для вашего удобства на YouTube есть увлекательные видео-инструкции, которые могут помочь в вашем расследовании. Доверие к этому предприятию побуждает к дальнейшим исследованиям. Продолжайте созерцать! Не забывайте искать, так как постоянно появляется все больше.

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