Სარჩევი:
- ნაბიჯი 1: მასალები
- ნაბიჯი 2: დიზაინი
- ნაბიჯი 3: მშენებლობა და გაყვანილობა
- ნაბიჯი 4: პროგრამირება
- ნაბიჯი 5: დაყენება
ვიდეო: Arduino Uno Midi Fighter: 5 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:18
ეს ინსტრუქცია შეიქმნა სამხრეთ ფლორიდის უნივერსიტეტში მაკიაჟის პროექტის მოთხოვნის შესასრულებლად (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: დაყენება
მას შემდეგ რაც სკრიპტი დატვირთულია 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 შეყვანის. აბლეტონში მე შემეძლო თითოეული ღილაკზე დამეხატა დაჭრილი აუდიო ნიმუშები და მეთამაშა თითოეული ნიმუში.
გირჩევთ:
Arduino Uno თევზის მიმწოდებელი 6 იაფი და მარტივი ნაბიჯი!: 6 ნაბიჯი
Arduino Uno თევზის მიმწოდებელი 6 იაფი და მარტივი ნაბიჯი! შინაური ცხოველების მქონე ადამიანებს, ალბათ, იგივე პრობლემა ჰქონდათ, როგორც მე: შვებულება და დავიწყება. მე მუდმივად მავიწყდებოდა ჩემი თევზის გამოკვება და ყოველთვის ვცდილობდი ასე გამეკეთებინა სანამ ის წავიდოდა
უფრო ძლიერი Arduino-UNO, Massduino-UNO: 9 ნაბიჯი
უფრო ძლიერი Arduino-UNO, Massduino-UNO: რა არის Massduino? Massduino არის ახალი პროდუქციის ხაზი, რომელიც აერთიანებს Arduino პლატფორმას პერიფერიულ-მდიდარ, მოსახერხებელ და სწრაფ განვითარებას, დაბალ ღირებულებას და ადვილად წარმოების ფართომასშტაბიანი წარმოების უპირატესობებს. Arduino– ს თითქმის ყველა კოდი შეიძლება იყოს
MIDI ნაბიჯი ინტერფეისი: 12 ნაბიჯი (სურათებით)
MIDI ნაბიჯი ინტერფეისი: ესპანური ვერსია აქ. ამ სასწავლო ჩვენ გაჩვენებთ თუ როგორ უნდა გააკეთოთ მსუბუქი და ხმოვანი ინტერფეისი, რომლის გამოყენებაც შესაძლებელია " სიმონ ამბობს " და როგორც MIDI ინტერფეისი. ორივე რეჟიმი ითამაშებს თქვენს ფეხებს. ფონზე პროექტი დაიბადა, რადგან
Arduino დაფუძნებული MIDI Fighter (შეხებით მგრძნობიარე): 7 ნაბიჯი (სურათებით)
Arduino დაფუძნებული MIDI Fighter (Touch Sensitive): MIDI ნიშნავს მუსიკალური ინსტრუმენტის ციფრულ ინტერფეისს. აქ ჩვენ ვქმნით მგრძნობიარე MIDI გამანადგურებელს. მას აქვს 16 ბალიში. ეს შეიძლება გაიზარდოს ან შემცირდეს. აქ მე გამოვიყენე 16 შეზღუდული arduino ქინძისთავების გამო. ასევე გამოვიყენე ანალოგური შეყვანის ქინძისთავები
MIDI 5V LED Strip Light Controller for Spielatron ან სხვა MIDI Synth: 7 ნაბიჯი (სურათებით)
MIDI 5V LED ზოლის სინათლის კონტროლერი Spielatron– ისთვის ან სხვა MIDI Synth– ისთვის: ეს კონტროლერი ანათებს სამ ფერადი LED ზოლების შუქს 50mS თითო შენიშვნაზე. ლურჯი G5– დან D#6 – მდე, წითელი E6– დან B6– მდე და მწვანე C7– დან G7– მდე. კონტროლერი არის ALSA MIDI მოწყობილობა, ასე რომ MIDI პროგრამულ უზრუნველყოფას შეუძლია LED- ებზე გამოსვლა ერთდროულად როგორც MIDI სინთეტიკური მოწყობილობა