Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Робот, управляемый жестами, использующий Raspberry Pi

Вы когда-нибудь устали управлять всем с помощью кнопок? Подумал о том, чтобы управлять чем-то простыми движениями рук, сидя на диване? Если да, то вы попали в нужное место. В этом уроке мы собираемся управлять роботом, приводимым в движение двумя двигателями постоянного тока, простым движением руки. Существуют различные типы датчиков для обнаружения движения вашей руки, такие как датчики потока, акселерометры и другие датчики силы тяжести. Итак, для беспроводной передачи мы будем использовать модуль RF 434, который передает 4-битные данные. 4-битные данные означают, что вы можете передавать 16 различных комбинаций, то есть от 0000 до 1111. Далее в этом руководстве мы будем использовать кодировщик и декодер, чтобы избежать помех в радиоинтерфейсе. Драйвер двигателя будет управлять двигателями, используя данные декодера.

Робот, управляемый жестами, использующий Raspberry Pi

Мы используем Raspberry Pi на стороне передатчика для анализа данных датчика и передачи комбинации данных драйверу двигателя, чтобы соответствующим образом управлять двигателями, чтобы робот мог парить. Мы будем использовать батарею 12 В на роботе для питания модуля декодера, модуля приемника и двигателей. На стороне передатчика датчики и модуль кодировщика передатчика питаются от самого Raspberry Pi.

Компоненты

Записи с 1 по 9 из 9 записей

Робот, управляемый жестами, использующий Raspberry Pi - блок-схема

Конец передатчика

Робот, управляемый жестами, использующий Raspberry Pi - конец передатчика

На стороне передатчика у нас есть акселерометр, raspberry pi, модуль кодировщика и радиочастотный передатчик. Данные о жестах передаются от акселерометра к Raspberry Pi, где они обрабатываются для определения движения робота, а данные о движении передаются в модуль кодировщика через контакты GPIO. Модуль кодировщика кодирует данные и передает их в радиоинтерфейс с помощью РЧ-передатчика.

Робот, управляемый жестами, использующий Raspberry Pi - сторона приемника

Робот, управляемый жестами, использующий Raspberry Pi - на стороне приемника

РЧ-приемник со стороны приемника получает данные из радиоинтерфейса и передает их модулю декодера. Модуль декодера декодирует полученные данные и передает их драйверу двигателя L293D. От драйвера двигателя двигатели управляются в соответствии с данными жестов.

Акселерометр

Ускорение - это измерение изменения скорости или скорости, деленной на время. Например, если автомобиль движется из состояния покоя с 0 до 60 км / час за 10 секунд, он ускоряется со скоростью 6 км / час. Так при чем здесь жест рукой?

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

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

Акселерометры - это маломощные устройства, которые выдают ускорение в виде аналогового напряжения, а некоторые акселерометры - в цифровой форме. Аналоговые акселерометры, такие как ADXL 335, дают вам 3 аналоговых выхода X, Y, Z на основе оси вашего движения. Вы можете преобразовать эти аналоговые напряжения в цифровые с помощью АЦП. Цифровые акселерометры, такие как ADXL345, будут обмениваться данными через протоколы SPI или I2C. У этого меньше шума и самый надежный

Есть еще один датчик MPU6050, в котором есть как акселерометр, так и гироскоп. Его также можно использовать вместо акселерометра. Адрес ADXL345 и MPU6050 отличается при подключении в режиме I2C с raspberry pi, для ADXL 0x53 и MPU это 0x68. В этом руководстве я объясню, как использовать как ADXL345, так и MPU6050.

Интерфейсный акселерометр

Теперь мы подключим наши акселерометры ADXL 345 и MPU 6050 к нашему Raspberry Pi и проверим показания датчика. Я считаю, что на вашем Raspberry Pi установлена ​​последняя версия операционной системы и Python, так как мы собираемся использовать здесь код Python.

Давайте подключим ADXL345 / MPU6050 к нашему Raspberry Pi. Здесь мы собираемся использовать протокол I2C для связи между устройствами. В протоколе I2C данные передаются через SDA (последовательные данные) и часы в SCL (последовательные часы). Это асинхронный полудуплексный протокол связи. Мастер контролирует весь процесс, а подчиненные реагируют в соответствии с командами мастера. Скорость передачи данных определяется допустимой частотой ведомого устройства. Здесь всего 4 соединения между ведущим и ведомым устройством:3V, Gnd, SCL и SDA.

Цифровой акселерометр ADXL345

На схеме выводов GPIO вы можете увидеть выводы SDA и SCL на Rpi и подключить его к выводам ADXL345 / MPU6050 SDA и SCL соответственно. Включите датчик с помощью самого RPi. Теперь соединения выполнены.

Заголовок Raspberry pi 3 GPIO

Перед тестированием датчика давайте установим python-smbus для протокола I2c в rpi и включим протокол I2C в нашем RPi.

Установка smbus:
sudo apt-get install python-smbus i2c-tools
Включение I2C в RPi:
sudo raspi-config
Перейдите к параметрам интерфейса и включите протокол I2c.

Затем включите этими командами строки спецификации i2c.
sudo nano / etc / modules
Добавьте эти строки
i2c-bcm2708
i2c-dev

Если вы используете старый rpi, удалите i2c из резервного списка с помощью этих команд
sudo nano /etc/modprobe.d/raspi-blacklist.conf
Комментарий (#) черный список i2c-bcm2708
перезагрузка sudo
Проверьте соединение с помощью этой команды. Это покажет адрес датчика, подключенного к нашему пи.
sudo i2c detect -y 1
Adxl будет находиться в 0x53, а Mpu будет найден в 0x68 или 0x69

Теперь мы загрузим предварительно написанную библиотеку для ADXL345 для pi на Python с Github и протестируем вывод датчика. Используйте эти команды.
git clone https://github.com/pimoroni/adxl345-python
cd adxl345-python
sudo python example.py

Example.py - это программа, которая выводит значения X, Y и Z, как показано ниже.

Мы можем изменить эту программу или использовать ее для нашего проекта.

Для MPU6050 программа pimoroni не работает, поэтому мы будем использовать другой модуль python из github.

Используя эти команды.
git clone https://github.com/Tijndagamer/mpu6050.git

cd mpu6050

установка python setup.py
Для проверки подключения датчика и адреса откройте терминал и введите команду ниже. Он покажет адрес датчика 0x68 или 0x69, как показано ниже.

Чтобы проверить данные нашего датчика, перейдите в редактор Python и введите эти команды только по одной, чтобы увидеть выходные данные датчика.
from mpu6050 import mpu6050

mympu =mpu6050 (0x69)

Data =mympu.get_accel_data ()

На шаг дальше вы теперь можете определить пороговые значения 4 различных положений для движения вправо, влево, вперед и назад и записать их. Калибровку можно выполнить на основе значений вашего датчика в разных положениях, например, удерживая его в положении, которое вы хотите для движения вперед, и запишите 5 аналогичных значений и округлите их до порогового значения, чтобы, если датчик пересекает округленное значение, оператор условия в программе может быть включен. Аналогичным образом откалибруйте его для всех других движений, таких как влево, вправо, назад и остановка.

Подробнее…

Робот, управляемый жестами, использующий Raspberry Pi

Текущий проект / сообщение также можно найти с помощью:


Производственный процесс

  1. Температурный профиль Raspberry Pi с использованием LabVIEW
  2. Аквапоника под управлением Raspberry Pi
  3. Многоканальный профессиональный регистратор данных на Raspberry Pi - Часть 1
  4. Датчик температуры Python и Raspberry Pi
  5. Удаленный мониторинг погоды с помощью Raspberry Pi
  6. SensorTag для Blynk с использованием Node-RED
  7. Датчик движения с использованием Raspberry Pi
  8. Робот, использующий Raspberry Pi и Bridge Shield
  9. Робот-бокс для компакт-дисков Raspberry Pi
  10. Робот Raspberry Pi, управляемый через Bluetooth