Mục lục:

Chip âm thanh cổ điển với Arduino - SAA1099: 16 bước (có hình ảnh)
Chip âm thanh cổ điển với Arduino - SAA1099: 16 bước (có hình ảnh)

Video: Chip âm thanh cổ điển với Arduino - SAA1099: 16 bước (có hình ảnh)

Video: Chip âm thanh cổ điển với Arduino - SAA1099: 16 bước (có hình ảnh)
Video: SAA1099 & Arduino - How to DIY 2024, Tháng mười một
Anonim
Image
Image
Hệ thống dây - SAA1099
Hệ thống dây - SAA1099

Trong phần hướng dẫn này, tôi sẽ chỉ cho bạn cách sử dụng Arduino Uno với chip tổng hợp âm thanh cổ điển, để phát các tệp midi ở dạng lượn sóng vuông vắn!

Nếu bạn chỉ muốn có một cái nhìn tổng quan về những gì dự án này thực hiện, hãy xem video trên. Nếu không, hãy tiếp tục!

Bước 1: Video

Image
Image

Nếu bạn thích tất cả các hướng dẫn của mình bằng video rõ ràng, ngắn gọn, chúng tôi sẽ giúp bạn!

Đối với phần còn lại của chúng tôi, bạn có thể tiếp tục, để biết thêm chi tiết và hướng dẫn bằng văn bản.

Bước 2: Các bộ phận và vật liệu

Đối với điều này, bạn sẽ cần những thứ sau:

(Các liên kết dành cho các mặt hàng trên eBay)

  • Arduino (Uno, Nano, Leonardo, tất cả chúng đều hoạt động)
  • Ít nhất một breadboard có kích thước trung bình
  • Chip tạo âm thanh nổi SAA1099
  • Dây nhảy Breadboard (Ngoài ra, tôi thích sử dụng dây nhảy loại dành cho nữ và nữ, với các chân cắm đầu 20mm được chèn ở hai đầu- Chắc chắn hơn nhiều)
  • Bộ dao động TTL 8Mhz (liên kết AliExpress do zweigelt cung cấp)
  • Giắc cắm âm thanh nổi (hoặc đơn âm)
  • Điện trở 2 x 1K (Lô 100)
  • Điện trở 1 x 10K (Lô 50)
  • Tụ điện 2 x 100pF
  • (Tùy chọn) Một số đèn LED, ít nhất là 1 (Bất kỳ màu nào, đây là 100 màu các loại với giá một đô la!)

Sử dụng các liên kết được cung cấp, tổng chi phí là 23,25 đô la, bao gồm cả phí vận chuyển. Tất nhiên, hầu hết nó đến từ nửa vòng trái đất, vì vậy việc vận chuyển thường mất khoảng một tháng. Nếu bạn muốn vận chuyển nhanh hơn, có thể bạn sẽ phải trả nhiều hơn một chút.

Bước 3: Đấu dây - SAA1099

Hệ thống dây - SAA1099
Hệ thống dây - SAA1099
Hệ thống dây - SAA1099
Hệ thống dây - SAA1099

Nếu sơ đồ là sở thích của bạn, đây là điều bạn cần làm! Phần còn lại của chúng ta có thể thực hiện từng bước hoặc xem video.

  • Đặt SAA1099 ở cuối breadboard, với rãnh trên chip hướng về phía cuối.
  • Bây giờ, quyền lực. VDD (chân 18) trên SAA1099 được cấp nguồn, sau đó ghim VSS (chân 9) xuống đất.
  • Tiếp theo, đặt một dây giữa CS (pin 2) và đất, để giữ cho nó được kéo ở mức thấp

Tôi cũng khuyên bạn nên xem qua biểu dữ liệu mà tôi đã đính kèm.

Bước 4: Đấu dây - Bộ tạo dao động TTL

Hệ thống dây - Bộ tạo dao động TTL
Hệ thống dây - Bộ tạo dao động TTL
Hệ thống dây - Bộ tạo dao động TTL
Hệ thống dây - Bộ tạo dao động TTL
  • Chúng tôi sẽ đặt Bộ tạo dao động TTL trên breadboard bên cạnh breadboard, sao cho chân đầu ra của đồng hồ gần nhất với đầu vào đồng hồ trên SAA1099 (Chân 8)
  • Bạn có thể tiếp tục và kết nối nguồn và nối đất với bộ dao động TTL. (Tôi đã đợi đến sau video của mình, vì vậy tôi không có hình ảnh). Hình trên cho thấy đó là những chân nào.

Bước 5: Đấu dây - Giao diện Iref và Chip

Hệ thống dây - Giao diện Iref và Chip
Hệ thống dây - Giao diện Iref và Chip
Hệ thống dây - Giao diện Iref và Chip
Hệ thống dây - Giao diện Iref và Chip
  • Kết nối điện trở 10K giữa Iref (chân 6) và 5V.
  • Kết nối chân số 8 với WR (chân 1) trên SAA1099.
  • Kết nối chân số 9 với A0 (chân 3) trên SAA1099.

Bước 6: Đi dây - Thành phần âm thanh

Hệ thống dây điện - Thành phần âm thanh
Hệ thống dây điện - Thành phần âm thanh
Hệ thống dây điện - Thành phần âm thanh
Hệ thống dây điện - Thành phần âm thanh
Hệ thống dây điện - Thành phần âm thanh
Hệ thống dây điện - Thành phần âm thanh
  • Kết nối tụ điện 100pF giữa OUTR (chân 4) và GND
  • Kết nối điện trở 1K giữa OUTR (chân 4) và 5V
  • Chúng tôi sẽ làm điều tương tự đối với OUTL (pin 5)
  • Kết nối tụ điện 100pF giữa OUTL (chân 5) và GND
  • Kết nối điện trở 1K giữa OUTL (chân 5) và 5V

Ghi chú! Đảm bảo rằng không có dây nào từ điện trở / tụ điện chạm vào nhau, nếu không mọi thứ sẽ không hoạt động và có thể (dự kiến) có thể nổ tung vào mặt bạn.

Bước 7: Đấu dây - Giắc cắm âm thanh

Hệ thống dây điện - Giắc cắm âm thanh
Hệ thống dây điện - Giắc cắm âm thanh
Hệ thống dây điện - Giắc cắm âm thanh
Hệ thống dây điện - Giắc cắm âm thanh
Hệ thống dây điện - Giắc cắm âm thanh
Hệ thống dây điện - Giắc cắm âm thanh
  • Kết nối một dây jumper nhỏ giữa 5V và một hàng trống trên bảng mạch.
  • Đặt giắc cắm âm thanh của bạn để giắc cắm từ 5V kết nối với chân "Tay áo" trên Giắc cắm âm thanh
  • Nối chân L và R (Hoặc chân Audio, nếu bạn có giắc cắm Mono) với các chân OUTL (chân 5) và OUTR (chân 4) trên SAA1099, tương ứng.

Ghi chú! Trên giắc cắm âm thanh Mono, điều đó thực sự không quan trọng, miễn là một chân kết nối với 5V và một chân kết nối với OUTL hoặc OUTR. Nghe sẽ ổn thôi. Trừ khi không, trong trường hợp đó, bạn có thể muốn kiểm tra lại hệ thống dây điện của mình.

Bước 8: Nối dây - Cấp nguồn cho Breadboard

Hệ thống dây điện - Cấp nguồn cho bảng mạch bánh mì
Hệ thống dây điện - Cấp nguồn cho bảng mạch bánh mì
Hệ thống dây điện - Cấp nguồn cho bảng mạch bánh mì
Hệ thống dây điện - Cấp nguồn cho bảng mạch bánh mì
  • Kết nối cả hai bên của bus nguồn Breadboard với nhau, sử dụng dây nhảy.
  • Kết nối một bên với các chân 5V và GND trên Arduino, đảm bảo rằng bạn không trộn lẫn các dây vào bất kỳ đâu. Nếu bạn làm vậy, làn khói ma thuật có thể thoát ra.

Bước 9: Nối dây - Dòng dữ liệu

Hệ thống dây điện - Đường dữ liệu
Hệ thống dây điện - Đường dữ liệu

Kết nối D0 qua D7 trên Arduino với D0 (chân 10) qua D7 (chân 17) trên SAA1099, theo thứ tự

Tôi thấy rằng dây jumper nữ-nữ của DuPont, với chân cắm tiêu đề 15-20MM ở hai đầu, hoạt động tốt hơn nhiều so với dây dupont nam-nam. Ngoài ra, bạn cũng có thể sử dụng chúng như nữ-nữ hoặc nam-nữ. Cả hai đều có thể dễ dàng tìm thấy trên eBay với số lượng lớn, với số lượng thay đổi nhỏ. Một món quà Giáng sinh tuyệt vời dành cho người nghiện Arduino đầy khát vọng!

Bước 10: (Các) đèn LED tùy chọn

(Các) đèn LED tùy chọn
(Các) đèn LED tùy chọn
(Các) đèn LED tùy chọn
(Các) đèn LED tùy chọn

Tôi sẽ không đi từng bước về cách xây dựng mọi thứ ở đây, nhưng có một số nơi tốt để thêm đèn LED. Trước hết, tôi đã kết nối một đèn LED màu đỏ 3mm giữa WR (chân 1) và GND, để hiển thị mỗi khi Arduino gửi lệnh đến SAA1099.

Tôi cũng đã kết nối đèn LED với các dòng dữ liệu trước đây, điều này cho phép bạn xem dữ liệu nhị phân thực tế trên mỗi dòng. Tôi đã sử dụng thiết lập này trong video "Arduino và SAA1099 - Đom đóm" của mình, cũng như 6 đèn LED khác và một số mã bổ sung để thắp sáng từng đèn LED cho mỗi kênh đang hoạt động.

Càng nhiều đèn LED, nó trông càng mát mẻ!

Bước 11: Mã

Mã số!
Mã số!
Mã số!
Mã số!

Bây giờ bạn đã xây dựng mạch, hãy kiểm tra kỹ các kết nối! Bạn không muốn làm nổ tung arduino và Soundchip đắt tiền của mình! (Nếu bạn làm thì tốt. Đó không phải việc của tôi)

Giả sử bạn khỏe mạnh và đã kiểm tra mọi thứ, chúng tôi có thể bắt đầu lập trình nó.

  • Thư viện có tại
  • Bạn sẽ muốn tệp SAATunes.zip, vì vậy hãy tiếp tục và tải xuống tệp đó.
  • Bây giờ, hãy mở Arduino IDE.
  • Trong "Phác thảo", "Bao gồm Thư viện", nhấp vào "Thêm thư viện.zip"
  • Điều hướng đến bất kỳ nơi nào bạn đã tải xuống thư viện SAATunes. (Tôi không quan tâm nếu đó là thư mục máy tính để bàn, tài nguyên tải xuống hay (chèn thứ gì đó đáng xấu hổ) của bạn- Chỉ cần tìm nó)
  • Chọn nó và nhấp vào "Mở"
  • Nó sẽ cho bạn biết nó đã được thêm vào thư viện của bạn.

Bước 12: Kiểm tra nó

Kiểm tra nó!
Kiểm tra nó!
Kiểm tra nó!
Kiểm tra nó!
  • Mở chương trình SAATunes mẫu, trong "Tệp", "Ví dụ", "SAATunes", "SAATunes-Uno".
  • Cắm Arduino của bạn vào Máy tính và vào một cái loa nào đó.
  • Tải chương trình lên Arduino.

Bạn sẽ nghe thấy một Hợp âm, sau đó là Cơn thịnh nộ của Beethoven trước một Penny đã mất. Nếu Cổ điển không phải là sở thích của bạn, đừng lo lắng, vì chúng tôi sẽ sớm tìm hiểu cách sử dụng các tệp MIDI theo lựa chọn của riêng chúng tôi với nó.

Nếu bạn không nghe thấy gì, hãy kiểm tra một số điều sau: Đầu tiên, loa của bạn đã bật chưa? Bật tất cả các cách lên. Vậy thì, arduino có thực sự bật không? Chương trình đã tải lên chính xác? Kiểm tra tất cả hệ thống dây điện với bảng dữ liệu và biểu đồ, sau đó thử lại.

Bước 13: Sử dụng tệp MIDI của riêng bạn - Chương trình chuyển đổi

Sử dụng tệp MIDI của riêng bạn - Chương trình chuyển đổi
Sử dụng tệp MIDI của riêng bạn - Chương trình chuyển đổi

Sẵn sàng để thử một cái gì đó khác ngoài Beethoven? Tốt lắm, của bạn đây.

Để chuyển đổi các tệp MIDI sang C ++ Bytestreams, chúng tôi sẽ cần một chương trình của Len Shustek. Anh ấy là người tạo ra thư viện mà tôi dựa trên mã của mình và thư viện của tôi sử dụng cùng một định dạng bytestream của anh ấy.

  • Bạn có thể tìm thấy chương trình tại
  • Chương trình bạn muốn là "miditones.exe". Hãy tiếp tục và tải xuống.

Bước 14: Chuyển đổi tệp MIDI

Chuyển đổi tệp MIDI
Chuyển đổi tệp MIDI
Chuyển đổi tệp MIDI
Chuyển đổi tệp MIDI
Chuyển đổi tệp MIDI
Chuyển đổi tệp MIDI

Cảnh báo! Ở đây có rồng ascii! Bạn có thể thấy dễ dàng hơn khi xem video, nơi bạn có thể thấy chính xác những gì tôi đang nói. Nếu bạn dám vào, thì hãy tiếp tục!

Để sử dụng chương trình chuyển đổi MIDI sang Bytestream, bạn cần mở cửa sổ nhắc lệnh. Xin lỗi người dùng Mac và Linux, bạn có thể phải tìm cách giải quyết.

  • Mở menu bắt đầu và nhập "CMD", sau đó nhấn enter.
  • Bây giờ chúng ta sẽ học một chút phép thuật MS-DOS. Sử dụng lệnh "CD", điều hướng đến bất kỳ nơi nào bạn đã tải xuống tệp "miditones.exe". Đối với hầu hết các trường hợp, các lệnh sẽ là "tải xuống cd".
  • Chạy chương trình "miditones.exe" bằng cách gõ "miditones". Nó sẽ hiển thị cho bạn một danh sách trợ giúp hiển thị các lệnh phổ biến nhất.

Bây giờ, chúng ta cần một tệp MIDI để chuyển đổi. Tìm một cái ở đâu đó trên interwebs, tốt nhất là không có bộ gõ hoặc bất kỳ hiệu ứng đặc biệt nào ngoài số lần cài đặt / vận tốc. (Nếu bạn không biết đó là gì, đừng lo lắng, bạn sẽ ổn thôi)

  • Tải tệp MIDI của bạn xuống cùng nơi bạn có chương trình "miditones".
  • Bây giờ, bằng cách sử dụng cửa sổ nhắc lệnh, hãy nhập "miditones -d -v [tên tệp]" (Thay thế [tên tệp] bằng bất kỳ tên nào của tệp MIDI của bạn).
  • miditones sẽ tạo một tệp. C với bytestream C ++ trong cùng một thư mục, có cùng tên với tệp MIDI.

Bước 15: Sử dụng tệp MIDI đã chuyển đổi của bạn

Sử dụng tệp MIDI đã chuyển đổi của bạn
Sử dụng tệp MIDI đã chuyển đổi của bạn
Sử dụng tệp MIDI đã chuyển đổi của bạn
Sử dụng tệp MIDI đã chuyển đổi của bạn
Sử dụng tệp MIDI đã chuyển đổi của bạn
Sử dụng tệp MIDI đã chuyển đổi của bạn

Bây giờ bạn đã chuyển đổi tệp MIDI của mình, hãy cung cấp nó theo từng byte nhỏ vào arduino!

  • Giả sử bạn đã mở ví dụ SAATunes-Uno, hãy tiếp tục và "lưu dưới dạng" một cái gì đó khác, để chúng tôi có thể chỉnh sửa nó.
  • Sau khi bạn đã lưu, hãy nhấp vào biểu tượng "mũi tên xuống" nhỏ ở góc trên cùng bên phải.
  • Nhấp vào "tab mới" và đặt tên cho nó là "[name].h" (Thay [name] bằng tên bài hát MIDI của bạn hoặc bất cứ thứ gì bạn muốn)
  • Bây giờ, hãy mở tệp. C mà miditones đã tạo trước đó. Bạn có thể sử dụng notepad để mở nó.
  • Sử dụng CNTRL / A để chọn mọi thứ, sau đó sao chép nó.
  • Dán nó vào tab "[name].h" mới của bạn trong trình soạn thảo arduino.

Mọi thứ đều tốt ở đây, vì vậy chúng ta hãy quay trở lại chương trình.

  • Tìm vị trí có nội dung "#include" RagePenny.h "" và sao chép / dán vào một dòng mới bên dưới.
  • Thay đổi "RagePenny.h" thành bất kỳ tên nào bạn đặt tên cho tệp mới của mình.
  • Bây giờ, hãy nhận xét "#include" RagePenny.h "", bằng cách thêm hai dấu gạch chéo lên phía trước (//) ở phía trước nó.
  • Tải lên chương trình!

Nếu mọi việc suôn sẻ, nó sẽ phát tệp MIDI của riêng bạn. Nếu không, hãy kiểm tra lại để đảm bảo tên của tab mới và tên bạn đã thay đổi trong "#include" RagePenny.h "" giống nhau. Kiểm tra các bước khác và đảm bảo rằng bạn đã làm đúng mọi thứ. Một số tệp MIDI không hoạt động, nhưng những tệp đó rất hiếm.

Bước 16: Vây

Vây!
Vây!

Hy vọng rằng mọi thứ đã diễn ra tốt đẹp với bạn và bạn đang vướng vào các tệp MIDI trên một phần công nghệ cổ xưa được đưa vào cuộc sống mới!

Tuy nhiên, nếu bạn không có, đừng bỏ cuộc! Gửi nhận xét theo cách của tôi, và tôi sẽ sẵn lòng trợ giúp. Tất nhiên, hãy đóng góp ý kiến cho tôi trong phần bình luận.

Chúc mừng chiptunes!

Đề xuất: