สารบัญ:

เปียโนอัตโนมัติ: 5 ขั้นตอน
เปียโนอัตโนมัติ: 5 ขั้นตอน

วีดีโอ: เปียโนอัตโนมัติ: 5 ขั้นตอน

วีดีโอ: เปียโนอัตโนมัติ: 5 ขั้นตอน
วีดีโอ: สอนเปียโนเบื้องต้น แบบง่ายๆ สำหรับคนไม่มีพื้นฐาน(ตอนที่1) 2024, กรกฎาคม
Anonim
เปียโนอัตโนมัติ
เปียโนอัตโนมัติ

ฉันต้องการสร้างเปียโนที่สามารถเล่นโดยอัตโนมัติได้ด้วยการฟังเพลงของฉันในทันที ดังนั้นฉันจึงลองใช้ Arduino uno ที่ฉันนอนเล่นอยู่รอบ ๆ มันอาจจะดีกว่ามากถ้าใช้ Arduino Zero โดยใช้ไลบรารี่ตัววัดความถี่อย่างง่าย ii ไม่มี ในขณะนี้และฉันก็ต่อด้วยอูโน่

ขั้นตอนที่ 1: ทฤษฎี

เปียโนเล่นโดยจับคู่ความถี่ของนักร้องกับเปียโน เราจึงต้องสุ่มตัวอย่างความถี่ของนักร้องและเล่นตามเวลาจริง ฉันใช้ตัวแบ่งแรงดันไฟฟ้าจากทริมพอตเนื่องจากเสียงเป็นไฟฟ้ากระแสสลับและ Arduino ไม่สามารถทำได้ จัดการแรงดันลบจึงใช้แรงดันไฟฟ้าที่ตัวแบ่งแรงดันให้มาอ้างอิงและตั้งค่าที่ 2.5v อินพุตมีให้ที่พิน A0 ของ Arduino จากนั้นฉันตั้งโปรแกรม Arduino เพื่อตรวจสอบว่าแรงดันไฟฟ้าอยู่ที่ระดับอ้างอิงซึ่งฉันวัดและตั้งชื่อเริ่มต้นแล้ววัดช่วงเวลาระหว่างแรงดันอ้างอิงต่อเนื่องและคำนวณความถี่เดล ตัวแปรใช้เพื่อเก็บแอมพลิจูดทันทีของสัญญาณเสียงเพื่อขจัดเสียงรบกวนที่มีแอมพลิจูดน้อยกว่า 15 ค่า adc หรือ 0.0733 โวลต์ มีการจำกัดความถี่เพื่อไม่ให้ค่าสุดขีดไม่ขัดจังหวะเพลง

ขั้นตอนที่ 2: วัสดุที่จำเป็น

วัสดุที่จำเป็น
วัสดุที่จำเป็น
วัสดุที่จำเป็น
วัสดุที่จำเป็น
วัสดุที่จำเป็น
วัสดุที่จำเป็น

1)Arduino Uno หรือเทียบเท่า

2) ออดไฟฟ้า Piezo แบบพาสซีฟหรือลำโพงที่มีวงจรเครื่องขยายเสียง

3) trimpot ความต้านทานสูง (ตรวจสอบให้แน่ใจว่ากระแสที่ไหลผ่านที่ 5v ควรมีขนาดเล็กในไม่กี่มิลลิแอมป์)

4) สายจัมเปอร์

5)เขียงหั่นขนม

6)แจ็คเสียง 3.5 มม. หรือไมโครโฟนพร้อมวงจรขยายเสียง (ฉันใช้มือถือเป็นเครื่องขยายเสียงเพราะฉันพบว่าตัวเองขี้เกียจเกินไปที่จะสร้างมันขึ้นมา)

7) โทรศัพท์ Android (ในการเล่นเสียง)

8)สายarduino(เพื่อตั้งโปรแกรม)

ขั้นตอนที่ 3: การเชื่อมต่อ

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

1) ติดตั้ง trimpot บนบอร์ดขนมปังและจ่ายกราวด์และ +5v จาก Arduino โดยใช้สายจัมเปอร์

2) เชื่อมต่อกราวด์ของแจ็ค 3.5 มม. เข้ากับพินที่สามของทริมพอตเพื่อทำงานเป็นการกำหนดค่าตัวแบ่งแรงดันและแชนเนลไปยังพิน A0 ของ Arduino

3) เชื่อมต่อกราวด์ของออดกับกราวด์ของ Arduino และส่งสัญญาณไปที่พิน 13 ของ Arduino

ขั้นตอนที่ 4: รหัส Arduino

รหัส Arduino
รหัส Arduino

นี่คือรหัสที่สมบูรณ์

ฉันได้แสดงความคิดเห็นเกี่ยวกับการพิมพ์แบบอนุกรมที่ใช้สำหรับการทดสอบ

uint64_t เคอร์ไทม์=0, ltime=0;uint32_t freq=0; uint16_t เริ่มต้น, val, del=0; บูลสุดท้าย, สกุลเงิน; การตั้งค่าเป็นโมฆะ () { // ใส่รหัสการตั้งค่าของคุณที่นี่ เพื่อเรียกใช้ครั้งเดียว: ล่าช้า (1000); /*อนุกรม.begin(115200); ล่าช้า (1000); Serial.println("ระบบเริ่มทำงาน");*/ initial = analogRead(A0); ถ้า(อนาล็อกอ่าน(A0)

void loop() { // ใส่รหัสหลักของคุณที่นี่ เพื่อเรียกใช้ซ้ำ: val=analogRead(A0); if(val>=เริ่มต้น)curr=1; อื่น curr=0; del=(int)val-(int) ค่าเริ่มต้น; if(last==0 &&curr==1){ เคอร์ไทม์=ไมโคร(); freq=1000000/(2*(curtime-ltime)); /*Serial.print(ความถี่, ธ.ค.); Serial.print("ลง"); Serial.println(del);*/ if(freq>50&&freq15)tone(13, freq, 500); ล่าช้า (100); ltime=ไมโคร(); สุดท้าย=1; }

ขั้นตอนที่ 5: เพิ่มพลัง !!

เชื่อมต่อโทรศัพท์ของคุณเพื่อเล่นเพลง และหากคุณต้องการร้องเพลง คุณสามารถใช้แอปเครื่องมือทั้งหมดที่สามารถดาวน์โหลดได้ที่ play store นี่คือลิงค์

play.google.com/store/apps/details?id=com.pradhyu.alltoolseveryutility&hl=th

หลังจากดาวน์โหลดแล้ว ให้เปิดตัวเลือกไมค์แล้วร้องเพลง!

นี่คือวิธีการทำงาน!

แนะนำ: