Визуализация 3D-движения с датчиком IMU: практическое руководство
Компоненты и материалы
| Компонент | Количество |
|---|---|
| Arduino UNO | 1 |
| Инерциальный измерительный блок (IMU) 6 степеней свободы (MPU-6050) | 1 |
| Перемычки (generic) | 1 |
Приложения и онлайн-сервисы
- Arduino IDE
- Processing IDE
О проекте
Прежде чем перейти к программной части, соберем наши аппаратные комплекты.
Что такое датчик MPU-6050
Устройства MPU-6050 объединяют 3-осевой гироскоп и 3-осевой акселерометр на одном кристалле кремния, вместе с встроенным Цифровым процессором движения (DMP), который обрабатывает сложные 6-осевые алгоритмы MotionFusion. Теперь вы понимаете значение 6DOF — 6 степеней свободы.
Для деталей о схеме подключения и настройке оборудования обратитесь к моему предыдущему блогу.
Теперь перейдем к программе Processing, которая обеспечит 3D-визуализацию этого датчика движения.
Необходимое ПО:
- Processing IDE
Учитывая, что у вас уже установлен Arduino IDE, наличие двух отдельных IDE может немного сбить с толку. Не паникуйте. Следуйте шагам ниже, и все сомнения развяжутся!
Processing довольно похож на Arduino IDE за исключением нескольких специализированных функций. Вы увидите влияние/сходство в Processing IDE.
Рисунки 1 и 2 прояснят мои утверждения.
Теперь, когда вы установили Processing IDE, вам нужно загрузить специальную библиотеку «Toxi» для целей обработки. Найти файл «Toxi» в интернете может быть очень утомительно. Поэтому я упростил задачу, загрузив его на свой GitHub. Нажмите на эту ссылку и скачайте файл «toxiclibs-complete-0020». Затем распакуйте папку. Скопируйте папку «toxiclibs-complete-0020» и вставьте её в папку «libraries» Processing. Не можете найти «папку libraries»? Тогда создайте её! Да, если не найдете папку «libraries», создайте папку и назовите её «libraries». Теперь вставьте папку «toxiclibs-complete-0020» внутрь. После выполнения этих шагов запустите Processing IDE. Время кодировать!
Для 3D-визуализации сначала нужно загрузить код Arduino для MPU-6050 (извлеките .ino файл из папки MPU6050_DMP6.rar). После этого внесите следующие изменения:
Закомментируйте строку:
#define OUTPUT_READABLE_YAWPITCHROLL
на:
// #define OUTPUT_READABLE_YAWPITCHROLL
Раскомментируйте строку:
//#define OUTPUT_TEAPOT
на:
#define OUTPUT_TEAPOT
Затем откройте пример Processing для MPU-6050. В панели инструментов нажмите Файл → Открыть. Перейдите в папку, где установлена библиотека MPU-6050 для Arduino. Легко найти пример Processing: MPU6050 → Examples → MPU6050_DMP6 → Processing → MPUTeapot.
Как и в случае с Arduino IDE, проверьте последовательный порт, определенный в коде. По умолчанию строка определяет порт для Linux/Mac пользователей:
String portName = "/dev/ttyUSB1";
Вам нужно изменить String portName на порт, к которому подключен ваш Arduino. Смотрите Рисунок 3.
Для Windows пользователей закомментируйте эту строку:
//String portName = "/dev/ttyUSB1";
Раскомментируйте эту строку:
//String portName = "COM15";
на:
String portName = "COM15";
Замените «COM15» на COM-порт, к которому подключен ваш Arduino (проверьте в Arduino: Инструменты → Порт). Настройка завершена, осталось дело за малым!
Загрузите код Arduino (MPU6050_DMP6) через Arduino. Важно: НЕ ОТКРЫВАЙТЕ МОНИТОР ПОСЛЕДОВАТЕЛЬНОГО ПОРТА во время процесса. (Почему? Потому что мы будем визуализировать код в Processing IDE, а не в Arduino IDE).
Затем запустите код Processing (MPUTeapot), нажав кнопку с символом «play». Вы увидите небольшой самолетообразный объект. Подождите около 10-12 секунд, пока значения MPU-6050 стабилизируются. После этого вы увидите 3D-модель, движущуюся в соответствии с датчиком MPU-6050. Обратитесь к GIF ниже. Для лучшего понимания перейдите на YouTube.
В следующем уроке спроектируйте свои собственные кастомизированные приборы полетного симулятора.
Пожалуйста, оставляйте комментарии ниже, если у вас есть проблемы с настройкой оборудования/программного обеспечения.
Код
Полный код проекта
Скачайте эту папку и следуйте инструкциям, указанным в этом руководстве: https://github.com/AritroMukherjee/MPU5060sensor/blob/master/MPU6050.zip
Схемы
Следуйте моему предыдущему посту в блоге для пошагового руководства по настройке IMU (MPU-6050) с Arduino. Ссылка: https://www.hackster.io/Aritro/getting-started-with-imu-6-dof-motion-sensor-96e066
Производственный процесс
- Logic-X запускает новый бренд COTS сенсорной обработки для Edge AI
- Датчик движения SmartThings на компьютерном зрении с Raspberry Pi 3
- Надёжный домашний мониторинг с Home Assistant на Raspberry Pi: движение, алермы и видеозахват
- Построение DIY инфракрасного датчика движения для Raspberry Pi — пошаговое руководство
- Управление светодиодом с PIR-датчиком движения на Raspberry Pi
- Создайте домашний монитор температуры на Raspberry Pi с MCP9808, InfluxDB и Grafana
- Мастерство GPIO Raspberry Pi: подключение PIR-датчика движения на B+/Model 2
- Подключение, калибровка и программирование PIR-датчика HC‑SR501 с Raspberry Pi
- Датчик эмоций и ЭЭГ: низкобюджетное железо для детекции эмоций в реальном времени
- Продвинутый наладонный кожный сенсор переводит движения пальцев в реальный 3D виртуальный рукой