Mục lục:

Công nghệ có thể đeo: Găng tay thay đổi giọng nói: 7 bước
Công nghệ có thể đeo: Găng tay thay đổi giọng nói: 7 bước

Video: Công nghệ có thể đeo: Găng tay thay đổi giọng nói: 7 bước

Video: Công nghệ có thể đeo: Găng tay thay đổi giọng nói: 7 bước
Video: Cách Có Giọng Nói Hay | Bài Học Kinh Doanh 2024, Tháng mười hai
Anonim
Công nghệ có thể đeo: Găng tay thay đổi giọng nói
Công nghệ có thể đeo: Găng tay thay đổi giọng nói
Công nghệ có thể đeo: Găng tay thay đổi giọng nói
Công nghệ có thể đeo: Găng tay thay đổi giọng nói

Chà, có vẻ như những chiếc găng tay với sức mạnh đáng kinh ngạc đang là cơn thịnh nộ ngày nay. Mặc dù Thanos’Infinity Gauntlet là một chiếc găng tay khá mạnh mẽ, chúng tôi muốn tạo ra một chiếc găng tay có thể làm điều gì đó đáng chú ý hơn: thay đổi giọng nói của người đeo trong thời gian thực.

Có thể hướng dẫn này cung cấp hướng dẫn về cách chúng tôi thiết kế găng tay thay đổi giọng nói. Thiết kế của chúng tôi đã sử dụng các cảm biến khác nhau và một bộ vi điều khiển trong găng tay để phát hiện các chuyển động, được gửi qua mã Arduino tới bản vá Max, nơi tín hiệu âm thanh của chúng tôi sau đó bị thay đổi và bị bóp méo theo những cách thú vị. Các cảm biến, chuyển động và thay đổi âm thanh cụ thể mà chúng tôi sử dụng đều linh hoạt cho các cân nhắc khác nhau; đây chỉ là một cách để tạo ra một chiếc găng tay thay đổi giọng nói!

Dự án này là một phần của sự hợp tác cộng đồng giữa sinh viên trường Cao đẳng Pomona và Học viện Kỹ thuật Fremont. Đó là sự kết hợp thú vị thực sự giữa các yếu tố kỹ thuật điện tử và âm nhạc điện tử!

Bước 1: Vật liệu

Vật liệu
Vật liệu
Vật liệu
Vật liệu
Vật liệu
Vật liệu

