คณิตศาสตร์ FFT และตัวขับเคลื่อน Stepper: เครื่องตั้งสายกีตาร์อัตโนมัติ
โปรเซสเซอร์เสียงทั่วไปจะบอกคุณว่าเพลงดังหรือไม่ แต่ เครื่องตั้งสายกีตาร์อัตโนมัติ ต้องใช้การคำนวณทางคณิตศาสตร์เพื่อบอกความถี่ที่แน่นอน (Hertz) อย่างชัดเจน ด้วยการใช้ประโยชน์จากความสามารถในการคำนวณทางคณิตศาสตร์มหาศาลของ Analog-to-Digital Converter ของ Uno การส่งผ่านการสั่นสะเทือนของสายกีตาร์ผ่าน Operational Amplifiers (Op-Amps) ที่ซับซ้อน และเชื่อมโยงความคลาดเคลื่อนของระดับเสียงที่แม่นยำเข้ากับ Stepper motor ขนาดใหญ่ที่ยึดติดกับลูกบิดสายกีตาร์ Arduino จะทำการตั้งสายโลหะด้วยกลไกให้สมบูรณ์แบบที่สุด!

กับดัก Zero-Crossing ของ LM386 Op-Amp
คุณไม่สามารถอ่านสัญญาณกีตาร์ไฟฟ้าโดยตรงเข้าสู่ Arduino Analog Pin ได้อย่างแน่นอน สัญญาณอ่อนมาก (10mV) และลอยอยู่ต่ำกว่า Ground อย่างสมบูรณ์แบบ (AC Voltage - +10mV to -10mV)!
- Pin
A0ของ Uno อ่านค่าได้ตั้งแต่0V ถึง 5Vหากมีแรงดันไฟฟ้าติดลบเข้ามา Pin จะไม่รับรู้ทางกายภาพ! - คุณ ต้อง ส่งสัญญาณกีตาร์ผ่าน LM386 Operational Amplifier (Op-Amp)!
- วงจรจะ "ไบแอส" สัญญาณเสียงขึ้นไปที่
2.5Vอย่างแม่นยำ ตอนนี้คลื่นเสียงกีตาร์จะแกว่งอย่างรุนแรงระหว่าง2.0V และ 3.0V - กลไกการอ่านค่าด้วยซอฟต์แวร์: อัลกอริทึมจะค้นหา
Zero-Crossingsคลื่นเสียงที่ขยายแล้วจะตัดผ่านเส้นฐาน2.5Vกี่ครั้งต่อวินาทีกันแน่? สาย E ต่ำ = 82 HzUno จะคำนวณIf (Hertz < 82.4): แสดงว่าสายเพี้ยนต่ำ (FLAT)!
การขับเคลื่อน Gearbox (Geared Stepper)
หากระดับเสียงเพี้ยนต่ำ (flat) Uno จะต้องขับเคลื่อนระบบหุ่นยนต์ทางกายภาพเพื่อขันสายกีตาร์โลหะให้ตึงขึ้น
- คุณไม่สามารถใช้ DC Motor ทั่วไปได้ มันจะหมุนไม่สามารถควบคุมได้และทำให้สายขาด!
- คุณ ต้อง ใช้ 28BYJ-48 หรือ NEMA 17 Stepper Motor
if (currentHertz < 82.0) { // เพี้ยนต่ำมาก!
// ขันสายให้ตึงขึ้นอย่างมาก!
tuningStepper.step(100); // หมุนตามเข็มนาฬิกา 100 สเต็ปที่ควบคุมได้อย่างสมบูรณ์แบบ!
} else if (currentHertz >= 82.0 && currentHertz < 82.3) {
// ใกล้แล้ว! ปรับละเอียด!
tuningStepper.step(2); // หมุนแค่ 2 สเต็ป!
} else {
Serial.println("IN TUNE!"); // หยุดกลไกทั้งหมด!
}
ฮาร์ดแวร์พื้นฐานสำหรับการคำนวณระดับเสียง
- Arduino Uno/Nano (ความเร็วในการประมวลผลมาตรฐานเพียงพออย่างสมบูรณ์แบบ แม้ว่าบอร์ด Teensy จะเหมาะกว่าสำหรับการใช้งานไลบรารี FFT แบบดิบ)
- LM386 Audio Amplifier Chip + ตัวต้านทานไบแอสและตัวเก็บประจุคัปปลิ้งทางกายภาพ (การจัดวงจรบน breadboard ที่ซับซ้อนเป็นสิ่งจำเป็นอย่างยิ่ง มิฉะนั้นฟิสิกส์ของเสียงจะล้มเหลวทันที!)
- Standard Electric Guitar 1/4-inch Mono Jack Cable Breakout
- Geared Stepper Motor (เชื่อมต่อเข้ากับลูกบิดสายกีตาร์อย่างแม่นยำโดยใช้อะแดปเตอร์หกเหลี่ยมที่พิมพ์ 3D แบบกำหนดเอง!)