সুচিপত্র:

Arduino Uno Midi Fighter: 5 ধাপ
Arduino Uno Midi Fighter: 5 ধাপ

ভিডিও: Arduino Uno Midi Fighter: 5 ধাপ

ভিডিও: Arduino Uno Midi Fighter: 5 ধাপ
ভিডিও: I built an Arcade DIY MIDI controller with an Arduino Pro Micro: The Fliper 2024, জুলাই
Anonim
Arduino Uno Midi Fighter
Arduino Uno Midi Fighter

এই নির্দেশনাটি দক্ষিণ ফ্লোরিডা বিশ্ববিদ্যালয়ে মেককোর্সের প্রকল্পের প্রয়োজনীয়তা পূরণের জন্য তৈরি করা হয়েছিল (www.makecourse.com)

ডিজে টেকটুলসের জনপ্রিয় মিডিফাইটারের উপর ভিত্তি করে, এই বাড়িতে তৈরি আরডুইনো চালিত মিউজিক্যাল ইন্সট্রুমেন্ট ডিজিটাল ইন্টারফেস (এমআইডিআই) কন্ট্রোলারটি যেকোনো ডিজিটাল অডিও ওয়ার্কস্টেশন (ডিএডব্লিউ) সফটওয়্যার জুড়ে এমআইডিআই ডিভাইস হিসেবে ব্যবহার করা যেতে পারে। একটি MIDI নিয়ামক একটি কম্পিউটার থেকে MIDI বার্তা পাঠাতে এবং গ্রহণ করতে পারে এবং যে কোন সফটওয়্যার ব্যবহার করা হচ্ছে তা সরাসরি নিয়ন্ত্রণ করতে ব্যবহার করা যেতে পারে। উপরন্তু, একটি MIDI নিয়ামক নিয়ন্ত্রণ সম্পূর্ণরূপে স্বনির্ধারিত - যার মানে হল যে প্রতিটি পৃথক বোতাম, স্লাইডার এবং knob একটি DAW মধ্যে কোন ফাংশন ম্যাপ করা যাবে। উদাহরণস্বরূপ, একটি বোতাম টিপে একটি নির্দিষ্ট নোট বাজানো বা আপনার অডিও প্রকল্পের টেম্পো টগল করার জন্য প্রোগ্রাম করা যেতে পারে।

github.com/jdtar/Arduino-Midi-Controller

ধাপ 1: উপকরণ

নীচে এই প্রকল্পে ব্যবহৃত উপকরণ এবং সরঞ্জামগুলির একটি তালিকা রয়েছে।

আরডুইনো উনো

ব্রেডবোর্ড

4051/4067 মাল্টিপ্লেক্সার

জাম্পার তার

অতিরিক্ত তার

2x 10k ওহম লিনিয়ার স্লাইড পটেন্টিওমিটার

16x সানওয়া 24 মিমি বোতাম

তাপ সঙ্কুচিত

তাতাল

ধারালো অস্ত্র

4.7 kΩ প্রতিরোধক

এক্রাইলিক শীট (forাকনা জন্য)

বোতাম এবং Arduino জন্য হাউজিং

3D প্রিন্টার

লেজার কাটার

ধাপ 2: নকশা

নকশা
নকশা
নকশা
নকশা

প্রকল্পটি শুরু করার আগে আমাকে আমার MIDI নিয়ামকের জন্য ইতিমধ্যে আবাসন প্রদান করা হয়েছিল, তাই সবকিছু কোথায় স্থাপন করা হবে তা কল্পনা করার জন্য আমি idাকনার জন্য একটি স্কেচ উপহাস করেছি। আমি জানতাম যে আমি একটি বৈশিষ্ট্য হিসাবে কমপক্ষে 16 টি বোতাম এবং একটি দম্পতি potentiometers চেয়েছিলাম তাই আমি যতটা সম্ভব সমানভাবে উপাদানগুলিকে স্থান দেওয়ার চেষ্টা করেছি।

Idাকনার জন্য লেআউট তৈরি করার পরে, আমি ফাইলটি 1: 1 পিডিএফ হিসাবে এক্সপোর্ট করেছি এবং এক্রাইলিকের একটি শীট কাটার জন্য এটি একটি লেজার কাটারে পাঠিয়েছি। স্ক্রু গর্তের জন্য, আমি চিহ্নিত করেছি যেখানে আমি ছিদ্রগুলি মার্কারের সাথে থাকতে চাই এবং গরম ফিলামেন্ট দিয়ে এক্রাইলিক গলিয়েছি।

1: 1 পিডিএফ সংযুক্ত করা হয়েছে যা 1: 1 হিসাবে মুদ্রিত হতে পারে এবং যদি লেজার কাটার পাওয়া না যায় তবে পাওয়ার টুল দিয়ে কাটা যায়।

ধাপ 3: নির্মাণ এবং তারের

নির্মাণ এবং তারের
নির্মাণ এবং তারের
নির্মাণ এবং তারের
নির্মাণ এবং তারের
নির্মাণ এবং তারের
নির্মাণ এবং তারের

এক্রাইলিক কাটার পরে, আমি জানতে পারলাম যে এক্রাইলিক খুব পাতলা ছিল যা সমস্ত উপাদানগুলিকে পর্যাপ্তভাবে সমর্থন করে। আমি তারপর অন্য একটি শীট কেটে এবং তাদের একসঙ্গে আঠালো যা পুরোপুরি কাজ করার জন্য ঘটেছে।

উপাদানগুলি ওয়্যারিং কিছু ট্রায়াল এবং ত্রুটি নিয়েছিল কিন্তু ফলস্বরূপ ফ্রিজিং স্কেচ সংযুক্ত ছিল। আমি প্রথমে মাটির তারের এবং 4.7kΩ প্রতিরোধক, সোল্ডার এবং তাপ বোতামগুলিতে সংযোগগুলি সঙ্কুচিত করেছি। দুটি স্লাইড পটেন্টিওমিটার মাউন্ট করার জন্য এক্রাইলিকের স্ক্রুগুলির জন্য গলানোর গর্ত প্রয়োজন। দুটি potentiometers মধ্যে screwed পরে, তারা A0 এবং A1 এনালগ পিন পর্যন্ত তারযুক্ত ছিল। ওয়্যারিং সম্পূর্ণ হওয়ার পরে, আমি মনে রাখি যে আমার ফেডারদের জন্য কোন নব ক্যাপ ছিল না তাই সেগুলি কেনার পরিবর্তে, আমি কিছু নব ক্যাপ অটোডেস্ক ফিউশন 360 এ স্কেচ করে এবং একটি এসটিএল ফাইলে রপ্তানি করে 3-ডি প্রিন্টার ব্যবহার করে মুদ্রণ করেছি। দে

আরডুইনো ইউনোতে কেবল 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]

পিন ম্যাট্রিক্স (M = MUX ইনপুট)

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

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

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

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

ধাপ 4: প্রোগ্রামিং

প্রোগ্রামিং
প্রোগ্রামিং

একবার সমাবেশ সম্পন্ন হলে, Arduino প্রোগ্রামিং সব বাকি আছে। সংযুক্ত স্ক্রিপ্টটি এমনভাবে লেখা হয়েছে যে এটি সহজেই কাস্টমাইজযোগ্য।

স্ক্রিপ্টের শুরুতে MIDI.h লাইব্রেরি এবং নোটস এবং ভোল্ট ব্লগ থেকে ধার করা একটি নিয়ামক লাইব্রেরি রয়েছে যা উভয়ই কোডের জিপ ফাইলে অন্তর্ভুক্ত। কন্ট্রোলার লাইব্রেরি ব্যবহার করে, বোতাম, পোটেন্টিওমিটার এবং মাল্টিপ্লেক্সড বোতামগুলির জন্য বস্তু তৈরি করা যেতে পারে যাতে নোট নম্বর, নিয়ন্ত্রণ মান, নোট বেগ, MIDI চ্যানেল নম্বর ইত্যাদি অন্তর্ভুক্ত থাকে। MIDI.h লাইব্রেরি MIDI I/O যোগাযোগ সক্ষম করে Arduino সিরিয়াল পোর্টগুলি যা নিয়ামক বস্তুর থেকে তথ্য গ্রহণ করে, তাদের MIDI বার্তাগুলিতে রূপান্তর করে এবং যে কোনও মিডি ইন্টারফেস সংযুক্ত থাকে সেই বার্তাগুলি পাঠায়।

স্ক্রিপ্টের অকার্যকর সেটআপ অংশটি সমস্ত চ্যানেল বন্ধ করে দেয় এবং 115200 বাউডে একটি সিরিয়াল সংযোগও শুরু করে, যা MIDI সংকেত বিনিময়ের চেয়ে দ্রুততর।

প্রধান লুপটি মূলত বোতাম এবং মাল্টিপ্লেক্সড বোতামের অ্যারে নেয় এবং একটি লুপ চালায় যা বাটন টিপানো হয়েছে কি না তা পরীক্ষা করে এবং মিডি ইন্টারফেসে সংশ্লিষ্ট ডেটা বাইট পাঠায়। Potentiometer লুপ potentiometer এর অবস্থান পরীক্ষা করে এবং সংশ্লিষ্ট ভোল্টেজ পরিবর্তনগুলি মিডি ইন্টারফেসে ফেরত পাঠায়।

ধাপ 5: সেটআপ

Image
Image
সেটআপ
সেটআপ
সেটআপ
সেটআপ
সেটআপ
সেটআপ

একবার স্ক্রিপ্টটি আরডুইনোতে লোড হয়ে গেলে, পরবর্তী পদক্ষেপটি প্লাগ এবং প্লে করা। তবে এটি ব্যবহার করার আগে কয়েকটি ধাপ রয়েছে।

ওএসএক্স -এ, অ্যাপল ভার্চুয়াল মিডি ডিভাইসগুলি তৈরি করার জন্য একটি বৈশিষ্ট্য অন্তর্ভুক্ত করেছে যা ম্যাকগুলিতে অডিও মিডি সেটআপ অ্যাপ্লিকেশনের মাধ্যমে অ্যাক্সেস করা যায়। একবার নতুন ডিভাইস তৈরি হয়ে গেলে, হেয়ারলেস MIDI আরডুইনো এবং নতুন ভার্চুয়াল মিডি ডিভাইসের মধ্যে একটি সিরিয়াল সংযোগ তৈরি করতে ব্যবহার করা যেতে পারে। Arduino থেকে হেয়ারলেস MIDI এর মাধ্যমে সিরিয়াল সংযোগটি স্ক্রিপ্টের অকার্যকর সেটআপ অংশে সংজ্ঞায়িত বড হারে কাজ করে এবং হেয়ারলেস MIDI পছন্দ সেটিংসে সমতুল্য সেট করা আবশ্যক।

পরীক্ষার উদ্দেশ্যে আমি মিডি মনিটর ব্যবহার করে চেক করেছিলাম যে সঠিক তথ্য পাঠানো হচ্ছে কিনা সিরিয়াল-এমআইডিআই সংযোগ। একবার আমি নির্ধারিত করেছিলাম যে প্রতিটি বাটন সঠিক চ্যানেলের মাধ্যমে সঠিক তথ্য পাঠিয়েছে, আমি MIDI ইনপুট হিসাবে Ableton Live 9 এর পথে MIDI সংকেত সেট আপ করেছি। Ableton এ আমি প্রতিটি বোতাম থেকে কাটা অডিও নমুনা ম্যাপ এবং প্রতিটি নমুনা খেলতে সক্ষম ছিল।

প্রস্তাবিত: