Мазмұны:

Киюге болатын - Қорытынды жоба: 7 қадам
Киюге болатын - Қорытынды жоба: 7 қадам

Бейне: Киюге болатын - Қорытынды жоба: 7 қадам

Бейне: Киюге болатын - Қорытынды жоба: 7 қадам
Бейне: Жігітім дұрыстап тықпаса не істеу керек? 2024, Маусым
Anonim
Киюге болатын - соңғы жоба
Киюге болатын - соңғы жоба

КІРІСПЕ

Бұл жобада бізде киборг функцияларына негізделген функционалды тозатын прототип жасау міндеті тұрды. Сіз білесіз бе, сіздің жүрегіңіз BPM музыкасымен синхрондалады. Сіз өзіңіздің көңіл -күйіңізді музыка арқылы басқаруға тырыса аласыз, бірақ егер технология бізге тыныштандыруға мүмкіндік берсе ше? Бізге кейбір компоненттер, Arduino және құлаққап қажет. Жаңашыл болайық!

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

1 -қадам: материалдар мен компоненттер

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

Құрылыс материалдары:

- 3D басылған білезік

- M3 бұрандалары (x8)

- М3 жаңғақтар (x12)

- Фанни пакеті

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

-BPM жүрек соғу жылдамдығы сенсоры

- түймелер (x2)

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

- LCD C 1602 МОДУЛЬ

- MODULE DFPLAYER MINI MP3

- 3,5 мм джек стерео TRRS құлаққап

- MicroSD картасы

- Arduino Uno табақшасы

- Дәнекерлеуші

- Бакелит табақшасы

2 -қадам: білезік жасау

Білезік тағу
Білезік тағу
Білезік тағу
Білезік тағу

Алдымен біз білезіктің әр түрлі компоненттерін ұйымдастыру үшін бірнеше эскиздер жасаймыз.

Нақты идеямен біз топ мүшелерінің үш қолын өлшедік, содан кейін біз дизайнның оңтайлы өлшемін табу үшін орташа мәнді жасадық. Ақырында біз өнімді 3d бағдарламасымен жасаймыз және оны 3D принтермен басып шығарамыз.

Мұнда. STL файлдарын жүктеуге болады.

3 -қадам: Электрондық қосылыстар

Электронды қосылыстар
Электронды қосылыстар

Біз 3d дизайнымыздың қажетті тексерулерін жалғастырамыз, біз өлшемдердің түзетілгенін көру үшін прототиптегі барлық компоненттердің алғашқы құрастыруын жасадық.

Барлық компоненттерді Arduino тақтасына қосу үшін біз 0, 5 метрлік кабельдерді қолдана отырып, компоненттерден әр түрлі қосылыстар жасадық, осылайша біз тақтаның көрінуін төмендетеміз және біз прототипті жақсы ұйымдастырамыз.

4 -қадам: Кодекс

Кодекс
Кодекс
Кодекс
Кодекс
Кодекс
Кодекс

Бұл жоба киборг прототипі. Әлбетте, біз терінің астына компоненттерді енгізбедік, сондықтан біз оны білезікпен ортез ретінде модельдедік (функционалдық аспектілерді өзгерту үшін денеге қолданылатын сыртқы құрылғы).

Біздің код пайдаланушының пернелер тіркесімін қабылдайды және оларды СКД экранының көмегімен көрсетеді. BPM -ден басқа, экранда пайдаланушы оны жүрек соғу жиілігімен салыстыру үшін қажетті қарқындылықты көрсетеді. Меншікті BPM арттыру немесе азайту қызықты болатын көптеген жағдайлар бар. Мысалы, төзімді спортшылар шамадан тыс шаршамау үшін пульсацияны басқаруы керек. Күнделікті мысал жүйке жағдайында ұйықтауды немесе тынышталуды қалайды. Бұл аутизмі бар адамдарға стрессті азайту үшін терапевтік әдіс ретінде қолданылуы мүмкін. Экранның жанында қажетті жиілікті басқаруға және жүрек соғу жиілігін жоғарылатуға немесе төмендетуге арналған екі түйме бар. Қарқындылығына байланысты бұрын зерттелген музыка түрі ойналады. Музыка BPM -ді өзгерте алатынын көрсететін зерттеулер бар. Әннің Beats per Minute әніне сәйкес, адам денесі сол BPM -ге еліктейді және сәйкес келеді.

int SetResUp = 11; // қарқындылығын жоғарылату түймесі бар Arduino 10 -штыры.int SetResDown = 12; // қарқындылықты төмендету түймесі бар Arduino -ның 11 -пині

int ResButtonCounter = 0; // қарсылық параметрін жоғарылататын немесе төмендететін уақыт есептегіші, 0 мәнінің бастапқы мәні ResButtonUpState = 0; // қарқындылығын жоғарылату батырмасының ағымдағы күйі int ResButtonDownState = 0; // қарқындылығын төмендету батырмасының ағымдағы күйі int lastResButtonUpState = 0; // қарқындылықты жоғарылату түймесінің соңғы күйі int lastResButtonDownState = 0; // қарқындылықты төмендету түймесінің соңғы күйі

int pulsePin = 0; // A0 портына қосылған импульстік сенсор // Бұл айнымалы мәндер тұрақсыз, себебі олар екінші қойындыдағы үзіліс кезінде қолданылады. тұрақсыз BPM int; // Beats per minute volatile int Signal; // Импульстік сенсор деректерін енгізу тұрақсыз int IBI = 600; // Импульстік уақыт құбылмалы логикалық Импульс = жалған; // Импульстік толқын жоғары болғанда ақиқат, ол төмен ұшатын логикалық QS = жалған болғанда жалған;

# анықтау Start_Byte 0x7E # Version_Byte 0xFF анықтау # Command_Length 0x06 # End_Byte 0xEF анықтау # Acknowledge 0x00 анықтау // 0x41 [0x01: ақпарат, 0x00: ақпарат жоқ] пәрменімен ақпаратты қайтарады

// PANTALLA #include // СКД экранының функциялары үшін кітапхананы жүктеу #қосу #қосу

LiquidCrystal lcd (7, 6, 5, 4, 3, 2); // СКД қосылған порттарды жариялаңыз

// LECTOR #include #include // dfplayer mini MP3 модулінің функциялары үшін кітапхананы жүктеңіз.

char serialData; int nsong; int v;

SoftwareSerial comm (9, 10); // DFPlayer қосылған порттарды жариялаңыз DFRobotDFPlayerMini mp3;

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

// СКД өлшемдерін анықтаңыз (16x2) lcd.begin (16, 2); // Мәтін қай бағанда және қай жолда көрсетіле бастайтынын таңдаймыз // LECTOR comm.begin (9600);

mp3.begin (comm); // Компонент serialData = (char) (('')) бастайды; mp3.start (); Serial.println («Ойнату»); // Әнді ойнаңыз mp3.том (25); // Көлемді анықтау}

void loop () {if (digitalRead (11) == LOW) {mp3.next (); // Егер түйме басылса, ән өтеді} if (digitalRead (12) == LOW) {mp3.previous (); // Егер түйме басылса, алдыңғы ән} // if (SetResUp && SetResDown == LOW) {

int pulso = analogRead (A0); // А0 аналогтық портына қосылған жүрек соғу жиілігінің мониторының мәнін оқыңыз

Serial.println (pulso/6); if (QS == true) {// Quantified Self туы 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;

// түйменің күйін (жоғарылату немесе азайту) соңғы күймен салыстыру

егер (ResButtonDownState! = lastResButtonDownState && ResButtonDownState == LOW) {

// егер соңғы күй өзгерсе, есептегішті азайтыңыз

ResButtonCounter-; }

// ағымдағы күйді соңғы күй ретінде сақтау, // келесі жолы цикл орындалады lastResButtonDownState = ResButtonDownState; {Serial.println (ResButtonCounter);

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

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

}

}

5 -қадам: Жалпы жиналыс

Дұрыс бағдарламаланған кодпен және біздің прототиптің екі бөлігі жинақталған. Біз барлық компоненттерді орнына қойып, білезікке бекіту үшін таспамен байланыстырамыз. Білезіктегі компоненттер - бұл жүрек соғу жиілігінің сенсоры BPM, екі түйме, потенциометр және СКД экраны, олардың әрқайсысы бұрын 3D файлында жасалған. Бірінші бөлік аяқталғаннан кейін біз протоколға назар аударамыз, әр коннектор Arduino тақтасының дұрыс түйреуішінде. Ақырында, әрбір компоненттің тексерілген жұмысымен біз сымдарды жасыру үшін оны фанер пакетіне саламыз.

6 -қадам: бейне

7 -қадам: Қорытынды

Бұл жобаның ең қызықтысы - адам денесін музыкаға бейсаналық түрде еліктеуді үйрену. Бұл болашақ жобалардың көптеген нұсқаларына жол ашады. Менің ойымша, бұл толық жоба, бізде жұмыс істейтін коды бар көптеген компоненттер бар. Егер біз қайтадан бастасақ, біз басқа компоненттердің баламалары туралы ойланар едік немесе оларды сапалы сатып аламыз. Бізде сынған кабельдер мен дәнекерлеу кезінде көптеген проблемалар болды, олар кішкентай және өте нәзік (әсіресе BPM). Екінші жағынан, компоненттерді қосқанда абай болу керек, олардың шығысы көп, қателесу оңай.

Бұл өте бай жоба, онда біз Arduino аппараттық және бағдарламалық қамтамасыз етудің кең таңдауына тоқталдық.

Ұсынылған: