Мазмуну:

Кийилүүчү - Акыркы долбоор: 7 кадам
Кийилүүчү - Акыркы долбоор: 7 кадам

Video: Кийилүүчү - Акыркы долбоор: 7 кадам

Video: Кийилүүчү - Акыркы долбоор: 7 кадам
Video: Создание настоящего мусорного журнала ЧАСТЬ 3 – Голодающая Эмма 2024, Июнь
Anonim
Кийилүүчү - Акыркы долбоор
Кийилүүчү - Акыркы долбоор

КИРИШҮҮ

Бул долбоордо биз киборг функцияларынын негизинде иштей турган кийилүүчү прототип жасоо милдетин алдык. Сиздин жүрөгүңүз BPM музыкасы менен шайкештешээрин билчү белеңиз? Музыка аркылуу маанайыңызды башкарууга аракет кылып көрсөңүз болот, бирок биз технологиянын тынчтанышына жардам берсек эмне болот? Бизге кээ бир компоненттер, Arduino жана гарнитуралар керек. Келгиле, инновация кылалы!

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

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

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

Курулуш материалдары:

- 3d басылган билерик

- M3 бурамалар (x8)

- M3 жаңгактар (x12)

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

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

-Жүрөктүн Rate Sensor BPM

- Баскычтар (x2)

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

- LCD C 1602 МОДУЛИ

- MODULE DFPLAYER MINI MP3

- 3.5мм Джек стерео TRRS гарнитура

- MicroSD картасы

- Arduino Uno Plate

- Ширетүүчү

- Бакелит плитасы

2 -кадам: билерикти жасаңыз

Билек боону долбоорлоо
Билек боону долбоорлоо
Билек боону долбоорлоо
Билек боону долбоорлоо

Биринчиден, биз билериктин ар кандай компоненттерин уюштуруу үчүн бир нече эскиздерди жасайбыз.

Таза идея менен, биз топтун мүчөлөрүнүн үч колун өлчөдүк, андан кийин дизайн үчүн оптималдуу чараны табуу үчүн орточо көрсөткүчтү чыгардык. Акыры биз продуктту 3d программасы менен иштеп чыгып, аны 3D принтер менен басып чыгарабыз.

Сиз бул жерден. STL файлдарын жүктөй аласыз.

3 -кадам: Электрондук байланыштар

Электрондук байланыштар
Электрондук байланыштар

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

Бардык компоненттерди Arduino тактасына туташтыруу үчүн, биз 0, 5 метр кабелдерди колдонуп, компоненттерден ар кандай байланыштарды жасадык, ушинтип биз тактанын көрүнүшүн азайтабыз жана прототипти жакшыраак уюштурабыз.

4 -кадам: Код

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

Бул долбоор киборгдун прототиби болуп саналат. Албетте, биз теринин астына компоненттерди киргизе элекпиз, ошондуктан биз аны ортопез катары браслет менен окшоштурдук (функционалдык аспектилерин өзгөртүү үчүн денеге колдонулган тышкы түзүлүш).

Биздин код колдонуучунун баскычтарын алат жана аларды ЖК экран аркылуу көрсөтөт. BPMден тышкары, экран керектүү интенсивдүүлүктү көрсөтөт, ошондуктан колдонуучу аны жүрөктүн кагышы менен салыштыра алат. Жеке BPMди көбөйтүү же азайтуу кызыктуу болгон көптөгөн жагдайлар бар. Мисалы, чыдамкай спортчулар ашыкча чарчабаш үчүн пульсацияларды көзөмөлдөшү керек. Күнүмдүк мисал - тынчсыздануу абалында уктап же тынчтанууну каалоо. Бул ошондой эле аутизм менен ооруган адамдар үчүн стрессти азайтуу үчүн терапиялык ыкма катары колдонулушу мүмкүн. Экрандын жанында керектүү интенсивдүүлүктү көзөмөлдөө жана жүрөктүн кагышын көбөйтүү же азайтуу үчүн эки баскыч бар. Интенсивдүүлүгүнө жараша мурда изилденген музыканын түрү ойнотулат. Музыка BPMди өзгөртө аларын көрсөткөн изилдөөлөр бар. Ырдын Beats per Minute ырына ылайык, адамдын денеси ошол BPMди туурап, дал келет.

int SetResUp = 11; // интенсивдүүлүгүн жогорулатуу button.int SetResDown = 12 менен Arduino 10 пин; // интенсивдүүлүктү азайтуу баскычы менен Arduino 11 пин

int ResButtonCounter = 0; // каршылыктын жөндөөсүн жогорулатуучу же төмөндөтүүчү эсептегич, 0 int ResButtonUpState = 0 баштапкы мааниси; // интенсивдүүлүктү жогорулатуу баскычынын учурдагы абалы int ResButtonDownState = 0; // интенсивдүүлүктү төмөндөтүү баскычынын учурдагы абалы int lastResButtonUpState = 0; // интенсивдүүлүктү жогорулатуу баскычынын акыркы абалы int lastResButtonDownState = 0; // интенсивдүүлүктү азайтуу баскычынын акыркы абалы

int pulsePin = 0; // A0 портуна туташкан Pulse Sensor // Бул өзгөрмөлөр туруксуз, анткени алар экинчи өтмөктө үзгүлтүккө учуроо учурунда колдонулат. туруксуз int BPM; // Beats per minute volatile int Signal; // Импульс сенсорунун маалыматын киргизүү туруксуз int IBI = 600; // Импульс убактысы туруксуз логикалык Pulse = false; // Импульс толкуну жогору болгондо чындык, Төмөн туруксуз логикалык QS = жалган болгондо жалган;

# аныктоо Start_Byte 0x7E # аныктоо Version_Byte 0xFF # Command_Length 0x06 # аныктоо End_Byte 0xEF # аныктоо Axnowledge 0x00 // 0x41 буйругу менен маалыматты кайтарат [0x01: маалымат, 0x00: маалымат жок]

// PANTALLA #include // ЖК экрандын функциялары үчүн китепкананы жүктөө #кошуу #кошуу

LiquidCrystal lcd (7, 6, 5, 4, 3, 2); // ЖК кошулган портторду жарыялагыла

// LECTOR #include #include // dfplayer mini MP3 модулунун функциялары үчүн китепкананы жүктөө.

char serialData; int nsong; Сыналгыда;

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 ("Play"); // Ырды ойнот 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 Heart Rate Sensor, эки баскыч, потенциометр жана ЖК экраны, алардын ар бири мурда 3D файлында иштелип чыккан. Биринчи бөлүк бүткөндөн кийин, биз Arduino тактасынын туура төөнөгүчүндөгү ар бир туташтыргычы протоборго көңүл бурабыз. Акыр -аягы, ар бир компоненттин текшерилген иштеши менен, биз зымдарды жашыруу үчүн аны фанни пакетине салабыз.

6 -кадам: Видео

7 -кадам: Жыйынтык

Бул долбоордун эң кызыктуусу - адамдын денесин музыка менен аң -сезимсиз түрдө тууроо жөнүндө үйрөнүү. Бул келечектеги долбоорлор үчүн көптөгөн варианттарга жол ачат. Менимче, бул толук долбоор, бизде иштеген коду бар көптөгөн компоненттер бар. Эгерде биз кайра баштасак, башка компоненттердин альтернативалары жөнүндө ойлонуп же сапаттуу сатып алмакпыз. Бизде сынган кабелдер жана ширетүү көйгөйлөрү көп болгон, алар кичинекей жана өтө назик (айрыкча BPM). Башка жагынан алганда, компоненттерди туташтырууда этият болуш керек, аларда көптөгөн жыйынтыктар бар жана ката кетирүү оңой.

Бул абдан байытуучу долбоор, анда биз Arduino аппараттык жана программалык камсыздоонун көптөгөн түрлөрүнө токтолдук.

Сунушталууда: