Orodha ya maudhui:

Kuvaa - Mradi wa Mwisho: Hatua 7
Kuvaa - Mradi wa Mwisho: Hatua 7

Video: Kuvaa - Mradi wa Mwisho: Hatua 7

Video: Kuvaa - Mradi wa Mwisho: Hatua 7
Video: Leyla - Wimbo Wa Historia (sms SKIZA 8544651 to 811) 2024, Juni
Anonim
Kuvaa - Mradi wa Mwisho
Kuvaa - Mradi wa Mwisho

UTANGULIZI

Katika mradi huu tulikuwa na jukumu la kutengeneza mfano unaoweza kuvaliwa kulingana na kazi za cyborg. Je! Unajua kwamba moyo wako unalingana na BPM ya muziki? Unaweza kujaribu kudhibiti hali yako kupitia muziki, lakini vipi ikiwa tutaruhusu teknolojia itusaidie kutulia? Tunahitaji tu vifaa, Arduino na vichwa vya sauti. Wacha tuanzishe!

Mradi wa Marc Vila, Guillermo Stauffacher na Pau Carcellé

Hatua ya 1: Vifaa na Vipengele

Vifaa na Vipengele
Vifaa na Vipengele

Vifaa vya ujenzi:

- 3d ya mkono iliyochapishwa

- M3 screws (x8)

- karanga M3 (x12)

- Kifurushi cha fanny

Vifaa vya elektroniki:

Kiwango cha Kihisi cha Moyo BPM

- Vifungo (x2)

- Potentiometer

- LCD C 1602 MODULE

- MODULE DFPLAYER MINI MP3

- 3.5mm Jack Stereo KITUO CHA kichwa

- Kadi ya MicroSD

- Bamba la Arduino Uno

- Welder

- Sahani ya Bakelite

Hatua ya 2: Buni Kamba ya mkono

Kubuni Wristband
Kubuni Wristband
Kubuni Wristband
Kubuni Wristband

Kwanza tunafanya michoro kadhaa kuandaa vifaa anuwai kwenye mkanda wa mkono.

Na wazo wazi, tulichukua vipimo vya mikono mitatu ya washiriki wa kikundi, kisha tukafanya wastani kupata kipimo bora cha muundo. Mwishowe tunabuni bidhaa na programu ya 3d na kuichapisha na printa ya 3D.

Unaweza kupakua faili za. STL hapa.

Hatua ya 3: Uunganisho wa Elektroniki

Uunganisho wa Elektroniki
Uunganisho wa Elektroniki

Tunaendelea kufanya ukaguzi wa lazima wa muundo wetu wa 3d, tulifanya mkutano wa kwanza wa vifaa vyote kwenye mfano ili kuona kuwa vipimo vilikuwa vimerekebisha.

Ili kuunganisha vifaa vyote kwenye bodi ya Arduino, tulifanya unganisho tofauti kutoka kwa vifaa kwa kutumia nyaya za mita 0, 5, kwa njia hii tunapunguza muonekano wa bodi na tunapanga mfano bora.

Hatua ya 4: Kanuni

Kanuni
Kanuni
Kanuni
Kanuni
Kanuni
Kanuni

Mradi huu ni mfano wa cyborg. Kwa wazi hatujaanzisha vifaa chini ya ngozi, kwa hivyo tumeiga na bangili kama orthosis (kifaa cha nje kinachotumiwa kwa mwili kurekebisha hali ya utendaji).

Nambari yetu inachukua vitufe vya mtumiaji na huwaonyesha wakitumia skrini ya LCD. Mbali na BPM, skrini inaonyesha kiwango kinachohitajika ili mtumiaji aweze kulinganisha na kiwango cha moyo wake. Kuna hali nyingi ambapo inavutia kuongeza au kupunguza BPM yako mwenyewe. Kwa mfano, wanariadha wa uvumilivu lazima wadhibiti mapigo ili wasichoke kupita kiasi. Mfano wa kila siku itakuwa kutaka kulala au kutulia katika hali ya neva. Inaweza pia kutumiwa kama njia ya matibabu kwa watu walio na tawahudi kupunguza mafadhaiko wanayohisi. Karibu na skrini kuna vifungo viwili kudhibiti kiwango kinachotafutwa na kuongeza au kupunguza kiwango cha moyo. Kulingana na ukali, aina ya muziki iliyosomwa hapo awali inachezwa. Kuna masomo ambayo yanaonyesha kuwa muziki unaweza kubadilisha BPM. Kulingana na Beats kwa Dakika ya wimbo, mwili wa mwanadamu huiga na inafanana na BPM hiyo.

int SetResUp = 11; // pini 10 ya Arduino na kitufe cha kuongeza nguvu. set SetResDown = 12; // pini 11 ya Arduino na kitufe cha kupungua kwa nguvu

Res ResistutCounter = 0; // hali ya sasa ya kitufe cha kuongeza nguvu int ResButtonDownState = 0; // hali ya sasa ya kitufe cha kupungua kwa nguvu int lastResButtonUpState = 0; // hali ya mwisho ya kitufe cha kuongeza nguvu int lastResButtonDownState = 0; // hali ya mwisho ya kitufe cha kupungua kwa nguvu

pulsePin = 0; // Sensor ya Pulse iliyounganishwa na bandari A0 // Vigezo hivi ni tete kwa sababu hutumiwa wakati wa usumbufu katika tabo la pili. tete kati ya BPM; // Beats kwa dakika tete Int Signal; // Uingizaji data wa sensorer ya Pulse tete kati ya IBI = 600; // Pulse wakati tete ya boolean Pulse = uwongo; // Kweli wakati wimbi la kunde liko juu, la uwongo wakati ni chini ya hali ya chini ya boolean QS = uwongo;

# fafanua Anza_Byte 0x7E # fafanua Toleo_Byte 0xFF # fafanua Amri_Urefu 0x06 # fafanua End_Byte 0xEF # fafanua Kukiri 0x00 // Inarudi habari kwa amri 0x41 [0x01: info, 0x00: hakuna maelezo]

// PANTALLA # pamoja na // Pakia maktaba kwa kazi za skrini ya LCD # pamoja na # pamoja

LiquidCrystal LCD (7, 6, 5, 4, 3, 2); // Tangaza bandari ambazo LCD imeunganishwa

// LECTOR #jumuisha # pamoja # Pakia maktaba kwa kazi za moduli dfplayer mini MP3.

char serialData; int nsong; int v;

SoftwareSerial comm (9, 10); // Tangaza bandari ambazo DFPlayer imeunganishwa DFRobotDFPlayerMini mp3;

kuanzisha batili () {Serial.begin (9600); pinMode (SetResUp, INPUT); pinMode (SetResDown, INPUT);

// Fafanua vipimo vya LCD (16x2) lcd. Anza (16, 2); // Tunachagua katika safu gani na katika mstari gani maandishi yanaanza kuonyesha // LECTOR comm. Anza (9600);

mp3. anza (comm); // Sehemu inaanza serialData = (char) (('')); kuanza (); Serial.println ("Cheza"); // Cheza wimbo mp3.volume (25); // Fafanua ujazo}

kitanzi batili () {if (digitalRead (11) == LOW) {mp3.next (); // Ikiwa kitufe kinabanwa, wimbo unapita} ikiwa (digitalRead (12) == LOW) {mp3.yatangulia (); // Ikiwa kitufe kinabanwa, wimbo uliopita} // if (SetResUp && SetResDown == LOW) {

mapigo ya ndani = AnalogSoma (A0); // Soma thamani ya mfuatiliaji wa kiwango cha moyo kilichounganishwa na bandari ya Analog A0

Serial.println (pulso / 6); ikiwa (QS == kweli) {// Bendera ya Ubinafsi uliohesabiwa ni kweli kama utaftaji wa arduino BPM QS = uwongo; // Weka upya bendera ya Ulijihakikishia}

lcd.setCursor (0, 0); // Onyesha maandishi ya taka lcd.print ("BPM:"); lcd.setCursor (0, 1); // Onyesha maandishi ya taka lcd.print ("INT:"); lcd.setCursor (5, 0); // Onyesha maandishi ya taka lcd.print (pulso); lcd.setCursor (5, 1); // Onyesha maandishi ya taka lcd.print (ResButtonCounter); kuchelewesha (50); lcd wazi (); ResButtonUpState = digitalRead (SetResUp); ResButtonDownState = digitalRead (SetResDown);

// kulinganisha TempButtonState na hali yake ya awali

ikiwa (ResButtonUpState! = lastResButtonUpState && ResButtonUpState == LOW) {// ikiwa hali ya mwisho ilibadilika, ongeza kaunta

ResButtonCounter ++; }

// kuokoa hali ya sasa kama hali ya mwisho, // kwa wakati mwingine kitanzi kinatekelezwa mwishoResButtonUpState = ResButtonUpState;

// kulinganisha hali ya kifungo (ongeza au punguza) na hali ya mwisho

ikiwa (ResButtonDownState! = mwishoResButtonDownState && ResButtonDownState == LOW) {

// ikiwa hali ya mwisho ilibadilika, punguza kaunta

ResButtonCounter--; }

// kuokoa hali ya sasa kama hali ya mwisho, // kwa wakati mwingine kitanzi kitatekelezwa mwishoResButtonDownState = ResButtonDownState; {Serial.println (ResButtonCounter);

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

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

}

}

Hatua ya 5: Jumla ya Mkutano

Nambari iliyowekwa kwa usahihi na sehemu mbili za mfano wetu tayari zimekusanyika. Tunaweka vifaa vyote mahali pake na tujiunge na mkanda kuirekebisha kwa bangili. Vipengele ambavyo viko ndani ya bangili ni Sensor ya Kiwango cha Moyo BPM, vifungo viwili, potentiometer na Screen LCD, kila moja kwenye shimo lake lililoundwa hapo awali kwenye faili ya 3D. Sehemu ya kwanza ikifanywa, tunazingatia protoboard, kila kontakt kwenye pini sahihi ya bodi ya Arduino. Mwishowe, na operesheni iliyothibitishwa ya kila sehemu, tunaiweka kwenye kifurushi cha fanny ili kuficha waya.

Hatua ya 6: Video

Hatua ya 7: Hitimisho

Jambo la kufurahisha zaidi juu ya mradi huu ni kujifunza juu ya kuiga mwili wa mwanadamu bila kujua na muziki. Hii inafungua mlango kwa chaguzi nyingi kwa miradi ya baadaye. Nadhani huu ni mradi kamili, tuna vifaa anuwai na nambari iliyofanya kazi. Ikiwa tunaanza tena tutafikiria juu ya njia zingine mbadala au kuzinunua zenye ubora zaidi. Tumekuwa na shida nyingi na nyaya zilizovunjika na kulehemu, ni ndogo na dhaifu sana (haswa BPM). Kwa upande mwingine lazima uwe mwangalifu wakati wa kuunganisha vifaa, vina matokeo mengi na ni rahisi kufanya makosa.

Ni mradi wa kutajirisha sana ambao tumegusa anuwai ya chaguzi za vifaa vya Arduino na programu.

Ilipendekeza: