Mục lục:

Có thể đeo - Dự án cuối cùng: 7 bước
Có thể đeo - Dự án cuối cùng: 7 bước

Video: Có thể đeo - Dự án cuối cùng: 7 bước

Video: Có thể đeo - Dự án cuối cùng: 7 bước
Video: Để cứu con trai mình cô gái chấp nhận vào vai tiểu tam - review phim hay 2024, Tháng sáu
Anonim
Có thể đeo - Dự án cuối cùng
Có thể đeo - Dự án cuối cùng

GIỚI THIỆU

Trong dự án này, chúng tôi có nhiệm vụ tạo ra một nguyên mẫu có thể đeo chức năng dựa trên các chức năng của người máy. Bạn có biết rằng trái tim của bạn đồng bộ hóa với BPM của âm nhạc? Bạn có thể cố gắng kiểm soát tâm trạng của mình thông qua âm nhạc, nhưng nếu chúng ta để công nghệ giúp chúng ta bình tĩnh lại thì sao? Chúng tôi chỉ cần một số thành phần, Arduino và tai nghe của bạn. Hãy đổi mới!

Dự án của Marc Vila, Guillermo Stauffacher và Pau Carcellé

Bước 1: Vật liệu và thành phần

Vật liệu và thành phần
Vật liệu và thành phần

Vật liệu xây dựng:

- dây đeo tay in 3d

- Vít M3 (x8)

- Đai ốc M3 (x12)

- Gói Fanny

Vật liệu điện tử:

-Cảm biến tốc độ cao BPM

- Các nút (x2)

- Chiết áp

- MÔ ĐUN LCD C 1602

- MODULE DFPLAYER MINI MP3

- Đầu cắm TRRS Jack âm thanh nổi 3,5 mm

- Thẻ micro SD

- Tấm Arduino Uno

- Thợ hàn

- Đĩa bánh nướng

Bước 2: Thiết kế vòng đeo tay

Thiết kế vòng đeo tay
Thiết kế vòng đeo tay
Thiết kế vòng đeo tay
Thiết kế vòng đeo tay

Đầu tiên, chúng tôi thực hiện một số bản phác thảo để sắp xếp các thành phần khác nhau trong dây đeo cổ tay.

Với ý tưởng rõ ràng, chúng tôi lấy số đo 3 vòng tay của các thành viên trong nhóm, sau đó chúng tôi lấy giá trị trung bình để tìm ra số đo tối ưu cho thiết kế. Cuối cùng chúng tôi thiết kế sản phẩm bằng chương trình 3d và in bằng máy in 3D.

Bạn có thể tải xuống các tệp. STL tại đây.

Bước 3: Kết nối điện tử

Kết nối điện tử
Kết nối điện tử

Chúng tôi tiếp tục thực hiện các kiểm tra cần thiết đối với thiết kế 3d của mình, chúng tôi thực hiện lắp ráp đầu tiên của tất cả các thành phần trong nguyên mẫu để thấy rằng các phép đo là chính xác.

Để kết nối tất cả các thành phần với bảng Arduino, chúng tôi đã thực hiện các kết nối khác với các thành phần bằng cách sử dụng cáp 0, 5 mét, theo cách này, chúng tôi giảm khả năng hiển thị của bảng và chúng tôi tổ chức nguyên mẫu tốt hơn.

Bước 4: Mã

Mật mã
Mật mã
Mật mã
Mật mã
Mật mã
Mật mã

Dự án này là một nguyên mẫu cyborg. Rõ ràng là chúng tôi đã không giới thiệu các thành phần bên dưới da, vì vậy chúng tôi đã mô phỏng nó với một chiếc vòng đeo tay như một thiết bị chỉnh hình (thiết bị bên ngoài được áp dụng cho cơ thể để sửa đổi các khía cạnh chức năng).

Mã của chúng tôi lấy các tổ hợp phím của người dùng và hiển thị chúng bằng màn hình LCD. Ngoài BPM, màn hình hiển thị cường độ mong muốn để người dùng có thể so sánh với nhịp tim của mình. Có nhiều tình huống thú vị khi tăng hoặc giảm BPM của chính bạn. Ví dụ, các vận động viên sức bền phải kiểm soát nhịp đập để không bị mệt mỏi quá mức. Một ví dụ hàng ngày là muốn ngủ hoặc bình tĩnh trong một tình huống lo lắng. Nó cũng có thể được áp dụng như một phương pháp trị liệu cho những người mắc chứng tự kỷ để giảm bớt căng thẳng mà họ cảm thấy. Cạnh màn hình là hai nút điều khiển cường độ theo ý muốn và tăng giảm nhịp tim. Tùy thuộc vào cường độ, một loại nhạc đã được nghiên cứu trước đó được chơi. Có những nghiên cứu chỉ ra rằng âm nhạc có thể làm thay đổi BPM. Theo Beats per Minute của bài hát, cơ thể con người bắt chước và khớp với các BPM đó.

int SetResUp = 11; // chân 10 của Arduino có nút tăng cường độ.int SetResDown = 12; // chân 11 của Arduino với nút giảm cường độ

int ResButtonCounter = 0; // lần bộ đếm tăng hoặc giảm cài đặt điện trở, giá trị ban đầu là 0 int ResButtonUpState = 0; // trạng thái hiện tại của nút tăng cường độ int ResButtonDownState = 0; // trạng thái hiện tại của nút giảm cường độ int lastResButtonUpState = 0; // trạng thái cuối cùng của nút tăng cường độ int lastResButtonDownState = 0; // trạng thái cuối cùng của nút giảm cường độ

int xungPin = 0; // Cảm biến xung kết nối với cổng A0 // Các biến này dễ bay hơi vì chúng được sử dụng trong quá trình ngắt trong tab thứ hai. int BPM dễ bay hơi; // Nhịp mỗi phút dễ bay hơi int Signal; // Đầu vào dữ liệu cảm biến xung biến động int IBI = 600; // Thời gian xung khởi động boolean Pulse = false; // Đúng khi sóng xung cao, false khi sóng ở mức thấp Boolean dễ bay hơi QS = false;

# xác định Start_Byte 0x7E # xác định Phiên bản_Byte 0xFF # xác định Command_Length 0x06 # xác định End_Byte 0xEF # xác định Acknowledge 0x00 // Trả về thông tin bằng lệnh 0x41 [0x01: thông tin, 0x00: không có thông tin]

// PANTALLA #include // Tải lên thư viện cho các chức năng của màn hình LCD #include #include

Màn hình LCD LiquidCrystal (7, 6, 5, 4, 3, 2); // Khai báo các cổng kết nối màn hình LCD

// LECTOR #include #include // Tải lên thư viện cho các chức năng của mô-đun dfplayer mini MP3.

char serialData; int nsong; trong TV;

Phần mềm trên không comm (9, 10); // Khai báo các cổng kết nối DFPlayer DFRobotDFPlayerMini mp3;

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

// Xác định kích thước của LCD (16x2) lcd.begin (16, 2); // Chúng ta chọn cột nào và dòng nào văn bản bắt đầu hiển thị // LECTOR comm.begin (9600);

mp3.begin (dấu phẩy); // Thành phần bắt đầu serialData = (char) (('')); mp3.start (); Serial.println ("Phát"); // Phát một bài hát mp3.volume (25); // Xác định âm lượng}

void loop () {if (digitalRead (11) == LOW) {mp3.next (); // Nếu nút được nhấn, bài hát sẽ đi qua} if (digitalRead (12) == LOW) {mp3.previous (); // Nếu nút được nhấn, bài hát trước đó} // if (SetResUp && SetResDown == LOW) {

int pulso = analogRead (A0); // Đọc giá trị của máy đo nhịp tim kết nối với cổng Analog A0

Serial.println (pulso / 6); if (QS == true) {// Cờ của Bản thân được định lượng là true giống như tìm kiếm arduino BPM QS = false; // Đặt lại cờ của Bản thân được định lượng}

lcd.setCursor (0, 0); // Hiển thị văn bản mong muốn lcd.print ("BPM:"); lcd.setCursor (0, 1); // Hiển thị văn bản mong muốn lcd.print ("INT:"); lcd.setCursor (5, 0); // Hiển thị văn bản mong muốn lcd.print (pulso); lcd.setCursor (5, 1); // Hiển thị văn bản mong muốn lcd.print (ResButtonCounter); chậm trễ (50); lcd.clear (); ResButtonUpState = digitalRead (SetResUp); ResButtonDownState = digitalRead (SetResDown);

// so sánh TempButtonState với trạng thái trước đó của nó

if (ResButtonUpState! = lastResButtonUpState && ResButtonUpState == LOW) {// nếu trạng thái cuối cùng thay đổi, hãy tăng bộ đếm

ResButtonCounter ++; }

// lưu trạng thái hiện tại làm trạng thái cuối cùng, // cho lần thực thi tiếp theo vòng lặp lastResButtonUpState = ResButtonUpState;

// so sánh trạng thái của nút (tăng hoặc giảm) với trạng thái cuối cùng

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

// nếu trạng thái cuối cùng thay đổi, giảm bộ đếm

ResButtonCounter--; }

// lưu trạng thái hiện tại là trạng thái cuối cùng, // cho lần thực thi tiếp theo vòng lặp lastResButtonDownState = ResButtonDownState; {Serial.println (ResButtonCounter);

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

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

}

}

Bước 5: Tổng hội

Với mã được lập trình chính xác và hai phần của nguyên mẫu của chúng tôi đã được lắp ráp. Chúng tôi đặt tất cả các thành phần vào vị trí và nối nó bằng băng dính để cố định nó vào vòng đeo tay. Các thành phần trong vòng đeo tay là Cảm biến nhịp tim BPM, hai nút, chiết áp và Màn hình LCD, mỗi nút đều nằm trong lỗ tương ứng được thiết kế trước đó trong tệp 3D. Với phần đầu tiên đã hoàn thành, chúng ta tập trung vào protoboard, mỗi đầu nối trên đúng chân của bảng Arduino. Cuối cùng, với hoạt động đã được xác minh của từng thành phần, chúng tôi đưa nó vào gói fanny để ẩn dây.

Bước 6: Video

Bước 7: Kết luận

Điều thú vị nhất của dự án này là tìm hiểu về cách bắt chước cơ thể con người một cách vô thức bằng âm nhạc. Điều này mở ra nhiều lựa chọn cho các dự án trong tương lai. Tôi nghĩ rằng đây là một dự án hoàn chỉnh, chúng tôi có khá nhiều thành phần với một mã đã hoạt động. Nếu chúng tôi bắt đầu lại, chúng tôi sẽ nghĩ về các lựa chọn thay thế linh kiện khác hoặc mua chúng có chất lượng tốt hơn. Chúng tôi đã gặp rất nhiều vấn đề với dây cáp bị đứt và mối hàn, chúng nhỏ và rất mỏng manh (đặc biệt là BPM). Mặt khác, bạn phải cẩn thận khi kết nối các thành phần, chúng có nhiều đầu ra và rất dễ mắc lỗi.

Đó là một dự án rất phong phú, trong đó chúng tôi đã đề cập đến nhiều tùy chọn phần cứng và phần mềm Arduino.

Đề xuất: