Πίνακας περιεχομένων:

Φορετό - Τελικό έργο: 7 βήματα
Φορετό - Τελικό έργο: 7 βήματα

Βίντεο: Φορετό - Τελικό έργο: 7 βήματα

Βίντεο: Φορετό - Τελικό έργο: 7 βήματα
Βίντεο: 8 πράγματα που δεν ξέρεις για το Apple Watch | 2020 Tips 2024, Ιούνιος
Anonim
Φορετό - Τελικό έργο
Φορετό - Τελικό έργο

ΕΙΣΑΓΩΓΗ

Σε αυτό το έργο είχαμε το καθήκον να φτιάξουμε ένα λειτουργικό φορετό πρωτότυπο βασισμένο σε λειτουργίες cyborg. Γνωρίζατε ότι η καρδιά σας συγχρονίζεται με το BPM της μουσικής; Μπορείτε να προσπαθήσετε να ελέγξετε τη διάθεσή σας μέσω της μουσικής, αλλά τι γίνεται αν αφήσουμε την τεχνολογία να μας βοηθήσει να ηρεμήσουμε; Χρειαζόμαστε μόνο μερικά εξαρτήματα, ένα Arduino και τα ακουστικά σας. Ας καινοτομήσουμε!

Έργο των Marc Vila, Guillermo Stauffacher και Pau Carcellé

Βήμα 1: Υλικά και εξαρτήματα

Υλικά και εξαρτήματα
Υλικά και εξαρτήματα

ΚΑΤΑΣΚΕΥΑΣΤΙΚΑ ΥΛΙΚΑ:

- τρισδιάστατο τυπωμένο βραχιόλι

Βίδες M3 (x8)

Μ3 παξιμάδια (x12)

- Πακέτο Fanny

Ηλεκτρονικά υλικά:

-Αισθητήρας ρυθμού καρδιάς BPM

- Κουμπιά (x2)

- Ποτενσιόμετρο

- ΜΟΝΑΔΑ LCD C 1602

MODULE DFPLAYER MINI MP3

- Στερεοφωνικό ακουστικό Jack Stereo TRRS 3,5 mm

- Κάρτα MicroSD

- Πιάτο Arduino Uno

- Συγκολλητής

- Πιάτο βακελίτη

Βήμα 2: Σχεδιάστε ένα βραχιολάκι

Σχεδιάστε ένα βραχιολάκι
Σχεδιάστε ένα βραχιολάκι
Σχεδιάστε ένα βραχιολάκι
Σχεδιάστε ένα βραχιολάκι

Πρώτα κάνουμε πολλά σκίτσα για να οργανώσουμε τα διαφορετικά εξαρτήματα στο βραχιολάκι.

Με τη σαφή ιδέα, κάναμε μετρήσεις των τριών βραχιόνων των μελών της ομάδας, στη συνέχεια κάναμε τον μέσο όρο για να βρούμε το βέλτιστο μέτρο για το σχέδιο. Τέλος σχεδιάζουμε το προϊόν με ένα τρισδιάστατο πρόγραμμα και το εκτυπώνουμε με έναν 3D εκτυπωτή.

Μπορείτε να κατεβάσετε τα αρχεία. STL εδώ.

Βήμα 3: Ηλεκτρονικές συνδέσεις

Ηλεκτρονικές συνδέσεις
Ηλεκτρονικές συνδέσεις

Συνεχίζουμε να κάνουμε τους απαραίτητους ελέγχους του τρισδιάστατου σχεδιασμού μας, κάναμε μια πρώτη συναρμολόγηση όλων των εξαρτημάτων στο πρωτότυπο για να δούμε ότι οι μετρήσεις ήταν σωστές.

Για να συνδέσουμε όλα τα εξαρτήματα στον πίνακα Arduino, πραγματοποιήσαμε διαφορετικές συνδέσεις από τα εξαρτήματα χρησιμοποιώντας καλώδια 0, 5 μέτρων, με αυτόν τον τρόπο μειώνουμε την ορατότητα της πλακέτας και οργανώνουμε καλύτερα το πρωτότυπο.

Βήμα 4: Ο κώδικας

Ο κώδικας
Ο κώδικας
Ο κώδικας
Ο κώδικας
Ο κώδικας
Ο κώδικας

Αυτό το έργο είναι ένα πρωτότυπο cyborg. Προφανώς δεν έχουμε εισαγάγει τα εξαρτήματα κάτω από το δέρμα, οπότε το έχουμε προσομοιώσει με ένα βραχιόλι ως όρθωση (εξωτερική συσκευή που εφαρμόζεται στο σώμα για να τροποποιήσει τις λειτουργικές πτυχές).

Ο κωδικός μας λαμβάνει τα πλήκτρα του χρήστη και τα εμφανίζει χρησιμοποιώντας την οθόνη LCD. Εκτός από το BPM, η οθόνη δείχνει την επιθυμητή ένταση, ώστε ο χρήστης να μπορεί να τη συγκρίνει με τον καρδιακό του ρυθμό. Υπάρχουν πολλές καταστάσεις όπου είναι ενδιαφέρον να αυξήσετε ή να μειώσετε το δικό σας BPM. Για παράδειγμα, οι αθλητές αντοχής πρέπει να ελέγχουν τους παλμούς για να μην κουράζονται υπερβολικά. Ένα καθημερινό παράδειγμα θα ήταν να θέλετε να κοιμηθείτε ή να ηρεμήσετε σε μια νευρική κατάσταση. Θα μπορούσε επίσης να εφαρμοστεί ως θεραπευτική μέθοδος για άτομα με αυτισμό για να μειώσουν το άγχος που αισθάνονται. Δίπλα στην οθόνη υπάρχουν δύο κουμπιά για τον έλεγχο της επιθυμητής έντασης και την αύξηση ή μείωση του καρδιακού ρυθμού. Ανάλογα με την ένταση, παίζεται ένα είδος μουσικής που έχει μελετηθεί προηγουμένως. Υπάρχουν μελέτες που δείχνουν ότι η μουσική μπορεί να αλλάξει το BPM. Σύμφωνα με τους Beats per Minute του τραγουδιού, το ανθρώπινο σώμα μιμείται και ταιριάζει με αυτά τα BPM.

int SetResUp = 11; // καρφίτσα 10 του Arduino με κουμπί αύξησης έντασης.int SetResDown = 12; // καρφίτσα 11 του Arduino με κουμπί μείωσης έντασης

int ResButtonCounter = 0; // time counter που αυξάνει ή μειώνει τη ρύθμιση αντίστασης, αρχική τιμή 0 int ResButtonUpState = 0; // τρέχουσα κατάσταση του κουμπιού αύξησης της έντασης int ResButtonDownState = 0; // τρέχουσα κατάσταση του κουμπιού μείωσης έντασης int lastResButtonUpState = 0; // τελευταία κατάσταση του κουμπιού αύξησης της έντασης int lastResButtonDownState = 0; // τελευταία κατάσταση του κουμπιού μείωσης έντασης

int pulsePin = 0; // Αισθητήρας παλμών συνδεδεμένος στη θύρα A0 // Αυτές οι μεταβλητές είναι ασταθείς επειδή χρησιμοποιούνται κατά τη διάρκεια της ρουτίνας διακοπής στη δεύτερη καρτέλα. πτητικό int BPM; // Ρυθμοί ανά λεπτό πτητικό int Σήμα; // Εισαγωγή δεδομένων αισθητήρα παλμού πτητικό int IBI = 600; // Χρόνος παλμού πτητικό boolean Pulse = false; // True όταν το κύμα παλμών είναι υψηλό, ψευδές όταν είναι Low volatile boolean QS = false?

# define Start_Byte 0x7E # define Version_Byte 0xFF # define Command_Length 0x06 # define End_Byte 0xEF # define Αναγνώριση 0x00 // Επιστρέφει πληροφορίες με εντολή 0x41 [0x01: info, 0x00: no info]

// PANTALLA #include // Ανεβάστε τη βιβλιοθήκη για τις λειτουργίες της οθόνης LCD #include #include

LiquidCrystal LCD (7, 6, 5, 4, 3, 2); // Δηλώστε τις θύρες στις οποίες είναι συνδεδεμένη η οθόνη LCD

// 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);

// Ορίστε τις διαστάσεις της οθόνης LCD (16x2) lcd.begin (16, 2). // Επιλέγουμε σε ποια στήλη και σε ποια γραμμή αρχίζει να εμφανίζεται το κείμενο // LECTOR comm.begin (9600).

mp3.αρχή (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); // Διαβάστε την τιμή του μετρητή καρδιακών παλμών που είναι συνδεδεμένος στην αναλογική θύρα A0

Serial.println (pulso/6); εάν (QS == true) {// Flag of Quantified Self είναι true όπως η αναζήτηση 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 με την προηγούμενη κατάστασή του

εάν (ResButtonUpState! = lastResButtonUpState && ResButtonUpState == LOW) {// αν άλλαξε η τελευταία κατάσταση, αυξήστε τον μετρητή

ResButtonCounter ++; }

// αποθηκεύστε την τρέχουσα κατάσταση ως τελευταία κατάσταση, // για την επόμενη φορά που εκτελείται ο βρόχος lastResButtonUpState = ResButtonUpState;

// συγκρίνετε την κατάσταση του κουμπιού (αύξηση ή μείωση) με την τελευταία κατάσταση

εάν (ResButtonDownState! = lastResButtonDownState && ResButtonDownState == LOW) {

// εάν η τελευταία κατάσταση άλλαξε, μειώστε τον μετρητή

ResButtonCounter--; }

// αποθηκεύστε την τρέχουσα κατάσταση ως την τελευταία κατάσταση, // για την επόμενη φορά που εκτελείται ο βρόχος lastResButtonDownState = ResButtonDownState; {Serial.println (ResButtonCounter);

εάν (ResButtonCounter> = 10) {ResButtonCounter = 10; }

εάν (ResButtonCounter <1) {ResButtonCounter = 1; }

}

}

Βήμα 5: Συνολική συναρμολόγηση

Με τον κωδικό προγραμματισμένο σωστά και τα δύο μέρη του πρωτοτύπου μας έχουν ήδη συναρμολογηθεί. Βάζουμε όλα τα εξαρτήματα στη θέση τους και το ενώνουμε με ταινία για να το στερεώσουμε στο βραχιόλι. Τα εξαρτήματα που βρίσκονται στο βραχιόλι είναι το Heart Rate Sensor BPM, τα δύο κουμπιά, το ποτενσιόμετρο και η οθόνη LCD, το καθένα στην αντίστοιχη τρύπα που είχε σχεδιαστεί προηγουμένως στο αρχείο 3D. Με το πρώτο μέρος που ολοκληρώθηκε, εστιάζουμε στο protoboard, κάθε σύνδεσμος στη σωστή ακίδα του πίνακα Arduino. Τέλος, με την επαληθευμένη λειτουργία κάθε εξαρτήματος, το βάζουμε στο fanny pack για να κρύψει τα καλώδια.

Βήμα 6: Βίντεο

Βήμα 7: Συμπέρασμα

Το πιο ενδιαφέρον πράγμα σε αυτό το έργο είναι να μάθεις να μιμείται το ανθρώπινο σώμα ασυνείδητα με μουσική. Αυτό ανοίγει την πόρτα σε πολλές επιλογές για μελλοντικά έργα. Νομίζω ότι αυτό είναι ένα ολοκληρωμένο έργο, έχουμε αρκετά μεγάλη ποικιλία στοιχείων με επεξεργασμένο κώδικα. Αν ξεκινήσουμε ξανά θα σκεφτόμασταν άλλες εναλλακτικές λύσεις ή θα τις αγοράζαμε καλύτερης ποιότητας. Είχαμε πολλά προβλήματα με σπασμένα καλώδια και συγκολλήσεις, είναι μικρά και πολύ ευαίσθητα (ειδικά το BPM). Από την άλλη πλευρά, πρέπει να είστε προσεκτικοί όταν συνδέετε τα εξαρτήματα, έχουν πολλές εξόδους και είναι εύκολο να κάνετε λάθη.

Είναι ένα πολύ εμπλουτισμένο έργο στο οποίο έχουμε αγγίξει μια μεγάλη ποικιλία επιλογών υλικού και λογισμικού Arduino.

Συνιστάται: