สารบัญ:

ชิปเสียงย้อนยุคพร้อม Arduino - SAA1099: 16 ขั้นตอน (พร้อมรูปภาพ)
ชิปเสียงย้อนยุคพร้อม Arduino - SAA1099: 16 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: ชิปเสียงย้อนยุคพร้อม Arduino - SAA1099: 16 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: ชิปเสียงย้อนยุคพร้อม Arduino - SAA1099: 16 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: Soundcard Shootout: Adlib OPL2 vs GameBlaster SAA1099 2024, พฤศจิกายน
Anonim
Image
Image
สายไฟ - SAA1099
สายไฟ - SAA1099

ในคำแนะนำนี้ ฉันจะแสดงให้คุณเห็นถึงวิธีใช้ Arduino Uno กับชิปสังเคราะห์เสียงแบบโบราณ เพื่อเล่นไฟล์ midi ในแบบคลื่นสี่เหลี่ยม!

หากคุณต้องการภาพรวมคร่าวๆ ของสิ่งที่โครงการนี้ทำ ให้ดูวิดีโอด้านบน มิฉะนั้น ดำเนินการต่อ!

ขั้นตอนที่ 1: วิดีโอ

Image
Image

หากคุณต้องการคำแนะนำทั้งหมดของคุณในวิดีโอที่กระชับและชัดเจน เรามีคำตอบให้คุณ!

สำหรับพวกเราที่เหลือ คุณสามารถดำเนินการต่อเพื่อดูรายละเอียดเพิ่มเติมเล็กน้อย และคำแนะนำเป็นลายลักษณ์อักษร

ขั้นตอนที่ 2: ชิ้นส่วนและวัสดุ

สำหรับสิ่งนี้ คุณจะต้องมีสิ่งเหล่านี้:

(ลิงค์สำหรับสินค้าอีเบย์)

  • Arduino (Uno, Nano, Leonardo ใช้งานได้ทั้งหมด)
  • อย่างน้อยก็เขียงหั่นขนมขนาดกลาง
  • ชิปกำเนิดเสียงสเตอริโอ SAA1099
  • สายจัมเปอร์เขียงหั่นขนม (อีกวิธีหนึ่ง ฉันชอบใช้จัมเปอร์ดูปองต์ตัวเมียกับจัมเปอร์ตัวเมีย โดยเสียบหมุดส่วนหัว 20 มม. ที่ปลายทั้งสองด้าน - แข็งแรงกว่ามาก)
  • 8Mhz TTL Oscillator (ลิงก์ AliExpress ที่จัดเตรียมโดย zweigelt)
  • แจ็คเสียงสเตอริโอ (หรือโมโน)
  • ตัวต้านทาน 2 x 1K (ล็อต 100)
  • ตัวต้านทาน 1 x 10K (ล็อต 50)
  • ตัวเก็บประจุ 2 x 100pF
  • (ไม่บังคับ) ไฟ LED บางดวง อย่างน้อย 1 ดวง (สีใดก็ได้ ที่นี่ 1 ดอลลาร์ คละสี 100 สี!)

การใช้ลิงก์ที่ให้มา ค่าใช้จ่ายทั้งหมดคือ 23.25 ดอลลาร์ รวมค่าจัดส่ง แน่นอนว่าส่วนใหญ่มาจากครึ่งทางทั่วโลก ดังนั้นการจัดส่งมักจะใช้เวลาประมาณหนึ่งเดือน หากต้องการให้จัดส่งเร็วขึ้น คุณอาจต้องจ่ายเพิ่มเล็กน้อย

ขั้นตอนที่ 3: การเดินสายไฟ - SAA1099

สายไฟ - SAA1099
สายไฟ - SAA1099
สายไฟ - SAA1099
สายไฟ - SAA1099

ถ้าคุณชอบแผนผัง จัดให้เลย! พวกเราที่เหลือสามารถทำตามขั้นตอนหรือดูวิดีโอได้

  • วาง SAA1099 ที่ส่วนท้ายของเขียงหั่นขนม โดยให้รอยบากบนชิปหันไปทางปลาย
  • เอาล่ะ พลัง VDD (พิน 18) บน SAA1099 จะจ่ายไฟ จากนั้นตรึง VSS (พิน 9) ลงกราวด์
  • ถัดไป วางลวดระหว่าง CS (พิน 2) กับกราวด์เพื่อให้ดึงให้ต่ำ

ฉันขอแนะนำให้ดูแผ่นข้อมูลซึ่งฉันได้แนบมาด้วย

ขั้นตอนที่ 4: การเดินสายไฟ - TTL Oscillator

การเดินสายไฟ - TTL Oscillator
การเดินสายไฟ - TTL Oscillator
การเดินสายไฟ - TTL Oscillator
การเดินสายไฟ - TTL Oscillator
  • เราจะวาง TTL Oscillator ไว้บนเขียงหั่นขนมถัดจากเขียงหั่นขนม เพื่อให้พินเอาต์พุตนาฬิกาอยู่ใกล้กับอินพุตนาฬิกาบน SAA1099 (พิน 8) มากที่สุด
  • คุณสามารถเชื่อมต่อพลังงานและกราวด์กับออสซิลเลเตอร์ TTL ได้ (ฉันรอจนถึงภายหลังในวิดีโอของฉัน ดังนั้นฉันจึงไม่มีรูปภาพ) ภาพด้านบนแสดงให้เห็นว่าหมุดตัวไหน

ขั้นตอนที่ 5: การเดินสายไฟ - Iref และ Chip Interface

การเดินสายไฟ - อินเทอร์เฟซ Iref และชิป
การเดินสายไฟ - อินเทอร์เฟซ Iref และชิป
การเดินสายไฟ - อินเทอร์เฟซ Iref และชิป
การเดินสายไฟ - อินเทอร์เฟซ Iref และชิป
  • เชื่อมต่อตัวต้านทาน 10K ระหว่าง Iref (พิน 6) และ 5V
  • เชื่อมต่อพินดิจิตอล 8 กับ WR (พิน 1) บน SAA1099
  • เชื่อมต่อพินดิจิตอล 9 กับ A0 (พิน 3) บน SAA1099

ขั้นตอนที่ 6: การเดินสายไฟ - ส่วนประกอบเสียง

การเดินสายไฟ - ส่วนประกอบเสียง
การเดินสายไฟ - ส่วนประกอบเสียง
การเดินสายไฟ - ส่วนประกอบเสียง
การเดินสายไฟ - ส่วนประกอบเสียง
การเดินสายไฟ - ส่วนประกอบเสียง
การเดินสายไฟ - ส่วนประกอบเสียง
  • เชื่อมต่อตัวเก็บประจุ 100pF ระหว่าง OUTR (พิน 4) และ GND
  • เชื่อมต่อตัวต้านทาน 1K ระหว่าง OUTR (พิน 4) และ 5V
  • เราจะทำสิ่งเดียวกันกับ OUTL (พิน 5)
  • เชื่อมต่อตัวเก็บประจุ 100pF ระหว่าง OUTL (พิน 5) และ GND
  • เชื่อมต่อตัวต้านทาน 1K ระหว่าง OUTL (พิน 5) และ 5V

บันทึก! ตรวจสอบให้แน่ใจว่าไม่มีสายไฟจากตัวต้านทาน/ตัวเก็บประจุสัมผัสกัน มิฉะนั้น สิ่งของต่างๆ จะไม่ทำงาน และ (อาจเป็นไปได้) อาจระเบิดที่ใบหน้าของคุณได้

ขั้นตอนที่ 7: การเดินสายไฟ - แจ็คเสียง

สายไฟ - แจ็คเสียง
สายไฟ - แจ็คเสียง
สายไฟ - แจ็คเสียง
สายไฟ - แจ็คเสียง
สายไฟ - แจ็คเสียง
สายไฟ - แจ็คเสียง
  • ต่อสายจัมเปอร์ขนาดเล็กระหว่าง 5V กับแถวว่างบนเขียงหั่นขนม
  • วางแจ็คเสียงของคุณ เพื่อให้จัมเปอร์จาก 5V เชื่อมต่อกับพิน "แขนเสื้อ" บน Audio Jack
  • เชื่อมต่อ L และ R (หรือพินเสียง หากคุณมีแจ็คโมโน) กับพิน OUTL (พิน 5) และ OUTR (พิน 4) บน SAA1099 ตามลำดับ

บันทึก! สำหรับแจ็คเสียงโมโน ไม่สำคัญว่าจะเกิดอะไรขึ้น ตราบใดที่หนึ่งพินเชื่อมต่อกับ 5V และอีกพินหนึ่งไปยัง OUTL หรือ OUTR มันจะฟังดูดี หากไม่เป็นเช่นนั้น คุณอาจต้องตรวจสอบสายไฟอีกครั้ง

ขั้นตอนที่ 8: การเดินสายไฟ - พลังสู่เขียงหั่นขนม

การเดินสายไฟ - พลังสู่เขียงหั่นขนม
การเดินสายไฟ - พลังสู่เขียงหั่นขนม
การเดินสายไฟ - พลังสู่เขียงหั่นขนม
การเดินสายไฟ - พลังสู่เขียงหั่นขนม
  • เชื่อมต่อพาวเวอร์บัส Breadboard ทั้งสองด้านเข้าด้วยกัน โดยใช้สายจัมเปอร์
  • เชื่อมต่อด้านหนึ่งเข้ากับพิน 5V และ GND บน Arduino ตรวจสอบให้แน่ใจว่าคุณไม่ได้ผสมสายไฟไว้ที่ใด หากคุณทำเช่นนั้น ควันเวทย์มนตร์อาจหลบหนีได้

ขั้นตอนที่ 9: การเดินสายไฟ - สายข้อมูล

การเดินสายไฟ - สายข้อมูล
การเดินสายไฟ - สายข้อมูล

เชื่อมต่อ D0 ถึง D7 บน Arduino กับ D0 (พิน 10) ผ่าน D7 (พิน 17) บน SAA1099 ตามลำดับ

ฉันพบว่าสายจัมเปอร์หญิง - หญิงของดูปองท์ที่มีหมุดส่วนหัว 15-20 มม. ที่ปลายทั้งสองข้างทำงานได้ดีกว่าสายดูปองต์ชาย - ชายมาก นอกจากนี้คุณยังสามารถใช้เป็นหญิง-หญิงหรือชาย-หญิง ทั้งสองอย่างนี้พบได้ง่ายบนอีเบย์ในปริมาณมากสำหรับการเปลี่ยนแปลงเพียงเล็กน้อย ของขวัญคริสต์มาสที่ดีสำหรับขี้ยา Arduino ที่ต้องการ!

ขั้นตอนที่ 10: ไฟ LED เสริม

ไฟ LED เสริม
ไฟ LED เสริม
ไฟ LED เสริม
ไฟ LED เสริม

ฉันจะไม่อธิบายทีละขั้นตอนเกี่ยวกับวิธีการสร้างทุกอย่างที่นี่ แต่มีที่ที่ดีหลายแห่งในการเพิ่ม LED ก่อนอื่น ฉันเชื่อมต่อ LED สีแดงขนาด 3 มม. ระหว่าง WR (พิน 1) และ GND เพื่อแสดงทุกครั้งที่ Arduino ส่งคำสั่งไปยัง SAA1099

ฉันเคยเชื่อมต่อ LED กับสายข้อมูลมาก่อน ซึ่งช่วยให้คุณเห็นข้อมูลไบนารีจริงในแต่ละบรรทัด ฉันใช้การตั้งค่านี้ในวิดีโอ "Arduino และ SAA1099 - Fireflies" รวมถึงไฟ LED อีก 6 ดวงและโค้ดพิเศษบางส่วนเพื่อให้ LED แต่ละช่องสว่างขึ้นสำหรับแต่ละช่องสัญญาณที่ทำงานอยู่

ยิ่ง LEDs ยิ่งดูเท่!

ขั้นตอนที่ 11: รหัส

รหัส!
รหัส!
รหัส!
รหัส!

เมื่อคุณสร้างวงจรแล้ว ให้ตรวจสอบการเชื่อมต่ออีกครั้ง! คุณไม่ต้องการที่จะระเบิด Arduino และ Soundchip ราคาแพงของคุณ! (ถ้าคุณทำก็เถอะ นั่นไม่ใช่เรื่องของฉัน)

สมมติว่าคุณมีสติและตรวจทุกอย่างแล้ว เราสามารถเริ่มเขียนโปรแกรมได้

  • ห้องสมุดอยู่ที่
  • คุณจะต้องการไฟล์ SAATunes.zip ดังนั้นให้ดาวน์โหลดเลย
  • ตอนนี้เปิด Arduino IDE
  • ภายใต้ "ร่าง" "รวมไลบรารี" คลิก "เพิ่ม.zip ไลบรารี"
  • นำทางไปยังทุกที่ที่คุณดาวน์โหลดไลบรารี SAATunes (ฉันไม่สนหรอกว่าจะเป็นโฟลเดอร์เดสก์ท็อป ดาวน์โหลด หรือ (ใส่อะไรที่น่าอาย) - แค่หาเจอ)
  • เลือกและคลิก "เปิด"
  • มันควรจะบอกคุณว่ามันถูกเพิ่มลงในห้องสมุดของคุณแล้ว

ขั้นตอนที่ 12: ทดสอบเลย

ทดสอบเลย!
ทดสอบเลย!
ทดสอบเลย!
ทดสอบเลย!
  • เปิดตัวอย่างโปรแกรม SAATunes ภายใต้ "ไฟล์", "ตัวอย่าง", "SAATunes", "SAATunes-Uno"
  • เสียบ Arduino ของคุณเข้ากับคอมพิวเตอร์และต่อกับลำโพงบางประเภท
  • อัปโหลดโปรแกรมไปยัง Arduino

คุณควรได้ยินเสียงคอร์ด ตามด้วยความโกรธของเบโธเฟนเหนือเพนนีที่หายไป หาก Classical ไม่ใช่ของคุณ ก็ไม่ต้องกลัว เพราะอีกไม่นานเราจะเรียนรู้วิธีการใช้ไฟล์ MIDI ที่เราเลือกเองกับมัน

หากคุณไม่ได้ยินอะไรเลย ให้ตรวจสอบบางสิ่ง: อันดับแรก ลำโพงของคุณเปิดอยู่หรือไม่ หมุนขึ้นจนสุด แล้ว Arduino เปิดอยู่จริงหรือ? โปรแกรมอัพโหลดถูกต้องหรือไม่? ตรวจสอบการเดินสายทั้งหมดด้วยแผนผังและแผ่นข้อมูล แล้วลองอีกครั้ง

ขั้นตอนที่ 13: การใช้ไฟล์ MIDI ของคุณเอง - โปรแกรมการแปลง

การใช้ไฟล์ MIDI ของคุณเอง - โปรแกรมแปลงไฟล์
การใช้ไฟล์ MIDI ของคุณเอง - โปรแกรมแปลงไฟล์

พร้อมที่จะลองอย่างอื่นที่ไม่ใช่ Beethoven แล้วหรือยัง? ดีมาก เอาไปเลย

ในการแปลงไฟล์ MIDI เป็น C++ Bytestreams เราจำเป็นต้องมีโปรแกรมของ Len Shustek เขาเป็นผู้สร้างห้องสมุดที่ฉันใช้รหัสของฉัน และห้องสมุดของฉันใช้รูปแบบไบต์สตรีมแบบเดียวกับที่เขาใช้

  • คุณสามารถค้นหาโปรแกรมได้ที่
  • โปรแกรมที่คุณต้องการคือ "miditones.exe" ไปข้างหน้าและดาวน์โหลดสิ่งนั้น

ขั้นตอนที่ 14: การแปลงไฟล์ MIDI

การแปลงไฟล์ MIDI
การแปลงไฟล์ MIDI
การแปลงไฟล์ MIDI
การแปลงไฟล์ MIDI
การแปลงไฟล์ MIDI
การแปลงไฟล์ MIDI

คำเตือน! ที่นี่มีมังกร ascii! คุณอาจพบว่าการดูวิดีโอนั้นง่ายกว่า ซึ่งคุณจะเห็นว่าฉันกำลังพูดถึงอะไร ถ้าท่านกล้าเข้าไปก็ไปต่อ!

ในการใช้โปรแกรมแปลง MIDI เป็น Bytestream คุณจะต้องเปิดหน้าต่างพรอมต์คำสั่ง ขออภัยผู้ใช้ Mac และ Linux คุณอาจต้องหาวิธีแก้ไขปัญหาชั่วคราว

  • เปิดเมนูเริ่ม แล้วพิมพ์ "CMD" จากนั้นกด Enter
  • ตอนนี้เราจะมาเรียนรู้เวทย์มนตร์ MS-DOS กัน ใช้คำสั่ง "CD" นำทางไปยังทุกที่ที่คุณดาวน์โหลดไฟล์ "miditones.exe" ไป ในกรณีส่วนใหญ่ คำสั่งจะเป็น "การดาวน์โหลดซีดี"
  • เรียกใช้โปรแกรม "miditones.exe" โดยพิมพ์ "miditones" ควรแสดงรายการช่วยเหลือที่แสดงคำสั่งทั่วไป

ตอนนี้ เราต้องการไฟล์ MIDI เพื่อแปลง หาที่ใดที่หนึ่งในเว็บอินเตอร์ โดยเฉพาะอย่างยิ่งโดยไม่ต้องกระทบหรือเทคนิคพิเศษใด ๆ นอกเหนือจาก insturments/velocity (ถ้าไม่รู้ว่ามันคืออะไร ไม่ต้องกังวล ไม่เป็นไร)

  • ดาวน์โหลดไฟล์ MIDI ของคุณไปยังที่เดียวกับที่คุณมีโปรแกรม "มิดโทน"
  • ตอนนี้ ใช้หน้าต่างพรอมต์คำสั่ง พิมพ์ "miditones -d -v [ชื่อไฟล์]" (แทนที่ [ชื่อไฟล์] ด้วยชื่อไฟล์ MIDI ของคุณ)
  • miditones จะสร้างไฟล์. C ด้วย C++ bytestream ในโฟลเดอร์เดียวกัน โดยใช้ชื่อเดียวกับไฟล์ MIDI

ขั้นตอนที่ 15: การใช้ไฟล์ MIDI ที่แปลงแล้วของคุณ

การใช้ไฟล์ MIDI ที่แปลงแล้วของคุณ
การใช้ไฟล์ MIDI ที่แปลงแล้วของคุณ
การใช้ไฟล์ MIDI ที่แปลงแล้วของคุณ
การใช้ไฟล์ MIDI ที่แปลงแล้วของคุณ
การใช้ไฟล์ MIDI ที่แปลงแล้วของคุณ
การใช้ไฟล์ MIDI ที่แปลงแล้วของคุณ

เมื่อคุณแปลงไฟล์ MIDI แล้ว ให้ป้อน Arduino ทีละน้อย!

  • สมมติว่าคุณเปิดตัวอย่าง SAATunes-Uno แล้ว ให้ดำเนินการต่อและ "บันทึกเป็น" อย่างอื่น เพื่อให้เราสามารถแก้ไขได้
  • เมื่อคุณบันทึกแล้ว ให้คลิกไอคอน "ลูกศรลง" เล็กๆ ที่มุมขวาบน
  • คลิก "แท็บใหม่" และตั้งชื่อเป็น "[name].h" (แทนที่ [name] ด้วยชื่อเพลง MIDI ของคุณ หรืออะไรก็ได้ที่คุณต้องการ)
  • ตอนนี้เปิดไฟล์. C ที่สร้าง miditones ไว้ก่อนหน้านี้ คุณสามารถใช้แผ่นจดบันทึกเพื่อเปิด
  • ใช้ CNTRL/A เพื่อเลือกทุกอย่าง แล้วคัดลอก
  • วางลงในแท็บ "[name].h" ใหม่ของคุณในโปรแกรมแก้ไข Arduino

ทุกอย่างเรียบร้อยดีแล้ว กลับมาที่โปรแกรมกันดีกว่า

  • ค้นหาตำแหน่งที่ระบุว่า "#include "RagePenny.h" และคัดลอก/วางลงในบรรทัดใหม่ด้านล่าง
  • เปลี่ยน "RagePenny.h" เป็นชื่อไฟล์ใหม่ของคุณ
  • ตอนนี้ แสดงความคิดเห็นใน "#include "RagePenny.h" โดยเพิ่มเครื่องหมายทับ (//) สองอันข้างหน้า
  • ลงโปรแกรม!

ถ้าทุกอย่างเป็นไปด้วยดี ก็ควรจะเล่นไฟล์ MIDI ของคุณเอง หากไม่เป็นเช่นนั้น ให้ตรวจสอบอีกครั้งเพื่อให้แน่ใจว่าชื่อของแท็บใหม่และชื่อที่คุณเปลี่ยนใน "#include "RagePenny.h" เหมือนกัน ตรวจสอบขั้นตอนอื่นๆ และตรวจสอบให้แน่ใจว่าคุณทำทุกอย่างถูกต้อง ไฟล์ MIDI บางไฟล์ใช้งานไม่ได้ แต่ไฟล์เหล่านี้หายาก

ขั้นตอนที่ 16: ฟิน

ครีบ!
ครีบ!

หวังว่าทุกอย่างจะผ่านไปด้วยดีกับคุณ และคุณกำลังติดขัดกับไฟล์ MIDI เกี่ยวกับเทคโนโลยีโบราณที่ให้ชีวิตใหม่!

แต่ถ้าไม่ใช่ อย่ายอมแพ้! ส่งความคิดเห็นในแบบของฉัน และฉันยินดีที่จะช่วยเหลือ แน่นอนโปรดให้คำแนะนำในความคิดเห็น

ชิปทูนส์แห่งความสุข!

แนะนำ: