สารบัญ:
- ขั้นตอนที่ 1: รายการชิ้นส่วน
- ขั้นตอนที่ 2: การก่อสร้าง
- ขั้นตอนที่ 3: ซอฟต์แวร์
- ขั้นตอนที่ 4: ลิงค์
- ขั้นตอนที่ 5: การใช้ Sparkfun Board กับ Adafruit Libraries
วีดีโอ: Micro Midi Synthesizer: 5 ขั้นตอน (พร้อมรูปภาพ)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:07
คำแนะนำนี้สาธิตการใช้ชิป VLSI VS1053b Audio และ Midi DSP ในโหมด Midi แบบเรียลไทม์ ในโหมดนี้มันทำหน้าที่เป็น 64 เสียงโพลีโฟนิก GM (General Midi) Midi ซินธิไซเซอร์ Arduino Uno แบบสแตนด์อโลนไมโครควบคุมจอแสดงผล OLED สามปุ่ม (เลือกฟังก์ชันและขึ้นหรือลง และส่งกระแสข้อมูล Midi ผ่านไปยัง DSP เสียง กระดานเพลงที่เลือกคือ Adafruit VS1053 codec breakout board แต่เป็น Sparkfun music breakout board ได้รับการทดสอบเรียบร้อยแล้ว ห้องสมุด Adafruit VS1053b ถูกใช้แทนไลบรารี SFEMP3 ที่ใหญ่กว่ามาก (แนะนำโดย Sparkfun แม้ว่าจะมีชุดไลบรารีของตัวเองด้วย) เพราะฉันพบว่าโค้ด Adafruit เข้าใจง่ายขึ้น
โค้ดส่วนใหญ่ที่ใช้ควบคุม audio/midi DSP ได้รับการพัฒนาโดยใช้ Arduino Uno ที่เชื่อมต่อกับบอร์ด audio/midi breakout ผ่านเขียงหั่นขนม หลังจากที่พบว่าฟังก์ชั่นทำงานได้อย่างน่าพอใจ Uno ถูกใช้เป็นโปรแกรมเมอร์สำหรับ ATmega 328 แบบสแตนด์อโลน จากนั้นจึงวางบน Veroboard ขนาด 30x20 ขนาดเล็กพร้อมกับ IC opto-isolator 6N139 ที่จำเป็นสำหรับซ็อกเก็ตอินพุต Midi (DIN 5 พิน). ที่เชื่อมต่อกันยังมีแผงป้องกัน OLED ขนาดเล็ก (64x48) ปุ่มสามปุ่ม ไฟ LED แสดงกิจกรรม Midi และขั้วต่อบาร์เรล +5 โวลต์สำหรับการจ่ายไฟและเพิ่มขั้วต่อเอาต์พุตสเตอริโอเสียง ความต้องการพลังงานนั้นค่อนข้างเรียบง่าย - ประมาณ 20 mA ที่ 5 โวลต์
ขั้นตอนที่ 1: รายการชิ้นส่วน
ATmega328 Micro 28 pin DIP + 28 pin DIP socket6N138 หรือ 6N139 optoisolator + 4 pin DIP socketWemos 64x48 I2C OLED Display หรือใกล้เคียงAdafruit VS1053b Codec breakout board3 ปุ่มกดขนาดเล็ก 5 พิน DIN Midi socket PCB mount ที่ต้องการ LED ขนาดเล็กสีใดๆ บาร์เรลประเภท power socket สำหรับ 5 โวลต์ supplyStereo audio ซ็อกเก็ตเพื่อเชื่อมต่อกับเครื่องขยายเสียงหรือหูฟังตัวต้านทาน: 7 x 10k, 2 x 470 โอห์ม, 2 x 220 โอห์มตัวเก็บประจุ: พลาสติก 0.1uF 50v, อิเล็กโทรไลต์ 10uf 25v, เซรามิก 2 x 27 pF Veroboard ชิ้นเล็ก ๆ (30 แถบ 20 คอลัมน์และ 4 แถบ โดย 16 คอลัมน์), ตู้พลาสติก ABS ประมาณ 85x55x25 มม., สายไฟ และน็อตสกรูสองสามตัวและแหวนรอง
ขั้นตอนที่ 2: การก่อสร้าง
ฝาปิดของตัวเครื่องประกอบด้วยจอแสดงผล OLED ปุ่มสามปุ่มที่ติดตั้งบน Veroboard ชิ้นเล็กๆ อีกชิ้นหนึ่ง และขั้วต่อสายไฟแบบบาร์เรล แผงวงจรหลักของ Vero มีสองรูสำหรับยึดบอร์ด Music breakout เหนือ ATmega328 สำหรับรายละเอียดการเชื่อมต่อ โปรดดูแผนภาพบอร์ดแถบ Fritzing
ATmega328 ที่ตั้งโปรแกรมไว้ (โปรดดูรหัสในส่วนถัดไป) จะถูกเสียบเข้าไปในซ็อกเก็ตแล้วตามด้วย 6N139 และทุกอย่างเชื่อมต่อกัน
LED ใช้เป็นตัวบ่งชี้กิจกรรม Midi และติดตั้งที่ด้านหน้าของตัวเครื่อง มันเชื่อมต่อกับเอาต์พุต D2 ของ ATmega328 ผ่านตัวต้านทาน 470 โอห์ม
จอแสดงผล OLED ใช้เอาต์พุต 3.3 โวลต์จากบอร์ด Adafruit เพื่อจ่ายไฟ โดยต้องการพลังงานน้อยกว่า 20 mA
ลองสลับการเชื่อมต่อ Midi Din ทั้งสองตัว หากคุณไม่ได้ยินเสียงใด ๆ เมื่อคุณใช้ synth เป็นครั้งแรก
ขั้นตอนที่ 3: ซอฟต์แวร์
รายละเอียดของภาพสเก็ตช์ที่ควรอัปโหลดไปยัง ATmega328 มีให้ใน MidA.ino มีเจ็ดฟังก์ชั่นให้เลือก:
ตัวเลือก P: Change Program - เปลี่ยน GM Midi Instrument จาก 1 เป็น 128 (ฉันใช้ 0 ถึง 127) เช่น Piano หรือ Synth sound ตัวเลือก B: เปลี่ยนช่อง Instrument ระหว่าง Melodic (Bank 0) กับ Percussion (Bank 1) ตัวเลือก V: ปรับระดับเสียงตั้งแต่ 1 ถึง 10 ตัวเลือก C: เปลี่ยนช่องสัญญาณ Midi ที่ Synth จะตอบสนอง ตัวเลือกคือ Channel 0, channel 1, channel 9 (percussion), channel 0 and 9, and channel 1 and 9. Option R: Switch the Reverb effect on or off. Option S: บันทึกพารามิเตอร์ปัจจุบันไปยังหน่วยความจำ Eeprom (ขึ้น) หรืออ่าน (ลง) กลับจากหน่วยความจำ Eeprom เนื่องจากการตั้งค่าจะไม่ถูกบันทึกเมื่อปิดเครื่อง ตัวเลือก X: ส่งข้อความปิดบันทึกทั้งหมด (รีเซ็ต Midi)
ยังไม่ได้ใช้ตัวเลือกที่แปด - สิ่งนี้จะข้าม ATmega เป็นตัวกรอง Midi และเชื่อมต่อเอาต์พุตของ optoisolator โดยตรงกับพิน Rx ของบอร์ด DSP
โปรดทราบว่า VS1053b บูทในโหมด Midi แบบเรียลไทม์โดยการโหลดโปรแกรมแก้ไขบีบอัดขนาด 1039 ไบต์ระหว่างการบูท ซึ่งจะเป็นการเพิ่มขนาดของบัฟเฟอร์ Midi และตัวกรองไบต์ข้อมูล Midi ที่เป็นเอกสิทธิ์เฉพาะของระบบ รายละเอียดของแพทช์นี้สามารถพบได้บนเว็บไซต์ VLSI
ไลบรารี Adafruit Graphics รุ่นที่ได้รับการแก้ไขเล็กน้อยถูกนำมาใช้เพื่อรองรับความละเอียด 64x48 พิกเซลของจอแสดงผล OLED โปรดดูลิงก์ที่ให้ไว้ตอนท้ายสำหรับ Mr Mcauser รายชื่อไลบรารีที่จำเป็นจะได้รับในโค้ดแบบร่าง
ที่สำคัญเมื่อร่างภาพร่างเป็นครั้งแรกบน ATmega328 ไม่ว่าจะเป็น Uno หรือสแตนด์อโลน โค้ดจะโหลดค่าพารามิเตอร์ที่ตั้งไว้ล่วงหน้าจาก ATmega328 Eeprom ที่อาจไม่ถูกต้อง ในกรณีนั้น คุณสามารถเขียนเลขศูนย์ทั้งหมดไปยัง Eeprom โดยใช้ตัวเลือก X ด้วยปุ่มลง หรือใส่เครื่องหมายในช่องในฟังก์ชันการตั้งค่า void ที่โหลดค่าจาก Eeprom เมื่อเริ่มใช้งานครั้งแรก ปรับเครื่องมือของคุณ ฯลฯ ไปที่ ถูกใจแล้วบันทึกค่าที่ตั้งไว้ล่วงหน้าของคุณด้วยปุ่มตัวเลือก S ขึ้น
เครดิตจะมอบให้กับบุคคลและหน่วยงานทั้งหมดที่กล่าวถึงรหัสและห้องสมุดของพวกเขา..
ขั้นตอนที่ 4: ลิงค์
VLSI:
อดาฟรุ๊ต:
Github VS1053b:
กราฟิก Github:
เก่า:
Sparkfun:
ขั้นตอนที่ 5: การใช้ Sparkfun Board กับ Adafruit Libraries
ตารางในภาพอธิบายวิธีเชื่อมต่อ Adafruit หรือ Sparkfun Music Boards เพื่อใช้ห้องสมุดอื่น
แนะนำ:
แหล่งจ่ายไฟ Synthesizer แบบแยกส่วน: 10 ขั้นตอน (พร้อมรูปภาพ)
แหล่งจ่ายไฟ Synthesizer แบบแยกส่วน: หากคุณกำลังสร้างเครื่องสังเคราะห์เสียงแบบแยกส่วน สิ่งหนึ่งที่คุณต้องการอย่างแน่นอนคือแหล่งจ่ายไฟ เครื่องสังเคราะห์เสียงแบบแยกส่วนส่วนใหญ่ต้องการระบบรางคู่ (0V, +12V และ -12V ตามปกติ) และการมีราง 5V ก็มีประโยชน์เช่นกันหากคุณกำลังวางแผน
Keytar Hero (ใช้ Wii Guitar Controller เป็น Synthesizer): 7 ขั้นตอน (พร้อมรูปภาพ)
Keytar Hero (ใช้ Wii Guitar Controller เป็น Synthesizer): เกม Guitar Hero เป็นเกมที่คลั่งไคล้เมื่อหลายสิบปีก่อน ดังนั้นจึงต้องมีอุปกรณ์ควบคุมกีตาร์รุ่นเก่าจำนวนมากวางอยู่รอบๆ ฝุ่น พวกมันมีปุ่ม ลูกบิด และคันโยกมากมาย ทำไมไม่ลองใช้มันให้เป็นประโยชน์อีกล่ะ? คอนโทรลกีต้าร์
Arduino MIDI Chiptune Synthesizer: 7 ขั้นตอน (พร้อมรูปภาพ)
Arduino MIDI Chiptune Synthesizer: หวนคิดถึงความสนุกของเพลงเกมคอมพิวเตอร์ยุคแรกๆ ด้วยโปรแกรมสังเคราะห์เสียง Chiptune 8 บิตของแท้ ซึ่งคุณควบคุม MIDI ได้จากซอฟต์แวร์ DAW ที่ทันสมัยอย่างสะดวกสบาย วงจรง่ายๆ นี้ใช้ Arduino เพื่อขับเคลื่อน AY-3- 8910 โปรแกรมสร้างเสียง
Quad Speaker Synthesizer: 10 ขั้นตอน (พร้อมรูปภาพ)
ซินธิไซเซอร์ลำโพงสี่ตัว: นี่คือซินธิไซเซอร์แบบธรรมดาที่มี:22 คีย์ควบคุมระดับเสียงเปลี่ยนเอฟเฟกต์เสียงต่างๆ (สำหรับลำโพง)ไฟลำโพงสี่ตัว (สำหรับลำโพง) ใครๆ ก็สร้างได้ ยกเว้นชิ้นส่วนอิเล็กทรอนิกส์ อย่างอื่นสามารถพบได้ที่บ้าน
Arduino Synthesizer: 20 ขั้นตอน (พร้อมรูปภาพ)
Arduino Synthesizer: Arduino สามารถส่งสัญญาณเสียงผ่านไลบรารีที่ได้รับการพัฒนาที่เรียกว่า Tone Library ด้วยการสร้างอินเทอร์เฟซและโปรแกรมที่สามารถเรียกค่าบางอย่างเพื่อส่งออกไปยังเสียงออก Arduino Synthesizer เป็นเครื่องมือที่มีประสิทธิภาพสำหร