Các bộ phận:

  • Vi điều khiển HexWear (ATmega32U4) (https://hexwear.com/)
  • Gia tốc kế MMA8451 (https://www.adafruit.com/product/2019)
  • Cảm biến uốn cong ngắn (x4) (https://www.adafruit.com/product/1070)
  • Găng tay chạy nhẹ
  • # 2 vít và vòng đệm (x8)
  • Các đầu nối đầu cuối uốn cong; 22-18 gauge (x8) (https://www.elecdirect.com/crimp-wire-terminals/ring-crimp-terminals/pvc-ring-terminals/ring-terminal-pvc-red-22-18-6- 100pk)
  • Điện trở 50kΩ (x4)
  • Dây (~ 20 khổ)
  • Chốt an toàn tự dính
  • Nỉ hoặc vải khác (~ 10 sq. In.)
  • Chỉ may
  • Zipties
  • Máy tính xách tay
  • Micrô USB

Công cụ

  • Bộ hàn
  • Dụng cụ tuốt dây và máy cắt dây
  • Băng điện
  • Súng hơi nóng
  • Cái vặn vít
  • Cây kéo
  • Kim khâu

Phần mềm:

  • Max by Cycling '74 (https://cycling74.com)
  • Phần mềm Arduino (https://www.arduino.cc/en/Main/Software)

Bước 2: Cài đặt phần mềm

Chúng tôi bắt đầu với phần thực sự thú vị nhất của bất kỳ dự án nào: cài đặt thư viện (và hơn thế nữa).

Arduino:

Tải xuống và cài đặt phần mềm Arduino (https://www.arduino.cc/en/Main/Software).

HexWear:

1) (Chỉ dành cho Windows, người dùng Mac có thể bỏ qua bước này) Cài đặt trình điều khiển bằng cách truy cập https://www.redgerbera.com/pages/hexwear-driver-installation. Tải xuống và cài đặt trình điều khiển (tệp.exe được liệt kê ở Bước 2 ở đầu trang RedGerbera được liên kết).

2) Cài đặt thư viện cần thiết cho Hexware. Mở Arduino IDE. Trong “Tệp”, chọn “Tùy chọn”. Trong không gian được cung cấp cho URL trình quản lý bảng bổ sung, hãy dán

github.com/RedGerbera/Gerbera-Boards/raw/master/package_RedGerbera_index.json.

Sau đó nhấp vào “OK”.

Vào Tools -> Board: -> Board Manager. Từ menu góc trên bên trái, hãy chọn “Đã đóng góp”.

Tìm kiếm, sau đó bấm vào Bảng đồng tiền và bấm Cài đặt. Thoát và mở lại Arduino IDE.

Để đảm bảo rằng thư viện được cài đặt đúng cách, hãy đi tới Công cụ -> Bảng và cuộn xuống cuối trình đơn. Bạn sẽ thấy một phần có tên “Bảng đồng tiền”, trong đó ít nhất phải xuất hiện HexWear (nếu không có nhiều bảng như mini-HexWear).

Gia tốc kế:

Tải xuống và cài đặt thư viện gia tốc kế (https://learn.adafruit.com/adafruit-mma8451-accelerometer-breakout/wiring-and-test)

Bước 3: Gắn Gia tốc kế

Gắn Gia tốc kế
Gắn Gia tốc kế
Gắn Gia tốc kế
Gắn Gia tốc kế

Chúng tôi cần hai loại cảm biến chính để tương tác với dự án này: cảm biến gia tốc và cảm biến uốn. Chúng tôi sẽ kiểm tra từng thứ một, bắt đầu với gia tốc kế. Đầu tiên, chúng ta cần các kết nối phần cứng phù hợp với nhau.

Để tránh làm hỏng hệ thống Hex của bạn, chúng tôi khuyên bạn nên đặt vít số 2 và vòng đệm qua các cổng mong muốn, sau đó gắn tất cả các kết nối vào vít đó. Để tránh bất cứ thứ gì bị lỏng ra khi chơi với găng tay, các mối nối phải được hàn và / hoặc uốn. Sử dụng một vài inch dây cho mỗi kết nối, tạo các kết nối sau từ Hex đến gia tốc kế (xem sơ đồ chân ở trên để tham khảo):

ĐẦU VÀO ĐIỆN ÁP GNDSCL / D3 SCLSDA / D2 SDA

Với mọi thứ đã lên dây cót, chúng tôi đã sẵn sàng kiểm tra!

Để kiểm tra, hãy chạy mã mẫu gia tốc kế trong Arduino (File-> Examples-> Adafruit_MMA8451-> MMA8451demo), đảm bảo rằng nó có thể xuất ra màn hình nối tiếp. Nó sẽ tạo ra gia tốc do trọng lực (~ 10m / s) theo hướng z khi được giữ ở mức. Bằng cách nghiêng gia tốc kế, gia tốc này sẽ được đo theo hướng x hoặc y; chúng tôi sẽ sử dụng điều này để cho phép người đeo thay đổi âm thanh bằng cách xoay tay của họ!

Bây giờ, chúng ta cần trình bày dữ liệu gia tốc kế theo cách mà nó có thể được giao tiếp với Max. Để làm như vậy, chúng ta phải in các giá trị của x và y, có lẽ đã được sửa đổi để phù hợp với phạm vi mong muốn (xem Phần 6). Trong mã của chúng tôi được đính kèm ở đây, chúng tôi thực hiện như sau:

// Đo hướng x và hướng y. Chúng ta chia và nhân để có được phạm vi phù hợp cho MAX (phạm vi 1000 tính theo x và phạm vi 40 tính theo y) xdir = event.acceleration.x / 0.02; ydir = abs (event.acceleration.y) * 2; // In mọi thứ ở định dạng có thể đọc được cho Max - với khoảng trắng giữa mỗi số Serial.print (xdir); Serial.print ("");

Điều này sẽ in Hex các giá trị đã sửa đổi của các hướng x và y của gia tốc kế trên mọi dòng. Bây giờ chúng tôi đã sẵn sàng thêm các cảm biến linh hoạt!

Bước 4: Gắn các cảm biến linh hoạt

Gắn các cảm biến linh hoạt
Gắn các cảm biến linh hoạt
Gắn các cảm biến linh hoạt
Gắn các cảm biến linh hoạt
Gắn các cảm biến linh hoạt
Gắn các cảm biến linh hoạt

Người đeo có thể nhận được nhiều điều khiển âm thanh tiềm năng nếu chúng tôi có thể phát hiện ngón tay uốn cong. Các cảm biến flex sẽ làm điều đó. Mỗi cảm biến uốn cong về cơ bản là một chiết áp, trong đó không uốn cong có điện trở ~ 25KΩ, trong khi cảm biến uốn cong hoàn toàn có điện trở ~ 100KΩ. Chúng tôi đặt mỗi cảm biến flex trong một bộ chia điện áp đơn giản có điện trở 50K, như trong hình đầu tiên.

Một lần nữa sử dụng độ dài dây khá ngắn (hãy nhớ rằng tất cả điều này sẽ vừa khít với mặt sau của găng tay), hàn bốn mô-đun bộ chia điện áp. Bốn mô-đun sẽ chia sẻ cùng một Vin và nối đất-chúng tôi xoắn lại với nhau các đầu bị tước của dây để chúng tôi sẽ chỉ có một dây dẫn để hàn. Cuối cùng, lấy bốn mô-đun và tạo các kết nối được hiển thị trong hình ảnh thứ hai (nếu ai biết cách làm điều này mà không tạo ra một mớ hỗn độn khủng khiếp, vui lòng tiết lộ bí mật của bạn).

Bây giờ, chúng ta cần mã Arduino để đọc điện áp từ mỗi cảm biến. Vì mục đích của chúng tôi, chúng tôi coi các cảm biến flex như công tắc; họ đã bật hoặc tắt. Như vậy, mã của chúng tôi chỉ cần đặt một ngưỡng điện áp cao hơn ngưỡng này, chúng tôi xuất giá trị 1 đến cổng Nối tiếp (nghĩa là cảm biến bị bẻ cong), nếu không chúng tôi xuất ra giá trị 0:

// Lấy một số

các mẫu tương tự và thêm chúng cho mỗi cảm biến Flex

trong khi (sample_count <NUM_SAMPLES) {

sum10 + = analogRead (A10);

sum9 + = analogRead (A9);

sum7 + = analogRead (A7);

sum11 + = analogRead (A11);

số_lượng mẫu ++;

// Chậm trễ ngắn để không lấy chúng quá nhanh

chậm trễ (5);

}

// tính toán điện áp, lấy trung bình trên các mẫu nhanh

// sử dụng 5.0 cho ADC 5.0V

điện áp tham chiếu

// 5.015V được hiệu chỉnh

điện áp tham chiếu

điện áp10 = ((float) sum10 /

(float) NUM_SAMPLES * 5.015) / 1024.0;

điện áp9 = ((float) sum9 /

(float) NUM_SAMPLES * 5.015) / 1024.0;

điện áp7 = ((float) sum7 /

(float) NUM_SAMPLES * 5.015) / 1024.0;

điện áp11 = ((float) sum11 /

(float) NUM_SAMPLES * 5.015) / 1024.0;

// Kiểm tra xem từng cảm biến flex

lớn hơn ngưỡng (thresh) - nếu vậy, hãy đặt số

// Ngón út

nếu (điện áp10> thresh)

{

// - 5 để tăng

cao độ giọng nói một quãng tám

flex10 = -10;

}

khác flex10 = 0;

//Ngón đeo nhẫn

nếu (điện áp9>

(thresh-0,4)) {

// 5 để thấp hơn

cao độ giọng nói một quãng tám

flex9 = 5;

}

khác flex9 = 0;

//Ngón giữa

nếu (điện áp7> thresh) {

// 1 để đặt

hiệu ứng hồi âm

flex7 = 1;

}

khác flex7 = 0;

//Ngón trỏ

nếu (điện áp11> thresh)

{

// 50 để thiết lập

chu kỳ đến 50

flex11 = 93;

}

khác flex11 = 0;

// Đặt lại tất cả số đếm

biến thành 0 cho vòng lặp tiếp theo

số lượng mẫu = 0;

tổng10 = 0;

sum9 = 0;

sum7 = 0;

tổng11 = 0;

Tại thời điểm này, cổng Nối tiếp sẽ hiển thị các giá trị cho hướng gia tốc kế và cả việc mỗi cảm biến flex có bị uốn cong hay không. Chúng tôi đã sẵn sàng nhận mã Arduino của chúng tôi để nói chuyện với Max!

Bước 5: Giao diện với Max

Giao diện với Max
Giao diện với Max

Bây giờ mã Hex đang phun ra rất nhiều số thông qua cổng Serial, chúng tôi cần phần mềm Max để đọc các tín hiệu này. Khối mã hình trên thực hiện điều đó! Bạn được chào đón.

Lưu ý quan trọng: sau khi tải mã lên Hex, hãy đóng tất cả các cửa sổ cổng nối tiếp, sau đó thay đổi ký tự được khoanh tròn trong mã Max để khớp với cổng Hex. Nếu bạn không chắc chắn về chữ cái nào cần đặt, nhấn vào phần “in” của mã Max sẽ liệt kê tất cả các cổng được kết nối.

Dòng in từ cổng nối tiếp của Hex được đọc qua khối mã Tối đa, sau đó được phân tách dựa trên các dấu phân cách. Đầu ra ở cuối khối Max cho phép bạn lấy từng số riêng lẻ, vì vậy chúng tôi sẽ kết nối không gian đầu ra đầu tiên với nơi chúng ta muốn hướng x của gia tốc kế, không gian thứ hai sẽ là hướng y, v.v. Đối với bây giờ, chỉ cần kết nối chúng với các khối số để đảm bảo rằng chúng đang hoạt động. Bạn sẽ có thể di chuyển cảm biến gia tốc và cảm biến linh hoạt và xem các con số thay đổi trong phần mềm Max.

Bước 6: Xây dựng phần còn lại của mã tối đa

Với sức mạnh của ngôn ngữ Max, bạn thực sự có thể để trí tưởng tượng của mình hoạt động cuồng nhiệt ở đây bằng tất cả các cách bạn có thể thay đổi tín hiệu âm thanh đến bằng chiếc găng tay ma lực của mình. Tuy nhiên, nếu bạn hết ý tưởng, trên đây là tóm tắt về những gì mã Max của chúng tôi hoạt động và cách nó hoạt động.

Đối với mỗi thông số bạn đang cố gắng thay đổi, có thể bạn sẽ muốn xáo trộn phạm vi giá trị đến từ mã Arduino để có được độ nhạy phù hợp.

Một số mẹo khắc phục sự cố Max khác:

  • Nếu bạn không nghe thấy âm thanh

    • đảm bảo Max được đặt để nhận âm thanh từ micrô của bạn (Tùy chọn Thiết bị đầu vào trạng thái âm thanh)
    • đảm bảo rằng thanh trượt Âm lượng chính trong Tối đa được bật lên và bất kỳ điều khiển âm lượng nào khác mà bạn có thể có trong mã của mình
  • Nếu mã có vẻ như không làm gì cả

    • đảm bảo rằng bản vá của bạn đã được khóa (biểu tượng khóa ở góc dưới bên trái)
    • Đảm bảo thông qua các bản đọc trong bản vá Max rằng bản vá tối đa của bạn vẫn đang nhận dữ liệu từ cổng nối tiếp Arduino. Nếu không, hãy thử đặt lại cổng nối tiếp (như được nêu trong Bước 5) và / hoặc kiểm tra các kết nối dây vật lý của bạn.
  • Tiếng ồn cắt xén kỳ lạ khi thay đổi các thông số

    đây là điều liên quan đến cách hoạt động của ~ tapin và ~ tapout; cụ thể là khi bạn thay đổi các giá trị của chúng, chúng sẽ đặt lại, gây ra sự cắt xén. Với kiến thức hạn chế của chúng tôi về chương trình, chúng tôi gần như chắc chắn rằng có một cách tốt hơn để thực hiện điều này trong Max và loại bỏ vấn đề…

Bước 7: Kết hợp tất cả lại với nhau theo nghĩa đen

Nghĩa đen là kết hợp tất cả lại với nhau
Nghĩa đen là kết hợp tất cả lại với nhau
Nghĩa đen là kết hợp tất cả lại với nhau
Nghĩa đen là kết hợp tất cả lại với nhau
Nghĩa đen là kết hợp tất cả lại với nhau
Nghĩa đen là kết hợp tất cả lại với nhau
Nghĩa đen là kết hợp tất cả lại với nhau
Nghĩa đen là kết hợp tất cả lại với nhau

Tất cả những gì còn lại bây giờ là gắn mạch điện vào găng tay của chúng tôi. Lấy vải bổ sung của bạn và cắt các dải lớn hơn một chút so với cảm biến flex. May vải bổ sung vào ngón tay của găng tay nơi đốt ngón tay uốn cong, để lại một loại ống tay áo cho cảm biến flex đặt vào (chúng ta không thể chỉ dán trực tiếp cảm biến flex vào găng tay vì vải găng tay sẽ giãn ra khi các ngón tay uốn cong). Khi tay áo đã được may gần hết, hãy trượt cảm biến flex vào trong và khâu cẩn thận các dây dẫn vào găng tay, cố định cảm biến flex vào đúng vị trí. Lặp lại điều này cho mỗi cảm biến flex.

Tiếp theo, sử dụng chốt an toàn tự dính để gắn Hex vào mặt sau của găng tay (bạn có thể bôi một ít keo nóng lên chốt để đảm bảo nó không bị bung ra khi đeo). May gia tốc kế vào cổ tay của găng tay. Cuối cùng, sử dụng phép thuật của dây buộc để làm sạch những sợi dây khó coi.

Bạn đã sẵn sàng để thử nghiệm chiếc găng tay có sức mạnh ca hát tối thượng của mình! (Chúng tôi có thể thực sự giới thiệu “Harder Better Faster Stronger” của Daft Punk để thể hiện hết khả năng thay đổi giọng nói của bạn)

Đề xuất: