Оглавление:
- Запасы
- Шаг 1. Установите необходимые IDE и библиотеки
- Шаг 2. Подключите акселерометры к перышку
- Шаг 3: прикрепите акселерометры к рубашке
- Шаг 4: Запуск кода на Arduino
- Шаг 5. Запуск кода на Android
- Шаг 6: Проверка подключения сигнала Bluetooth
- Шаг 7: Сбор ваших собственных данных
- Шаг 8: обучение ваших данных на Jupyter Notebook
- Шаг 9: изменение приложения Android с помощью новой модели
Видео: Postshirt: определение позы в реальном времени: 9 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:49
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
Чтобы начать сбор данных на Feather, запустите Arduino IDE и откройте файл GestureDataSender в разделе Arduino кода проекта. Открыв этот файл, установите плату и используемый порт, а затем выберите «Проверить» и «Загрузить», чтобы загрузить код в Feather.
Шаг 5. Запуск кода на Android
Чтобы запустить приложение на Android, сначала запустите Android Studio, а затем выберите вариант открытия существующего проекта Android. Перейдите к коду проекта и выберите папку «Android». Android Studio потребуется время для синхронизации файлов проекта и может потребоваться установка некоторых необходимых библиотек, примите эти параметры. Когда проект будет готов, подключите Android-устройство к компьютеру и выберите опцию запуска в верхней части окна. Выберите устройство из появившейся подсказки, а затем дайте возможность приложению встроиться в устройство.
Шаг 6: Проверка подключения сигнала Bluetooth
После открытия приложения убедитесь, что Feather включено, а затем выберите Adafruit Bluefruit LE из списка устройств, который отображается на телефоне. Подождите, пока устройство подключится, если подключение не удается в первый раз, повторите попытку подключения, прежде чем выполнять другие шаги отладки. После подключения устройства выберите модуль «Детектор положения», который при правильной работе будет отображать график обновления в реальном времени, а также текущие прогнозы позы и движения. Чтобы проверить, правильно ли Arduino передает данные датчика, переместите два акселерометра в случайном направлении и проверьте, все ли линии на графике изменяются. Если некоторые линии остаются постоянно плоскими, убедитесь, что акселерометры правильно подключены к Feather. Если все работает, наденьте рубашку и проверьте, правильно ли распознает осанку. Поздравляю! Вы успешно настроили носимое устройство для определения позы. Продолжайте читать эту инструкцию, чтобы узнать, как создать свой собственный набор данных и настроить собственное определение положения тела.
Шаг 7: Сбор ваших собственных данных
Чтобы собрать собственные данные, вернитесь на экран выбора модуля и откройте модуль Data Recorder. Как только этот экран откроется, заполните метку для данных, которые вы собираете; для того, чтобы легко обучаться на ваших данных, вы должны включать слово «хорошая» в название любых записей с хорошей осанкой и «плохая» в любых записях с осанкой. Чтобы начать сбор, нажмите кнопку «Собрать данные» и выполните намеченное действие, когда вы закончите, нажмите кнопку еще раз, чтобы закончить и сохранить данные. Все записанные данные будут храниться в папке с именем «GestureData» в папке документов вашей файловой системы. Когда вы закончите запись всех ваших данных, скопируйте файлы на свой компьютер для обучения модели.
Шаг 8: обучение ваших данных на Jupyter Notebook
Исходный код проекта содержит исходные данные, используемые для обучения, в папке «data» в разделе Jupyter Notebook, для обучения собственных данных удалите все файлы в этой папке, а затем скопируйте свои собственные данные в папку. Затем запустите Jupyter Notebook и откройте PostureDetectorTrainer.ipynb. Эта записная книжка предназначена для автоматического разделения любых файлов в папке данных на хорошее и плохое положение, а затем для обучения линейной SVM классификации для обучения модели, просто выберите раскрывающийся список «Ячейка» и выберите «Выполнить все». Записью может потребоваться некоторое время для запуска, но после завершения прокрутки до точки, которая обеспечивает точность прогнозирования положения для модели, если точность низкая, вы можете убедиться, что ваши предыдущие записи являются точными и непротиворечивыми. Если результаты выглядят хорошо, перейдите к следующей ячейке, в которой будет создан класс Java. Прокрутите эту ячейку вниз до тех пор, пока не увидите часть с комментариями в виде параметров. Скопируйте эти значения, поскольку они понадобятся вам на следующем шаге.
Шаг 9: изменение приложения Android с помощью новой модели
Чтобы изменить модель в приложении Android, используйте Android Studio для перехода к файлу «PostureDetectorFragment.java» в разделе java структуры проекта. В этом файле прокрутите вниз до раздела с комментарием «Классификатор положения», который будет иметь те же 4 соответствующие переменные, что и 4, сгенерированные в Jupyter Notebook. Замените значения этих 4 переменных значениями, скопированными из Jupyter Notebook, убедившись, что имена переменных не изменились с p_vectors, p_coefficients и т. Д. Как только это будет сделано, сохраните файл и снова выберите опцию Run, чтобы построить приложение для вашего устройство. Теперь выполните те же шаги, что и раньше, чтобы открыть модуль «Детектор положения», и вы должны увидеть, что классификатор теперь работает с вашей недавно обученной моделью. Если он по-прежнему не работает хорошо, вам следует подумать о записи дополнительных данных и воссоздании модели. В противном случае поздравляю! Теперь вы импортировали в Postshirt свой собственный обученный классификатор!
Рекомендуемые:
Как сделать отслеживание данных о коронавирусе COVID 19 в реальном времени с помощью ESP8266, отображение электронной бумаги: 7 шагов
Как сделать трекер данных о коронавирусе COVID 19 в реальном времени с ESP8266, дисплей электронной бумаги: 1
Измеритель уровня воды в скважине в реальном времени: 6 шагов (с изображениями)
Измеритель уровня воды в скважине в реальном времени: в этих инструкциях описывается, как построить недорогой измеритель уровня воды в реальном времени для использования в вырытых колодцах. Измеритель уровня воды предназначен для подвешивания внутри вырытого колодца, измерения уровня воды один раз в день и отправки данных по Wi-Fi или сотовой связи
Измеритель температуры, проводимости и уровня воды в скважине в реальном времени: 6 шагов (с изображениями)
Измеритель температуры, электропроводности и уровня воды в скважине в реальном времени: в этих инструкциях описывается, как построить недорогой измеритель воды в реальном времени для мониторинга температуры, электропроводности (ЕС) и уровня воды в вырытых колодцах. Счетчик предназначен для подвешивания внутри вырытого колодца, измерения температуры воды, ЕС и
Как сделать регистратор данных влажности и температуры в реальном времени с Arduino UNO и SD-картой - Моделирование регистратора данных DHT11 в Proteus: 5 шагов
Как сделать регистратор данных влажности и температуры в реальном времени с Arduino UNO и SD-картой | Моделирование регистратора данных DHT11 в Proteus: Введение: привет, это Liono Maker, вот ссылка на YouTube. Мы делаем творческий проект с Arduino и работаем над встраиваемыми системами. Регистратор данных: Регистратор данных (также регистратор данных или регистратор данных) - это электронное устройство, которое записывает данные с течением времени
Построение графика данных датчика температуры в реальном времени (TMP006) с использованием MSP432 LaunchPad и Python: 9 шагов
Построение графика данных датчика температуры в реальном времени (TMP006) с использованием MSP432 LaunchPad и Python: TMP006 - это датчик температуры, который измеряет температуру объекта без необходимости соприкасаться с ним. В этом руководстве мы построим график данных температуры в реальном времени из BoosterPack (TI BOOSTXL-EDUMKII) с использованием Python