กลับไปหน้ารวมไฟล์
i2s-theremin-ab8e68.md

หมายเหตุ: บทช่วยสอนนี้อาจล้าสมัย โปรดไปที่ ที่นี่ สำหรับเวอร์ชันล่าสุด.

ไลบรารี Arduino I2S

ไลบรารี Arduino I2S ใหม่ช่วยให้คุณสามารถส่งและรับข้อมูลเสียงดิจิทัลบน I2S bus ได้ ตัวอย่างนี้มีวัตถุประสงค์เพื่อแสดงวิธีใช้ไลบรารีนี้ในการขับเคลื่อน I2S DAC เพื่อสร้างเสียงที่คำนวณภายใน Arduino sketch.

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับไลบรารีและวิธีการทำงาน โปรดอ่านหน้าไลบรารี.

การเชื่อมต่อ I2S

I2S DAC ที่ใช้ในตัวอย่างนี้ต้องการเพียง 3 สายสำหรับ I2S bus (บวกกับแหล่งจ่ายไฟ) การเชื่อมต่อสำหรับ I2S บน Arduino MKRZero มีดังนี้:

  • SD (Serial Data) ที่ pin A6;
  • SCK (Serial Clock) ที่ pin 2;
  • FS (Frame หรือ Word Select) ที่ pin 3;

วิธีการทำงาน

Theremin มีการควบคุมหลักๆ สองอย่าง:

  • ระดับเสียง (pitch)
  • ความดัง (volume)

ในตัวอย่างนี้ พารามิเตอร์ทั้งสองนี้จะถูกเปลี่ยนโดยการเลื่อน slide potentiometers สองตัว แต่คุณสามารถแก้ไขให้เป็นอ่านค่าโดยใช้ ping sensor ก็ได้! ด้วยวิธีนี้ theremin ของคุณจะสมจริงยิ่งขึ้น!

potentiometers ทั้งสองตัวถูกต่อแบบวงจรแบ่งแรงดันไฟฟ้า ดังนั้นการเลื่อนจะทำให้คุณได้รับค่า (จาก analogRead()) ในช่วง 0 - 1023 ค่าเหล่านี้จะถูกแมปไปยังช่วงความถี่ต่ำสุดและสูงสุด และความดังต่ำสุดและสูงสุด.

เสียงที่ส่งบน I2S bus เป็นคลื่น sine แบบง่ายๆ ที่ความถี่และแอมพลิจูดถูกเปลี่ยนแปลงตามการอ่านค่าจาก potentiometers.

รายละเอียดทางเทคนิคเพิ่มเติม

การสังเคราะห์เสียงคุณภาพสูง

โปรเจกต์นี้สร้าง Theremin ดิจิทัลระดับมืออาชีพโดยใช้ high-speed distance sensors และ I2S DAC เพื่อคุณภาพเสียงที่เหนือกว่า.

  • I2S Audio Pipeline: แตกต่างจากเสียง PWM ทั่วไป โปรเจกต์นี้ใช้โปรโตคอล I2S (Inter-IC Sound) เพื่อสตรีมเสียง 16-bit ไปยัง DAC ภายนอก (เช่น MAX98357A) ซึ่งช่วยขจัดสัญญาณรบกวนดิจิทัลและให้โทนเสียงที่สะอาดเหมือนคลื่น sine.
  • Distance-to-Frequency Algorithm: ใช้ ultrasonic sensor หรือ IR Time-of-Flight (ToF) sensor Arduino จะคำนวณระดับเสียง (pitch) ตามระยะทาง โดยใช้ lookup table สำหรับสเกลเพลงตะวันตก (เช่น Minor Pentatonic).

การแสดงผล

  • Arduino Web Editor Sync: (เฉพาะสำหรับรุ่นนี้) ใช้ Arduino IoT Cloud เพื่อแสดงความถี่และความดังปัจจุบันบน desktop dashboard ทำให้สามารถแสดงผลการทำงานได้แบบเรียลไทม์.

ข้อมูล Frontmatter ดั้งเดิม

title: "I2S Theremin"
description: "Discover how to make an I2S Theremin based on the new Arduino I2S library."
author: "Arduino_Genuino"
category: "Audio & Sound"
tags:
  - "audio"
  - "maker"
views: 29539
likes: 16
price: 2450
difficulty: "Easy"
components:
  - "1x MAX98357A"
  - "1x Breadboard (generic)"
  - "2x RobotGeek Slider"
  - "1x Speaker: 3W, 4 ohms"
  - "1x Jumper wires (generic)"
  - "1x Arduino MKR Zero"
tools: []
apps:
  - "1x Arduino IDE"
  - "1x Arduino Web Editor"
downloadableFiles:
  - "https://create.arduino.cc/editor/Arduino_Genuino/5574e381-3fe5-4c8f-9877-0dea97ea6ec3/preview"
documentationLinks: []
passwordHash: "8914eb7da47f5148050d70287756caa815058c649ec68c54a91a59f6badf1a29"
encryptedPayload: "U2FsdGVkX1953jgbT1AkmrPgffuZOWsMi2Fc21/J7llHsFDm6g4ooagJtUDvnWevSeF77SzqMA6nJlQVZ2e0Ug73sAEHSuCS2tdRXasyPZFI5W36czO6yXmEqVfSlUJf"
seoDescription: "Learn how to build a DIY I2S Theremin using the latest Arduino I2S library for high-quality digital audio synthesis."
videoLinks: []
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/i2s-theremin-ab8e68_cover.png"
lang: "th"