สารบัญ:
- ขั้นตอนที่ 1: การควบคุม VS1053
- ขั้นตอนที่ 2: การใช้โซนาร์
- ขั้นตอนที่ 3: การเพิ่มจอแสดงผล
- ขั้นตอนที่ 4: ระบบเมนู
- ขั้นตอนที่ 5: บัดกรีมันเข้าด้วยกัน
- ขั้นตอนที่ 6: การเพิ่ม PSU
- ขั้นตอนที่ 7: การเพิ่มลำโพง
- ขั้นตอนที่ 8: สถานีเชื่อมต่อ
- ขั้นตอนที่ 9: การสร้างเคส
- ขั้นตอนที่ 10: การพัฒนาในอนาคต
วีดีโอ: MIDI Sonar "Theremin": 10 ขั้นตอน (พร้อมรูปภาพ)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:02
นี่คือเครื่องดนตรีที่ใช้เซ็นเซอร์วัดระยะโซนาร์สองตัวเพื่อควบคุมระดับเสียงและคุณภาพของโน้ต ไม่ใช่แดมินแน่นอน แต่ "แดมิน" กลายเป็นคำทั่วไปสำหรับเครื่องดนตรีที่เล่นโดยการโบกมือไปมา
มีเครื่องสังเคราะห์เสียง MIDI แอมพลิฟายเออร์และลำโพงในตัว โน้ตดนตรีผลิตโดยชิป MIDI - VS1053 - ซึ่งมี 127 เสียง (กล่าวคือเครื่องดนตรีที่แตกต่างกัน) มีโพลีโฟนีในระดับสูง (สูงสุด 64) จึงสามารถเล่นโน้ตเดี่ยวหรือคอร์ดได้
มือขวาของคุณควบคุมโน้ตที่กำลังเล่น ในโหมด "ไม่ต่อเนื่อง" พื้นที่ทางด้านขวาจะถูกแบ่งออกเป็น "ถังขยะ" เมื่อมือของคุณเข้าสู่ถังขยะ โน้ตสำหรับถังขยะนั้นจะเริ่มต้นขึ้น เมื่อคุณทิ้งถังขยะ โน้ตอาจหยุด (เช่น ออร์แกน) หรือตายไปตามธรรมชาติ (เช่น เปียโน)
ในโหมด "ต่อเนื่อง" ช่องว่างทางด้านขวาจะกำหนดระยะพิทช์ที่แปรผันอย่างต่อเนื่อง - เช่นเดียวกับแดมินดั้งเดิม โน้ตเริ่มต้นเมื่อมือของคุณเข้าสู่ช่องว่างและหยุดเมื่อคุณออกจากพื้นที่
มือซ้ายของคุณควบคุมคุณภาพของโน้ตที่กำลังเล่น สามารถควบคุมระดับเสียง, tremolo, vibrato, pitch-bend, reverb เป็นต้น
หน้าจอ LCD ขนาดเล็กมีเมนูที่ให้คุณเลือกเครื่องดนตรีปัจจุบัน การทำงานของมือซ้าย มาตราส่วน (หรือ "ปุ่ม") ของมือขวา สั่น สั่น ฯลฯ คุณสามารถบันทึกและโหลด "การตั้งค่าต่างๆ" ได้ " และสลับไปมาระหว่างการแสดงอย่างรวดเร็ว
เครื่องมือ MIDI "Theremin" ทั้งหมดทำงานแบบสแตนด์อะโลนด้วยลำโพงของตัวเองและแบตเตอรี่แบบชาร์จไฟได้
หากคุณกำลังจะคัดลอกงานสร้างของฉัน คุณจะต้องมี Arduino Nano (1.50 ปอนด์), โมดูล VS1053 (4.5 ปอนด์), จอแสดงผล LCD ST7735 ขนาด 1.44 นิ้ว (3.5 ปอนด์), HC-SR04 สองโมดูล (ชิ้นละ 1 ปอนด์) และตัวต้านทานบางตัว คุณจะต้องมีลำโพงขับเคลื่อน และบางทีอาจจะเป็นเซลล์ลิเธียมและ PSU แต่รายละเอียดจะขึ้นอยู่กับว่าคุณตัดสินใจสร้างมันอย่างไร ผมได้ของแถมมาจากร้านขายรองเท้าบูทและร้านการกุศล บวกกับคุณ จะต้องมีอุปกรณ์อิเล็กทรอนิกส์สำหรับการประชุมเชิงปฏิบัติการตามปกติ
ขั้นตอนที่ 1: การควบคุม VS1053
ฉันเลือกโมดูล VS1053 ที่แสดงในภาพ (สังเกตตัวควบคุม SOT223 สองตัว ช่องเสียบแจ็คสองตัว และตำแหน่งของตัวเชื่อมต่อ) ค้นหา eBay, Alibaba หรือซัพพลายเออร์ที่คุณชื่นชอบสำหรับโมดูล VS1053 ที่มีลักษณะเช่นนั้น มีจำหน่ายจาก Aliexpress ที่นี่ และ ที่นี่
ฉันซื้อมันเมื่อสองสามปีที่แล้วและดูเหมือนว่าจะไม่มีให้บริการบน eBay อีกต่อไป เฉพาะในอาลีบาบาเท่านั้น ตอนนี้มีเวอร์ชั่น PCB สีแดงบน eBay แล้ว ดูเหมือนว่าจะใช้งานได้เหมือนกัน แต่พินเอาต์ต่างกัน ดังนั้นคุณจะต้องปรับแผนผังและเลย์เอาต์ของฉัน ฉันไม่ได้ทดสอบมัน ในการสนทนา (ด้านล่าง) คุณสามารถดูคำแนะนำเกี่ยวกับวิธีเพิ่มตัวต้านทานให้กับ PCB สีแดงเพื่อเปิดใช้งาน MIDI แบบ "สด" หรือคุณสามารถส่งคำสั่งเพิ่มเติมระหว่างการตั้งค่าเพื่อเปิดใช้งานได้
VS1053 เป็นชิปที่ดี แต่ค่อนข้างซับซ้อน ฉันใช้เฉพาะส่วน MIDI ของมันเท่านั้น เป็นไปได้ที่จะควบคุม VS1053 ผ่านอินเทอร์เฟซแบบอนุกรม แต่ฉันใช้บัส SPI เนื่องจากสะดวกกว่ากับ Arduino Nano ไบต์ใดๆ ที่คุณส่งผ่านบัส SPI จะถือเป็นคำสั่ง MIDI
คุณจะพบรายการคำสั่ง MIDI บนเว็บ VS1053 ตอบสนองต่อบางอย่าง แต่ไม่ใช่ทั้งหมด โปรแกรม Miditheremin0.exe แสดงโปรแกรมที่ฉันรู้ว่าใช้งานได้
คุณสามารถดาวน์โหลดแผ่นข้อมูล VS1053 ได้จากเว็บ เป็นเอกสารขนาดใหญ่และกำลังดำเนินไปอย่างยากลำบาก ส่วน "8.9 รูปแบบ MIDI ที่รองรับ" นั้นเกือบทั้งหมดพูดถึง MIDI ส่วน "10.10 Real-Time MIDI" พูดถึงการใช้ GPIO0 และ GPIO1 เพื่อเปิดใช้งาน MIDI แต่บอร์ดที่ฉันไม่ต้องการเปิดใช้งานพิเศษใดๆ คุณยังสามารถดาวน์โหลดรายการข้อความ MIDI (ซึ่ง VS1053) ไม่รองรับทั้งหมด
ต่อโมดูล VS1053 เข้ากับ Arduino Nano ดังที่แสดงและอัปโหลดไฟล์ INO ไปยัง Arduino ฉันใช้เขียงหั่นขนม ฉันไม่มีรูปถ่ายของมันในขั้นตอนนี้ แต่คุณสามารถดูเขียงหั่นขนมพร้อมส่วนประกอบอื่น ๆ ในขั้นตอนด้านล่าง
แบบร่าง INO รับไบต์จากพีซีผ่านสายซีเรียล และส่งไบต์ไปยัง VS1053 เป็นโปรแกรมที่ง่ายมากที่ให้คุณทดสอบ VS1053 เชื่อมต่อช่องเสียบแจ็คเอาท์พุตกับหูฟังหรือลำโพงคอมพิวเตอร์
โปรแกรม Windows Miditheremin0.exe (ดาวน์โหลด Step1.zip จาก github) ส่งคำสั่งไปยัง VS1053 คลิกปุ่ม "90 note vel" เพื่อเล่นโน้ต หรือคุณสามารถเขียนโปรแกรม Windows ของคุณเอง หรือใช้โปรแกรมเทอร์มินัลที่มีอยู่มากมายบนเว็บ
โมดูล VS1053 มีพินต่อไปนี้:
- บัส SPI มี MISO, MOSI และ SCLK. ตามปกติ
- หาก XRST ต่ำ ชิปจะรีเซ็ต
- XDCS ไม่ได้ทำอะไรในโหมด SPI ดังนั้นให้ผูกกับ XCS
- XCS คือการเลือกชิป
- DREQ จะบอกคุณเมื่อชิปพร้อมสำหรับคำสั่งใหม่
ควรตั้งค่า XCS ให้ต่ำในขณะที่คุณส่งไบต์ แล้วสูง ด้วยวิธีนี้ คุณแน่ใจว่าได้ซิงโครไนซ์บิตแรกของแต่ละไบต์แล้ว การอ่าน DREQ จะบอกคุณว่าชิปพร้อมที่จะรับคำสั่งใหม่
หลังจากที่ Arduino ส่งไบต์แล้ว จะต้องส่งไบต์จำลองเพื่อสลับนาฬิกาและอนุญาตให้ VS1053 ส่งไบต์กลับมาในการตอบสนอง ฟังก์ชัน SPItransfer() จะแสดงให้คุณเห็นว่า
โมดูลสีแดงที่มีจำหน่ายบน eBay มีช่องเสียบการ์ด SD ดังนั้นจึงมีหมุดพิเศษอีกสองสามตัว ละเว้นพวกเขา
ตอนนี้คุณมั่นใจว่าคุณสามารถทำให้ VS1053 ใช้งานได้ เราจะเปลี่ยนให้เป็นเครื่องดนตรีมากขึ้น
ขั้นตอนที่ 2: การใช้โซนาร์
ต่อโมดูล HC-SR04 เข้ากับ Arduino Nano ดังที่แสดงและอัปโหลดไฟล์ INO ไปยัง Arduino
โปรดสังเกตในแผนผังว่า DC3 - ตัวเก็บประจุดีคัปปลิ้งสำหรับโมดูล HC-SR04 - ควรเชื่อมต่อใกล้กับโมดูล HC-SR04 พวกเขาใช้กระแสไฟค่อนข้างมากเมื่อส่งสัญญาณซึ่ง DC3 ช่วยจัดหา
ในขั้นตอนนี้ของโครงการ พีซีที่ใช้ Windows ยังคงส่งคำสั่งไปยัง VS1053 แต่ VS1053 ยังควบคุมโดยเซ็นเซอร์โซนาร์ HC-SR04 (ดาวน์โหลด Step2.zip จาก github)
คำสั่งใหม่ทั้งหมดเริ่มต้นด้วย 0xFF และแปลโดย Arduino Sketch (แทนที่จะส่งตรงไปยัง VS1053) ไบต์ที่ไม่ใช่ "คำสั่ง FF" จะถูกส่งไปยัง VS1053
มีคำสั่งให้เปลี่ยนเครื่องดนตรี, เปลี่ยนมาตราส่วน, เพิ่ม vibrato และ tremolo เป็นต้น โปรแกรมสามารถรันในโหมด "ไม่ต่อเนื่อง" โดยมีโน้ตแยกกัน (เช่น เปียโน) หรือในโหมด "ต่อเนื่อง" ที่มีโน้ตตัวเดียว งอขึ้นและลง (เหมือนแดมิน)
มันทำงานได้ดีทุกอย่างที่เครื่องมือสุดท้ายจะทำ แต่มันถูกควบคุมโดยพีซี
เซ็นเซอร์โซนาร์ HC-SR04 ที่เหมาะสมจะเลือกระดับเสียงของโน้ตที่เล่น ในโหมด "ไม่ต่อเนื่อง" พื้นที่ทางด้านขวาจะถูกแบ่งออกเป็น "ถังขยะ" เมื่อมือของคุณเข้าสู่ถังขยะ โน้ตสำหรับถังขยะนั้นจะเริ่มต้นขึ้น เมื่อคุณทิ้งถังขยะ โน้ตอาจหยุด (เช่น ออร์แกน) หรือตายไปตามธรรมชาติ (เช่น เปียโน) ขณะที่มือของคุณเข้าสู่ถังขยะ ถังขยะจะขยายออกเล็กน้อย เพื่อไม่ให้กระวนกระวายใจที่ขอบถัง
ฟังก์ชัน GetSonar() ส่งกลับเวลาที่ใช้จนกระทั่งเสียงสะท้อนแรก โดยไม่สนใจเสียงสะท้อนที่รวดเร็วมาก (ระยะเวลา < 10) ซึ่งบางครั้ง HC-SR04 รายงาน หาก maxDuration ไม่ได้รับเสียงสะท้อน มันจะส่งคืน maxDuration ระยะเวลาไม่ได้วัดในหน่วยใดหน่วยหนึ่ง - เป็นเพียงตัวเลข
ในโหมดไม่ต่อเนื่อง ระยะเวลาจะถูกกรองก่อนเพื่อลบการหยุดกลางคันเป็นครั้งคราว (เมื่อไม่มีเสียงสะท้อน) จะถือว่ามือนั้นมีอยู่ก็ต่อเมื่อได้รับตัวอย่าง maxDuration 10 ตัวอย่างเท่านั้น จากนั้นระยะเวลาจะถูกกรองโดยใช้ตัวกรองค่ามัธยฐาน ตัวกรองค่ามัธยฐานนั้นดีในการขจัดเสียงรบกวนที่ "หุนหันพลันแล่น" (เช่น แหลมเป็นครั้งคราว) ระยะเวลาที่กรองจะใช้เพื่อเลือกถัง
ในโหมดต่อเนื่อง ระยะเวลาจะถูกกรองอีกครั้งเพื่อลบการออกกลางคันในบางครั้ง จากนั้นปรับให้เรียบโดยใช้ตัวกรองเลขชี้กำลัง ระยะเวลาที่กรองใช้เพื่อกำหนดความถี่ของโน้ตโดยใช้ "pitch bend"
ขั้นตอนที่ 3: การเพิ่มจอแสดงผล
จอแสดงผลเป็นหน้าจอสี TFT LCD ขนาด 1.44 นิ้ว พร้อมตัวควบคุม ST7735 ขนาด 128x128 พิกเซล มีหน้าจอมากมายบน eBay ตัวอย่างเช่น คุณอาจต้องการพัฒนาเครื่องมือของคุณด้วยหน้าจอสัมผัสที่ใหญ่ขึ้น ฉันไม่ได้ใช้ ST7735 ผู้ควบคุมและต้องการทดลองใช้
ฉันได้ของฉันจากซัพพลายเออร์รายนี้ โมดูลเดียวกันนี้ขายกันอย่างแพร่หลายบน eBay - เพียงแค่ซื้อโมดูลที่เหมือนกับรูปถ่าย
LCD มีหมุดดังต่อไปนี้:
- GND กราวด์
- VCC 3.3V
- SCL SPI บัส SCLK
- SDA SPI บัส MOSI ของ Arduino
- RES รีเซ็ต
- ข้อมูล DC/คำสั่ง
- CS ชิปเลือก
- BL ไฟท้าย
โมดูลทำงานบน 3.3V ดังนั้นคุณจึงไม่ควรเชื่อมต่อโดยตรงกับ 5V Arduino ของคุณ ฉันใช้ตัวต้านทาน 1k เพื่อลดแรงดันไฟฟ้า นั่นไม่ใช่แนวปฏิบัติที่ดี (โดยทั่วไปแล้ว เราควรใช้ตัวแบ่งศักย์ไฟฟ้าหรือชิปแรงดันตก) แต่ทำงานได้ดีในวงจรนี้ ฉันก็ขี้เกียจ
จอแสดงผลใช้พลังงานจาก 3.3V จาก Arduino ตัวควบคุม Arduino ดูเหมือนมีความสุขเพียงพอ
Adafruit กรุณาเผยแพร่ห้องสมุด ST7735 และห้องสมุดอื่น ๆ อีกหลายแห่งใน Github และที่อื่น ๆ ฉันลองมาสองสามอันแล้วไม่ชอบเลย บางคนก็ไม่ได้ผลและทั้งหมดก็ใหญ่โต คุณเขียนภาพสเก็ตช์ Arduino ที่ลากเส้นและข้อความบางส่วน และคุณจะพบหน่วยความจำของคุณหาก 75% เต็ม ดังนั้นฉันจึงเขียนห้องสมุดของตัวเอง
สามารถดาวน์โหลดไลบรารี SimpleST7735 (ดาวน์โหลด Step3.zip จาก github)
มีชุดคำสั่งการวาดมาตรฐานที่คล้ายกับไลบรารีดังกล่าวทั้งหมด
ไลบรารีที่ "เร็ว" บางตัวที่คุณดาวน์โหลดได้ใช้การวนรอบเวลาพิเศษและไม่พอใจเมื่อมีอุปกรณ์อื่นๆ ที่อาจช้ากว่าถูกใช้บนบัสเดียวกัน SimpleST7735 เขียนด้วยภาษา C แทนที่จะเป็นแอสเซมเบลอร์ จึงไม่เร็วเท่าที่ควร แต่พกพาสะดวกกว่ามาก และแชร์บัส SPI อย่างสุภาพกับอุปกรณ์อื่นๆ สามารถดาวน์โหลดโปรแกรม Windows ซึ่งช่วยให้คุณสามารถสร้างแบบอักษรและไอคอนของคุณเองได้
คุณสามารถดาวน์โหลดเอกสารข้อมูล ST7735 ได้จากเว็บ คุณคุยกับมันโดย
- ตั้งค่า CS ต่ำ
- ตั้งค่า DC ต่ำ
- ส่งคำสั่งbyte
- ตั้ง DC สูง
- ส่งข้อมูลเป็นศูนย์หรือมากกว่าไบต์
- ตั้งค่า CS สูง
คุณสามารถดูว่าฉันทำได้อย่างไรในฟังก์ชัน spiSend_TFT_CW() ในไลบรารี ไบต์ข้อมูลอาจเป็นพิกเซลทั้งแถวหรือการตั้งค่าสำหรับการลงทะเบียนการควบคุม
ฟังก์ชัน ST7735Begin() ในไลบรารีจะแสดงชุดคำสั่งเริ่มต้นที่ฉันได้เลือกไว้ คุณอาจต้องการเปลี่ยนคำสั่งหากคุณเลือกจอแสดงผล ST7735 อื่น (เช่น มีพิกเซลมากขึ้น) หรือต้องการการวางแนวอื่น ฉันหวังว่ารหัสของฉันจะง่ายสำหรับคุณในการดูวิธีเปลี่ยนหากต้องการ
แผนผังแสดงปุ่มควบคุม "SW1" และแป้นเหยียบ SW2" ปุ่มควบคุมจะเลือก "การตั้งค่า" ต่างๆ (ดูขั้นตอนถัดไป) หรือเลือกโหมดเมนู แป้นเหยียบเป็นตัวเลือกและเลือกการตั้งค่าที่แตกต่างกันเท่านั้น - ฉันไม่ได้ทำ ติดตั้งเท้าเหยียบด้วยตัวเองการตั้งค่ามีประโยชน์ในระหว่างการแสดงเมื่อคุณต้องการเปลี่ยนกุญแจหรือเปลี่ยนเครื่องมืออย่างรวดเร็ว
ขั้นตอนที่ 4: ระบบเมนู
สเก็ตช์ Miditheremin3.ino Arduino นี้เพิ่มระบบเมนูให้กับ MIDI Theremin และควบคุมเครื่องมือที่สมบูรณ์ขั้นสุดท้าย
MIDI Theremin มักจะทำงานในโหมด "เล่น" มือขวาของคุณเลือกว่าโน้ตตัวใดและมือซ้ายของคุณควบคุมคุณภาพของโน้ต จอ LCD จะแสดงคีย์บอร์ดเปียโนโดยเน้นที่โน้ตปัจจุบัน
หากคุณกดปุ่มควบคุมค้างไว้หนึ่งวินาที โปรแกรมจะเข้าสู่โหมด "เมนู" ในโหมดเมนู หากคุณกดปุ่มควบคุมค้างไว้หนึ่งวินาที โปรแกรมจะกลับสู่โหมด "เล่น"
เมนูมีโครงสร้างแบบต้นไม้ที่มีรายการหลักและรายการย่อย รายการเมนูปัจจุบันถูกเน้น คุณย้ายการเลือกขึ้น/ลงโดยใช้โซนาร์ด้านซ้ายมือ เมนูย่อยสำหรับรายการหลักจะขยายเมื่อเลือกรายการหลักเท่านั้น
เมื่อเลือกเมนูย่อยแล้ว เมื่อคุณคลิกปุ่ม ค่าของรายการนั้นจะถูกเน้น ตอนนี้มือซ้ายเพิ่มหรือลดค่า คลิกปุ่มอีกครั้งเพื่อกลับไปเลือกเมนูย่อย
ในโหมดไม่ต่อเนื่อง โครงสร้างเมนูคือ
-
อุปกรณ์
- 0: แกรนด์เปียโน
- สลับมือ: ปกติ
-
มือขวา
โหมด: ไม่ต่อเนื่อง
-
มือซ้าย
- โหมด: Vibrato
- ความลึกสูงสุด: 10
-
มาตราส่วน
- มาตราส่วน: Heptatonic ที่สำคัญ
- อ็อกเทฟ: 2
- โน้ตต่ำสุด: 60 C
-
คอร์ด
- คอร์ด: Major triad
- ผกผัน: 0
- โพลีโฟนี: 1
-
ลูกคอ
- ขนาด: 20
- ระยะเวลา: 10
-
Vibrato
- ขนาด: 20
- ระยะเวลา: 10
เครื่องดนตรีอาจเป็น "แกรนด์เปียโน" "ออร์แกนของโบสถ์" "ไวโอลิน" ฯลฯ มีเครื่องดนตรี 127 ชิ้นใน VS1053 ซึ่งให้เสียงเหมือนกันหมด และหลายชิ้นก็งี่เง่าเหมือน "กระสุนปืน" เมนูย่อย Swap Hands ให้คุณสลับการทำงานของมือซ้ายและขวาได้ บางทีคุณอาจชอบวิธีนี้มากกว่า หรือบางทีคุณอาจต้องการให้ผู้พูดหันหน้าเข้าหาผู้ฟัง
มือขวาสามารถ "ไม่ต่อเนื่อง" หรือ "ต่อเนื่อง" ได้ ดูด้านล่างสำหรับเมนู "ต่อเนื่อง"
มือซ้ายสามารถควบคุม "Volume", "Tremolo", "Vibrato", "PitchBendUp", "PitchBendDown", "Reverb", "Polyphony" หรือ "ChordSize"
"ปริมาณ" ชัดเจน "ลูกคอ" คือการเปลี่ยนแปลงอย่างรวดเร็วของระดับเสียง มือซ้ายควบคุมขนาดของรูปแบบ ช่วงเวลาถูกกำหนดโดยรายการเมนูอื่น "Vibrato" เป็นรูปแบบที่รวดเร็วในระดับเสียง มือซ้ายควบคุมขนาดของรูปแบบ ช่วงเวลาถูกกำหนดโดยรายการเมนูอื่น "PitchBendUp" และ "PitchBendDown" เปลี่ยนระดับเสียงของโน้ตที่กำลังเล่น มือซ้ายควบคุมขนาดของโค้ง "พัดโบก" ค่อนข้างไม่น่าประทับใจใน VS1053; มือซ้ายควบคุมขนาดของเสียงก้อง "Polyphony" ควบคุมจำนวนโน้ตที่เล่นพร้อมกันสูงสุดที่กำหนดโดยเมนู Polyphony (ดูด้านล่าง) "ขนาดคอร์ด" หมายถึงมือซ้ายควบคุมจำนวนโน้ตของคอร์ดที่เล่น (ดูด้านล่าง)
ในเพลง "สเกล" หรือ "คีย์" คือชุดย่อยของโน้ตที่คุณใช้อยู่ ตัวอย่างเช่น หากคุณจำกัดตัวเองให้อยู่ในระดับ Heptatonic ของ C Major คุณจะเล่นเพียงโน้ตสีขาวของเปียโน หากคุณเลือก C# Major Pentatonic คุณจะต้องใช้โน้ตสีดำ (เช่น สำหรับเพลงลูกทุ่งของสกอตแลนด์)
เมนูมาตราส่วนจะเลือกบันทึกย่อของพื้นที่ด้านขวามือและจำนวนอ็อกเทฟที่ครอบพื้นที่ด้านขวามือ ดังนั้น หากคุณเลือก E Major 1 อ็อกเทฟ พื้นที่ด้านขวามือจะถูกแบ่งออกเป็น 8 ถังขยะ โดย E อยู่ที่ระดับต่ำสุด และ E หนึ่งอ็อกเทฟด้านบนที่ระดับเสียงสูงสุด
เมนูมาตราส่วนช่วยให้คุณสามารถเลือกมาตราส่วน "ดนตรีที่ไม่ใช่แบบตะวันตก" ที่ผิดปกติได้มากมาย แต่จะถือว่าโน้ตทั้งหมดมาจากแป้นพิมพ์ที่มีอารมณ์สม่ำเสมอ นั่นคือวิธีการทำงานของ MIDI คุณไม่สามารถระบุความถี่ของโน้ตได้ง่ายๆ ดังนั้น ถ้าคุณต้องการ พูด มาตราส่วนอารบิก คุณจะมีปัญหา
เมนูย่อย Octaves ให้คุณเลือกจำนวนอ็อกเทฟของสเกลที่คุณต้องการ และโน้ตต่ำสุดบอกว่ามาตราส่วนเริ่มต้นที่ใด
โดยปกติเมื่อเล่นโน้ต มีเพียงโน้ตนั้นเท่านั้นที่ส่งเสียง เมนูคอร์ดช่วยให้คุณเล่นโน้ตได้หลายตัวพร้อมกัน คอร์ด Major Triad หมายถึง 'เล่นโน้ตที่เลือกบวกกับโน้ตสี่เซมิโทนที่สูงขึ้น บวกกับโน้ตเจ็ดเซมิโทนที่สูงขึ้น'
เมนูย่อย Inversion ช่วยให้คุณเปลี่ยนคอร์ดได้ นั่นหมายความว่ามันจะย้ายโน้ตบางส่วนของคอร์ดไปที่หนึ่งอ็อกเทฟด้านล่าง การผกผันครั้งแรกจะย้ายโน้ต "พิเศษ" ทั้งหมดลงไปที่ระดับอ็อกเทฟ การผกผันที่สองจะย้ายโน้ตพิเศษลงไปอีกอันหนึ่งลง และอื่นๆ
เมนูย่อย Polyphony จะแสดงจำนวนโน้ตที่เล่นพร้อมกัน ถ้าโพลีโฟนีเป็น 1 เมื่อโน้ตตัวหนึ่งเริ่มต้น ตัวก่อนหน้าจะหยุด ถ้าโพลีโฟนีมีขนาดใหญ่ โน้ตหลายตัวสามารถทับซ้อนกันได้ - ลองใช้กับออร์แกนของโบสถ์
เมนูลูกคอระบุความลึกของลูกคอและระยะเวลาของรอบลูกคอ ระยะเวลา "100" หมายถึงหนึ่งรอบต่อวินาที หากมือซ้ายควบคุม tremolo เมนูย่อย Size จะถูกซ่อน
เมนู Vibrato ระบุขนาดของ vibrato และระยะเวลาของวงจร vibrato หากมือซ้ายควบคุม vibrato เมนูย่อย Size จะถูกซ่อน
โปรแกรมนี้ให้คุณบันทึกและโหลด "การตั้งค่า" ที่แตกต่างกันได้ถึง 5 แบบ การตั้งค่าจะเก็บค่าทั้งหมดที่คุณสามารถตั้งค่าได้ในเมนู เมื่อคุณออกจากโหมดเมนู การตั้งค่าปัจจุบันจะถูกบันทึก การตั้งค่าจะถูกบันทึกไว้ใน EEPROM
ในโหมดเล่น การคลิกปุ่มจะเปลี่ยนเป็นการตั้งค่าถัดไป หากคุณกดปุ่มค้างไว้หนึ่งวินาที เมนูจะปรากฏขึ้น การกดแป้นเหยียบจะเปลี่ยนเป็นการตั้งค่าถัดไปด้วย เหยียบไม่เลือกเมนู
ในโหมดต่อเนื่อง โครงสร้างเมนูคือ
-
อุปกรณ์
- 0: แกรนด์เปียโน
- สลับมือ: ปกติ
-
มือขวา
โหมด: ต่อเนื่อง
-
พิสัย
- จำนวนเสียงครึ่งเสียง: 12
- โน๊ตกลาง: 60 C
-
มือซ้าย
- โหมด: ลูกคอ
- ความลึกสูงสุด: 10
-
ลูกคอ
- ขนาด: 20
- ระยะเวลา: 10
-
Vibrato
- ขนาด: 20
- ระยะเวลา 10
เมนูช่วงจะเลือกช่วงความถี่ที่ด้านขวามือระบุ: จำนวนเซมิโทนที่ครอบคลุมและโน้ตกลาง
มือซ้ายสามารถควบคุมได้เฉพาะ "Volume", "Tremolo" และ "Vibrato"
ขั้นตอนที่ 5: บัดกรีมันเข้าด้วยกัน
ฉันสร้างวงจรบนแผ่นกระดาน ฉันไม่เห็นจุดที่จะทำให้ PCB ทำขึ้นเพื่อใช้งานครั้งเดียวด้วยตัวต้านทานเพียง 4 ตัว แต่ฉันรู้ว่าบางคนไม่ชอบแถบแถบ
เลย์เอาต์แผ่นกระดานของฉันแสดงไว้ด้านบน บอร์ดทั้งสี่ - Arduino, VS1053, จอแสดงผลและแถบแถบ - สร้างแซนวิช ในเลย์เอาต์ เค้าร่างของ Arduino เป็นสีเหลือง VS1053 เป็นสีน้ำเงิน จอแสดงผลเป็นสีเขียว และสตริปบอร์ดเป็นสีส้ม
เส้นสีฟ้าคือแถบทองแดงของแผ่นกระดาน - ตรวจสอบให้แน่ใจว่าคุณได้พักในส่วนที่จำเป็น เส้นสีแดงคือลิงก์ที่ด้านส่วนประกอบของแผ่นกระดานหรือสายไฟไปยังส่วนอื่น
ฉันใช้พินที่ยาวเป็นพิเศษสำหรับบอร์ด VS1053 เพราะมันอยู่เหนือ Arduino หมุดที่มุมไกลของจอแสดงผลและแผง VS1053 ช่วยรักษาเสถียรภาพ รูยึดของโมดูลได้รับการชุบเพื่อให้คุณสามารถบัดกรีได้ ตรวจสอบให้แน่ใจว่าของคุณไม่ได้เชื่อมต่อกับกราวด์ - ไม่มีรูสำหรับติดตั้งโมดูลของฉัน
หากคุณมีโมดูล VS1053 อื่นหรือจอแสดงผลอื่น คุณสามารถเปลี่ยนพิน Arduino ได้:
- คุณสามารถใช้ D2 ถึง D10 และ A0 ถึง A5 ตามลำดับที่คุณต้องการ อัปเดตหมายเลขพินใกล้กับจุดเริ่มต้นของร่าง INO
- D11, D12, D13 มีไว้สำหรับ SPI และไม่สามารถมอบหมายใหม่ได้
- D0, D1 ใช้สำหรับ Serial I/O
- A6, A7 ไม่สามารถใช้เป็นพินดิจิตอลได้
โมดูล HC-SR04 อยู่ที่ 90° ต่อกันโดยเชื่อมต่อด้วยแผ่นสตริปบอร์ด ปุ่มกดอยู่ระหว่างพวกเขา ไม่ต้องสงสัยเลยว่าคุณจะมีการออกแบบที่คุณชื่นชอบ
หากคุณตัดสินใจที่จะใช้เท้าเหยียบ ให้เชื่อมต่อผ่านแจ็คซ็อกเก็ต
ขั้นตอนที่ 6: การเพิ่ม PSU
ฉันวัดกระแสรวมของ Arduino, VS1053 และแสดงผลเป็น 79mA ตามเอกสารข้อมูล Arduino คือ 20mA จอแสดงผลคือ 25mA VS1053 คือ 11mA และ HC-SR04 แต่ละรายการคือ 15mA เมื่อ "ทำงาน" - ดังนั้น 80mA จึงดูเหมือนถูกต้อง
จอแสดงผลใช้เวลา 25mA และขับเคลื่อนจากเอาต์พุต 3V3 ของ Arduino ซึ่งได้รับการจัดอันดับให้ 50mA ดังนั้นวงจรไม่ควรเน้นที่ตัวควบคุม 3V3 ของ Arduino
เราสามารถจ่ายไฟให้กับวงจรผ่านพิน Vin ของ Arduino ได้หรือไม่? ฉันไม่สามารถหาคำตอบได้จากทุกที่บนเว็บ ไม่อยู่ในเอกสาร Arduino ตัวควบคุมออนบอร์ด 5V จะกระจาย (Vin-5)*80 mW การกระจายสูงสุดของมันคืออะไร? ดูเหมือนว่าไม่มีใครรู้จริงๆ ตามเอกสารข้อมูล ตัวควบคุม NCP1117 ในแพ็คเกจ SOT-223 ที่มีแผ่นทองแดงขั้นต่ำสามารถกระจาย 650mW ดังนั้นสำหรับกระแส 80mA
- วิน พาวเวอร์
- 8V 240mW
- 9 320
- 10 400
- 11 480
- 12 560
- 13 640
- 14 720
เพื่อความปลอดภัย ฉันคิดว่าเราไม่ควรเกิน 9V สำหรับ Vin
PSU 5V ภายนอกจะปลอดภัยกว่ามาก แต่ฉันใช้ตัวควบคุมของ Arduino และก็ใช้ได้
ในการจ่ายไฟให้กับวงจร ฉันเลือกโมดูลที่รวมที่ชาร์จ LI-ion และ PSU เพิ่ม มีจำหน่ายทั่วไปบน eBay หรือค้นหา "Li Charger Boost"
เครื่องชาร์จใช้ชิป TC4056 ซึ่งมีอัลกอริธึมกระแสคงที่และแรงดันคงที่ที่ซับซ้อน เมื่อคุณถอดอินพุตพลังงาน USB ออก จะเข้าสู่โหมดสแตนด์บายโดยมีการระบายแบตเตอรี่น้อยกว่า 2uA TC4056 มีอินพุตสำหรับการตรวจจับอุณหภูมิ แต่ไม่มีในบอร์ดโมดูล (พินต่อสายดิน)
วงจรบูสต์ที่ถูกกล่าวหาว่ามีประสิทธิภาพ 87-91% เมื่อเทียบกับช่วงแรงดันไฟแบตเตอรี่ปกติที่มีกระแสไฟขาออก 50-300mA (ไม่ได้วัดเองนะครับ) ดีมากครับ
อย่างไรก็ตาม "สแตนด์บาย" ในปัจจุบันเมื่อคุณถอดโหลดคือ 0.3mA ซึ่งไม่ดี เซลล์ 300mAH จะถูกระบายออกใน 6 สัปดาห์ บางทีมันอาจจะถูกระบายออกไปจนถึงตอนนี้แรงดันของมันจะลดลงถึงระดับที่สร้างความเสียหาย
มีรางเดียวที่เชื่อมต่อแบตเตอรี่กับ PSU เพิ่ม คุณสามารถตัดแทร็กได้อย่างง่ายดาย (ดูรูป) ประสานลวดเข้ากับตัวต้านทานขนาดใหญ่ที่ด้านบนเพื่อให้คุณสามารถเชื่อมการตัดผ่านสวิตช์
การจับฉลากปัจจุบันคือ 0.7uA กับกระดานที่ฉันทดสอบ ดังนั้นเซลล์จะมีอายุ 50 ปี แน่นอนว่าไม่ใช่ เซลล์ Li-ion ที่ปลดปล่อยตัวเองออกมาจะอยู่ที่ประมาณ 3% ต่อเดือน 3% ต่อเดือนสำหรับเซลล์ 300mAH เป็นกระแส 13uA เปรียบเทียบกับ 300uA วงจรบูสต์ที่ใช้ ฉันคิดว่ามันคุ้มค่าที่จะปิดวงจรบูสต์
คุณไม่ควรเปิดโหลดเมื่อเซลล์กำลังชาร์จ กระแสที่ดึงโดยโหลดจะทำให้อัลกอริธึมการชาร์จสับสน
ดังนั้น คุณจึงต้องมีสวิตช์เปลี่ยน 2 ขั้ว (เช่น สวิตช์แบบสไลด์) ซึ่งอยู่ในตำแหน่ง "เปิด" หรือ "การชาร์จ"
คุณสามารถเพิกเฉยต่อซ็อกเก็ต USB ในตัวและต่อสายแยกกับสวิตช์และซ็อกเก็ต USB ของคุณเอง
หรือคุณสามารถเก็บซ็อกเก็ตในตัวและตัดการเชื่อมต่อระหว่างซ็อกเก็ตและชิป แผนภาพด้านบนแสดงตำแหน่งที่จะตัด
เชื่อมต่อเอาต์พุต 5V ของบูสต์ PSU กับพิน 5V ของ Arduino มีคนพูดว่า "อย่าทำอย่างนั้น - คุณกำลังข้ามไดโอดป้องกันของ Arduino" แต่นาโนไม่มีพินที่เชื่อมต่อกับด้าน USB ของไดโอด เพียงเชื่อมต่อกับพิน 5V อะไรที่เลวร้ายที่สุดที่อาจเกิดขึ้น? คุณสูญเสียนาโนที่มีราคาต่ำกว่า 3 ปอนด์
วงจร PSU จะต้องจ่ายไฟให้กับเครื่องขยายเสียงสำหรับลำโพงด้วย
ขั้นตอนที่ 7: การเพิ่มลำโพง
ฉันต้องการให้ MIDI Theremin พกพาได้ ควรมีลำโพงและเครื่องขยายเสียงของตัวเอง
คุณสามารถสร้างแอมพลิฟายเออร์ของคุณเองหรือซื้อโมดูลแอมพลิฟายเออร์ จากนั้นซื้อลำโพงและใส่ในเคส แต่ประเด็นคืออะไร? ในแวดวงเทคโนโลยีของฉัน ฉันมีลำโพงขับเคลื่อนครึ่งโหลที่ฉันซื้อจากร้านค้าเพื่อการกุศลและยอดขายบูทรถทั้งหมดในราคาต่ำกว่า 1 ปอนด์ต่อตัว
ลำโพงสีน้ำเงินอ่อนใช้เพียง 30mA ที่ 5V แต่มีการตอบสนองเสียงเบสที่ไม่ดี วิทยุสีดำมีรูปร่างที่ดี - ฉันนึกภาพออกว่ากำลังติดตั้งโมดูล HC-SR04 ที่มุมและจอแสดงผลบนพื้นผิวด้านบน "จอแบน" สีเทาใช้พลังงานจากช่องเสียบ USB ซึ่งเหมาะอย่างยิ่ง
ด้วยการค้นหาเพียงเล็กน้อย คุณควรพบลำโพงที่มีกำลังขับซึ่งมีเคสที่ดีอยู่แล้ว ตรวจสอบให้แน่ใจว่าพวกมันทำงานที่แรงดันไฟของแหล่งจ่ายไฟของคุณ หากใช้พลังงานจากเซลล์ AA สี่เซลล์ มันอาจจะทำงานได้ดีที่ 5V
แต่ฉันขุดลึกลงไปในเทคโนโลยีกลางและพบว่ามีแท่นวางที่ดีมากที่ฉันได้รับจากแผงขาย "ทุกอย่างในราคา 0.50 ปอนด์" มันทำที่ชาร์จและรีโมท IR หาย แต่ใช้งานได้ดี
หากคุณมุ่งมั่นที่จะสร้างลำโพงของคุณเอง นี่คือคำแนะนำที่ดี หรือค้นหา Instructables สำหรับ PAM8403 หรือ Amplifier
ขั้นตอนที่ 8: สถานีเชื่อมต่อ
นี่คือแท่นวางแบบพกพาของ Logitech ที่ดีมาก ไม่น่าเป็นไปได้ที่คุณจะได้แบบเดียวกัน แต่หลักการก่อสร้างจะเหมือนกัน
แท่นวางประกอบด้วยเซลล์ Li-ion แบบชาร์จซ้ำได้และบูสต์ PSU (ถ้าคุณไม่ได้สร้าง PSU ที่อธิบายไว้ข้างต้นและข้ามไปสองสามย่อหน้าถัดไป)
หากแอมป์ของคุณมีเซลล์ Li-ion แสดงว่าอาจมี PSU บูสต์ (แรงดันไฟฟ้าของเซลล์ Li-ion เดี่ยวนั้นต่ำจนไม่สะดวก จึงต้องมีการเพิ่มประสิทธิภาพ)
ขั้นแรก ให้หาจุดต่อสำหรับจ่ายไฟไปยังแอมพลิฟายเออร์ PSU จะมีตัวเก็บประจุขนาดใหญ่ที่ปรับให้เรียบ - ดูรูป PCB ขยะ วัดแรงดันไฟฟ้าที่แผ่นบัดกรีที่ด้านล่าง แผ่นลบควรเป็นแผ่น "กราวด์" ของวงจร หาก pcb ถูกน้ำท่วมก็จะเป็นพื้น หรือพื้นอาจเป็นรางหนาที่ไปหลายที่บนกระดาน
อาจมีตัวเก็บประจุขนาดใหญ่ที่สเตจเอาท์พุตของแอมป์ - นั่นเป็นวิธีที่ล้าสมัย วัดแรงดันไฟฟ้าข้ามระหว่างที่กำลังทำงาน มันอาจจะแตกต่างกันไปตามเพลงและอาจเฉลี่ยครึ่งหนึ่งของแรงดันไฟฟ้าของตัวเก็บประจุจ่ายไฟ นั่นคือตัวเก็บประจุที่ไม่ถูกต้อง - คุณต้องการตัวเก็บประจุใน PSU
ไม่น่าเป็นไปได้มากที่บอร์ดจะมีทั้งกำลังบวกและลบ (เพาเวอร์แอมป์สเตอริโอขนาดใหญ่มี แต่ผมไม่เคยเห็นอันที่มีน้ำหนักเบาแบบนั้นมาก่อน) ตรวจสอบให้แน่ใจว่าคุณได้เลือกพื้นดินและพลังบวกจริงๆ
แท่นวาง Logitech ที่ฉันใช้อยู่มีวงจรดิจิตอลที่ซับซ้อนและแอมป์อนาล็อก ถ้าของคุณเป็นแบบนั้น มันจะมีตัวเก็บประจุแบบเรียบสำหรับ 5V หรือ 3.3V บวกกับ 9V สำหรับแอมป์ วัดแรงดันไฟฟ้าของตัวเก็บประจุขนาดใหญ่ทั้งหมดและเลือกแรงดันไฟฟ้าที่ใหญ่ที่สุด
ตรวจสอบให้แน่ใจว่าแรงดันไฟฟ้าของการเชื่อมต่อไฟฟ้าที่คุณเลือกนั้นขึ้นอยู่กับสวิตช์เปิด/ปิด (เมื่อคุณปิดสวิตช์ แรงดันไฟอาจใช้เวลาครู่หนึ่งจึงจะลดลงเมื่อตัวเก็บประจุหมด)
บัดกรีสายไฟกับสิ่งที่คุณได้เลือกเป็นแหล่งพลังงานของคุณ แท่นวาง Logitech ผลิตประมาณ 9V ซึ่งจะเชื่อมต่อกับพิน Vin ของ Arduino อย่างดี
ลําโพงหรือแท่นวางควรมีแจ็ค 3.5 มม. สำหรับอินพุตเสียง ข้อต่อบัดกรีตัวใดตัวหนึ่งจะเป็นกราวด์ - อาจเป็นข้อต่อที่ใกล้ที่สุดกับขอบกระดาน ใช้โอห์มมิเตอร์เพื่อตรวจสอบว่าเชื่อมต่อกับสิ่งที่คุณคิดว่าเป็นกราวด์หรือไม่ ด้วยอินพุตเสียงบางส่วน "เกราะ" ของแจ็คจะไม่เชื่อมต่อกับกราวด์โดยตรง มันลอยอยู่ ดังนั้นหากไม่มีหมุดของแม่แรงที่ต่อลงดิน ก็ไม่ต้องกังวลไปชั่วขณะ ("โล่" ของแจ็คบนโมดูล VS1053 ก็ลอยได้เช่นกัน)
ใช้มิเตอร์ตรวจสอบว่าพิน "กราวด์" ของแจ็คมีแรงดันไฟฟ้าเท่ากับกราวด์ของแหล่งจ่ายไฟหรือไม่
แท่นวาง Logitech นั้นแปลก ถ้าฉันเชื่อมต่อ "กราวด์" ของซ็อกเก็ตแจ็ค Logitech กับ "กราวด์" ของบอร์ด VS1053 (โดยใช้สายสัญญาณเสียง ก็ใช้งานได้ดี แต่กระแสที่ส่งไปยังระบบ Theremin ของฉันเพิ่มขึ้นจาก 80mA เป็นมากกว่า 200mA ดังนั้นฉันแน่ใจว่า ฉันไม่ได้เชื่อมโยง "พื้น" ทั้งสองนี้ มันใช้งานได้ดี แต่ฉันไม่รู้ว่าเกิดอะไรขึ้น
ขั้นตอนที่ 9: การสร้างเคส
กรณีใดที่คุณทำจะขึ้นอยู่กับวัสดุที่คุณต้องใช้ สิ่งที่คุณชอบในการทำงานด้วย และลำโพงขับเคลื่อนที่คุณเลือก สิ่งที่คุณทำควรตรวจสอบให้แน่ใจว่าโซนาร์ชี้ออกจากกันและสูงขึ้นที่ 45° จากนั้นจะมีหน้าจอแสดงผลและปุ่มกด
หากคุณเคยดู Instuctables อื่นๆ ของฉัน คุณจะรู้ว่าฉันเป็นแฟนตัวยงของเหล็กวิลาด สามารถดัดโค้งงอได้ บัดกรีอ่อน และทาสี ภาพถ่ายแสดงให้เห็นว่าฉันจัดเรียงสิ่งต่าง ๆ อย่างไร
สามเหลี่ยมด้านบนเป็นเหล็กวิลาดงอ บัดกรี เติม เรียบ และทาสี พีซีบีติดกาวร้อนในรูปสามเหลี่ยมและมีเศษไม้เล็กๆ เพื่อทำหน้าที่เป็นตัวเว้นระยะ
"แผงด้านหน้า" เป็นแผ่นโพลีสไตรีน 1 มม. ฐานรองทำจากแผ่นโพลีสไตรีนจำนวนมากขึ้น และสกรูยึดตัวเองแตะยึดแผ่นสตริปให้เข้าที่ ส่วนรองรับทำด้วยไม้จะติดกาวร้อนเข้าไปในโพรงที่ด้านหน้าของแท่นวาง และขัน pcbs เข้ากับพวกมันด้วยสกรูยาวแตะตัวเอง
ฉันเดาว่าฉันสามารถพิมพ์ 3D บางอย่างได้ แต่ฉันชอบวิธีการแบบเก่าที่ฉันสามารถปรับสิ่งต่างๆ ได้ การทำสิ่งต่าง ๆ เป็นการเดินทางเพื่อการค้นพบมากกว่า "วิศวกรรม"
ขั้นตอนที่ 10: การพัฒนาในอนาคต
คุณจะพัฒนาเครื่องมือนี้ต่อไปได้อย่างไร? คุณสามารถเปลี่ยนอินเทอร์เฟซผู้ใช้ คุณสามารถเปลี่ยนปุ่มด้วยเซ็นเซอร์ระยะ IR ได้ ดังนั้นคุณจึงไม่ต้องแตะต้องอุปกรณ์เลย หรืออาจใช้หน้าจอสัมผัสแทนปุ่มและมือซ้ายเพื่อควบคุมเมนู
เมนูมาตราส่วนช่วยให้คุณเลือกมาตราส่วน "ดนตรีที่ไม่ใช่แบบตะวันตก" แต่ถือว่าโน้ตทั้งหมดมาจากแป้นพิมพ์ที่มีอุณหภูมิสม่ำเสมอ นั่นคือวิธีการทำงานของ MIDI มาตราส่วนเสียงแบบไตรมาสภาษาอาหรับมีโน้ตที่ไม่อยู่ในมาตราส่วนที่มีอุณหภูมิเท่ากัน เครื่องชั่งอื่นๆ ไม่เกี่ยวข้องกับแป้นพิมพ์ที่มีอุณหภูมิสม่ำเสมอ แต่อย่างใด อาจเป็นไปได้ที่จะใช้การโค้งงอเพื่อสร้างบันทึกดังกล่าว คุณต้องการวิธีการบางอย่างในเมนูเพื่อระบุความถี่ของโน้ตแต่ละตัว ฉันคิดว่าการโค้งงออาจใช้กับโน้ตทั้งหมดในช่อง ตอนนี้ฉันใช้ช่องเดียว - ช่อง 0 ดังนั้นถ้าเป็นโพลีโฟนิกหรือมีคอร์ด คุณจะต้องเล่นโน้ตแต่ละตัวในช่องอื่น
เครื่องมือนี้อาจกลายเป็นเครื่องสังเคราะห์เสียงกลองได้ มือซ้ายสามารถกำหนดระดับเสียงของ Melodic Tom ในขณะที่โซนาร์ด้านขวาถูกแทนที่ด้วยเซ็นเซอร์ piezo ที่คุณกดเพื่อส่งเสียงกลอง
สองมือสามารถควบคุมเครื่องมือสองชิ้นที่แตกต่างกันได้
มือซ้ายสามารถเลือกเครื่องดนตรีได้
ประมาณครึ่งทางของโปรเจ็กต์นี้ ฉันค้นพบ Altura MkII Theremin MIDI Controller โดย Zeppelin Design Labs ดูเหมือนเครื่องดนตรีชั้นดี
พวกเขามีวิดีโอสองสามเรื่องที่ควรค่าแก่การดู:
(ฉันขโมยคำว่า "ถังขยะ" จาก Altura และแนวคิดที่ว่าถังขยะจะขยายออกเมื่อคุณป้อนเข้าไปเพื่อช่วยให้คุณอยู่ในนั้นต่อไป)
MIDI Theremin ของฉันแตกต่างจาก Altura ในบางประการ Mine สร้างเสียงของตัวเองด้วย MIDI synth, amp, ฯลฯ ในตัว; Altura ส่งข้อความไปยังซินธ์ภายนอก คุณอาจชอบวิธีการของพวกเขามากกว่า ของฉันมีหน้าจอแบบ TFT แทนที่จะเป็นจอแสดงผลแบบ 7 ส่วน ซึ่งดีกว่าอย่างแน่นอน แต่คุณอาจคิดว่าหน้าจอที่ใหญ่ขึ้นควรได้รับการปรับปรุง Mine ใช้เมนูเพื่อตั้งค่าพารามิเตอร์ในขณะที่ใช้ลูกบิด ต้องใช้เมนูเพราะฉันต้องการการควบคุมมากมายสำหรับอุปกรณ์อินพุต (โซนาร์) และซินธ์ Altura ต้องการการควบคุมน้อยลง บางทีลูกบิดจะดีกว่าในระหว่างการแสดงสด บางทีของฉันควรมีลูกบิด ปุ่มสำหรับเลือกการตั้งค่าอาจจะดี
Altura มีการควบคุม "ข้อต่อ" ซึ่งกำหนดวิธีการเล่นโน้ตให้เร็ว ฉันไม่ได้รวมสิ่งนั้นไว้ในซอฟต์แวร์ของฉัน - บางทีมันควรจะอยู่ที่นั่น Altura มี Arpeggiator (ซีเควนเซอร์ขั้นตอน) นั่นเป็นความคิดที่ดี; ของผมมีคอร์ดไม่เหมือนกัน
แค่นั้นเอง ฉันหวังว่าคุณจะสนุกกับการสร้างและใช้ MIDI-Theremin แจ้งให้เราทราบหากคุณพบข้อผิดพลาดใดๆ ในคำอธิบายของฉัน หรือหากคุณสามารถคิดเกี่ยวกับการปรับปรุงใดๆ ได้
แนะนำ:
การเปรียบเทียบ LV-MaxSonar-EZ และ HC-SR04 Sonar Range Finders กับ Arduino: 20 ขั้นตอน (พร้อมรูปภาพ)
การเปรียบเทียบ LV-MaxSonar-EZ และ HC-SR04 Sonar Range Finders กับ Arduino: ฉันพบว่าหลายโครงการ (โดยเฉพาะหุ่นยนต์) ต้องการหรือได้รับประโยชน์จากการวัดระยะทางไปยังวัตถุในแบบเรียลไทม์ ตัวค้นหาช่วงโซนาร์มีราคาไม่แพงนักและสามารถเชื่อมต่อกับไมโครคอนโทรลเลอร์เช่น Arduino ได้อย่างง่ายดาย นี้ใน
SONAR เครื่องมือวัดความสูง 2: 3 ขั้นตอน (พร้อมรูปภาพ)
SONAR Height Measuring Instrument 2: เวอร์ชัน 1.0: https://www.instructables.com/id/SONAR-Height-Meas…Want To build a PC: http://howtobuildpcr8india.weebly.com/ Introduction: โครงการนี้คือ เครื่องมือวัดความสูงซึ่งใช้ Arduino และการตรวจจับด้วยคลื่นเสียงแบบพิเศษ วัด
การตรวจจับระยะทางด้วย Micro:bit และ Sonar (โมดูล HC-SR04): 3 ขั้นตอน (พร้อมรูปภาพ)
การตรวจจับระยะทางด้วย Micro:bit และ Sonar (โมดูล HC-SR04): สัปดาห์นี้ ฉันได้ใช้เวลาเล่นกับ BBC micro:bit ที่ยอดเยี่ยมและโซนิคเซ็นเซอร์ ฉันได้ลองใช้โมดูลต่างๆ สองสามตัว (รวมแล้วมากกว่า 50 รายการ) และคิดว่ามันน่าจะดี ดังนั้นโปรดแชร์ผลลัพธ์บางส่วน โมดูลที่ดีที่สุดที่ฉันพบจนถึงตอนนี้คือ Spar
HC - 06 (Slave Module) การเปลี่ยน " NAME " โดยไม่ต้องใช้ " Monitor Serial Arduino " ที่ " ใช้งานได้ง่าย ": Faultless Way !: 3 ขั้นตอน
HC - 06 (Slave Module) การเปลี่ยน " NAME " โดยไม่ต้องใช้ " Monitor Serial Arduino "… ที่ " ใช้งานได้ง่าย ": Faultless Way !: After " นาน " ลองเปลี่ยนชื่อเป็น HC - 06 (โมดูลทาส) โดยใช้ " จอภาพอนุกรมของ Arduino โดยไม่มี " สำเร็จ " ฉันพบวิธีง่ายๆ อีกวิธีหนึ่งแล้ว ฉันกำลังแบ่งปันตอนนี้ ! ขอให้สนุกนะเพื่อน
MIDI 5V LED Strip Light Controller สำหรับ Spielatron หรือ MIDI Synth อื่นๆ: 7 ขั้นตอน (พร้อมรูปภาพ)
MIDI 5V LED Strip Light Controller สำหรับ Spielatron หรือ MIDI Synth อื่นๆ: คอนโทรลเลอร์นี้กะพริบไฟแถบ LED สามสีเป็นเวลา 50mS ต่อโน้ต สีน้ำเงินสำหรับ G5 ถึง D#6, สีแดงสำหรับ E6 ถึง B6 และสีเขียวสำหรับ C7 ถึง G7 คอนโทรลเลอร์เป็นอุปกรณ์ ALSA MIDI ดังนั้นซอฟต์แวร์ MIDI สามารถส่งออกไปยัง LED ได้ในเวลาเดียวกันกับอุปกรณ์สังเคราะห์ MIDI