สารบัญ:

Midi Record/Play/Overdub ด้วยการเชื่อมต่อแบบ 5 พิน: 3 ขั้นตอน
Midi Record/Play/Overdub ด้วยการเชื่อมต่อแบบ 5 พิน: 3 ขั้นตอน

วีดีโอ: Midi Record/Play/Overdub ด้วยการเชื่อมต่อแบบ 5 พิน: 3 ขั้นตอน

วีดีโอ: Midi Record/Play/Overdub ด้วยการเชื่อมต่อแบบ 5 พิน: 3 ขั้นตอน
วีดีโอ: MPC ONE - How To Connect & Record External Hardware Synths 2024, กรกฎาคม
Anonim
Midi Record/Play/Overdub พร้อมการเชื่อมต่อแบบ 5 พิน
Midi Record/Play/Overdub พร้อมการเชื่อมต่อแบบ 5 พิน

* ใช้ชิป ATMega-1284 ที่ความเร็ว 8 MHz พร้อม RAM 4 k Bytes และ eeprom 4 kBytes

* ใช้ขั้วต่อ DIN 5 พินแบบเก่า

* อนุญาตให้บันทึกและเล่น รวมทั้งโอเวอร์ดับ: บันทึกพร้อมกับสิ่งที่คุณบันทึกไว้ก่อนหน้านี้

* เมนูเต็ม

* ความสามารถในการตั้งชื่อและจัดเก็บไฟล์ใน eeprom

* จังหวะที่แก้ไขได้และลายเซ็นเวลา

* การหาปริมาณเบื้องต้น

ประโยชน์* หลักฐานของแนวคิด: คุณอาจพบว่าโครงการนี้ท้าทาย

บทช่วยสอนนี้ประกอบด้วยอะไร:

* ส่วนรายการ

* รายงานโครงการ (แนบมากับแผงนี้)

มีข้อมูลมากมายที่คุณต้องรู้เกี่ยวกับโครงการ

* ลิงก์ไปยังรหัส C บน GitHub

github.com/sugarvillela/ATMega1284

* คำแนะนำทีละขั้นตอนสำหรับการสร้างโครงการและการปรับรหัส

ขั้นตอนที่ 1: รายการชิ้นส่วน

ส่วนรายการ
ส่วนรายการ

บางส่วนที่ฉันได้รับที่โรงเรียนในราคาลดพิเศษ บางอย่างได้มาที่ร้านและจ่ายเงินมากเกินไป หากคุณมีเวลา หาข้อมูลทั้งหมดนี้ทางออนไลน์

1 เขียงหั่นขนม รุ่นใดก็ได้ ขนาดใกล้เคียงกับรูปแนะนำ $20

1 ไมโครโปรเซสเซอร์ รุ่น ATMega1284 ราคา $5

นี่คือชิปอเนกประสงค์ที่มีคุณสมบัติที่ยอดเยี่ยม ค้นหาแผ่นข้อมูลที่นี่:

ww1.microchip.com/downloads/en/devicedoc/atmel-42718-atmega1284_datasheet.pdf

1 แหล่งจ่ายไฟ 5 โวลต์

1 ATMEL-ICE

นี่คืออินเทอร์เฟซระหว่างคอมพิวเตอร์ของคุณและไมโครโปรเซสเซอร์ คุณต้องใช้ซอฟต์แวร์แก้ไขโค้ด (IDE) และคอมไพเลอร์ที่สามารถคอมไพล์ C กับสถาปัตยกรรมของชิป ATMega ได้ Atmel จัดเตรียมสภาพแวดล้อม Atmel Studio ที่ตรงตามข้อกำหนดเหล่านี้ ดาวน์โหลดได้ที่นี่:

1 ออปโตคัปเปลอร์ รุ่น 6N138 หรือเทียบเท่า $5

นี่สำหรับอินพุต; มาตรฐาน midi กำหนดให้อุปกรณ์แยกออกจากกันเพื่อป้องกันการวนซ้ำของกราวด์ ฉันใช้ชิปที่เทียบเท่า NEC ที่มีการจัดเรียงพินเอาต์เหมือนกัน ดูภาพด้านบนสำหรับข้อมูลหรือเพียงแค่ google '6n138 pinout' หากคุณใช้โมเดลที่มีการกำหนดพินที่แตกต่างกัน ให้ค้นหาพินที่เกี่ยวข้อง (อย่างระมัดระวัง)

จอ LCD 2 จอ รุ่น 1602A1 จอละ $3

ฉันใช้จอแสดงผล 2*16 ซึ่งหมายความว่ามี 2 แถว แต่ละแถวกว้าง 16 อักขระ รหัสถูกเขียนขึ้นโดยเฉพาะสำหรับสิ่งเหล่านี้ ดังนั้นพยายามใช้รหัสเดียวกัน การเชื่อมต่อคือ: 8 สายข้อมูลและ 2 สายควบคุม คุณสามารถแชร์สายข้อมูลระหว่างสองหน้าจอได้ แต่คุณต้องมี 2 สายควบคุมสำหรับแต่ละหน้าจอ รวมเป็น 4 สายควบคุม โปรเจ็กต์ของฉันใช้บัส C สำหรับสายข้อมูล LCD และแทะด้านบนของบัส D สำหรับสายควบคุม หากคุณต่อสายของคุณแตกต่างไปจากเดิม ให้เปลี่ยนเอาท์พุตบัสในโค้ดของคุณ

ลำโพง 1 ตัว

สำหรับเอาต์พุตเครื่องเมตรอนอม ผู้พูดคนใดจะทำ คุณจะต้องป้อนคลื่นสี่เหลี่ยม 3-5 โวลต์ ดังนั้นจึงไม่จำเป็นต้องฟังดูสวยงาม คุณยังสามารถเชื่อมต่อกับเครื่องขยายเสียงภายนอกได้

1 Capacitor เพื่อทำให้คลื่นสี่เหลี่ยมที่ส่งออกไปยังลำโพงอ่อนลง

ขั้วต่อ DIN 5 ขา 2 ตัว ตัวผู้หรือตัวเมีย

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

ตัวต้านทาน 180-330 โอห์ม 1k-10kOhm

คุณอาจต้องทดลองกับค่าตัวต้านทานเพื่อให้ออปโตคัปเปลอร์ติดตามอินพุตได้เร็วพอ

ไฟ LED

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

สายไฟ สายไฟจำนวนมาก

เกจ 20-22 สายแข็ง ยาว สั้น เล็ก.

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

ไปที่ github เพื่อรับรหัส:

* ตรวจสอบให้แน่ใจว่าคุณได้อ่านและทำความเข้าใจโค้ดแล้ว เนื่องจากคุณอาจต้องแก้ไขโค้ดเพื่อให้พอดีกับฮาร์ดแวร์ที่แตกต่างกัน

* รายงานโครงการบนแผงแนะนำประกอบด้วยคำอธิบายโดยละเอียดของโมดูลซอฟต์แวร์และวิธีการโต้ตอบ

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

ขั้นตอนที่ 3: การเดินสายไฟเบื้องต้น (โปรดดูภาพโครงการเพื่อเป็นแนวทาง)

การเดินสายไฟเบื้องต้น (ดูภาพโครงการเพื่อเป็นแนวทาง)
การเดินสายไฟเบื้องต้น (ดูภาพโครงการเพื่อเป็นแนวทาง)
การเดินสายไฟเบื้องต้น (ดูภาพโครงการเพื่อเป็นแนวทาง)
การเดินสายไฟเบื้องต้น (ดูภาพโครงการเพื่อเป็นแนวทาง)

หมายเหตุเกี่ยวกับภาพโครงการก่อนที่เราจะเริ่ม

ในภาพ ออปโตคัปเปลอร์คือชิปตัวสุดท้ายทางด้านขวา และตัวประมวลผลคือชิปขนาดใหญ่ทางด้านซ้าย

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

สิ่งที่เป็นสีดำทรงกลมคือลำโพง (เสียง piezo)

ปุ่มอยู่ซ้ายบน ค่อนข้างไกลจากบัส A ที่ด้านล่างขวาของชิป

หน้าจอ LCD ด้านซ้ายคือ LCD 0 ส่วนด้านขวาคือ LCD 1

ในคำแนะนำเหล่านี้ ฉันจะถือว่าคุณใช้ส่วนที่ระบุ (ไม่ว่าจะระบุหมายเลขรุ่นในรายการชิ้นส่วน)

ต่อสายไฟ

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

ชิป

ติดตั้งชิป ATMega ระวังอย่าให้หมุดงอ (เป็นความระมัดระวังสำหรับชิปใดๆ ก็ตาม) และตรวจดูให้แน่ใจว่าได้เสียบเข้าที่แล้ว

ติดตั้งออปโตคัปเปลอร์ที่อยู่ติดกับโปรเซสเซอร์

ต่อรางจ่ายไฟเข้ากับพินที่เหมาะสมบนโปรเซสเซอร์และออปโตคัปเปลอร์

LCDs

อ่านไฟล์ LCDhookup.pdf ที่รวมไว้ (ด้านล่าง) เพื่อขอความช่วยเหลือในการเชื่อมต่อ LCD

แต่ละหน้าจอมีขั้วต่อสายไฟสองจุดและขั้วต่อกราวด์สามจุด

Pin 3 เป็นตัวควบคุมความสว่างซึ่งหากตั้งค่าผิดจะทำให้มองไม่เห็นเนื้อหาบนหน้าจอ หากคุณมีโพเทนชิออมิเตอร์แบบพกพา ให้ใช้สิ่งนี้เพื่อปรับแรงดันไฟฟ้าควบคุม คุณยังสามารถลองใช้ตัวต้านทานแบบตายตัวเพื่อให้ได้แรงดันไฟประมาณ 1/2 ของ VCC

พิน 4 และ 6 บน LCD 0 เชื่อมต่อกับ D4 และ D5 บนโปรเซสเซอร์ สิ่งเหล่านี้ใช้เพื่อเปิดใช้งานและรีเซ็ตหน้าจอ

พิน 4 และ 6 บน LCD 1 เชื่อมต่อกับ D6 และ D7 บนโปรเซสเซอร์

พิน 7-17 บน LCD ทั้งสองเชื่อมต่อกับ C0-C7 บนโปรเซสเซอร์ นี่คือบัสข้อมูลที่ใช้ร่วมกัน แต่ละหน้าจอจะละเว้นข้อมูลจนกว่าสัญญาณควบคุมจะเข้ามาที่ขา 4 และ 6

อ่าน: ข้อมูล LCD และข้อมูลเพิ่มเติมเพื่อช่วยให้เข้าใจว่าหน้าจอ LCD ทำงานอย่างไร

ปุ่ม

เชื่อมต่อสี่ปุ่มกับ A2-A4 บนโปรเซสเซอร์ (ฉันเปิด A1 ไว้สำหรับอินพุตตัวแปลง A/D แต่ไม่ได้ใช้)

ในชิปลอจิกประเภทใดก็ตาม อินพุตที่ไม่ได้เชื่อมต่อจะลอยสูง ซึ่งหมายความว่าโปรเซสเซอร์จะเห็น 1 บนอินพุตนั้น เพื่อควบคุมสิ่งนี้ คุณต้องเชื่อมต่อพินกับกราวด์ผ่านตัวต้านทาน ฉันต่อปุ่มให้อยู่ที่กราวด์ (ผ่านตัวต้านทาน) เมื่อไม่ได้กด และสูงเมื่อกด ใช้ตัวต้านทาน 330 ถึง 1k เพื่อจุดประสงค์นี้

อีกทางหนึ่งและอาจมีประสิทธิภาพด้านพลังงานมากกว่า คุณสามารถวางปุ่มให้สูงเมื่อไม่ได้กด และกดต่ำเมื่อกด คุณจะต้องเปลี่ยนรหัส (buttonBus.c) เพื่อค้นหา ~PINA แทน PINA

แนะนำ: