Съдържание:
- Стъпка 1: Материали и компоненти
- Стъпка 2: Проектирайте китка
- Стъпка 3: Електронни връзки
- Стъпка 4: Кодът
- Стъпка 5: Общо сглобяване
- Стъпка 6: Видео
- Стъпка 7: Заключение
Видео: Носим - Окончателен проект: 7 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:51
ВЪВЕДЕНИЕ
В този проект имахме задачата да направим функционален носим прототип, базиран на функции на киборг. Знаете ли, че сърцето ви се синхронизира с 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.
Препоръчано:
Изградете носим механизъм за проследяване на движение (BLE от Arduino до персонализирано приложение за Android Studio): 4 стъпки
Изградете носим механизъм за проследяване на движение (BLE от Arduino до персонализирано приложение за Android Studio): Bluetooth Low Energy (BLE) е форма на Bluetooth комуникация с ниска мощност. Носимите устройства, като интелигентните облекла, които помагам да проектирам в Predictive Wear, трябва да ограничават консумацията на енергия, когато е възможно, за да удължат живота на батерията, и често да използват BLE
3D отпечатан дъгови реактор на крайната игра (филм е точен и носим): 7 стъпки (със снимки)
3D отпечатан дъгови реактор на крайната игра (филм точен и подходящ за носене): Пълен урок в YouTube: Не можах да намеря никакви особено точни филмови 3D файлове за дъговия реактор/корпус Mark 50/корпус за наночастици, така че приятелят ми и аз приготвихме някои сладки. Беше необходим тон ощипване, за да изглежда нещо точно и страхотно
Носим фотонен бийтбокс: 7 стъпки
Wearable Photon Beatbox: Този проект е вдъхновен от код за фотонен ритъм кутия, който намерих в Adafruit: https://makecode.adafruit.com/examples/photon-beat … Реших да доразвия тази концепция, като взех кода и превръщайки го в носима електронна жилетка, която ще промени
ЕКГ регистратор - носим сърдечен монитор за дългосрочно събиране и анализ на данни: 3 стъпки
ЕКГ регистратор - носим сърдечен монитор за дългосрочно събиране и анализ на данни: Първо издание: октомври 2017 г. Последна версия: 1.6.0 Статус: Стабилен Трудност: ВисокаПредварително условие: Arduino, Програмиране, Изграждане на хардуер Уникално хранилище: SF (вижте връзките по -долу) Поддръжка: Само форум, няма PMECG Logger е носим сърдечен монитор за дълго
Направете SSAD носим: 3 стъпки
Осъществяването на SSAD носимо: Устройство за вибротактилно сензорно заместване и увеличаване с инструкции (https: //www.instructables.com/id/Vibrotactile-Sens …) показва начин за изграждане на устройство, което превежда сензорния вход във вибрационни стимули. Тези вибрационни стимули са р