Оглавление:

Postshirt: определение позы в реальном времени: 9 шагов
Postshirt: определение позы в реальном времени: 9 шагов

Видео: Postshirt: определение позы в реальном времени: 9 шагов

Видео: Postshirt: определение позы в реальном времени: 9 шагов
Видео: Распаковка - носимая футболка с журналом T-Post 2024, Ноябрь
Anonim
Image
Image
Postshirt: обнаружение осанки в реальном времени
Postshirt: обнаружение осанки в реальном времени

Postshirt - это беспроводная система определения положения в реальном времени, которая передает и классифицирует данные акселерометра от Adafruit Feather в приложение Android через Bluetooth. Полная система может обнаруживать в реальном времени, если у пользователя плохая осанка, и создает push-уведомление, когда пользователь начинает сутулиться, обнаружение также работает во время ходьбы.

Запасы

Электроника

1 х Android смартфон

1 х перо адафрута

1 литий-ионный полимерный аккумулятор - 3,7 В 100 мАч (опционально для беспроводного использования)

2 трехосных акселерометра ADXL335

Материалы

Монтажный провод

Рулон ленты

Шаг 1. Установите необходимые IDE и библиотеки

Перо адафрута

Сначала установите Arduino IDE, а затем следуйте инструкциям по установке библиотеки Adafruit nRF51 BLE.

Блокнот Jupyter

Сначала установите Jupyter Notebook, а затем следующие необходимые библиотеки

  • https://scikit-learn.org/stable/
  • https://github.com/nok/sklearn-porter

Android

Установить Android Studio

Код проекта

Загрузите весь код проекта с GitHub

Шаг 2. Подключите акселерометры к перышку

Подключите акселерометры к перышку
Подключите акселерометры к перышку
Подключите акселерометры к перу
Подключите акселерометры к перу

Для считывания данных с ADXL335 подключите соединительный провод к контактам Vin, Ground, Xout, Yout и Zout. Для обоих акселерометров подключите другие концы проводов Vin к контакту 3V на Feather, а другие концы контактов заземления - к контакту заземления на Feather. Подключите провода Xout, Yout и Zout первого акселерометра к контактам A0, A1 и A2 на Feather. Подключите провода Xout, Yout и Zout второго акселерометра к контактам A3, A4 и A5 на Feather.

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

Шаг 3: прикрепите акселерометры к рубашке

Прикрепите акселерометры к рубашке
Прикрепите акселерометры к рубашке

С помощью ленты прикрепите акселерометры к задней части рубашки. Акселерометр, подключенный к контактам A0-2, должен быть расположен горизонтально по центру в середине нижней части спины. Акселерометр, подключенный к контактам A3-5, должен располагаться горизонтально по центру задней части шеи. Оба акселерометра должны быть выровнены так, чтобы штифты находились на нижней стороне, а датчики должны быть приклеены лентой и закреплены на рубашке.

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

Шаг 4: Запуск кода на Arduino

Запуск кода на Arduino
Запуск кода на Arduino

Чтобы начать сбор данных на Feather, запустите Arduino IDE и откройте файл GestureDataSender в разделе Arduino кода проекта. Открыв этот файл, установите плату и используемый порт, а затем выберите «Проверить» и «Загрузить», чтобы загрузить код в Feather.

Шаг 5. Запуск кода на Android

Запуск кода на Android
Запуск кода на Android

Чтобы запустить приложение на Android, сначала запустите Android Studio, а затем выберите вариант открытия существующего проекта Android. Перейдите к коду проекта и выберите папку «Android». Android Studio потребуется время для синхронизации файлов проекта и может потребоваться установка некоторых необходимых библиотек, примите эти параметры. Когда проект будет готов, подключите Android-устройство к компьютеру и выберите опцию запуска в верхней части окна. Выберите устройство из появившейся подсказки, а затем дайте возможность приложению встроиться в устройство.

Шаг 6: Проверка подключения сигнала Bluetooth

Тестирование сигнального соединения Bluetooth
Тестирование сигнального соединения Bluetooth
Тестирование сигнального соединения Bluetooth
Тестирование сигнального соединения Bluetooth
Тестирование сигнального соединения Bluetooth
Тестирование сигнального соединения Bluetooth

После открытия приложения убедитесь, что Feather включено, а затем выберите Adafruit Bluefruit LE из списка устройств, который отображается на телефоне. Подождите, пока устройство подключится, если подключение не удается в первый раз, повторите попытку подключения, прежде чем выполнять другие шаги отладки. После подключения устройства выберите модуль «Детектор положения», который при правильной работе будет отображать график обновления в реальном времени, а также текущие прогнозы позы и движения. Чтобы проверить, правильно ли Arduino передает данные датчика, переместите два акселерометра в случайном направлении и проверьте, все ли линии на графике изменяются. Если некоторые линии остаются постоянно плоскими, убедитесь, что акселерометры правильно подключены к Feather. Если все работает, наденьте рубашку и проверьте, правильно ли распознает осанку. Поздравляю! Вы успешно настроили носимое устройство для определения позы. Продолжайте читать эту инструкцию, чтобы узнать, как создать свой собственный набор данных и настроить собственное определение положения тела.

Шаг 7: Сбор ваших собственных данных

Сбор ваших данных
Сбор ваших данных
Сбор ваших данных
Сбор ваших данных

Чтобы собрать собственные данные, вернитесь на экран выбора модуля и откройте модуль Data Recorder. Как только этот экран откроется, заполните метку для данных, которые вы собираете; для того, чтобы легко обучаться на ваших данных, вы должны включать слово «хорошая» в название любых записей с хорошей осанкой и «плохая» в любых записях с осанкой. Чтобы начать сбор, нажмите кнопку «Собрать данные» и выполните намеченное действие, когда вы закончите, нажмите кнопку еще раз, чтобы закончить и сохранить данные. Все записанные данные будут храниться в папке с именем «GestureData» в папке документов вашей файловой системы. Когда вы закончите запись всех ваших данных, скопируйте файлы на свой компьютер для обучения модели.

Шаг 8: обучение ваших данных на Jupyter Notebook

Обучение ваших данных на Jupyter Notebook
Обучение ваших данных на Jupyter Notebook
Обучение ваших данных на Jupyter Notebook
Обучение ваших данных на Jupyter Notebook

Исходный код проекта содержит исходные данные, используемые для обучения, в папке «data» в разделе Jupyter Notebook, для обучения собственных данных удалите все файлы в этой папке, а затем скопируйте свои собственные данные в папку. Затем запустите Jupyter Notebook и откройте PostureDetectorTrainer.ipynb. Эта записная книжка предназначена для автоматического разделения любых файлов в папке данных на хорошее и плохое положение, а затем для обучения линейной SVM классификации для обучения модели, просто выберите раскрывающийся список «Ячейка» и выберите «Выполнить все». Записью может потребоваться некоторое время для запуска, но после завершения прокрутки до точки, которая обеспечивает точность прогнозирования положения для модели, если точность низкая, вы можете убедиться, что ваши предыдущие записи являются точными и непротиворечивыми. Если результаты выглядят хорошо, перейдите к следующей ячейке, в которой будет создан класс Java. Прокрутите эту ячейку вниз до тех пор, пока не увидите часть с комментариями в виде параметров. Скопируйте эти значения, поскольку они понадобятся вам на следующем шаге.

Шаг 9: изменение приложения Android с помощью новой модели

Изменение приложения Android с помощью новой модели
Изменение приложения Android с помощью новой модели

Чтобы изменить модель в приложении Android, используйте Android Studio для перехода к файлу «PostureDetectorFragment.java» в разделе java структуры проекта. В этом файле прокрутите вниз до раздела с комментарием «Классификатор положения», который будет иметь те же 4 соответствующие переменные, что и 4, сгенерированные в Jupyter Notebook. Замените значения этих 4 переменных значениями, скопированными из Jupyter Notebook, убедившись, что имена переменных не изменились с p_vectors, p_coefficients и т. Д. Как только это будет сделано, сохраните файл и снова выберите опцию Run, чтобы построить приложение для вашего устройство. Теперь выполните те же шаги, что и раньше, чтобы открыть модуль «Детектор положения», и вы должны увидеть, что классификатор теперь работает с вашей недавно обученной моделью. Если он по-прежнему не работает хорошо, вам следует подумать о записи дополнительных данных и воссоздании модели. В противном случае поздравляю! Теперь вы импортировали в Postshirt свой собственный обученный классификатор!

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