Სარჩევი:

Arduino Uno Midi Fighter: 5 ნაბიჯი
Arduino Uno Midi Fighter: 5 ნაბიჯი

ვიდეო: Arduino Uno Midi Fighter: 5 ნაბიჯი

ვიდეო: Arduino Uno Midi Fighter: 5 ნაბიჯი
ვიდეო: Midi controller arduino uno тест первый 2024, ივლისი
Anonim
არდუინო უნო მიდი მებრძოლი
არდუინო უნო მიდი მებრძოლი

ეს ინსტრუქცია შეიქმნა სამხრეთ ფლორიდის უნივერსიტეტში მაკიაჟის პროექტის მოთხოვნის შესასრულებლად (www.makecourse.com)

DJ Techtools– ის პოპულარულ MidiFighter– ზე დაყრდნობით, ხელნაკეთი Arduino– ით აღჭურვილი მუსიკალური ინსტრუმენტის ციფრული ინტერფეისი (MIDI) კონტროლერი შეიძლება გამოყენებულ იქნას როგორც MIDI მოწყობილობა ციფრული აუდიო სადგურის (DAW) პროგრამულ უზრუნველყოფაზე. MIDI კონტროლერს შეუძლია გაგზავნოს და მიიღოს MIDI შეტყობინებები კომპიუტერიდან და შეიძლება გამოყენებულ იქნას უშუალოდ რომელი პროგრამული უზრუნველყოფის გამოყენება ხდება. გარდა ამისა, MIDI კონტროლერის კონტროლი სრულად არის დაკონფიგურირებული - რაც იმას ნიშნავს, რომ თითოეული ცალკეული ღილაკი, სლაიდერი და სახელური შეიძლება იყოს შედგენილი DAW– ს ნებისმიერ ფუნქციაზე. მაგალითად, ღილაკზე დაჭერით შესაძლებელია კონკრეტული ნოტის დაკვრა ან დაპროგრამება თქვენი აუდიო პროექტის ტემპის გადასატანად.

github.com/jdtar/Arduino-Midi-Controller

ნაბიჯი 1: მასალები

ქვემოთ მოცემულია ამ პროექტში გამოყენებული მასალებისა და ინსტრუმენტების ჩამონათვალი.

არდუინო უნო

პურის დაფა

4051/4067 მულტიპლექსერი

ჯუმბერის მავთულები

დამატებითი მავთული

2x 10k ohm წრფივი სლაიდ პოტენომეტრი

16x Sanwa 24 მმ ღილაკი

სითბოს შემცირება

გასაყიდი რკინა

Საპარსი

4.7 kΩ რეზისტორი

აკრილის ფურცელი (სახურავისთვის)

საბინაო ღილაკები და არდუინო

3D პრინტერი

ლაზერული საჭრელი

ნაბიჯი 2: დიზაინი

დიზაინი
დიზაინი
დიზაინი
დიზაინი

მე უკვე მომეცა საცხოვრებელი ჩემი MIDI კონტროლერისთვის პროექტის დაწყებამდე, ამიტომ დავხუმრე სახურავის ესკიზი, რათა ვიზუალიზაცია გამეკეთებინა, სადაც ყველაფერი უნდა განთავსებულიყო. ვიცოდი, რომ მინდოდა მინიმუმ 16 ღილაკი და რამდენიმე პოტენომეტრი, როგორც ფუნქცია, ამიტომ ვცდილობდი კომპონენტები მაქსიმალურად თანაბრად გამოვყო.

სახურავის განლაგების შედგენის შემდეგ, ფაილი გადმოვიტანე 1: 1 PDF ფორმატში და გავუგზავნე ლაზერულ საჭრელს აკრილის ფურცლის მოსაჭრელად. ხრახნიანი ხვრელებისთვის მე აღვნიშნე ადგილი, სადაც მინდოდა, რომ ხვრელები ყოფილიყო მარკერით და გავათბე აკრილს ცხელი ძაფით.

მიმაგრებულია 1: 1 PDF, რომელიც შეიძლება ამობეჭდოთ 1: 1 სახით და გაჭრათ ელექტრო ინსტრუმენტებით, თუ ლაზერული საჭრელი არ არის.

ნაბიჯი 3: მშენებლობა და გაყვანილობა

მშენებლობა და გაყვანილობა
მშენებლობა და გაყვანილობა
მშენებლობა და გაყვანილობა
მშენებლობა და გაყვანილობა
მშენებლობა და გაყვანილობა
მშენებლობა და გაყვანილობა

აკრილის მოჭრის შემდეგ აღმოვაჩინე, რომ აკრილი იყო ძალიან თხელი, რომ საკმარისად შეენარჩუნებინა ყველა კომპონენტი. შემდეგ მე ამოვიღე მეორე ფურცელი და დავაწებე ისინი, რაც მშვენივრად მუშაობდა.

კომპონენტების გაყვანილობას გარკვეული გამოცდა და შეცდომა დასჭირდა, მაგრამ დასრულდა Fritzing- ის ესკიზი. მე პირველად გავამაგრე მიწის მავთულები და 4.7kΩ რეზისტორი, შევიმუშავე და სითბო შევამცირე კავშირები ღილაკებზე. ორი სლაიდ პოტენომეტრის დამონტაჟება მოითხოვდა აკრილის ხრახნების დნობის ხვრელებს. მას შემდეგ, რაც ორი პოტენციომეტრი ხრახნიან, ისინი შეყვანილ იქნა A0 და A1 ანალოგურ ქინძისთავებამდე. მას შემდეგ, რაც გაყვანილობა დასრულდა, გამახსენდა, რომ ჩემი ფადერებისათვის არ არსებობდა სახელურები, არამედ მათი შეძენის ნაცვლად, მე დავბეჭდე სამკუთხა თავსახური 3D პრინტერის გამოყენებით, Autodesk Fusion 360- ში ესკიზებით და STL ფაილში ექსპორტით. დე

Arduino Uno– ს აქვს მხოლოდ 12 ხელმისაწვდომი ციფრული შეყვანის ქინძისთავები, მაგრამ 16 ღილაკი უნდა შეერთებულიყო. ამის კომპენსაციისთვის, მე შევუერთე 74HC4051 მულტიპლექსერი პურის დაფაზე, რომელიც იყენებს 4 ციფრულ შეყვანის ქინძისთავს და საშუალებას აძლევს მრავალ სიგნალს გამოიყენოს საერთო ხაზი, რის შედეგადაც 8 ხელმისაწვდომი ციფრული შეყვანის ქინძისთავი სულ 16 ციფრული ქინძისთავისთვის.

ღილაკების სწორად მიმაგრება იყო მხოლოდ 4x4 მატრიცის შექმნის საკითხი და მისი გამოყენება კოდში. მაგრამ სახიფათო ნაწილი ის იყო, რომ შეძენილ კონკრეტულ მულტიპლექსერს ჰქონდა სპეციფიური პინის განლაგება, რომელსაც ეხმარებოდა მონაცემთა ცხრილი და ასევე მქონდა მხედველობაში კონკრეტული შენიშვნის განლაგება, როდესაც ღილაკების გაყვანილობა დასრულდა, რაც ასე გამოიყურებოდა:

შენიშვნა მატრიცა

[C2] [C#2] [D2] [D#2]

[G#2] [A1] [A#2] [B1]

[E1] [F1] [F#1] [G1]

[C2] [C#2] [D2] [D#2]

PIN მატრიცა (M = MUX INPUT)

[6] [7] [8] [9]

[10] [11] [12] [13]

[M0] [M1] [M2] [M3]

[M4] [M5] [M6] [M7]

ნაბიჯი 4: პროგრამირება

პროგრამირება
პროგრამირება

შეკრების დასრულების შემდეგ, არდუინოს დაპროგრამება რჩება. თანდართული სკრიპტი ისეა დაწერილი, რომ ადვილად მორგებადია.

სკრიპტის დასაწყისი მოიცავს MIDI.h ბიბლიოთეკას და მაკონტროლებელ ბიბლიოთეკას, რომელიც ნასესხებია Notes and Volts ბლოგიდან, რომლებიც ორივე შედის კოდის zip ფაილში. კონტროლერის ბიბლიოთეკის გამოყენებით, შეიძლება შეიქმნას ღილაკების, პოტენომეტრების და მულტიპლექსური ღილაკების ობიექტები, რომლებიც შეიცავს მონაცემების მნიშვნელობებს, რომელიც შეიცავს ნოტის ნომერს, საკონტროლო მნიშვნელობებს, ჩანაწერის სიჩქარეს, MIDI არხის ნომერს და ა.შ. MIDI.h ბიბლიოთეკა საშუალებას აძლევს MIDI I/O კომუნიკაციებს Arduino სერიული პორტები, რომელიც თავის მხრივ იღებს მონაცემებს კონტროლერის ობიექტებიდან, გარდაქმნის მათ MIDI შეტყობინებებად და აგზავნის შეტყობინებებს რომელ midi ინტერფეისთან არის დაკავშირებული.

სკრიპტის ბათილად დაყენების ნაწილი იწყებს ყველა არხის გამორთვას და ასევე იწყებს სერიულ კავშირს 115200 baud– ზე, სიჩქარე უფრო სწრაფად ვიდრე MIDI სიგნალები იცვლება.

ძირითადი მარყუჟი არსებითად იღებს ღილაკების მასივებს და მულტიპლექსურ ღილაკებს და აწარმოებს for loop რომელიც ამოწმებს ღილაკს დაჭერილი ან გათავისუფლებული და აგზავნის შესაბამის მონაცემთა ბაიტებს midi ინტერფეისზე. პოტენომეტრის მარყუჟი ამოწმებს პოტენომეტრის პოზიციას და აგზავნის შესაბამის ძაბვის ცვლილებებს მიდი ინტერფეისზე.

ნაბიჯი 5: დაყენება

Image
Image
Აწყობა
Აწყობა
Აწყობა
Აწყობა
Აწყობა
Აწყობა

მას შემდეგ რაც სკრიპტი დატვირთულია Arduino– ზე, შემდეგი ნაბიჯი არის ჩართვა და თამაში. თუმცა, გამოყენებამდე რამდენიმე ნაბიჯია.

OSX– ზე, Apple– მა ჩართო ფუნქცია ვირტუალური midi მოწყობილობების შესაქმნელად, რომელთა წვდომა შესაძლებელია Mac– ზე Audio Midi Setup პროგრამის საშუალებით. მას შემდეგ რაც შეიქმნა ახალი მოწყობილობა, Hairless MIDI შეიძლება გამოყენებულ იქნას სერიული კავშირის შესაქმნელად Arduino– სა და ახალ ვირტუალურ midi მოწყობილობას შორის. სერიული კავშირი Arduino– დან Hairless MIDI– ს საშუალებით მუშაობს baud– ის სიჩქარით, რომელიც განსაზღვრულია სკრიპტის ბათილად დაყენებული ნაწილში და ექვივალენტური უნდა იყოს დაყენებული თმის ვარცხნილობის MIDI უპირატესობის პარამეტრებში.

ტესტირების მიზნით მე გამოვიყენე Midi Monitor, რომ შევამოწმო სწორი მონაცემები იგზავნებოდა სერიული-MIDI კავშირის გათვალისწინებით. მას შემდეგ რაც დავადგინე, რომ თითოეული ღილაკი იგზავნებოდა სწორი მონაცემებით სწორი არხებით, მე შევქმენი MIDI სიგნალი Ableton Live 9 -ზე მარშრუტისთვის, როგორც MIDI შეყვანის. აბლეტონში მე შემეძლო თითოეული ღილაკზე დამეხატა დაჭრილი აუდიო ნიმუშები და მეთამაშა თითოეული ნიმუში.

გირჩევთ: