Съдържание:

Носим - Окончателен проект: 7 стъпки
Носим - Окончателен проект: 7 стъпки

Видео: Носим - Окончателен проект: 7 стъпки

Видео: Носим - Окончателен проект: 7 стъпки
Видео: Как сделать стяжку с шумоизоляцией в квартире. #18 2024, Юни
Anonim
Носим - Краен проект
Носим - Краен проект

ВЪВЕДЕНИЕ

В този проект имахме задачата да направим функционален носим прототип, базиран на функции на киборг. Знаете ли, че сърцето ви се синхронизира с BPM на музиката? Можете да опитате да контролирате настроението си чрез музика, но какво ще стане, ако позволим на технологиите да ни помогнат да се успокоим? Нуждаем се само от някои компоненти, Arduino и вашите слушалки. Нека да правим нововъведения!

Проект на Marc Vila, Guillermo Stauffacher и Pau Carcellé

Стъпка 1: Материали и компоненти

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

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

- 3d отпечатана китка

- M3 винтове (x8)

- гайки M3 (x12)

- Фани пакет

Електронни материали:

-Сензор за сърдечна честота BPM

- Бутони (x2)

- Потенциометър

- LCD C 1602 МОДУЛ

- МОДУЛ DFPLAYER MINI MP3

- 3,5 мм жак стерео слушалка TRRS

- MicroSD карта

- Arduino Uno плоча

- Заварчик

- Бакелитова чиния

Стъпка 2: Проектирайте китка

Проектирайте китка
Проектирайте китка
Проектирайте китка
Проектирайте китка

Първо правим няколко скици, за да организираме различните компоненти в гривната.

С ясната идея направихме измервания на трите рамена на членовете на групата, след това направихме средната стойност, за да намерим оптималната мярка за дизайна. Накрая проектираме продукта с 3D програма и го отпечатваме с 3D принтер.

Можете да изтеглите. STL файловете тук.

Стъпка 3: Електронни връзки

Електронни връзки
Електронни връзки

Продължаваме да правим необходимите проверки на нашия 3D дизайн, направихме първо сглобяване на всички компоненти в прототипа, за да видим, че измерванията са корективни.

За да свържете всички компоненти към платката Arduino, направихме различни връзки от компонентите с помощта на кабели с дължина 0,5 метра, като по този начин намаляваме видимостта на платката и организираме по -добре прототипа.

Стъпка 4: Кодът

Кодът
Кодът
Кодът
Кодът
Кодът
Кодът

Този проект е прототип на киборг. Очевидно не сме въвели компонентите под кожата, затова сме ги симулирали с гривна като ортеза (външно устройство, приложено към тялото за промяна на функционалните аспекти).

Нашият код взема натискането на клавишите на потребителя и ги показва с помощта на LCD екрана. В допълнение към BPM, екранът показва желаната интензивност, така че потребителят може да го сравни със сърдечната си честота. Има много ситуации, в които е интересно да увеличите или намалите собствения си BPM. Например, спортистите за издръжливост трябва да контролират пулсациите, за да не се уморяват прекомерно. Ежедневен пример би бил да искаш да спиш или да се успокоиш в нервна ситуация. Може да се приложи и като терапевтичен метод за хора с аутизъм за намаляване на стреса, който изпитват. До екрана има два бутона за управление на желаната интензивност и увеличаване или намаляване на сърдечната честота. В зависимост от интензивността се възпроизвежда предварително проучен тип музика. Има проучвания, които показват, че музиката може да промени BPM. Според Beats per Minute на песента, човешкото тяло имитира и съответства на тези 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 // Тези променливи са променливи, защото се използват по време на рутината за прекъсване във втория раздел. летливи int BPM; // удари в минута летлив int сигнал; // Въвеждане на данни от импулсен сензор летливи int IBI = 600; // Време на импулса променлив булев Pulse = false; // Вярно, когато пулсовата вълна е висока, невярно, когато е Ниска летлива булева QS = false;

# дефинирайте Start_Byte 0x7E # дефинирайте Version_Byte 0xFF # дефинирайте Command_Length 0x06 # определете End_Byte 0xEF # определете Acknowledge 0x00 // Връща информация с команда 0x41 [0x01: информация, 0x00: няма информация]

// PANTALLA #include // Качваме библиотеката за функциите на LCD екрана #include #include

LiquidCrystal lcd (7, 6, 5, 4, 3, 2); // Декларираме портовете, към които е свързан LCD дисплеят

// LECTOR #include #include // Качваме библиотеката за функциите на модула dfplayer mini MP3.

char serialData; int nsong; int v;

Софтуер Сериен комуникатор (9, 10); // Декларираме портовете, където е свързан DFPlayer DFRobotDFPlayerMini mp3;

void setup () {Serial.begin (9600); pinMode (SetResUp, INPUT); pinMode (SetResDown, INPUT);

// Определете размерите на LCD (16x2) lcd.begin (16, 2); // Избираме в коя колона и в кой ред започва да се показва текстът // LECTOR comm.begin (9600);

mp3.begin (comm); // Компонент стартира serialData = (char) (('')); mp3.start (); Serial.println ("Възпроизвеждане"); // Пуснете песен mp3.volume (25); // Определяне на силата на звука}

void loop () {if (digitalRead (11) == LOW) {mp3.next (); // Ако бутонът е натиснат, песента преминава} if (digitalRead (12) == LOW) {mp3.previous (); // Ако бутонът е натиснат, предишната песен}} // if (SetResUp && SetResDown == LOW) {

int pulso = analogRead (A0); // Прочетете стойността на пулсомера, свързан към аналоговия порт A0

Serial.println (pulso/6); if (QS == true) {// Флагът на количествения Аз е истина като търсенето arduino, BPM QS = false; // Нулиране на флага на количествено изразено аз}

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);

if (ResButtonCounter> = 10) {ResButtonCounter = 10; }

if (ResButtonCounter <1) {ResButtonCounter = 1; }

}

}

Стъпка 5: Общо сглобяване

С правилно програмиран код и двете части на нашия прототип вече са сглобени. Поставяме всички компоненти на място и ги свързваме с лента, за да я фиксираме към гривната. Компонентите, които са в гривната, са Сензорът за сърдечен ритъм BPM, двата бутона, потенциометърът и LCD екранът, всеки в съответния отвор, предварително проектиран в 3D файла. След като първата част е направена, ние се фокусираме върху протоборда, всеки конектор върху правилния щифт на платката Arduino. И накрая, с проверената работа на всеки компонент, го поставяме в опаковката, за да скрием кабелите.

Стъпка 6: Видео

Стъпка 7: Заключение

Най -интересното в този проект е научаването за имитиране на човешкото тяло несъзнателно с музика. Това отваря вратата за много възможности за бъдещи проекти. Мисля, че това е цялостен проект, имаме доста разнообразни компоненти с работещ код. Ако започнем отново, бихме помислили за други алтернативи на компонентите или бихме ги купили с по -добро качество. Имахме много проблеми със скъсани кабели и заварки, те са малки и много деликатни (особено BPM). От друга страна, трябва да бъдете внимателни, когато свързвате компонентите, те имат много изходи и е лесно да се правят грешки.

Това е много обогатяващ проект, в който се докоснахме до голямо разнообразие от хардуерни и софтуерни опции на Arduino.

Препоръчано: