Оглавление:

Носимый - Заключительный проект: 7 шагов
Носимый - Заключительный проект: 7 шагов

Видео: Носимый - Заключительный проект: 7 шагов

Видео: Носимый - Заключительный проект: 7 шагов
Видео: Жилет НАЗ-И ВВС СССР на Афганской войне 2024, Июнь
Anonim
Носимый - последний проект
Носимый - последний проект

ВСТУПЛЕНИЕ

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

Проект Марка Вила, Гильермо Штауффахера и Пау Карселе

Шаг 1: материалы и компоненты

Материалы и компоненты
Материалы и компоненты

Строительные материалы:

- браслет с 3D-принтом

- винты M3 (x8)

- Гайки M3 (x12)

- Fanny Pack

Электронные материалы:

-Датчик частоты пульса, ударов в минуту

- Пуговицы (x2)

- потенциометр

- ЖК-МОДУЛЬ C 1602

- МОДУЛЬ DFPLAYER MINI MP3

- Стереогарнитура TRRS с разъемом 3,5 мм

- Карта MicroSD

- Плата Arduino Uno

- Сварщик

- Бакелитовая тарелка

Шаг 2. Создайте браслет

Дизайн браслета
Дизайн браслета
Дизайн браслета
Дизайн браслета

Сначала мы делаем несколько набросков, чтобы организовать различные компоненты браслета.

Имея ясную идею, мы измерили три руки членов группы, а затем вычислили среднее значение, чтобы найти оптимальную меру для дизайна. Наконец, мы проектируем продукт с помощью 3D-программы и распечатываем его на 3D-принтере.

Вы можете скачать файлы. STL здесь.

Шаг 3: электронные соединения

Электронные соединения
Электронные соединения

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

Чтобы подключить все компоненты к плате Arduino, мы сделали разные соединения от компонентов с помощью кабелей 0,5 метра, таким образом мы уменьшаем видимость платы и лучше организуем прототип.

Шаг 4: Код

Код
Код
Код
Код
Код
Код

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

Наш код принимает нажатия клавиш пользователя и отображает их на ЖК-экране. В дополнение к BPM на экране отображается желаемая интенсивность, чтобы пользователь мог сравнить ее со своим пульсом. Есть много ситуаций, когда интересно увеличить или уменьшить собственный BPM. Например, спортсмены на выносливость должны контролировать пульсации, чтобы не утомляться чрезмерно. Обычным примером может быть желание поспать или успокоиться в нервной ситуации. Его также можно применять в качестве терапевтического метода для людей с аутизмом, чтобы уменьшить стресс, который они испытывают. Рядом с экраном находятся две кнопки для управления желаемой интенсивностью и увеличения или уменьшения частоты пульса. В зависимости от интенсивности воспроизводится ранее изученная музыка. Есть исследования, которые показывают, что музыка может изменять BPM. Согласно количеству ударов в минуту песни, человеческое тело имитирует и соответствует этому удару в минуту.

int SetResUp = 11; // вывод 10 Arduino с кнопкой увеличения интенсивности. int SetResDown = 12; // вывод 11 Arduino с кнопкой уменьшения интенсивности

int ResButtonCounter = 0; // счетчик раз, который увеличивает или уменьшает настройку сопротивления, начальное значение 0 int ResButtonUpState = 0; // текущее состояние кнопки увеличения интенсивности int ResButtonDownState = 0; // текущее состояние кнопки уменьшения интенсивности int lastResButtonUpState = 0; // последнее состояние кнопки увеличения интенсивности int lastResButtonDownState = 0; // последнее состояние кнопки уменьшения интенсивности

int pulsePin = 0; // Датчик импульсов, подключенный к порту A0 // Эти переменные непостоянны, потому что они используются во время обработки прерывания на второй вкладке. volatile int BPM; // Число ударов в минуту volatile int Signal; // Ввод данных импульсного датчика volatile int IBI = 600; // Время импульса volatile boolean Pulse = false; // Истина, если пульсовая волна высокая, ложь, когда она Низкая volatile boolean QS = false;

# define Start_Byte 0x7E # define Version_Byte 0xFF #define Command_Length 0x06 # define End_Byte 0xEF #define Acknowledge 0x00 // Возвращает информацию с помощью команды 0x41 [0x01: info, 0x00: no info]

// PANTALLA #include // Загрузить библиотеку для функций ЖК-экрана #include #include

ЖК-дисплей LiquidCrystal (7, 6, 5, 4, 3, 2); // Объявляем порты, к которым подключен ЖК-дисплей

// LECTOR #include #include // Загрузите библиотеку для функций модуля dfplayer mini MP3.

char serialData; int nsong; на телевидении;

SoftwareSerial comm (9, 10); // Объявить порты, к которым подключен DFPlayer DFRobotDFPlayerMini mp3;

void setup () {Serial.begin (9600); pinMode (SetResUp, ВХОД); pinMode (SetResDown, ВХОД);

// Определение размеров ЖК-дисплея (16x2) lcd.begin (16, 2); // Выбираем, в каком столбце и в какой строке начинает отображаться текст // LECTOR comm.begin (9600);

mp3.begin (комм); // Компонент запускает serialData = (char) (('')); mp3.start (); Serial.println («Играть»); // Воспроизвести песню mp3.volume (25); // Определить объем}

void loop () {если (digitalRead (11) == LOW) {mp3.next (); // Если кнопка нажата, песня проходит} if (digitalRead (12) == LOW) {mp3.previous (); // Если кнопка нажата, предыдущая песня} // if (SetResUp && SetResDown == LOW) {

int Pulso = аналоговое чтение (A0); // Считываем значение пульсометра, подключенного к аналоговому порту A0

Serial.println (Pulso / 6); if (QS == true) {// Флаг квантифицированного «я» истинен, как и arduino ищет BPM QS = false; // Сбрасываем флаг Quantified Self}

lcd.setCursor (0, 0); // Показать желаемый текст lcd.print ("BPM:"); lcd.setCursor (0, 1); // Показать желаемый текст lcd.print ("INT:"); lcd.setCursor (5, 0); // Показать желаемый текст lcd.print (pulso); lcd.setCursor (5, 1); // Показать желаемый текст lcd.print (ResButtonCounter); задержка (50); lcd.clear (); ResButtonUpState = digitalRead (SetResUp); ResButtonDownState = digitalRead (SetResDown);

// сравниваем TempButtonState с его предыдущим состоянием

if (ResButtonUpState! = lastResButtonUpState && ResButtonUpState == LOW) {// если последнее состояние изменилось, увеличиваем счетчик

ResButtonCounter ++; }

// сохраняем текущее состояние как последнее состояние, // для следующего выполнения цикла lastResButtonUpState = ResButtonUpState;

// сравниваем состояние кнопки (увеличение или уменьшение) с последним состоянием

if (ResButtonDownState! = lastResButtonDownState && ResButtonDownState == LOW) {

// если последнее состояние изменилось, уменьшаем счетчик

ResButtonCounter--; }

// сохраняем текущее состояние как последнее состояние, // для следующего выполнения цикла lastResButtonDownState = ResButtonDownState; {Serial.println (ResButtonCounter);

если (ResButtonCounter> = 10) {ResButtonCounter = 10; }

если (ResButtonCounter <1) {ResButtonCounter = 1; }

}

}

Шаг 5: Полная сборка

С правильно запрограммированным кодом и уже собранными двумя частями нашего прототипа. Ставим все компоненты на место и соединяем скотчем, чтобы закрепить на браслете. Компоненты, которые находятся в браслете, - это датчик частоты сердечных сокращений (ударов в минуту), две кнопки, потенциометр и ЖК-экран, каждый из которых находится в соответствующем отверстии, ранее созданном в 3D-файле. Когда первая часть сделана, мы сосредоточимся на прототипной плате, каждый разъем находится на правильном контакте платы Arduino. Наконец, проверив работу каждого компонента, мы помещаем его в поясную упаковку, чтобы скрыть провода.

Шаг 6: видео

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

Самое интересное в этом проекте - научиться бессознательно имитировать человеческое тело с помощью музыки. Это открывает двери для множества вариантов будущих проектов. Я считаю, что это законченный проект, у нас довольно много компонентов с отработанным кодом. Если мы начнем снова, мы подумаем о других альтернативах компонентов или купим их более высокого качества. У нас было много проблем с обрывами кабелей и сваркой, они маленькие и очень хрупкие (особенно BPM). С другой стороны, вы должны быть осторожны при подключении компонентов, у них много выходов и легко ошибиться.

Это очень полезный проект, в котором мы затронули широкий спектр аппаратных и программных опций Arduino.

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