Სარჩევი:

Arduino MIDI კონტროლერის შექმნა: 9 ნაბიჯი (სურათებით)
Arduino MIDI კონტროლერის შექმნა: 9 ნაბიჯი (სურათებით)

ვიდეო: Arduino MIDI კონტროლერის შექმნა: 9 ნაბიჯი (სურათებით)

ვიდეო: Arduino MIDI კონტროლერის შექმნა: 9 ნაბიჯი (სურათებით)
ვიდეო: MKS Gen L - Marlin 1 1 9 (configuration.h) 2024, ივლისი
Anonim

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

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

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

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

Პროექტი

საკუთარი Arduino MIDI კონტროლერის შექმნით, ჩემი განზრახვა იყო სასიამოვნო პროექტის გაკეთება, ხმაურის ყველაზე დაბალი დონის შენარჩუნებაში. ის, რასაც ნებისმიერი დამწყები შეეძლო გაჰყოლოდა. ამის მისაღწევად, მე გამოვიყენე MIDI Fighter 3D, როგორც ძირითადი ინსპირაცია და ამოვიღე ყველა არა არსებითი თვისება.

ჩემი პროექტის მთლიანი ღირებულება იყო 30 დოლარამდე და მასალების ჩამონათვალი მართლაც მოკლე იყო (შვილობილი ბმულები):

  • არდუინო ლეონარდო (ან კლონი): $ 10 -დან $ 20 -მდე.
  • 16 x Sanwa ღილაკები 24 მმ (ან კლონი): 1 დოლარიდან 2.50 აშშ დოლარამდე თითო ღილაკზე.
  • გასაყიდი რკინა
  • 22 AWG ელექტრო მავთული

არდუინოს დაფა

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

მე მჭირდებოდა MIDI სიგნალების გაგზავნა კომპიუტერში და ამის უმარტივესი გზაა USB- ის საშუალებით. ნებისმიერი Arduino დაფაზე დაფუძნებული ATmega32u4 მიკროკონტროლერს აქვს ჩაშენებული USB კომუნიკაცია.

ოფიციალური Arduino დაფები მშობლიური USB მხარდაჭერით არის Arduino Due, Arduino Zero, Arduino Leonardo, Arduino Micro. ამ დაფებს აქვთ ინტეგრირებული USB მხარდაჭერა, რაც ნიშნავს რომ მათ შეუძლიათ იმოქმედონ როგორც USB MIDI მოწყობილობა.

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

Პირველი ნაბიჯები

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

დაფაზე კოდის ასატვირთად თქვენ უნდა გამოიყენოთ Arduino IDE. მათ ასევე აქვთ ვებ რედაქტორი, რომელიც ძალიან სასარგებლოა, მაგრამ მათ აქვთ შეზღუდული კვოტა დღეში რამდენჯერმე, რომლითაც შეგიძლიათ შეადგინოთ კოდი.

ნაბიჯი 1: ჩამონტაჟებული LED მოციმციმე

სასაცილოა როგორ "Hello World" ტექნიკის სამყაროში ციმციმებს LED- ს.

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

კოდი:

ნაბიჯი 2: LED მოციმციმე ხელით შეყვანისას

შემდეგი ლოგიკური ნაბიჯი იყო ერთიდაიგივე LED- ის დახუჭვა სიგნალის გაგზავნისას. მე ამოვიღე 2 დიუპონის მავთულის ერთი ბოლოების პლასტიკური საფარი და მეორე ბოლო დავუკავშირე დაფას:

  • პინ ნომერი 2: ერთ -ერთი ციფრული შეყვანა (დადებითი). ეს შეიძლება იყოს ნებისმიერი ციფრული პინი.
  • Pin GND: ნებისმიერი დაფის პინი (უარყოფითი).

ახლა, ყოველ ჯერზე, როდესაც მავთულხლართების ბოლოებს ვუერთდები, ვკეტავ წრეს და ამით შემიძლია შევასრულო კოდი შედეგად

ლეონარდოს 20 ციფრული პინიდან თითოეულს აქვს შიდა რეზისტორი (ნაგულისხმევად გათიშული), რომლის ჩართვაც შესაძლებელია INPUT_PULLUP- ის გამოყენებით. გაითვალისწინეთ, რომ ამწევი შეყვანა ნიშნავს ღილაკის მდგომარეობის შემობრუნებას:

  • მაღალი როდესაც წრე ღიაა (ღილაკი არ არის დაჭერილი).
  • LOW როდესაც წრე დახურულია (ღილაკს დაჭერით).

კოდი:

ნაბიჯი 3: დააინსტალირეთ MIDIUSB ბიბლიოთეკა

ეს ბიბლიოთეკა საშუალებას აძლევს Arduino დაფას USB შესაძლებლობებით იმოქმედოს როგორც MIDI ინსტრუმენტი USB– ზე. შეამოწმეთ ოფიციალური დოკუმენტაცია დამატებითი ინფორმაციისთვის.

Arduino IDE– ს გამოყენებით, თქვენ შეგიძლიათ დააინსტალიროთ დამატებითი Arduino ბიბლიოთეკები ბიბლიოთეკის მენეჯერის გამოყენებით:

  1. გახსენით IDE და დააჭირეთ "ესკიზის" მენიუს, შემდეგ "ბიბლიოთეკის ჩართვას", შემდეგ "ბიბლიოთეკების მართვას".
  2. მოძებნეთ MIDIUSB და დააჭირეთ ინსტალაციას.
  3. დასრულების შემდეგ, დაინსტალირებული ტეგი უნდა გამოჩნდეს MIDIUSB ბიბლიოთეკის გვერდით.
  4. დახურეთ ბიბლიოთეკის მენეჯერი.

ახლა ლეონარდოს შეუძლია MIDI შეტყობინებების გაგზავნა USB- ის საშუალებით! მაგრამ პირველ რიგში, საჭიროა გარკვეული წარმოდგენა იმის შესახებ, თუ როგორ მუშაობს MIDI.

როგორ მუშაობს MIDI

"MIDI (მუსიკალური ინსტრუმენტის ციფრული ინტერფეისი) არის სტანდარტული საკომუნიკაციო პროტოკოლი, რომელიც აკავშირებს ელექტრონულ მუსიკალურ ინსტრუმენტებს, კომპიუტერებს და მასთან დაკავშირებულ აუდიო მოწყობილობებს მუსიკის დასაკრავად." - ვიკიპედია

ის მართავს ღონისძიების შეტყობინებებს სხვა მითითებებთან ერთად დაკრული ნოტის სიჩქარითა და სიჩქარით

ამ კონკრეტულ პროექტში, 16 ღილაკიდან შეყვანა აგზავნის სხვადასხვა შეტყობინებებს USB- ის საშუალებით. ეს შეტყობინებები შეიძლება გარდაიქმნას კომპიუტერში ბგერად ნებისმიერი შესაბამისი პროგრამული უზრუნველყოფის გამოყენებით, როგორიცაა GarageBand ან Ableton Live.

MIDI შეტყობინების ანატომია

MIDI შეტყობინების გასაგზავნად, მე გამოვიყენე sendMIDI () მეთოდი MIDIUSB ბიბლიოთეკიდან, რომელიც მე დავაყენე მე –3 ნაბიჯზე.

ამ მეთოდს შეუძლია მიიღოს 4 პარამეტრი:

  • ღონისძიების ტიპი: ეს შეიძლება იყოს 0x09 ჩანიშვნის ჩართვისთვის (ნოტის დაკვრა) ან 0x08 ნოტის გამორთვისთვის (შეწყვიტეთ ნოტის დაკვრა).
  • შენიშვნა ჩართვა/გამორთვა: ღონისძიების ტიპი შერწყმულია MIDI არხთან (1-16). მე ვიყენებ მხოლოდ 1 არხს, ასე რომ ის არის 0x90 შენიშვნისთვის ჩართული ან 0x80 შენიშვნისთვის გამორთული.
  • შენიშვნის ნომერი: თითოეულ ნოტს აქვს დაკავშირებული რიცხვითი სიმაღლე (სიხშირის მასშტაბი).
  • სიჩქარე: 0 -დან (სიჩქარის გარეშე) 127 -მდე (ყველაზე სწრაფი).

ნაბიჯი 4: MIDI შეტყობინების გაგზავნა

მე ჩავრთე MIDIUSB ბიბლიოთეკა და ნაცვლად იმისა, რომ ჩამონტაჟებული LED მოციმციმე, გავგზავნე შენიშვნა.

კოდი:

⚠ მნიშვნელოვანია: ამ ეტაპიდან Arduino იქცევა MIDI USB კონტროლერად და ის წყვეტს კოდის USB- ის საშუალებით მიღებას.

როდესაც თქვენ დარჩებით იმ მდგომარეობაში, სადაც Arduino– ს პროგრამირება აღარ შეიძლება, მიჰყევით ამ ნაბიჯებს:

  1. დაიჭირეთ მომრგვალებული გადატვირთვის ღილაკი არდუინოს დაფაზე.
  2. დააჭირეთ ატვირთვას Arduino IDE– ზე.
  3. გაათავისუფლეთ გადატვირთვის ღილაკი.
  4. განახლებული კოდი აიტვირთება დაფაზე.

ნაბიჯი 5: გაგზავნეთ MIDI შეტყობინება თითოეული ღილაკიდან

გაგზავნის MIDI შეტყობინებას თითოეული ღილაკიდან
გაგზავნის MIDI შეტყობინებას თითოეული ღილაკიდან

ბოლო ნაბიჯი იყო ყველა ნაბიჯის ღილაკზე გამოსახვა. 16 ღილაკისთვის მე განვსაზღვრე მასშტაბი C2– დან E3b– მდე, ეს არის მოედნები 36 – დან 51 – მდე თანმიმდევრობით ქვემოდან ზემოდან და მარცხნიდან მარჯვნივ. შეამოწმეთ ეს ფაილი Arduino Tutorials– დან, რომ ნახოთ რა სიმაღლე შეესაბამება თითოეულ ნოტს.

მე გამოვიყენე ციფრული ქინძისთავები 2 -დან 12 -მდე და ანალოგური ქინძისთავები (მათი გამოყენება ციფრების სახით) A0- დან A4- მდე.

ასე გამოიყურება საბოლოო კოდი

ნაბიჯი 6: არხების ან ბანკების დაყენება (სურვილისამებრ)

არხების ან ბანკების დაყენება (სურვილისამებრ)
არხების ან ბანკების დაყენება (სურვილისამებრ)

იმ შემთხვევაში, თუ გსურთ დაამატოთ მეტი ღილაკი არხების ან ბანკების შეცვლის უნარით, მაგალითად MIDI Fighter 3D– ში (იხ. სურათი), Arduino Leonardo– ს აქვს კიდევ ოთხი ქინძისთავი, რომლის გამოყენებაც შეგიძლიათ. Arduino Leonardo– ს აქვს 20 ციფრული შესასვლელი/გამომავალი ქინძი, რომელთაგან მხოლოდ 16 გამოიყენება ნოტების სათამაშოდ.

თქვენ შეგიძლიათ გამოიყენოთ ეს დამატებითი ღილაკები კოდში ცვლადის გასაახლებლად და მისი მნიშვნელობა, როგორც პარამეტრი, გაგზავნოთ MidiUSB.sendMIDI მეთოდით:

gist.github.com/lean8086/ec8da7486ec3621f9f0b90542a06fcea

ნაბიჯი 7: საქმე

Იმ შემთხვევაში
Იმ შემთხვევაში
Იმ შემთხვევაში
Იმ შემთხვევაში

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

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

Unibody დიზაინი

ერთ -ერთი გამოწვევა, რომლის წინაშეც აღმოვჩნდი, იყო საქმის ისეთი მარტივი დიზაინი, რომ მას არ ჭირდებოდეს შეკრება და შესაძლებელი იყოს 3D ბეჭდვა ერთ ჯერზე.

ხრახნების ან წებოს გამოყენების თავიდან ასაცილებლად, მე მჭირდებოდა დანართის დიზაინი, რომელიც უზრუნველყოფს ელექტრონიკის ყველაზე მცირე წვდომას. დანამატის ჩემი ყველაზე დიდი შთაგონება იყო Mac Mini, რომელსაც ბოლოში აქვს წრის ფორმის ხვრელი. მე ასევე მინდოდა შემემუშავებინა ხრახნიანი სახურავი, მაგრამ მე გადავწყვიტე მისი გახსნა ელექტრონიკის გამოსაჩენად.

ჩამოტვირთეთ 3D დასაბეჭდი საქმე (322 KB). რეკომენდებული პარამეტრები: PLA, 0.15 მმ ფენა, 20% შევსება, დამხმარე შემსრულებლების მინიმუმ მომრგვალებული ქვედა ხვრელი, არდუინოს დამჭერები და მიკრო USB.

არდუინოს დაჭერა ხრახნების გარეშე

ლეონარდოს აქვს 4 ხვრელი იმისათვის, რომ დაფა ნებისმიერ შესაფერის საქმეში ჩააგდოს, მაგრამ ჩემი იდეა იყო გამეადვილებინა დაფის დამატება და ამოღება ქეისიდან.

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

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

ასამბლეა
ასამბლეა
ასამბლეა
ასამბლეა
ასამბლეა
ასამბლეა

ყველა ღილაკის ადგილზე ჩასმის შემდეგ, შევაერთე მოკლე შავი მავთულები, რომლებიც ვუერთებ მათ შორის ღილაკების ყველა უარყოფით ფეხს.

შემდეგ მე გავამაგრე გრძელი წითელი მავთულები თითოეული პოზიტიური ფეხიდან, რათა პირდაპირ დაფაზე დავუკავშირო.

არდუინოსთან მავთულის დასაკავშირებლად, მე დავჭრა და შევაერთე დიუპონის ბოლოები და დავაფარე ისინი სითბოს შემცირების მილით.

მე დავუკავშირე მავთულები დაფაზე იმავე თანმიმდევრობით, როგორც MIDI Fighter– ში. ქვემოდან ზემოდან და მარცხნიდან მარჯვნივ

ნაბიჯი 9: MIDI კონტროლერის გამოყენება

MIDI კონტროლერის გამოყენებით
MIDI კონტროლერის გამოყენებით

ნებისმიერი მუსიკალური პროგრამული უზრუნველყოფა (ან შესაფერისი აპარატურა) შეიძლება გამოყენებულ იქნას MIDI– ს მისაღებად და მუსიკის შესაქმნელად. ყველაზე რეკომენდირებულია Garage Band, Ableton Live და მე ვიცი, რომ არსებობს რამოდენიმე აპლიკაცია ტელეფონზე დასაყენებლად.

ყველა ეს ინსტრუმენტი სასარგებლოა თითის დასარტყამად წინასწარ განსაზღვრული ბგერების ჩატვირთვისათვის, მაგრამ ისინი უფრო დიდი მიზნებისთვის იყო შექმნილი. დამწყებთათვის ეს ინსტრუმენტები შეიძლება რთული იყოს.

MIDI ბრაუზერში

იმისათვის, რომ რაღაც უფრო მეტად შეესაბამებოდეს ამ პროექტს და მის სიმარტივეს, მე შევქმენი ვებ ინსტრუმენტი, რომელიც მთლიანად ორიენტირებულია MIDI კონტროლერებზე.

Punchy: WebMIDI და WebAudio განხორციელება MIDI კონტროლერებისთვის.

მას შეუძლია წაიკითხოს MIDI შეტყობინებები ნებისმიერ ბრაუზერში, რომელსაც აქვს WebMIDI JavaScript API. შემდეგ ის უკრავს ბგერებს სინთეზატორში (WebAudio API– ს გამოყენებით) ან სემპლერში, იტვირთება პერსონალური ხმები ნებისმიერი ხმის პაკეტიდან.

დააყენეთ Ableton Live

იმისათვის, რომ MIDI კონტროლერი იმუშაოს Ableton Live– ით, მიჰყევით ამ მარტივ ნაბიჯებს მათი ოფიციალური დოკუმენტაციიდან.

გადადით პარამეტრებზე → ბმული MIDI და დარწმუნდით, რომ "შეყვანის" ჩართულია "ტრეკი" და "დისტანციური" და გამომავალი ჩართულია "დისტანციური" ასევე მითითებულია სახელმძღვანელოში:

გირჩევთ: