กลับไปหน้ารวมไฟล์
continuous-capacitive-touch-piano-arduino.md

DIY: เปียโนสัมผัสต่อเนื่องด้วย Arduino

เมกะเฮิรตซ์ ชีวภาพคาปาซิแตนซ์: เปียโนสัมผัส

ปุ่มกดแบบกลไกในเกมอาร์เคดใช้สปริงโลหะจริง แต่ Arduino Continuous Touch Piano ใช้เพียงแค่คาปาซิแตนซ์ไฟฟ้าชีวภาพบริสุทธิ์! ไม่มีชิ้นส่วนที่เคลื่อนไหว ผู้พัฒนาเชื่อมต่อ Arduino pins เข้ากับแถบ Copper Tape หรือ Aluminium foil เปล่าๆ ด้วยการสลับสัญญาณที่ pins ด้วยความเร็วสูงมาก และวัดว่าต้องใช้ clock cycles จำนวนเท่าใดที่แรงดันไฟฟ้าจะกลับคืนมา, Arduino สามารถตรวจจับการเข้าใกล้ของเนื้อมนุษย์ได้!

ad8232_ecg_sensor_macro_1772706791753.png

โทโพโลยีของ CapacitiveSensor.h

คุณไม่สามารถเสียบแผ่นดีบุกเปล่าๆ เข้ากับ Digital Input โดยตรงได้ มันจะเกิดอาการลอยตัวอย่างรุนแรงและอ่านค่าสัญญาณรบกวนแบบสุ่ม

  1. โปรเจกต์นี้ต้องการ Arduino pins สองพินสำหรับ "ปุ่ม" แต่ละปุ่ม คือ Sender Pin และ Receiver Pin!
  2. คุณเชื่อมต่อ 1 Megaohm Resistor ขนาดใหญ่ระหว่างสอง pins
  3. คุณใช้เทปยึดสายไฟจาก Receiver Pin ตรงไปยังแผ่น Copper Tape
  4. หลักการทางฟิสิกส์: Arduino จะส่งพัลส์ 5V อย่างรวดเร็วจาก Sender มันจะรอเพื่อดูว่า Receiver ตรวจจับได้เร็วแค่ไหน
  5. เมื่อนิ้วชีวภาพของคุณสัมผัสกับแผ่นฟอยล์ มันจะทำหน้าที่เหมือน Capacitor ทางกายภาพขนาดใหญ่ มันจะดูดซับไฟฟ้าไป ทำให้การถ่ายโอนพัลส์ช้าลง!
long fleshReading = cs_4_2.capacitiveSensor(30); // Fire 30 high-speed pulses!
if (fleshReading > 500) {
  // Human flesh detected! The pulse was slowed down by biological mass!
  tone(8, 261); // Play note 'C4'
}

การสร้าง Linear Synthesizer

เนื่องจาก Copper Tape สามารถตัดเป็นรูปทรงใดก็ได้ คุณจึงไม่ถูกจำกัดอยู่แค่ปุ่มมาตรฐาน

  • คุณสามารถสร้างปุ่มแบบเลื่อนที่ต่อเนื่อง หรือวงกลมรูปทรงเรขาคณิตขนาดใหญ่ได้!
  • โค้ดจะขยายเป็นโครงสร้าง if-else ขนาดใหญ่
  • CapSensor1 จะกระตุ้น 261Hz (C)
  • CapSensor2 จะกระตุ้น 293Hz (D)
  • CapSensor3 จะกระตุ้น 329Hz (E)
  • ผลลัพธ์ที่ได้คือ Synthesizer แห่งอนาคตที่เล่นเพลงได้ทันทีที่คุณเลื่อนมือไปบนแผ่นไม้เงางามที่มีร่องรอยโลหะซ่อนอยู่ด้านใต้!

เมทริกซ์สถาปัตยกรรมสัมผัส

  • Arduino Uno/Nano (ความเร็วโปรเซสเซอร์มาตรฐานประมวลผลการคำนวณพัลส์ได้อย่างสมบูรณ์แบบ)
  • Massive 1M to 10M Ohm Resistors (จำเป็นสำหรับ RC-Time Constant ที่ต้องช้าพอให้ 16MHz clock สามารถตรวจจับความแตกต่างของ human capacitance ได้!)
  • Copper Tape or Heavy Aluminum Foil (ทำหน้าที่เป็นแผ่นตรวจจับทางกายภาพ)
  • Physical Piezo Buzzer or Amplified Speaker เชื่อมต่อกับ Pin 8

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

title: "DIY: Arduino Based Continuous Touch Piano"
description: "Capacitive biological oscillators! Abandon physical push-buttons entirely by injecting raw, high-speed megahertz frequencies into sheets of copper tape, reading the micro-farad distortion caused when a human fingertip touches the metal."
category: "Audio & Sound"
difficulty: "Advanced"