Სარჩევი:

ტარება - საბოლოო პროექტი: 7 ნაბიჯი
ტარება - საბოლოო პროექტი: 7 ნაბიჯი

ვიდეო: ტარება - საბოლოო პროექტი: 7 ნაბიჯი

ვიდეო: ტარება - საბოლოო პროექტი: 7 ნაბიჯი
ვიდეო: კახი კალაძე დატროლეს 😀🤣🤣 2024, ივნისი
Anonim
ტარება - საბოლოო პროექტი
ტარება - საბოლოო პროექტი

შესავალი

ამ პროექტში ჩვენ გვქონდა ამოცანა შევქმნათ კიბორგის ფუნქციებზე დაფუძნებული ფუნქციური ტარებადი პროტოტიპი. იცოდით რომ თქვენი გული სინქრონიზდება მუსიკის BPM- თან? თქვენ შეგიძლიათ სცადოთ გააკონტროლოთ თქვენი განწყობა მუსიკის საშუალებით, მაგრამ რა მოხდება, თუ ჩვენ მივცემთ ტექნოლოგიას საშუალებას, რომ დამშვიდდეს? ჩვენ უბრალოდ გვჭირდება რამდენიმე კომპონენტი, არდუინო და თქვენი ყურსასმენი. მოდით ინოვაცია!

მარკ ვილას, გილერმო სტაუფახერის და პაუ კარსელეს პროექტი

ნაბიჯი 1: მასალები და კომპონენტები

მასალები და კომპონენტები
მასალები და კომპონენტები

Სამშენებლო მასალები:

- 3D ბეჭდური სამაჯური

- M3 ხრახნები (x8)

- M3 კაკალი (x12)

- ფანის პაკეტი

ელექტრონული მასალები:

-გულისცემის მაჩვენებელი BPM

- ღილაკები (x2)

- პოტენომეტრი

- LCD C 1602 მოდული

- MODULE DFPLAYER MINI MP3

- 3.5 მმ ჯეკ სტერეო TRRS HEADSET

- MicroSD ბარათი

- არდუინო უნო ფირფიტა

- Შემდუღებელი

- ბაკელიტის ფირფიტა

ნაბიჯი 2: შექმენით სამაჯური

დიზაინი სამაჯური
დიზაინი სამაჯური
დიზაინი სამაჯური
დიზაინი სამაჯური

თავდაპირველად ჩვენ ვაკეთებთ რამდენიმე ესკიზს სამაჯურში სხვადასხვა კომპონენტის ორგანიზების მიზნით.

მკაფიო იდეით, ჩვენ განვიხილეთ ჯგუფის წევრების სამი მკლავი, შემდეგ გავაკეთეთ საშუალო, რომ ვიპოვოთ დიზაინის ოპტიმალური ზომა. საბოლოოდ ჩვენ ვქმნით პროდუქტს 3D პროგრამით და ვბეჭდავთ მას 3D პრინტერით.

თქვენ შეგიძლიათ ჩამოტვირთოთ. STL ფაილები აქ.

ნაბიჯი 3: ელექტრონული კავშირები

ელექტრონული კავშირები
ელექტრონული კავშირები

ჩვენ ვაგრძელებთ ჩვენი 3D დიზაინის საჭირო შემოწმებებს, ჩვენ გავაკეთეთ პროტოტიპის ყველა კომპონენტის პირველი შეკრება იმის დასადგენად, რომ გაზომვები იყო სწორი.

არდუინოს დაფაზე ყველა კომპონენტის დასაკავშირებლად ჩვენ გავაკეთეთ სხვადასხვა კავშირი კომპონენტებისგან 0, 5 მეტრიანი კაბელების გამოყენებით, ამ გზით ჩვენ ვამცირებთ დაფის ხილვადობას და უკეთ ვაწყობთ პროტოტიპს.

ნაბიჯი 4: კოდი

Კოდი
Კოდი
Კოდი
Კოდი
Კოდი
Კოდი

ეს პროექტი კიბორგის პროტოტიპია. ცხადია, ჩვენ არ შემოვიღეთ კომპონენტები კანის ქვეშ, ამიტომ ჩვენ მას მოვახდინეთ სამაჯურით, როგორც ორთოზი (გარე მოწყობილობა, რომელიც გამოიყენება სხეულზე ფუნქციური ასპექტების შესაცვლელად).

ჩვენი კოდი იღებს მომხმარებლის ღილაკებს და აჩვენებს მათ LCD ეკრანის გამოყენებით. BPM– ის გარდა, ეკრანი აჩვენებს სასურველ ინტენსივობას ისე, რომ მომხმარებელს შეუძლია შეადაროს ის თავის გულისცემას. ბევრი სიტუაციაა, როდესაც საინტერესოა საკუთარი BPM გაზრდა ან შემცირება. მაგალითად, გამძლეობის სპორტსმენებმა უნდა გააკონტროლონ პულსაციები, რათა ზედმეტად არ დაიღალონ. ყოველდღიური მაგალითი იქნება ძილი ან დამშვიდება ნერვულ სიტუაციაში. ის ასევე შეიძლება გამოყენებულ იქნას როგორც თერაპიული მეთოდი აუტიზმის მქონე ადამიანებისთვის, რათა შეამცირონ სტრესი. ეკრანის გვერდით არის ორი ღილაკი, რათა აკონტროლოთ სასურველი ინტენსივობა და გაზარდოთ ან შეამციროთ გულისცემა. ინტენსივობიდან გამომდინარე, უკრავს ადრე შესწავლილი ტიპის მუსიკა. არსებობს კვლევები, რომლებიც აჩვენებს, რომ მუსიკას შეუძლია შეცვალოს BPM. სიმღერის Beats per Minute მიხედვით, ადამიანის სხეული მიბაძავს და ემთხვევა იმ BPM- ს.

int SetResUp = 11; // Arduino- ს პინ 10 ინტენსივობის გაზრდის ღილაკით. int SetResDown = 12; // არდუინოს პინი 11 ინტენსივობის შემცირების ღილაკით

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; // პულსის დრო არასტაბილური ლოგიკური პულსი = ყალბი; // ჭეშმარიტი, როდესაც პულსის ტალღა მაღალია, მცდარი, როდესაც ის დაბალი არასტაბილური ლოგიკურია QS = მცდარი;

# განსაზღვრეთ დაწყება_ბაიტი 0x7E # განსაზღვრეთ ვერსია_ბიტი 0xFF # განსაზღვრეთ ბრძანების_სიგრძე 0x06 # განსაზღვრეთ დასრულება_ბაიტი 0xEF # განსაზღვრეთ აღიარეთ 0x00 // აბრუნებს ინფორმაციას ბრძანებით 0x41 [0x01: ინფორმაცია, 0x00: ინფორმაცია არ აქვს]

// PANTALLA #include // ბიბლიოთეკის ატვირთვა LCD ეკრანის ფუნქციებისთვის #მოიცავს #მოიცავს

LiquidCrystal LCD (7, 6, 5, 4, 3, 2); // გამოაცხადეთ პორტები, სადაც LCD არის დაკავშირებული

// LECTOR #include #include // ბიბლიოთეკის ატვირთვა dfplayer მინი 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. დასაწყისი (16, 2); // ჩვენ ვირჩევთ რომელ სვეტში და რომელ სტრიქონში იწყებს ტექსტის ჩვენება // LECTOR comm.begin (9600);

mp3.დაწყება (comm); // კომპონენტი იწყებს serialData = (char) (('')); mp3. დაწყება (); Serial.println ("თამაში"); // სიმღერის დაკვრა mp3.ტომი (25); // მოცულობის განსაზღვრა}

void loop () {if (digitalRead (11) == LOW) {mp3. შემდეგი (); // თუ ღილაკზე დაჭერილია, სიმღერა გადის} if (digitalRead (12) == LOW) {mp3.precious (); // თუ ღილაკზე დაჭერილია, წინა სიმღერა} // თუ (SetResUp && SetResDown == LOW) {

int pulso = analogRead (A0); // წაიკითხეთ გულისცემის მონიტორის მნიშვნელობა, რომელიც დაკავშირებულია ანალოგიურ პორტთან A0

Serial.println (pulso/6); თუ (QS == ჭეშმარიტი) {// რაოდენობრივი თვით დროშა მართალია არდუინოს ძიების მსგავსად BPM QS = მცდარი; // რაოდენობრივი მნიშვნელობის დროშის გადაყენება}

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. წმინდა (); ResButtonUpState = digitalRead (SetResUp); ResButtonDownState = digitalRead (SetResDown);

// შეადარეთ TempButtonState თავის წინა მდგომარეობას

თუ (ResButtonUpState! = lastResButtonUpState && ResButtonUpState == LOW) {// თუ ბოლო მდგომარეობა შეიცვალა, გაზარდეთ მრიცხველი

ResButtonCounter ++; }

// შეინახეთ მიმდინარე მდგომარეობა, როგორც ბოლო მდგომარეობა, // შემდეგ ჯერზე მარყუჟი შესრულდება lastResButtonUpState = ResButtonUpState;

// შეადარეთ ღილაკის მდგომარეობა (გაზრდა ან შემცირება) ბოლო მდგომარეობასთან

თუ (ResButtonDownState! = lastResButtonDownState && ResButtonDownState == დაბალი) {

// თუ ბოლო მდგომარეობა შეიცვალა, შეამცირეთ მრიცხველი

ResButtonCounter--; }

// შეინახეთ მიმდინარე მდგომარეობა, როგორც ბოლო მდგომარეობა, // შემდეგ ჯერზე მარყუჟი შესრულდება lastResButtonDownState = ResButtonDownState; {Serial.println (ResButtonCounter);

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

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

}

}

ნაბიჯი 5: სულ შეკრება

სწორად დაპროგრამებული კოდით და ჩვენი პროტოტიპის ორი ნაწილი უკვე შეკრებილია. ჩვენ ყველა კომპონენტს ვდებთ ადგილზე და ვუერთდებით მას ფირზე, რომ დავაფიქსიროთ სამაჯურზე. სამაჯურში შემავალი კომპონენტებია Heart Rate Sensor BPM, ორი ღილაკი, პოტენომეტრი და LCD ეკრანი, თითოეული თავის შესაბამის ხვრელში, რომელიც ადრე იყო შემუშავებული 3D ფაილში. პირველი ნაწილის გაკეთებით, ჩვენ ყურადღებას ვაქცევთ პროტობორდს, თითოეული კონექტორი არდუინოს დაფის სწორ პინზე. საბოლოოდ, თითოეული კომპონენტის გადამოწმებული ოპერაციით, ჩვენ მას ჩავდებთ ფანიანი პაკეტში, რათა დაიმალოს მავთულები.

ნაბიჯი 6: ვიდეო

ნაბიჯი 7: დასკვნა

ამ პროექტის ყველაზე საინტერესო რამ არის ადამიანის სხეულის არაცნობიერად მიბაძვის სწავლა მუსიკით. ეს ხსნის კარი ბევრ პროექტს მომავალი პროექტებისთვის. მე ვფიქრობ, რომ ეს არის სრული პროექტი, ჩვენ გვაქვს საკმაოდ მრავალფეროვანი კომპონენტი დამუშავებული კოდით. თუ თავიდან დავიწყებთ, ვიფიქრებდით სხვა კომპონენტურ ალტერნატივებზე ან ვიყიდდით მათ უკეთესი ხარისხის. ჩვენ გვქონდა ბევრი პრობლემა გატეხილი კაბელებთან და შედუღებასთან დაკავშირებით, ისინი პატარა და ძალიან დელიკატურია (განსაკუთრებით BPM). მეორეს მხრივ, თქვენ უნდა იყოთ ფრთხილად კომპონენტების შეერთებისას, მათ აქვთ ბევრი გამოსავალი და ადვილია შეცდომების დაშვება.

ეს არის ძალიან გამამდიდრებელი პროექტი, რომელშიც ჩვენ შევეხეთ Arduino– ს აპარატურისა და პროგრამული უზრუნველყოფის ფართო არჩევანს.

გირჩევთ: