Turinys:

Nešioti - galutinis projektas: 7 žingsniai
Nešioti - galutinis projektas: 7 žingsniai

Video: Nešioti - galutinis projektas: 7 žingsniai

Video: Nešioti - galutinis projektas: 7 žingsniai
Video: Skaitmeninio raštingumo mokymai #CREW​ - 7 susitikimas 2024, Birželis
Anonim
Nešioti - galutinis projektas
Nešioti - galutinis projektas

ĮVADAS

Šiame projekte mes turėjome užduotį sukurti funkcionalų nešiojamą prototipą, pagrįstą kiborgo funkcijomis. Ar žinojote, kad jūsų širdis sinchronizuojasi su muzikos BPM? Galite pabandyti valdyti savo nuotaiką per muziką, bet kas, jei leisime technologijoms padėti mums nusiraminti? Mums reikia tik kai kurių komponentų, „Arduino“ir jūsų ausinių. Naujokime!

Marc Vila, Guillermo Stauffacher ir Pau Carcellé projektas

1 žingsnis: medžiagos ir komponentai

Medžiagos ir komponentai
Medžiagos ir komponentai

Statybinės medžiagos:

- 3D spausdinta apyrankė

- M3 varžtai (x8)

- M3 veržlės (x12)

- Fanny pakuotė

Elektroninės medžiagos:

-Širdies ritmo jutiklis BPM

- Mygtukai (x2)

- potenciometras

- LCD C 1602 MODULIS

- MODULIS DFPLAYER MINI MP3

- 3,5 mm „Jack Stereo“TRRS AUSINĖ

- „MicroSD“kortelė

- „Arduino Uno“plokštė

- Suvirintojas

- Bakelito plokštė

2 žingsnis: suprojektuokite apyrankę

Sukurkite apyrankę
Sukurkite apyrankę
Sukurkite apyrankę
Sukurkite apyrankę

Pirmiausia padarome keletą eskizų, kad sutvarkytume įvairius apyrankės komponentus.

Turėdami aiškią idėją, mes išmatavome tris grupės narių rankas, tada apskaičiavome vidurkį, kad surastume optimalų dizaino matą. Galiausiai suprojektuojame gaminį naudodami 3D programą ir atspausdiname 3D spausdintuvu.

Čia galite atsisiųsti. STL failus.

3 žingsnis: elektroniniai ryšiai

Elektroninės jungtys
Elektroninės jungtys

Mes ir toliau tikriname savo 3D dizainą, pirmą kartą surinkome visus prototipo komponentus, kad pamatytume, jog matavimai buvo ištaisyti.

Norėdami prijungti visus komponentus prie „Arduino“plokštės, mes atlikome skirtingas jungtis iš komponentų naudodami 0, 5 metrų kabelius, tokiu būdu sumažindami plokštės matomumą ir geriau organizuodami prototipą.

4 žingsnis: Kodas

Kodas
Kodas
Kodas
Kodas
Kodas
Kodas

Šis projektas yra kiborgo prototipas. Akivaizdu, kad mes neįvedėme komponentų po oda, todėl imitavome jį su apyranke kaip ortozę (išorinis prietaisas, pritaikytas prie kūno, siekiant pakeisti funkcinius aspektus).

Mūsų kodas priima vartotojo klavišų paspaudimus ir rodomas naudojant LCD ekraną. Be BPM, ekrane rodomas norimas intensyvumas, kad vartotojas galėtų jį palyginti su savo širdies ritmu. Yra daug situacijų, kai įdomu padidinti ar sumažinti savo BPM. Pavyzdžiui, ištvermės sportininkai turi kontroliuoti pulsaciją, kad nepervargtų per daug. Kasdienis pavyzdys būtų noras išsimiegoti ar nusiraminti esant nervinei situacijai. Jis taip pat galėtų būti taikomas kaip terapinis metodas žmonėms, sergantiems autizmu, siekiant sumažinti jų patiriamą stresą. Šalia ekrano yra du mygtukai norimam intensyvumui valdyti ir širdies ritmui padidinti arba sumažinti. Priklausomai nuo intensyvumo, grojama anksčiau ištirta muzikos rūšis. Yra tyrimų, kurie rodo, kad muzika gali pakeisti BPM. Remiantis dainos „Beats per Minute“duomenimis, žmogaus kūnas imituoja ir atitinka tuos BPM.

int SetResUp = 11; // „Arduino“kaištis 10 su intensyvumo didinimo mygtuku. int SetResDown = 12; // „Arduino“smeigtukas su intensyvumo mažinimo mygtuku

int ResButtonCounter = 0; // kartų skaitiklis, kuris padidina arba sumažina pasipriešinimo nustatymą, pradinė vertė 0 int ResButtonUpState = 0; // dabartinė intensyvumo didinimo mygtuko būsena int ResButtonDownState = 0; // dabartinė intensyvumo mažinimo mygtuko būsena int lastResButtonUpState = 0; // paskutinė intensyvumo didinimo mygtuko būsena int lastResButtonDownState = 0; // paskutinė intensyvumo mažinimo mygtuko būsena

int pulsePin = 0; // Impulsų jutiklis prijungtas prie A0 prievado // Šie kintamieji yra nepastovūs, nes jie naudojami pertraukimo rutinos metu antrame skirtuke. nepastovus int BPM; // Smūgiai per minutę nepastovus int Signal; // Impulso jutiklio duomenų įvestis nepastovus int IBI = 600; // Impulsų laiko nepastovus loginis pulsas Pulse = false; // Tiesa, kai impulsų banga aukšta, klaidinga, kai ji yra maža nepastovi loginė vertė QS = false;

# define Start_Byte 0x7E # define Version_Byte 0xFF # define Command_Length 0x06 # define End_Byte 0xEF # define Acknowledge 0x00 // Grąžina informaciją su komanda 0x41 [0x01: info, 0x00: no info]

// PANTALLA #include // Įkelkite LCD ekrano funkcijų biblioteką #include #include

„LiquidCrystal lcd“(7, 6, 5, 4, 3, 2); // Deklaruokite prievadus, prie kurių prijungtas LCD ekranas

// LEKTORIUS #include #include // Įkelkite biblioteką, skirtą modulio dfplayer mini MP3 funkcijoms.

char serialData; int giesmė; int v;

SoftwareSerial comm (9, 10); // Deklaruoti prievadus, prie kurių prijungtas DFPlayer DFRobotDFPlayerMini mp3;

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

// Nustatykite LCD matmenis (16x2) lcd.begin (16, 2); // Mes pasirenkame, kuriame stulpelyje ir kurioje eilutėje tekstas pradedamas rodyti // LECTOR comm.begin (9600);

mp3.begin (comm); // Komponentas pradeda serialData = (char) (('')); mp3.start (); Serial.println („Paleisti“); // Groti dainą mp3.tomas (25); // Apibrėžti garsumą}

void loop () {if (digitalRead (11) == LOW) {mp3.next (); // Jei paspaudžiamas mygtukas, daina praeina} if (digitalRead (12) == LOW) {mp3.previous (); // Jei paspaudžiamas mygtukas, ankstesnė daina} // if (SetResUp && SetResDown == LOW) {

int pulso = analogRead (A0); // Perskaitykite širdies ritmo monitoriaus, prijungto prie analoginio prievado A0, vertę

Serial.println (pulso/6); if (QS == true) {// Kiekybinio savęs vėliava yra tiesa, kaip arduino paieška BPM QS = false; // Iš naujo nustatyti kiekybinio savęs vėliavą}

lcd.setCursor (0, 0); // Rodyti norimą tekstą lcd.print ("BPM:"); lcd.setCursor (0, 1); // Rodyti norimą tekstą lcd.print ("INT:"); lcd.setCursor (5, 0); // Rodyti norimą tekstą lcd.print (pulso); lcd.setCursor (5, 1); // Rodyti norimą tekstą lcd.print (ResButtonCounter); vėlavimas (50); lcd.clear (); ResButtonUpState = digitalRead (SetResUp); ResButtonDownState = digitalRead (SetResDown);

// palyginti TempButtonState su ankstesne būsena

if (ResButtonUpState! = lastResButtonUpState && ResButtonUpState == LOW) {// jei pasikeitė paskutinė būsena, padidinkite skaitiklį

„ResButtonCounter“++; }

// išsaugoti dabartinę būseną kaip paskutinę būseną, // kitą kartą, kai ciklas vykdomas lastResButtonUpState = ResButtonUpState;

// palyginkite mygtuko būseną (padidinkite arba sumažinkite) su paskutine būsena

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

// jei pasikeitė paskutinė būsena, sumažinkite skaitiklį

ResButtonCounter--; }

// išsaugoti dabartinę būseną kaip paskutinę būseną, // kitą kartą, kai kilpa vykdoma lastResButtonDownState = ResButtonDownState; {Serial.println (ResButtonCounter);

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

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

}

}

5 žingsnis: Visas surinkimas

Tinkamai užprogramuotas kodas ir dvi mūsų prototipo dalys jau surinktos. Mes dedame visus komponentus į vietą ir sujungiame juostele, kad pritvirtintume prie apyrankės. Apyrankėje esantys komponentai yra širdies ritmo jutiklis BPM, du mygtukai, potenciometras ir skystųjų kristalų ekranas, kiekvienas jų atitinkamoje skylėje, anksčiau suplanuotoje 3D faile. Atlikę pirmąją dalį, mes sutelkiame dėmesį į protobondą, kiekvieną jungtį ant tinkamo „Arduino“plokštės kaiščio. Galiausiai, patikrinę kiekvieno komponento veikimą, įdėjome jį į maišelį, kad paslėptumėte laidus.

6 žingsnis: vaizdo įrašas

7 žingsnis: Išvada

Įdomiausia šiame projekte - išmokti nesąmoningai mėgdžioti žmogaus kūną muzika. Tai atveria duris daugeliui ateities projektų galimybių. Manau, kad tai yra baigtas projektas, mes turime gana daug komponentų su veikiančiu kodu. Jei pradėtume iš naujo, galvotume apie kitas komponentų alternatyvas arba pirktume jas geresnės kokybės. Turėjome daug problemų dėl nutrūkusių kabelių ir suvirinimo, jie yra nedideli ir labai subtilūs (ypač BPM). Kita vertus, turite būti atsargūs jungdami komponentus, jie turi daug išėjimų ir lengva padaryti klaidų.

Tai labai praturtinantis projektas, kuriame mes palietėme daugybę įvairių „Arduino“aparatinės ir programinės įrangos galimybių.

Rekomenduojamas: