সুচিপত্র:

আসুন একটি SN76489 USB MIDI সিন্থ তৈরি করি Arduino Nano দিয়ে: 7 টি ধাপ
আসুন একটি SN76489 USB MIDI সিন্থ তৈরি করি Arduino Nano দিয়ে: 7 টি ধাপ

ভিডিও: আসুন একটি SN76489 USB MIDI সিন্থ তৈরি করি Arduino Nano দিয়ে: 7 টি ধাপ

ভিডিও: আসুন একটি SN76489 USB MIDI সিন্থ তৈরি করি Arduino Nano দিয়ে: 7 টি ধাপ
ভিডিও: আসুন একটি হাদিস শুনি । 2024, নভেম্বর
Anonim
Image
Image
আসুন Arduino Nano দিয়ে একটি SN76489 USB MIDI সিন্থ তৈরি করি
আসুন Arduino Nano দিয়ে একটি SN76489 USB MIDI সিন্থ তৈরি করি
Arduino Nano দিয়ে একটি SN76489 USB MIDI সিন্থ তৈরি করি
Arduino Nano দিয়ে একটি SN76489 USB MIDI সিন্থ তৈরি করি

কখনও 80 এর দশকের পুরানো চিপ-টিউনগুলির উপর ভিত্তি করে আপনার নিজের সিনথেসাইজার তৈরি করতে চেয়েছিলেন? সাধারণ পলিফোনিক টিউনগুলি বাজান যা এই পুরানো সেগা মাস্টার সিস্টেম এবং মেগড্রাইভ ভিডিও গেমগুলির মতো শোনাচ্ছে?

আমার আছে, তাই, আমি ইবে এবং একটি মিডি হোস্ট ইন্টারফেস থেকে কয়েকটি SN76489 চিপ অর্ডার করেছি এবং এটি একটি শট দিয়েছি। ঠিক আছে, এটা আমার জন্য পার্কে হাঁটা ছিল না, কিন্তু, আমি প্রতিটি মুহূর্ত উপভোগ করেছি।

প্রথমে আমি শিখেছি কিভাবে সরাসরি SN76489 ইন্টারফেস করতে হয় এবং এটি দিয়ে কিছু শব্দ করতে হয়। এর মধ্যে কিছু বিভ্রান্তিকর উপাদান ছিল, কিন্তু, দ্য ওডব্লোক গিক ব্লগ এবং অন্যান্য কয়েকটি উদাহরণের সাহায্যে, চিপ স্পেসিফিকেশন ডকুমেন্টের সাহায্যে আমি একটি সাধারণ আরডুইনো লাইব্রেরি তৈরি করতে সক্ষম হয়েছি।

এরপরে, আমাকে একটি ইউএসবি মিনি হোস্ট শিল্ড সহ মিডি কীবোর্ড ইন্টারফেস করতে শিখতে হয়েছিল। এটি এত কঠিন ছিল না, কারণ কিছু ডকুমেন্টেশন পাওয়া যায়, এবং সুস্পষ্ট উদাহরণ সহ ভাল লাইব্রেরি বিদ্যমান।

একবার আমি বুঝতে পারলাম কিভাবে চিপ নিয়ন্ত্রণ করতে হয় এবং কিভাবে আমার ইউএসবি মিডি কীবোর্ডকে ইন্টারফেস করতে হয়, কেবলমাত্র একটি কোড লিখতে হবে যা এই সবগুলিকে একত্রিত করে এবং আমাকে চিপ নিয়ন্ত্রণের জন্য কীবোর্ড ব্যবহার করতে দেয়।

পথের মধ্যে, আমি শিখেছি যে 0x2f মিডি নোটগুলির জন্য আমি যতটা চেষ্টা করেছি তার চেয়ে কম ফ্রিকোয়েন্সি সহ শব্দগুলি ঠিক শব্দ করে না, তাই, আমি 0x28 এবং 0x2f এর মধ্যে যে কোনও মিডি নোটের জন্য শব্দ জেনারেটরে শব্দ পাঠানোর অনুমতি দেওয়ার জন্য এটি ব্যবহার করার সিদ্ধান্ত নিয়েছি এবং মিডি 0x28 এর চেয়ে কম কিছুতে এটি একটি প্রাচ্য আরব স্পর্শ সহ খেলার নোটগুলি অনুমোদন করে।

পেছনের দিকে তাকালে, এটি অনেক মজার এবং নির্মাণের জন্য খুব আকর্ষণীয় ছিল।

আমি আশা করি আপনি এটিকে আমার মতো মজাদার এবং আকর্ষণীয় মনে করবেন এবং যদি আপনি নিজে এটি তৈরি করেন তবে আপনি এর কিছু ছবি শেয়ার করার জন্য যথেষ্ট দয়ালু হবেন।

আপনি যদি এই প্রকল্পটি পছন্দ করেন, তাহলে অনুগ্রহ করে নীচে এটির জন্য ভোট দিন যাতে প্রতিযোগিতায় অংশগ্রহণ করে।

সরবরাহ

আমি এই প্রজেক্টের জন্য আপনি যেসব সামগ্রী কিনতে পারেন তার লিঙ্ক যোগ করেছি, তবে, আপনি অনেক উপলব্ধ আইটেম খুঁজে পেতে পারেন যা আপনি পুরানো ইলেকট্রনিক্স থেকে স্ক্র্যাপ করতে পারেন।

এই লিঙ্কগুলি অ্যাফিলিয়েট লিংক, তাই, যদি আপনি সেগুলোতে ক্লিক করার পর ক্রয় করেন, আমি একটি ছোট অংশ পাই (ভাগ্য নয়) এবং আপনি একটি প্রোডাক্ট পান যা এই প্রকল্পের জন্য সঠিক। এগুলি ব্যবহার করার জন্য কোনও ফি বা অতিরিক্ত খরচ নেই, তবে, আপনি যে কোনও অনুরূপ আইটেম খুঁজে পেতে পারেন যা এগুলি খুব সহজেই প্রতিস্থাপন করতে পারে।

ebay.us/svA4z4 | 1 এক্স পারফরম্যান্স বোর্ড

ebay.us/ZyEFNp | 1 এক্স arduino ন্যানো

ebay.us/t1zy0v | 1 x USB মিনি ieldাল

ebay.to/2QrHl1C | 1 x SN76489 সাউন্ড চিপ

ebay.us/aaaj8p | 1 x শিফট রেজিস্টার 595

ebay.us/DSvTHO | 4MHz এর 1 x স্ফটিক দোলক

ebay.us/XQeM0Q | 1 x 5V ভোল্টেজ রেগুলেটর 7805

ebay.us/6R6Fpf | ভোল্টেজ নিয়ন্ত্রকের জন্য 1 x হিট সিংক

ebay.us/xkLbn4 | 3 x 10uF ক্যাপাসিটার

ebay.us/pnm2BH | তারের

ebay.us/PMbUfY | পাওয়ারের জন্য 1 x লাল LED

ebay.us/zokHtc | 1 x 220 ওহম প্রতিরোধক LED বর্তমান প্রবাহ সীমিত

ebay.us/qjbesJ | 12v পাওয়ার সাপ্লাইয়ের জন্য 1 x পাওয়ার সংযোগকারী

ebay.us/cS0wwv | 1 x অন/অফ সুইচ

একটি উপযুক্ত বাক্স (আমি একটি পুরানো ড্রয়ার থেকে খনি তৈরি করেছি যা বছরের পর বছর ধরে আমার স্টোরেজে বিশ্রাম করছিল)

ধাপ 1: একটি 5V মিডি ডিভাইস চালানোর জন্য ইউএসবি মিনি হোস্ট শিল্ড প্রস্তুত করা

একটি 5V মিডি ডিভাইস চালানোর জন্য ইউএসবি মিনি হোস্ট শিল্ড প্রস্তুত করা হচ্ছে
একটি 5V মিডি ডিভাইস চালানোর জন্য ইউএসবি মিনি হোস্ট শিল্ড প্রস্তুত করা হচ্ছে

যেহেতু ইউএসবি মিনি হোস্ট শিল্ডটি 3.3V এ কাজ করে এবং আমি যে ইউএসবি মিডি কীবোর্ড ব্যবহার করি তার জন্য 5V প্রয়োজন, তাই outালের আউটপুট ভোল্টেজটি 3.3V লাইন কেটে ইউএসবি আউট ভিসিকে যায়, তাই, আমরা পরে এটি সংযুক্ত করতে পারি 5V।

এটি কীভাবে করা যায় সে সম্পর্কে প্রচুর টিউটোরিয়াল রয়েছে এবং এটি বেশ সহজ হয়ে উঠল:

শুধু 2k2 প্রতিরোধক এবং Vcc লাইনের মধ্যে লাইন কাটা (সংযুক্ত ছবি দেখুন)। আমি এই লাইনটি আঁচড়ানোর জন্য একটি স্ক্রু ড্রাইভার ব্যবহার করেছি এবং এটি একটি ধারাবাহিকতা মিটারের সাথে কাজ করে কিনা তা পরীক্ষা করেছি।

ধাপ 2: আপনার আরডুইনো ন্যানোর সাথে ইউএসবি মিনি শিল্ড সংযুক্ত করুন

আপনার আরডুইনো ন্যানোর সাথে ইউএসবি মিনি শিল্ড সংযুক্ত করুন
আপনার আরডুইনো ন্যানোর সাথে ইউএসবি মিনি শিল্ড সংযুক্ত করুন
আপনার আরডুইনো ন্যানোর সাথে ইউএসবি মিনি শিল্ড সংযুক্ত করুন
আপনার আরডুইনো ন্যানোর সাথে ইউএসবি মিনি শিল্ড সংযুক্ত করুন

ভাগ্যক্রমে, এটি কীভাবে করা যায় সে সম্পর্কে প্রচুর তথ্য রয়েছে, সুতরাং, "আরডুইনো ন্যানো এবং মিনি ইউএসবি হোস্ট শিল্ড" এর জন্য গুগল করে আমি এই থ্রেডে এসেছি

এটি ইউএসবি মিনি v2.0 ieldালকে কীভাবে সংযুক্ত করতে হয় তা বর্ণনা করেছে এবং এটি অনুসরণ করার পরে আমি কিছু ইউএসবি মিডি উদাহরণ পরীক্ষা করার জন্য সরাসরি এগিয়ে গেলাম।

তারের:

Arduino হোস্ট ieldাল

10--------------5

11--------------6

12--------------7

13--------------8

2----------------2

5V -------------- 1

3.3V ------------ 9

GND ----------- 3

RST ------------ 4

এই থ্রেডে, এটিও উল্লেখ করা হয়েছিল যে তারা 3.3V সীসা কেটেছে যাতে USB VBUS থেকে 5V পেতে পারে।

এই বিবরণ এবং সংযুক্ত ছবিগুলি এই থ্রেড থেকে এসেছে।

বিটিডব্লিউ, এই বোর্ডে প্রিন্টে একটি ভুল আছে, তাই এটি কিছুটা বিভ্রান্তিকর ছিল, যাইহোক, আপনি সেই (টাইরকেলকো) সম্পর্কে আমার প্রতিক্রিয়া দেখতে পারেন এবং আমি এটি কোথা থেকে শিখেছি।

ধাপ 3: কেউ চিপস? 4MHz Osc এর সাথে SN76489 যোগ করা। এবং 595 শিফট রেজিস্টার

চিপস কেউ? 4MHz Osc এর সাথে SN76489 যোগ করা। এবং 595 শিফট রেজিস্টার
চিপস কেউ? 4MHz Osc এর সাথে SN76489 যোগ করা। এবং 595 শিফট রেজিস্টার

এখন এই চিপ যোগ করার সময় ছিল যা এই আশ্চর্যজনক শব্দ তৈরি করে।

আমি ইতিমধ্যে এই চিপের সাথে আরডুইনো ইন্টারফেস করার জন্য একটি লাইব্রেরি তৈরি করেছি এবং শুধুমাত্র আমার নির্দেশাবলী অনুসরণ করতে হয়েছিল।

লাইব্রেরীটি GPLv3 (আমার প্রথম ওপেন সোর্স রিলিজ) এর অধীনে গিথুবে প্রকাশিত হয়েছে।

github.com/tyrkelko/sn76489

76489 এবং 595 এর সংযোগটি সংযুক্ত চিত্রের মতো ছিল যা লাইব্রেরি readme.txt ফাইল থেকে ধারণ করা হয়েছে

76489 এর কম (NotWE) রাইট এনাবল সক্রিয় ছিল ন্যানোর পিন 3 এর সাথে এবং কোডে পরিবর্তন করা যেতে পারে।

#PIN_NotWE সংজ্ঞায়িত করুন 3

নিম্নরূপ 595 ন্যানোর সাথে সংযুক্ত ছিল এবং পিন নম্বরগুলি সম্পাদনা করেও সামঞ্জস্য করা যেতে পারে:

#PIN_SER 7 নির্ধারণ করুন

#পিন_ল্যাচ 6 নির্ধারণ করুন

#PIN_CLK সংজ্ঞায়িত করুন 5

আমি যে দোলকটি ব্যবহার করেছি তা ছিল 4 পা দিয়ে 4MHz স্ফটিক দোলক।

এটি কোডে নিম্নরূপ কনফিগার করা হয়েছে এবং আপনি 500kHz এবং 4MHz এর মধ্যে যেকোনো অসিলেটর ফ্রিকোয়েন্সি এর মান সামঞ্জস্য করতে পারেন:

#সংজ্ঞা ফ্রিকোয়েন্সি 4000000.0

আমি যে দোলকটি ব্যবহার করেছি তা নিম্নরূপ:

পিন 1 - সংযুক্ত নয়

পিন 7 - স্থল

পিন 8 - 76489 পিনের সাথে সংযুক্ত 14 - ঘড়ি osc

ধাপ 4: শুধু কোড যোগ করুন - লাইব্রেরি যোগ করা, কোড সংকলন এবং আপলোড করা

এই প্রকল্পে ব্যবহৃত লাইব্রেরিগুলিকে নিম্নরূপ Arduino IDE তে যুক্ত করতে হবে:

Arduino IDE খুলুন

আপনার IDE এর লাইব্রেরি ফোল্ডারে নিম্নলিখিত লাইব্রেরিগুলি ডাউনলোড করুন (আশা করি শীঘ্রই IDE "সরঞ্জাম" মেনুতে "ম্যানেজ লাইব্রেরি …" মেনুতে এটি দেখতে পাবেন):

github.com/felis/USB_Host_Shield_2.0

github.com/tyrkelko/sn76489

নিম্নলিখিত github প্রকল্প থেকে কোড ব্যবহার করুন:

github.com/tyrkelko/usb_midi_tone

Usb_midi_tone.ino ডাউনলোড করুন, কম্পাইল করুন এবং আপনার Arduino ন্যানোতে আপলোড করুন।

ধাপ 5: একটি পরিবর্ধক এবং স্পিকার সংযুক্ত করুন, আপনার ইউএসবি মিডি কীবোর্ড সংযুক্ত করুন এবং পরীক্ষা করুন

এখন সময় এসেছে সবকিছু পরীক্ষা করে দেখার।

এটি করার জন্য আমাদের প্রয়োজন:

1. একটি পরিবর্ধক এবং স্পিকার

2. একটি ইউএসবি মিডি কীবোর্ড

SN76489 পিন 7, অডিও আউট, এম্প্লিফায়ার অডিও ইন সংযুক্ত করুন।

এম্প্লিফায়ারকে শক্তিশালী করুন এবং তারপরে আরডুইনো ন্যানোকে শক্তি দিন। আপনার এখন এক সেকেন্ডের বিভক্তির জন্য পাওয়ার আপ পরীক্ষার শব্দ শুনতে হবে।

ইউএসবি মিডি কীবোর্ড সংযুক্ত করুন এবং পরীক্ষা করুন।

যদি সবকিছু সঠিকভাবে কাজ করে, তাহলে আপনি একই সাথে 3 টি টোন বাজাতে সক্ষম হবেন, এবং 8 ধরনের শব্দ এবং এমনকি 24 টি EDO- স্কেলের কিছু কোয়ার্টার টোন বাজাতে পারবেন।

যদি এটি কাজ না করে, তাহলে কি ভুল হতে পারে তা দেখতে ধাপগুলিতে যান।

যদি আপনি এটি অস্পষ্ট নির্দেশাবলীর ফলাফল মনে করেন তবে দয়া করে আমাকে একটি নোট দিন যাতে আমি এটি ঠিক করার জন্য নির্দেশাবলী আপডেট করি।

ধাপ 6: একটি 5V ভোল্টেজ রেগুলেটর, 12V সংযোগকারী, পাওয়ার অন/অফ সুইচ এবং পাওয়ার LED দিয়ে সার্কিটটি সম্পূর্ণ করুন

এই ধাপে আপনি সঠিকভাবে কাজ করার জন্য এটি পরীক্ষা করার পরে সার্কিটটি মোড়ানোতে সক্ষম হওয়া উচিত।

1. LM7805 এবং দুটি 10uF ক্যাপাসিটার এবং 0.1uF সহ একটি পাওয়ার রেগুলেটর যুক্ত করুন। এই বিষয়ে প্রচুর টিউটোরিয়াল রয়েছে, আপনি এটি সম্পন্ন করতে নিম্নলিখিত নির্দেশাবলী ব্যবহার করতে পারেন-https://www.instructables.com/id/7805-Regulator-5V…

2. একটি 12V শক্তি সংযোগকারী যোগ করুন Vcc একটি চালু/বন্ধ সুইচ মাধ্যমে যাচ্ছে

3. বিদ্যুৎ কখন আছে তা নির্দেশ করার জন্য একটি সীমিত বর্তমান প্রতিরোধক সহ একটি LED যুক্ত করুন।

ধাপ 7: একটি বাক্সে আবদ্ধ করুন, পেইন্ট করুন এবং আপনার নতুন সিন্থ উপভোগ করুন

একবার সার্কিট্রি পরীক্ষা করা হয় এবং আপনার পছন্দ অনুযায়ী কাজ করে, একটি সুন্দর ঘের নির্মাণ ছাড়া আর কিছুই করার বাকি থাকে না, এটি অসাধারণ রং দিয়ে আঁকুন এবং কিছু সঙ্গীত বাজান।

আমি আশা করি আপনি এই নির্দেশনাটি পড়ে উপভোগ করেছেন, এবং এটি আপনাকে আপনার নিজস্ব সিন্থ তৈরি করতে বা আপনি যে প্রকল্পে কাজ করছেন তার সাথে কাজ করতে অনুপ্রাণিত করেছেন।

অনুগ্রহ করে নীচের যেকোনো প্রশ্নের সাথে মন্তব্য করুন এবং যদি আপনি এই টিউটোরিয়ালের উপর ভিত্তি করে অনুরূপ কিছু তৈরি করে থাকেন তবে আপনি "আমি এটি তৈরি করেছি!" এলাকা বা মতামত বিভাগে।

প্রস্তাবিত: