Mục lục:

Arduino trở thành Talking Tom: 6 bước
Arduino trở thành Talking Tom: 6 bước

Video: Arduino trở thành Talking Tom: 6 bước

Video: Arduino trở thành Talking Tom: 6 bước
Video: Arduino Becomes Talking Tom 2024, Tháng mười hai
Anonim
Arduino trở thành Talking Tom
Arduino trở thành Talking Tom
Arduino trở thành Talking Tom
Arduino trở thành Talking Tom

Một trong những kỷ niệm lâu đời nhất của tôi khi sử dụng điện thoại thông minh là chơi trò chơi 'Talking Tom'. Trò chơi khá đơn giản. Có một con mèo, tên là Tom, có thể nói chuyện, đại loại như vậy. Trong trò chơi, Tom sẽ lắng nghe bất kỳ đầu vào nào thông qua micrô của điện thoại và sau đó lặp lại bất cứ điều gì nó nghe được. Vì vậy, bất cứ điều gì nói với Tom, nó sẽ lặp lại điều tương tự bằng giọng nói chói tai của chính nó.

Mặc dù nghe có vẻ đơn giản, nhưng toàn bộ quy trình này đòi hỏi nhiều bước phức tạp như lấy mẫu đầu vào micrô analog ở dạng kỹ thuật số, thao tác âm thanh để tạo ra giọng nói độc đáo của Tom và sau đó tái tạo lại tín hiệu từ tất cả các giá trị kỹ thuật số đó để phát lại qua loa. Tất cả những bước phức tạp này, nhưng điện thoại thông minh đã xử lý nó như một sự quyến rũ thậm chí từ 9 đến 10 năm trước!

Điều thú vị sẽ là xem liệu điều tương tự có thể được thực hiện với một bo mạch Arduino dựa trên vi điều khiển giá rẻ hay không. Vì vậy, trong tài liệu hướng dẫn này, tôi sẽ chỉ cho bạn cách bạn có thể tạo một dự án giống như Talking Tom đơn giản từ Arduino và một số thiết bị điện tử rẻ tiền khác.

Hướng dẫn này được viết với sự cộng tác của Hatchnhack Makerspace ở Delhi

LƯU Ý: Có thể hướng dẫn này là phiên bản đầu tiên của dự án hoàn thành tính năng 'Nói chuyện' của Talking Tom, nơi arduino sẽ có thể lặp lại bất cứ điều gì bạn nói với nó. Phần thay đổi giọng nói sẽ được đề cập trong phiên bản tương lai, mặc dù, do độ phân giải của Arduino trong ADC tích hợp thấp hơn nên âm thanh được ghi lại có vẻ hơi khác một chút: P (Có thể thấy rõ điều này trong video dự án).

Vì vậy, Hãy bắt đầu!

Bước 1: Vật liệu được sử dụng

Vật liệu được sử dụng
Vật liệu được sử dụng
Vật liệu được sử dụng
Vật liệu được sử dụng
Vật liệu được sử dụng
Vật liệu được sử dụng

Phần cứng:

  • Một Arduino UNO
  • Mô-đun micrô MAX4466 với Độ lợi có thể điều chỉnh
  • Mô-đun đầu đọc thẻ SD dựa trên SPI
  • thẻ SD
  • Bộ khuếch đại âm thanh như loa PC, mô-đun bộ khuếch đại PAM8403, v.v.
  • Loa để kết nối với Bộ khuếch đại
  • Giắc cắm âm thanh nữ
  • Điện trở 1 x 1k ohm
  • Điện trở 2 x 10k ohm
  • Tụ điện 1 x 10uF
  • 2 x Nút nhấn
  • Dây nhảy

Phần mềm:

  • Arduino IDE
  • Audacity (tùy chọn)
  • TMRpcm và thư viện SD cho Arduino

Bước 2: Tổng quan cơ bản về dự án

Dự án chủ yếu có 2 tính năng:

  • Nó có thể phát âm thanh được chọn ngẫu nhiên từ một tập hợp các tệp âm thanh được cài đặt sẵn trong thẻ SD cho các hiệu ứng âm thanh, v.v.
  • Nó có thể ghi âm đầu vào từ micrô và sau đó phát lại ngay khi quá trình ghi âm dừng lại. Điều này cho phép arduino lặp lại bất cứ điều gì nó đã nghe qua micrô.

Giao diện người dùng của dự án chủ yếu bao gồm 2 nút ấn, mỗi nút tương ứng với một trong các tính năng trên.

Công việc khó khăn chính là ghi và phát các tệp âm thanh từ thẻ SD được thư viện TMRpcm xử lý

Bản ghi âm sử dụng mô-đun mic MAX4466, ADC nội bộ của arduino và thư viện TMRpcm để lấy mẫu âm thanh và sau đó tạm thời lưu trữ trong thẻ SD dưới dạng tệp '.wav' để phát lại. Các tệp âm thanh '.wav' sử dụng PCM (Điều chế mã xung) để lưu trữ dữ liệu âm thanh ở định dạng kỹ thuật số để có thể dễ dàng phát lại. Nói chung, tốt hơn là sử dụng ADC bên ngoài cho các dự án dựa trên âm thanh vì độ phân giải của ADC của Arduino không cao nhưng nó hoạt động cho dự án này.

Việc phát các tệp âm thanh (được cài đặt sẵn và ghi lại) cũng được thực hiện với sự trợ giúp của thư viện TMRpcm, nơi xuất ra âm thanh dưới dạng tín hiệu PWM từ chân cắm hỗ trợ PWM của arduino. Tín hiệu này sau đó được đưa vào bộ lọc RC để lấy tín hiệu tương tự, sau đó được đưa vào bộ khuếch đại để phát âm thanh qua loa. Đối với phần này, bạn cũng có thể sử dụng DAC bên ngoài vì arduino không có DAC bên trong. Sử dụng DAC có thể là một lựa chọn tốt hơn vì nó sẽ cải thiện đáng kể chất lượng âm thanh.

Giao tiếp giữa mô-đun thẻ SD và arduino được thực hiện thông qua SPI (Giao diện ngoại vi nối tiếp). Mã, sử dụng thư viện SD & SPI để dễ dàng truy cập nội dung của thẻ SD.

Bước 3: Chuẩn bị thẻ SD và kết nối mô-đun thẻ SD

Chuẩn bị thẻ SD và kết nối mô-đun thẻ SD
Chuẩn bị thẻ SD và kết nối mô-đun thẻ SD
Chuẩn bị thẻ SD và kết nối mô-đun thẻ SD
Chuẩn bị thẻ SD và kết nối mô-đun thẻ SD
Chuẩn bị thẻ SD và kết nối mô-đun thẻ SD
Chuẩn bị thẻ SD và kết nối mô-đun thẻ SD
Chuẩn bị thẻ SD và kết nối mô-đun thẻ SD
Chuẩn bị thẻ SD và kết nối mô-đun thẻ SD
  • Trước tiên, bạn phải định dạng thẻ SD với hệ thống tệp FAT16 hoặc FAT32 (Bạn có thể sử dụng điện thoại thông minh của mình để định dạng thẻ SD).
  • Bây giờ, hãy cài đặt trước một số tệp âm thanh.wav trong thẻ SD. Bạn có thể tạo tệp.wav bằng Audacity (xem hướng dẫn bên dưới). Hãy nhớ đặt tên tệp là audio_1.wav, audio_2.wav, audio_3.wav, v.v.

Mô-đun thẻ SD sử dụng SPI để giao tiếp dữ liệu với arduino. Do đó, nó chỉ kết nối với những chân đã bật SPI. Các kết nối này như sau:

  • Vcc - 5v
  • GND - GND
  • MOSI (Master Out Slave In) - chân 11
  • MISO (Master In Slave Out) - chân 12
  • CLK (Đồng hồ) - chân 13
  • SS / CS (Chọn nô lệ / Chọn chip) - chân 10

Tạo tệp '.wav' bằng Phần mềm Audacity:

  • Mở tệp âm thanh bạn muốn chuyển đổi thành.wav trong Audacity.
  • Nhấp vào tên tệp và sau đó chọn 'Tách âm thanh nổi thành đơn âm'. Tùy chọn này chia âm thanh nổi thành hai kênh đơn âm. Bây giờ bạn có thể đóng một trong các kênh.
  • Thay đổi giá trị 'Tốc độ dự án' ở dưới cùng thành 16000 Hz. Giá trị này tương ứng với tần số lấy mẫu tối đa của ADC nội bộ của arduino.
  • Bây giờ phải vào File-> Export / Export dưới dạng WAV.
  • Chọn vị trí thích hợp và tên của tệp. Từ menu mã hóa, chọn 'PCM 8-bit không dấu' vì chúng tôi đang sử dụng định dạng PCM để lưu trữ âm thanh ở định dạng kỹ thuật số.

Bước 4: Kết nối Đầu ra âm thanh & Micrô

Kết nối đầu ra âm thanh & micrô
Kết nối đầu ra âm thanh & micrô
Kết nối đầu ra âm thanh & micrô
Kết nối đầu ra âm thanh & micrô
Kết nối đầu ra âm thanh & micrô
Kết nối đầu ra âm thanh & micrô
Kết nối đầu ra âm thanh & micrô
Kết nối đầu ra âm thanh & micrô

Kết nối Micrô:

  • Vcc - 3.3v
  • GND - GND
  • OUT - chân A0

GHI CHÚ:

  • Cố gắng kết nối micrô trực tiếp với arduino thay vì sử dụng bảng mạch vì nó có thể tạo ra tiếng ồn không cần thiết trong tín hiệu đầu vào.
  • Đảm bảo hàn sạch các đầu cắm trên mô-đun micrô vì các mối nối hàn kém cũng tạo ra tiếng ồn.
  • Mô-đun micrô này có độ lợi điều chỉnh có thể được điều khiển với sự trợ giúp của một cái nồi ở mặt sau của bo mạch. Tôi khuyên bạn nên giữ mức khuếch đại ở mức thấp vì khi đó nó sẽ không khuếch đại tiếng ồn nhiều trong khi bạn có thể nói giữ nó gần miệng dẫn đến đầu ra sạch hơn.

Kết nối đầu ra âm thanh:

  • Đặt tụ điện 10 uF và điện trở 1k ohm mắc nối tiếp trên bảng mạch với cực dương của tụ điện được nối với điện trở. Chúng cùng nhau tạo thành một bộ lọc RC chuyển đổi đầu ra PWM thành tín hiệu tương tự có thể được đưa vào bộ khuếch đại.
  • Kết nối chân 9 của Arduino với đầu kia của điện trở.
  • Đầu cực âm của Tụ điện được kết nối với kênh bên trái và bên phải của giắc cắm âm thanh cái.
  • GND của giắc cắm Âm thanh được kết nối với GND.
  • Giắc cắm âm thanh được kết nối với bộ khuếch đại bằng Cáp Aux. Trong trường hợp của tôi, tôi đã sử dụng Hệ thống loa của PC.

GHI CHÚ:

Sử dụng PWM làm đầu ra âm thanh có thể không phải là lựa chọn tốt nhất vì DAC ngoài sẽ cung cấp chất lượng và độ phân giải tốt hơn nhiều. Ngoài ra, tụ điện và điện trở trong bộ lọc RC có thể tạo ra tiếng ồn không mong muốn. Nhưng vẫn có kết quả khá tốt cho dự án này

Bước 5: Lên dây cho các nút

Lên dây cho các nút
Lên dây cho các nút
Lên dây cho các nút
Lên dây cho các nút
Lên dây cho các nút
Lên dây cho các nút

Dự án sử dụng các nút nhấn làm giao diện người dùng. Cả hai đều thực hiện các chức năng khác nhau và được sử dụng khác nhau nhưng có cùng hệ thống dây điện. Kết nối của chúng như sau:

  • Đặt các nút trên breadboard.
  • Gắn một đầu cuối của một trong các nút vào chân 2 của arduino với một điện trở kéo xuống 10k ohm. Đầu cuối còn lại của nút được kết nối với 5v. Vì vậy, khi nhấn nút, chân 2 sẽ trở nên CAO và chúng ta có thể phát hiện ra điều đó trong mã.
  • Nút còn lại được kết nối tương tự với chân 3 của arduino thay vì 2.

Nút được kết nối với chân 2 sẽ phát một tệp âm thanh ngẫu nhiên từ tập hợp các tệp âm thanh được cài đặt sẵn trên Thẻ SD khi nó được nhấn một lần.

Nút được kết nối với chân 3 là để ghi âm. Bạn phải nhấn và giữ nút này để ghi âm. Arduino bắt đầu ghi ngay khi nhấn nút này và dừng ghi khi nhả nút này. Sau khi dừng ghi, nó ngay lập tức phát lại đoạn ghi đó.

Bước 6: Tải lên mã

Tải lên mã
Tải lên mã
Tải lên mã
Tải lên mã
Tải lên mã
Tải lên mã

Trước khi tải mã lên, hãy đảm bảo rằng bạn đã cài đặt tất cả các thư viện cần thiết như TMRpcm, SD, v.v.

Bạn cũng có thể mở Serial Monitor sau khi tải mã lên để nhận phản hồi về những gì arduino đang làm.

Hiện tại, mã không điều chỉnh âm thanh đã ghi để làm cho âm thanh khác đi nhưng tôi dự định đưa tính năng này vào phiên bản tiếp theo, nơi bạn có thể đặt tần số đầu ra của tín hiệu âm thanh với sự trợ giúp của nồi và nhận được các loại âm thanh khác nhau.

Và bạn đã hoàn thành !!

Đề xuất: