กลับไปหน้ารวมไฟล์
pianosynth-ba0bc5.md

ชื่อโปรเจกต์: Piano/Synth

ตอนแรกพี่กะจะทำเปียโน 1 Octave ขำๆ ว่ะน้อง แต่มองไปมองมาเห็น Pins มันเหลือ จะปล่อยไว้เฉยๆ ก็เสียของ พี่เลยจัดเต็มใส่ฟังก์ชันเพิ่มเข้าไปให้มันเฟี้ยวๆ ไปเลย

ตัวนี้มี Push buttons 12 ตัว ทำหน้าที่เป็นคีย์เปียโน (พี่แนะนำให้น้องทาสีขาวดำแยกให้ชัดนะ จะได้ดูหล่อเท่เหมือนของจริง) แล้วพี่ก็ใส่ Slide buttons ไปอีก 2 ตัว เอาไว้กดเปลี่ยน Octave ขึ้นหรือลงตามใจสั่ง ส่วนความคุมเสียงก็มี Potentiometer 2 ตัว ตัวแรกเอาไว้คุมความยาวโน้ต (เปียโนจะรัน Loop เสียงค้างไว้ตราบเท่าที่น้องยังกดปุ่มอยู่) ส่วน Pot อีกตัวเอาไว้ทำ Pitch bend หรือการรูดเสียงนั่นแหละ (จริงๆ มันคือการเอาค่า Analog input ไปบวกเพิ่มในค่า Frequency ของโน้ตเฉยๆ วัยรุ่น)

ของส่วนใหญ่ในโปรเจกต์นี้ พี่สายประหยัดว่ะน้อง เน้น Recycle จากขยะอิเล็กทรอนิกส์ล้วนๆ ทั้ง Push buttons และ Slide buttons พี่ก็แงะมาจากเครื่องเล่น CD เก่าๆ ส่วน Pot ก็ไปเก็บวิทยุพังๆ ที่เขาทิ้งไว้ข้างถนนมาใช้ และ Speaker (ลำโพง) พี่ก็ใช้ [Buzzer](https://s.shopee.co.th/6pvZFdZdRf) จากโทรศัพท์รุ่นพระเจ้าเหาเอา

บอกเลยว่าพี่ทำโปรเจกต์นี้แล้วโครตเพลิน (พี่ก็มือใหม่หัด Code กับเล่น [Arduino](https://s.shopee.co.th/7fUgFAWSki) เหมือนกันนะเนี่ย) หวังว่าน้องๆ จะสนุกกับมันนะ ใครมี Feedback หรือจะวิจารณ์เรื่องการต่อสาย (Wiring) หรือการเขียน Code ของพี่ก็จัดมาได้เลย พี่พร้อมรับฟังเสมอ!

รายละเอียดทางเทคนิคแบบจัดเต็ม

ศูนย์รวมเครื่องดนตรีดิจิทัล

โปรเจกต์นี้จะเปลี่ยน Board Arduino ของน้องให้กลายเป็น Monophonic Musical Synthesizer สารพัดประโยชน์ เหมาะมากสำหรับคนที่อยากเรียนรู้เรื่อง Wave Synthesis และ Frequency Mapping

  • PWM Frequency Oscillator: Arduino จะใช้ฟังก์ชัน tone() เพื่อสร้าง Square Wave ให้ตรงกับโน้ตดนตรีสากล (พวก C4, D4, E4 อะไรพวกนั้น) ในตัว Firmware พี่ใส่ Chromatic Lookup Table ไว้ให้แล้ว มั่นใจได้ว่ากดปุ่มไหนเสียงก็ตรงคีย์ ไม่เพี้ยนแน่นอน
  • Multi-Waveform Synthesis: (อันนี้เวอร์ชันแอดวานซ์นะน้อง) ลองหัดใช้ Resistor-ladder DAC หรือ High-speed PWM Filter ดู จะได้สร้างรูปคลื่นที่ซับซ้อนกว่า Square Wave ทั่วไปได้ เช่นพวก Sawtooth หรือ Triangle waves ให้เสียงมันดูนุ่มลึกแบบ "Analog" มากขึ้น

ส่วนควบคุมการแสดง

  • Capacitive Touch Keys: ถ้าเบื่อ Push buttons แบบเดิมๆ น้องลองเอาแผ่นฟอยล์อลูมิเนียมมาทำเป็น Sensor แล้วใช้ Library CapacitiveSensor ดูสิ จะได้สัมผัสการเล่นดนตรีแบบล้ำๆ แค่แตะเบาๆ เสียงก็มาแล้ว หล่อเท่แน่นอนงานนี้

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

title: "Piano/Synth"
description: "This 12 pushbutton piano plays the 4th octave with an optional added 3rd and 5th octave, controls note length and pitch with two pots."
author: "fr_pal"
category: "Audio & Sound"
tags:
  - "synth"
  - "piano"
  - "sequence"
views: 11961
likes: 12
price: 1499
difficulty: "Intermediate"
components:
  - "2x Rotary potentiometer (generic)"
  - "2x Slide Switch"
  - "1x Arduino UNO"
  - "1x Solderless Breadboard Full Size"
  - "50x Jumper wires (generic)"
  - "12x Tactile Switch, Top Actuated"
tools: []
apps:
  - "1x Arduino IDE"
downloadableFiles:
  - "https://projects.arduinocontent.cc/1b60b735-04df-44b8-9e78-401c112f8ee3.ino"
  - "https://projects.arduinocontent.cc/1b60b735-04df-44b8-9e78-401c112f8ee3.ino"
documentationLinks: []
passwordHash: "3ef4e414d6b67a532b97adb06de7ae86092ebb1ee0d91691ae792e9bc54137f3"
encryptedPayload: "U2FsdGVkX1/JCOzatdInzOL7RGipw176FJ925yhqZcnmwwTtwqgRFceLZyWopGaz0XHTWHYNNbtQG10r34I4+lsH87OhcGUsbkfOjZZF7vs="
seoDescription: "Build an Arduino Piano/Synth with 12 pushbuttons. Play 3 octaves and control note length and pitch using pots."
videoLinks:
  - "https://www.youtube.com/embed/PKeCGS3g7DE"
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/pianosynth-ba0bc5_cover.jpg"
lang: "th"