สารบัญ:
- เสบียง
- ขั้นตอนที่ 1: การเตรียม USB Mini Host Shield เพื่อขับเคลื่อนอุปกรณ์ Midi 5V
- ขั้นตอนที่ 2: เชื่อมต่อ USB Mini Shield กับ Arduino Nano. ของคุณ
- ขั้นตอนที่ 3: ชิปใคร? กำลังเพิ่ม SN76489 ด้วย 4MHz Osc. และ 595 Shift Register
- ขั้นตอนที่ 4: เพียงเพิ่มโค้ด - เพิ่มไลบรารี รวบรวมและอัปโหลดโค้ด
- ขั้นตอนที่ 5: เชื่อมต่อแอมพลิฟายเออร์และลำโพง เชื่อมต่อแป้นพิมพ์ USB Midi ของคุณและทดสอบ
- ขั้นตอนที่ 6: ทำวงจรให้สมบูรณ์ด้วยตัวควบคุมแรงดันไฟฟ้า 5V, ขั้วต่อ 12V, สวิตช์เปิด/ปิด และ LED เพาเวอร์
- ขั้นตอนที่ 7: ใส่ในกล่อง ระบายสีและเพลิดเพลินกับ Synth ใหม่ของคุณ
วีดีโอ: มาสร้าง SN76489 USB MIDI Synth ด้วย Arduino Nano: 7 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:04
เคยต้องการที่จะสร้างซินธิไซเซอร์ของคุณเองโดยใช้เพลงชิปเก่าจากยุค 80 หรือไม่? เล่นเพลงโพลีโฟนิกง่ายๆ ที่ฟังดูเหมือนกับ Sega Master System และวิดีโอเกม Megadrive?
ฉันมีดังนั้นฉันจึงสั่งชิป SN76489 สองสามตัวจาก ebay และอินเทอร์เฟซโฮสต์ midi แล้วลองดู สำหรับฉัน ไม่ใช่การเดินเล่นในสวนสาธารณะ แต่ฉันมีความสุขทุกช่วงเวลา
อันดับแรก ฉันเรียนรู้วิธีเชื่อมต่อ SN76489 โดยตรงและทำให้เกิดเสียงรบกวน มีองค์ประกอบที่สับสนอยู่บ้าง แต่ด้วยความช่วยเหลือของ The Oddbloke Geek Blog และตัวอย่างอื่นๆ ร่วมกับเอกสารข้อมูลจำเพาะของชิป ฉันสามารถพัฒนาไลบรารี Arduino อย่างง่ายได้
ต่อไป ฉันต้องเรียนรู้วิธีเชื่อมต่อแป้นพิมพ์ midi กับ USB mini host shield ไม่ยากนัก เนื่องจากมีเอกสารประกอบอยู่ และมีไลบรารีที่ดีพร้อมตัวอย่างที่ชัดเจน
เมื่อฉันเข้าใจวิธีควบคุมชิปและวิธีเชื่อมต่อแป้นพิมพ์ USB midi ของฉันแล้ว สิ่งเดียวที่ต้องทำคือเขียนโค้ดที่จะรวมสิ่งเหล่านี้เข้าด้วยกันและอนุญาตให้ฉันใช้แป้นพิมพ์เพื่อควบคุมชิป
ระหว่างทาง ฉันได้เรียนรู้ว่าเสียงที่มีความถี่ต่ำกว่าที่ฉันพยายามสร้างสำหรับโน้ต midi 0x2f นั้นฟังดูไม่ถูกต้อง ฉันจึงตัดสินใจใช้เสียงนั้นเพื่ออนุญาตให้ส่งเสียงรบกวนไปยังเครื่องกำเนิดสัญญาณรบกวนสำหรับโน้ต midi ใดๆ ระหว่าง 0x28 และ 0x2f และยังอนุญาตให้เล่นโน้ตด้วยการสัมผัสอาหรับตะวันออกสำหรับสิ่งที่ต่ำกว่า midi 0x28
เมื่อมองย้อนกลับไป มันสนุกมากและน่าสนใจมากในการสร้าง
ฉันหวังว่าคุณจะพบว่ามันสนุกและน่าสนใจเหมือนที่ฉันทำ และถ้าคุณสร้างมันขึ้นมาเอง คุณจะใจดีพอที่จะแบ่งปันรูปภาพของมัน
หากคุณชอบโปรเจ็กต์นี้ โปรดโหวตด้านล่างเพื่อช่วยให้ชนะการประกวดที่เข้าร่วม
เสบียง
ฉันได้เพิ่มลิงก์ไปยังสื่อที่คุณสามารถซื้อได้สำหรับโครงการนี้ อย่างไรก็ตาม คุณสามารถหารายการต่างๆ ที่พร้อมใช้งานซึ่งคุณสามารถขูดจากอุปกรณ์อิเล็กทรอนิกส์เก่าได้
ลิงค์เหล่านี้เป็นลิงค์พันธมิตร ดังนั้น หากคุณซื้อหลังจากคลิก ฉันได้รับส่วนเล็กน้อย (ไม่ใช่โชค) และคุณจะได้ผลิตภัณฑ์ที่เหมาะกับโครงการนี้ ไม่มีค่าธรรมเนียมหรือค่าใช้จ่ายเพิ่มเติมในการใช้สิ่งเหล่านี้ อย่างไรก็ตาม คุณสามารถหาสิ่งของที่คล้ายกันที่สามารถแทนที่สิ่งเหล่านี้ได้อย่างง่ายดาย
ebay.us/svA4z4 | 1 x บอร์ดประสิทธิภาพ
ebay.us/ZyEFNp | 1 x Arduino นาโน
ebay.us/t1zy0v | 1 x USB มินิชิลด์
ebay.to/2QrHl1C | 1 x SN76489 ชิปเสียง
ebay.us/aaaj8p | 1 x ทะเบียนกะ 595
ebay.us/DSvTHO | 1 x คริสตัลออสซิลเลเตอร์ 4MHz
ebay.us/XQeM0Q | ตัวควบคุมแรงดันไฟฟ้า 1 x 5V 7805
ebay.us/6R6Fpf |1 x แผ่นระบายความร้อนสำหรับตัวควบคุมแรงดันไฟฟ้า
ebay.us/xkLbn4 | ตัวเก็บประจุ 3 x 10uF
ebay.us/pnm2BH | สายไฟ
ebay.us/PMbUfY | 1 x LED สีแดงสำหรับพลังงาน
ebay.us/zokHtc | ตัวต้านทาน 1 x 220 โอห์มเพื่อจำกัดการไหลของกระแสไฟ LED
ebay.us/qjbesJ | 1 x ขั้วต่อสายไฟสำหรับแหล่งจ่ายไฟ 12v
ebay.us/cS0wwv | 1 x สวิตช์เปิด/ปิด
กล่องที่เหมาะสม (ฉันสร้างของฉันจากลิ้นชักเก่าที่วางอยู่ในที่เก็บของฉันมานานหลายปี)
ขั้นตอนที่ 1: การเตรียม USB Mini Host Shield เพื่อขับเคลื่อนอุปกรณ์ Midi 5V
เนื่องจาก USB mini host shield ทำงานบน 3.3V และคีย์บอร์ด USB midi ที่ฉันใช้ต้องใช้ 5V จึงจำเป็นต้องปรับแรงดันเอาต์พุตของชิลด์โดยตัดสาย 3.3V ที่ไปยัง USB out Vcc ดังนั้นเราจึงสามารถเชื่อมต่อได้ในภายหลัง ถึง 5V
มีบทแนะนำมากมายเกี่ยวกับวิธีการทำเช่นนั้น และกลายเป็นว่าค่อนข้างง่าย:
เพียงตัดเส้นแบ่งระหว่างตัวต้านทาน 2k2 และเส้น Vcc (ดูภาพที่แนบมา) ฉันใช้ไขควงเพื่อขูดเส้นนี้และทดสอบว่าใช้งานได้กับเครื่องวัดความต่อเนื่องหรือไม่
ขั้นตอนที่ 2: เชื่อมต่อ USB Mini Shield กับ Arduino Nano. ของคุณ
โชคดีที่มีข้อมูลมากมายเกี่ยวกับวิธีการทำเช่นนั้นโดย googling สำหรับ "Arduino Nano และ mini USB host shield" ฉันไปที่กระทู้นี้
มันอธิบายวิธีเชื่อมต่อชิลด์ USB mini v2.0 และหลังจากทำตามฉันก็ตรงไปข้างหน้าเพื่อทดสอบตัวอย่าง USB midi
การเดินสายไฟ:
Arduino Host ชิลด์
10--------------5
11--------------6
12--------------7
13--------------8
2----------------2
5V ---------------
3.3V ----- 9
GND------------3
RST ------4
ในหัวข้อนี้ ยังกล่าวถึงว่าพวกเขาตัดลีด 3.3V เพื่อให้ USB สามารถรับ 5V จาก VBUS ได้
คำอธิบายและภาพที่แนบมานี้มาจากกระทู้นี้
BTW มีข้อผิดพลาดในการพิมพ์บนกระดานนี้ ดังนั้นมันจึงค่อนข้างสับสน อย่างไรก็ตาม คุณสามารถเห็นความคิดเห็นของฉันเกี่ยวกับสิ่งนั้น (tyrkelko) และฉันเรียนรู้จากที่ใด
ขั้นตอนที่ 3: ชิปใคร? กำลังเพิ่ม SN76489 ด้วย 4MHz Osc. และ 595 Shift Register
ตอนนี้ได้เวลาเพิ่มชิปที่สร้างเสียงอันน่าทึ่งนี้แล้ว
ฉันได้พัฒนาห้องสมุดเพื่อเชื่อมต่อ Arduino กับชิปนี้แล้วและต้องทำตามคำแนะนำของฉันเท่านั้น
ไลบรารี่เผยแพร่ใน github ภายใต้ GPLv3 (การเปิดตัวโอเพ่นซอร์สครั้งแรกของฉัน)
github.com/tyrkelko/sn76489
การเชื่อมต่อของ 76489 และ 595 เหมือนกับในรูปภาพที่แนบมาซึ่งถูกบันทึกจากไฟล์ readme.txt ของไลบรารี
Write Enable on Low (NotWE) ของ 76489 เชื่อมต่อกับพิน 3 ของ nano และสามารถเปลี่ยนแปลงได้ในโค้ด
#define PIN_NotWE 3
595 เชื่อมต่อกับนาโนดังนี้และยังสามารถปรับเปลี่ยนได้โดยการแก้ไขหมายเลขพิน:
#define PIN_SER 7
#define PIN_LATCH 6
#define PIN_CLK 5
ออสซิลเลเตอร์ที่ฉันใช้คือคริสตัลออสซิลเลเตอร์ 4MHz ที่มี 4 ขา
มีการกำหนดค่าในโค้ดดังนี้ และคุณสามารถปรับค่าความถี่ของออสซิลเลเตอร์ระหว่าง 500kHz และ 4MHz:
#define ความถี่ 4000000.0
การเชื่อมต่อออสซิลเลเตอร์ที่ฉันใช้มีดังนี้:
พิน 1 - ไม่ได้เชื่อมต่อ
พิน 7 - กราวด์
พิน 8 - เชื่อมต่อกับ 76489 พิน 14 - นาฬิกา osc
ขั้นตอนที่ 4: เพียงเพิ่มโค้ด - เพิ่มไลบรารี รวบรวมและอัปโหลดโค้ด
ต้องเพิ่มไลบรารีที่ใช้ในโครงการนี้ใน Arduino IDE ดังนี้:
เปิด Arduino IDE
ดาวน์โหลดไลบรารีต่อไปนี้ลงในโฟลเดอร์ไลบรารีของ IDE ของคุณ (หวังว่าจะเห็นสิ่งเหล่านี้ภายใต้เมนู "จัดการไลบรารี…" ในเมนู "เครื่องมือ" ของ IDE เร็วๆ นี้):
github.com/felis/USB_Host_Shield_2.0
github.com/tyrkelko/sn76489
ใช้รหัสจากโครงการ github ต่อไปนี้:
github.com/tyrkelko/usb_midi_tone
ดาวน์โหลด usb_midi_tone.ino คอมไพล์และอัปโหลดไปยัง Arduino nano ของคุณ
ขั้นตอนที่ 5: เชื่อมต่อแอมพลิฟายเออร์และลำโพง เชื่อมต่อแป้นพิมพ์ USB Midi ของคุณและทดสอบ
ตอนนี้ได้เวลาทดสอบการทำงานทุกอย่างแล้ว
ในการทำเช่นนั้นเราต้องการ:
1. เครื่องขยายเสียงและลำโพง
2. คีย์บอร์ด USB midi
เชื่อมต่อ SN76489 pin 7, เสียงออก, เข้ากับเครื่องขยายเสียงเข้า
เพิ่มพลังให้แอมพลิฟายเออร์แล้วเปิด Arduino nano ตอนนี้คุณควรจะได้ยินเสียงทดสอบการเพิ่มพลังในเสี้ยววินาที
เชื่อมต่อแป้นพิมพ์ USB midi และทดสอบ
หากทุกอย่างถูกต้อง คุณควรจะสามารถเล่น 3 โทนพร้อมกัน และเล่น 8 ประเภทของเสียงและแม้แต่เศษส่วนของ 24 EDO-Scale 24
หากไม่ได้ผล ให้ทำตามขั้นตอนต่างๆ เพื่อดูว่ามีอะไรผิดพลาด
หากคุณรู้สึกว่าผลลัพธ์นี้เกิดจากคำแนะนำที่ไม่ชัดเจน โปรดทิ้งโน้ตไว้เพื่อให้เราอัปเดตคำแนะนำเพื่อแก้ไข
ขั้นตอนที่ 6: ทำวงจรให้สมบูรณ์ด้วยตัวควบคุมแรงดันไฟฟ้า 5V, ขั้วต่อ 12V, สวิตช์เปิด/ปิด และ LED เพาเวอร์
ในขั้นตอนนี้ คุณควรจะสามารถตัดวงจรหลังจากทดสอบแล้วว่าทำงานได้อย่างถูกต้อง
1. เพิ่มตัวควบคุมพลังงานด้วย LM7805 และตัวเก็บประจุ 10uF สองตัวและ 0.1uF มีบทช่วยสอนมากมายเกี่ยวกับเรื่องนี้ คุณสามารถใช้คำแนะนำต่อไปนี้เพื่อทำสิ่งนั้นให้สำเร็จ -
2. เพิ่มขั้วต่อไฟ 12V โดย Vcc จะผ่านสวิตช์เปิด/ปิด
3. เพิ่ม LED พร้อมตัวต้านทานกระแสไฟที่ จำกัด เพื่อระบุเมื่อเปิดเครื่อง
ขั้นตอนที่ 7: ใส่ในกล่อง ระบายสีและเพลิดเพลินกับ Synth ใหม่ของคุณ
เมื่อวงจรได้รับการทดสอบและทำงานได้ตามที่คุณต้องการแล้ว ก็ไม่มีอะไรให้ทำมากนักยกเว้นการสร้างตู้ที่สวยงาม ทาสีด้วยสีสันที่สวยงามและเล่นเพลง
ฉันหวังว่าคุณจะสนุกกับการอ่านคำแนะนำนี้ และเป็นแรงบันดาลใจให้คุณสร้างซินธ์ของคุณเองหรือเริ่มทำโปรเจ็กต์อื่นที่คุณกำลังดำเนินการอยู่
โปรดแสดงความคิดเห็นด้านล่างพร้อมคำถามใดๆ และหากคุณได้สร้างสิ่งที่คล้ายกันโดยอิงจากบทช่วยสอนนี้ จะเป็นการดีหากคุณแชร์สิ่งที่คุณได้ทำในหัวข้อ "ฉันทำสิ่งนี้!" พื้นที่หรือในส่วนข้อเสนอแนะ
แนะนำ:
วิธีการตั้งค่า OSMC ด้วย Hyperion บน Raspberry Pi ด้วย WS2812b Led Strip: 8 ขั้นตอน
วิธีการตั้งค่า OSMC ด้วย Hyperion บน Raspberry Pi ด้วย WS2812b Led Strip: บางครั้งฉันพูดภาษาอังกฤษได้ดีมาก บางครั้งก็ไม่มี… สิ่งแรกเลย นี่เป็นการสอนครั้งแรกของฉันและภาษาอังกฤษไม่ใช่ภาษาแม่ของฉัน ดังนั้นโปรดอย่ากดดันฉันมากเกินไป นี่จะไม่เกี่ยวกับวิธีการสร้างเฟรมที่ง่าย มันเกี่ยวกับการติดตั้ง
แสดงความชื้นและอุณหภูมิบน LCD ด้วย ARDUINO NANO: 5 ขั้นตอน
แสดงความชื้นและอุณหภูมิบน LCD ด้วย ARDUINO NANO: คำแนะนำต่อไปนี้เกี่ยวข้องกับการสร้างอินเทอร์เฟซ LCD อย่างง่ายด้วย Arduino nano
วิธีสร้าง CubeSat ด้วย Arduino ด้วย Arducam: 9 ขั้นตอน
วิธีสร้าง CubeSat ด้วย Arduino ด้วย Arducam: ในรูปแรก เรามี Arduino และเรียกว่า "Arduino Uno"ในรูปที่สอง เรามี Arducam และเรียกว่า "Arducam OV2640 มินิ 2MP"พร้อมกับภาพที่สอง มีวัสดุที่คุณต้อง
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
การควบคุม Cubase ด้วย Arduino ตาม MIDI: 4 ขั้นตอน
การควบคุม Cubase ด้วย MIDI ที่ใช้ Arduino: เพื่อนคนหนึ่งของฉันต้องการควบคุม Cubase ซึ่งเป็นซอฟต์แวร์บันทึกเสียงของเขาด้วยปุ่มกดเพื่อให้เขาหยุดและเริ่มการบันทึกจากระยะไกลโดยไม่ต้องไปที่คอมพิวเตอร์แล้วพิมพ์บนแป้นพิมพ์ คุณอาจทำสิ่งนี้ได้ในร