สารบัญ:

Musical Digital Interface: 6 ขั้นตอน (พร้อมรูปภาพ)
Musical Digital Interface: 6 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: Musical Digital Interface: 6 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: Musical Digital Interface: 6 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: How to connect HOME STUDIO Equipment 2024, พฤศจิกายน
Anonim
อินเทอร์เฟซดิจิตอลดนตรี
อินเทอร์เฟซดิจิตอลดนตรี

ยินดีต้อนรับทุกคน, ฉันต้องการแสดง Musical Digital Interface ของตัวเองให้คุณดู ฉันทำมันในระหว่างการศึกษาระดับปริญญาทางเทคนิคของฉัน นี่คือเอกสารการวิจัยของฉัน ในการเริ่มต้น ฉันถามฉันว่าจะแต่งเพลงโดยไม่มี DAW ได้อย่างไร โดยใช้วัสดุรีไซเคิลและเล่นแบบสแตนด์อโลนได้

ในคำแนะนำนี้ ฉันจะสอนวิธีใช้การสื่อสารแบบอนุกรมเพื่อส่ง/รับข้อมูลเซ็นเซอร์ (แอนะล็อกและดิจิทัล) จาก Arduino ถึง Raspberry pi ต่อซอฟต์แวร์ puredata เพื่อกระตุ้นเสียง

วัสดุที่จำเป็นคือ:

x1 รพ.รามาธิบดี

x1 เทศบาลนครราชบุรี

x1 ไมโครเอสดี (32G)

x1 วิทยาลัยอาชีวศึกษาอุบลราชธานี

x1 เซนเซอร์ IR ชาร์ป GP2Y0E02B

x1 วิทยาลัยอาชีวศึกษา

x1 เกจทดสอบเพลท (0.2)

x28 ความต้านทาน10MΩ

x2 ความต้านทาน 1.8kΩ

x1 ความต้านทาน 10kΩ

x20 ขั้วต่อขั้วต่อ ชาย/หญิง

x1 ประสาน ผู้ให้บริการ

x1 ม้วนดีบุก (1 เมตร)

x1 หัวแร้ง

x25 Flexibles Straps ชาย/ชาย

ขั้นตอนที่ 1: เซ็นเซอร์

เซนเซอร์
เซนเซอร์
เซนเซอร์
เซนเซอร์
เซนเซอร์
เซนเซอร์

ฉันใช้ 4 piezoelectric ที่มาจากรีโมท Harmonix XBOX 360 ของ "Guitar Hero" ฉันใช้ปุ่มเปิด/ปิดเพราะปุ่ม Reed Switch แม่เหล็กของรีโมท Jam foot pedal กีตาร์ฮีโร่หมด

ฉันใช้เซ็นเซอร์ IR Sharp GP2Y0E02B สำหรับเซ็นเซอร์ทั้งหมดนี้ ฉันได้ทำการประกอบแบบดึงขึ้นเพื่อการทำงานที่มีประสิทธิภาพ…

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

ขั้นตอนที่ 2: การตัดต่อแบบดึงขึ้น

การตัดต่อแบบดึงขึ้น
การตัดต่อแบบดึงขึ้น
การตัดต่อแบบดึงขึ้น
การตัดต่อแบบดึงขึ้น
การตัดต่อแบบดึงขึ้น
การตัดต่อแบบดึงขึ้น
การตัดต่อแบบดึงขึ้น
การตัดต่อแบบดึงขึ้น

หลังจากทดสอบเพียโซอิเล็กทริกด้วยเครื่องกำเนิดแรงดันไฟฟ้า ฉันคงค่าความต้านทานไว้ที่7MΩ

การดึงชุดประกอบความต้านทานของปุ่มคือ 10 kΩ

สำหรับเซ็นเซอร์ IR ฉันใช้ความต้านทาน 1, 8kΩ สองตัวระหว่างแรงดันไฟฟ้าของแหล่งจ่ายตามลำดับกับ SDA (ข้อมูล) และ SCL (นาฬิกา)

ระวังเพราะค่าความต้านทานเหล่านั้นมีไว้สำหรับ RTX Arduino UNO; สิ่งที่ต้องรู้เกี่ยวกับอินพุตอิมพีแดนซ์ Arduino: 10MΩ

คุณสามารถดูการตัดต่อแบบดึงขึ้นได้จากภาพสุดท้ายของขั้นตอนนี้ ฉันแก้ไขสายรัด piezoelectric ใน 0 1 2 3 พินบน UNO สายรัดปุ่มใน 2 พินดิจิตอล แต่สื่อสารค่าบน 6 พินบน UNO และสายรัดเซ็นเซอร์ IR ใน 4 5 พินบน UNO อินพุตอะนาล็อกทั้งหมดของ Arduino Uno

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

เพื่อให้แน่ใจว่าการทำงานมีประสิทธิภาพ ฉันจึงทดสอบการส่ง/รับข้อมูลของเซ็นเซอร์ไปยัง Arduino

ฉันใส่ไฟล์ในคำอธิบาย แต่คุณสามารถค้นหาได้ในส่วนตัวอย่างของการเขียนโปรแกรม Arduino Genuino ยกเว้นเซ็นเซอร์ IR เนื่องจากยังไม่สมบูรณ์ ฉันเปลี่ยนข้อมูลบางส่วนในส่วน "กำหนด" เช่น "กะ" และฉันเปลี่ยนการคำนวณการวัดให้เป็นปกติ ในรูปแบบระยะทาง คุณอาจเคยเห็น "Wire" ในรหัสเซ็นเซอร์ IR อันที่จริง ฉันใช้โปรโตคอล I2C เพื่อสื่อสาร ฉันขอเชิญคุณมาดูโปรโตคอล I2C ที่น่าสนใจมาก คุณสามารถใช้โปรโตคอลนี้เพื่อส่งเซ็นเซอร์ดิจิทัลทั้งหมดที่คุณต้องการแบบเรียลไทม์

ขั้นตอนที่ 4: ทั้ง Arduino Raspberry Serial Communication

ทั้ง Arduino Raspberry Serial Communication
ทั้ง Arduino Raspberry Serial Communication
ทั้ง Arduino Raspberry Serial Communication
ทั้ง Arduino Raspberry Serial Communication

ครับ:D

ดังที่คุณเห็นในภาพแรก ลิงค์ Arduino-Raspberry คือปลั๊ก USB

ฉันพบวิธีรับข้อมูลเซ็นเซอร์โดยตรงโดย PureData Extented ที่ติดตั้งใน Raspberry PI ทำไม PureData ขยาย? เนื่องจากเวอร์ชัน Vanilla ไม่ได้ใช้ไลบรารีเดียวกันกับแอปพลิเคชันในสภาพแวดล้อม Raspbian

ดังนั้นให้เปิดใช้ StandardFirmata ใน Arduino Genuino เพื่อแก้ไข I/O และการเปลี่ยนแปลงค่าอย่างถูกวิธี!

ในการรับข้อมูลค่ากลับใน Raspberry PI มี 2 โปรโตคอล: Firmata และ Msg

ฉันเลือก Firmata ด้วยเหตุผลเดียว การรับข้อมูลใน PureData ผ่านแพตช์ Pduino นั้นง่ายกว่ามาก

ฉันขอเชิญคุณค้นพบข่าวสารเกี่ยวกับหากคุณใช้โปรโตคอล OSC

ขั้นตอนที่ 5: ได้รับ PureData Patch แล้ว

ได้รับแพตช์ PureData
ได้รับแพตช์ PureData

อันที่จริง หลังจากสัปดาห์ที่เขียนโค้ดบน Genuino ฉันได้รับข้อมูลเซ็นเซอร์ทั้งหมดของฉันสำเร็จในหน้าเดียว ซึ่งทำให้เห็นการเปลี่ยนแปลงในแบบเรียลไทม์ด้วย Pduino ซึ่งเป็นแพตช์ใน Puredata และไลบรารีส่วนเสริม

จากขั้นตอนนี้ เราจะไม่แตะต้องโค้ด Arduino อีกต่อไป ข้อมูลค่าสามารถอ่านได้

ตามที่ฉันสังเกตเห็นในขั้นตอนที่ 3 ฉันได้รับข้อมูลจากปุ่มดิจิทัลในแบบแอนะล็อก 6 พิน ซึ่งง่ายต่อการดูการทำงานของการสื่อสารที่มีประสิทธิภาพ ทั้งหมดในบรรทัดเดียว

ขั้นตอนที่ 6: การพัฒนา PureData

การพัฒนา PureData
การพัฒนา PureData
การพัฒนา PureData
การพัฒนา PureData
การพัฒนา PureData
การพัฒนา PureData
การพัฒนา PureData
การพัฒนา PureData

PureData เป็นภาษาเฉพาะ และคุณต้องใช้เวลาว่างของคุณเพื่อประสบความสำเร็จในการเย็บปะติดปะต่อกันที่ดี

แพทช์ PureData บางตัวจะพร้อมใช้งานใน GitHub

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

แนะนำ: