สารบัญ:
- ขั้นตอนที่ 1: รายการชิ้นส่วน
- ขั้นตอนที่ 2: รหัส C
- ขั้นตอนที่ 3: การเดินสายไฟเบื้องต้น (โปรดดูภาพโครงการเพื่อเป็นแนวทาง)
วีดีโอ: Midi Record/Play/Overdub ด้วยการเชื่อมต่อแบบ 5 พิน: 3 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:06
* ใช้ชิป 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
แนะนำ:
DIY MIDI CONTROLLER USB Plug & Play (อัปเกรดวงแหวน NEOPIXEL): 12 ขั้นตอน
DIY MIDI CONTROLLER USB Plug & Play (UPGRADE NEOPIXEL RING): MAO ที่หลงใหลและดนตรีอิเล็กทรอนิกส์ แต่ยังเห็นว่าเป็นไปได้ที่จะสร้างอินเทอร์เฟซ Midi ในแบบของคุณ ฉันสร้างโพเทนชิโอมิเตอร์ 6 ตัวและปุ่ม 12 ปุ่ม (เปิด/ปิด) แต่เพื่อให้จุดนั้นยากขึ้น ที่มันเป็นแล้วฉันต้องการเพิ่ม visual indicat
พิน Arduino AREF: 6 ขั้นตอน
Arduino AREF Pin: ในบทช่วยสอนนี้ เราจะมาดูวิธีที่คุณสามารถวัดแรงดันไฟฟ้าที่มีขนาดเล็กลงและมีความแม่นยำมากขึ้นโดยใช้พินอินพุตแบบอะนาล็อกบน Arduino หรือบอร์ดที่เข้ากันได้ร่วมกับพิน AREF อย่างไรก็ตาม ก่อนอื่นเราจะทำการแก้ไขบางอย่างเพื่อให้คุณได้รับความเร็ว
VISUINO ลูกเต๋ากลิ้งโดยใช้โมดูล OLED ขนาด 0.96 นิ้ว 4 พิน: 7 ขั้นตอน
VISUINO Rolling Dice ใช้โมดูล OLED ขนาด 0.96 นิ้ว 4 ขา: ในบทช่วยสอนนี้ เราจะใช้ OLED Lcd และ Visuino เพื่อสร้าง Rolling Dice เมื่อเรากดปุ่มบนเขียงหั่นขนมของเรา ดูวิดีโอสาธิต
DIP Tune Selector โดยใช้ 1 พิน: 4 ขั้นตอน
DIP Tune Selector ใช้ 1 พิน: เมื่อก่อนฉันทำงานกับ "กล่องดนตรี" โปรเจ็กต์ที่ต้องเลือกระหว่างตัวอย่างเพลงต่างๆ มากถึง 10 รายการ ตัวเลือกที่เป็นธรรมชาติสำหรับการเลือกจูนเฉพาะคือสวิตช์จุ่ม 4 พินเนื่องจากสวิตช์ 4 ตัวมีการตั้งค่าที่แตกต่างกัน 24=16 ชม
บอร์ดพัฒนา PIC 18 พิน: 3 ขั้นตอน
บอร์ดพัฒนา PIC 18 พิน: ฉันเคยเล่นกับ Microchip PIC มานานแล้ว แต่มักจะทำโดยไม่มีบอร์ดพัฒนาบางรูปแบบอยู่เสมอ ด้วยเหตุนี้ ฉันได้ออกแบบบอร์ดพื้นฐานที่ฉันหวังว่าจะได้รับข้อมูลบางอย่าง ยังไม่ได้ทำบอร์ดนี้เลยเพราะรอกิ