সুচিপত্র:

সি-কোডে মাইক্রোকন্ট্রোলার ফ্যাব্রিক টোন জেনারেটর: 8 টি ধাপ (ছবি সহ)
সি-কোডে মাইক্রোকন্ট্রোলার ফ্যাব্রিক টোন জেনারেটর: 8 টি ধাপ (ছবি সহ)

ভিডিও: সি-কোডে মাইক্রোকন্ট্রোলার ফ্যাব্রিক টোন জেনারেটর: 8 টি ধাপ (ছবি সহ)

ভিডিও: সি-কোডে মাইক্রোকন্ট্রোলার ফ্যাব্রিক টোন জেনারেটর: 8 টি ধাপ (ছবি সহ)
ভিডিও: Micro Controller and PLC Suggestion || মাইক্রোকন্ট্রোলার অ্যান্ড পি এল সি সাজেশন || Microcontroller 2024, জুলাই
Anonim
সি-কোডে মাইক্রোকন্ট্রোলার ফ্যাব্রিক টোন জেনারেটর
সি-কোডে মাইক্রোকন্ট্রোলার ফ্যাব্রিক টোন জেনারেটর

গত বছরের অক্টোবরের শেষে ইন্সট্রাকটেবল ব্যবহারকারী কারমিটসু আমার লাঞ্চবক্স সিন্থ দেখে আমাকে একটি বার্তা পাঠিয়েছিলেন। তার বার্তা থেকে: আমি প্রাথমিক বিদ্যালয়ে সঙ্গীত শেখাই। আমরা প্রচুর রেকর্ডার মিউজিক বাজাই। যেমন বাচ্চারা ছোট বাঁশি বাজায় …… আমার বেশ কিছু বিশেষ প্রয়োজনের বাচ্চা আছে যারা এই কালো পোস্টার বোর্ডগুলি চেনাশোনাগুলির সাথে ব্যবহার করতে পারে যাদের নোটের নাম রয়েছে। এই ছাত্ররা একই সময়ে নোটের নাম দিয়ে বৃত্তের উপর চাপ দেয় বাকি ছাত্ররা একটি গান বাজায়….. বিশেষ বিশেষ চাহিদার অধিকাংশ শিশুরা এটি মোটামুটি ভালোভাবে এবং সঙ্গীতের সাথে করতে পারে। আমি যা খুঁজছি তা হল একটি খুব সাধারণ সাউন্ড জেনারেটর তৈরি করা যাতে এই বাচ্চারা তাদের রেকর্ডারগুলিতে শিক্ষার্থীদের দ্বারা বাজানো একই পিচ খেলতে পারে। আমি কেবল কয়েকটি পিচ হব। আমি ভেবেছিলাম আমি তাদের গোলাকার বৃত্তের নীচে এক ধরনের ছোট বোতাম সংযুক্ত করতে পারি যাতে যখন তারা তাদের উপর চাপ দেয় তখন শব্দটি একটি ছোট স্পিকার থেকে বেরিয়ে আসে, যথেষ্ট জোরে যাতে তারা শুনতে পায়। একজন মা যিনি একজন শিক্ষক এবং স্কুল পছন্দ করেছেন, আমি কিভাবে প্রতিরোধ করতে পারি? সত্যি বলছি আমি পারিনি। এটি প্রকল্পের একটি ক্রনিকল এবং আপনার নিজের তৈরি করার নির্দেশাবলী।

ধাপ 1: শুরু বা কেন আমি এনালগে আটকে থাকতে পারিনি

দ্য বিগিনিং বা কেন আমি এনালগে আটকে থাকতে পারিনি
দ্য বিগিনিং বা কেন আমি এনালগে আটকে থাকতে পারিনি

ভাল জিনিস পরবর্তী পৃষ্ঠায় শুরু হয়। যদি আপনি জানতে চান যে আমি যে অংশগুলি ব্যবহার করে শেষ করেছি, তা পড়ুন। এটি একটি ভাল উপায় বলে মনে হচ্ছে, এটি কেবল একটি পাইজো, একটি 741 আইসি এবং একটি দম্পতি প্যাসিভ উপাদান। কোন বড় ব্যাপার না? ভাল এটা 2 সমস্যা আছে, 1) যখন আপনি সুইচ হতাশ, এটা পিচ পরিবর্তন করা সম্ভব 2) এটা টিউন করা অসম্ভব কাছাকাছি। প্রথমটি সম্ভবত কিছু ডিবাউন্স প্রযুক্তির সাহায্যে কাটিয়ে উঠতে পারে, যদিও আমি অন্য কাউন্টার না যোগ করে কীভাবে এটি করতে পারি তা জানতাম না। এটি পাইজো ব্যবহারেও সমস্যা হতে পারে। যখন আপনি একটি নির্দিষ্ট পিচে আঘাত করার চেষ্টা শুরু করেন তখন দ্বিতীয় সমস্যাটি অস্থির হয়ে পড়ে। 555 সম্পর্কে কি? ডেটশীট প্রতিরোধক এবং ক্যাপাসিটরের উপর ভিত্তি করে একটি সময় বিলম্ব ফাংশন দেখায়। যতক্ষণ না আপনি বাস্তব জগতের অংশগুলির প্রকৃত মান টাইপ করা শুরু করেন, ততক্ষণ আপনি 440Hz পিচ আঘাত করা কিছুটা কঠিন হতে শুরু করবেন। আপনি এটিকে টিউন করার জন্য ট্রিম পাত্র ব্যবহার করতে পারেন, কিন্তু সময়ের সাথে সাথে সেগুলি সরানোর প্রবণতা থাকে। যন্ত্রের ক্রমাগত টিউনিং, খরচ এবং যন্ত্রাংশের পরিমাণে দ্রুত বৃদ্ধির উপরে সংকলিত, এবং আমার স্ত্রী যখন এই বোতামটি চাপেন তখন পিচ পরিবর্তন করে এই প্রকল্পের জন্য 555 কে হত্যা করে। op-amps আমার জন্মের আগে থেকেই। কয়েকটি অংশ এবং নির্দিষ্ট নোট সহ একটি সত্যিই সহজ তৈরি করা কতটা কঠিন হতে পারে? আমি যা ভেবেছিলাম তার চেয়ে কঠিন। এই প্রকল্পের জন্য বেশিরভাগ নকশা খুব জটিল। সিন্থ ডিজাইনাররা নিখুঁত তরঙ্গাকৃতি/স্বরের জন্য বাইরে। এটি একটি প্রকল্পের সাথে সরাসরি দ্বন্দ্ব সৃষ্টি করে যা স্কুল বা শিক্ষক বাজেটের জন্য যথেষ্ট সস্তা বলে মনে করা হয়। একটি কীবোর্ড তৈরি করা যথেষ্ট সহজ, এটি কেবল একগুচ্ছ প্রতিরোধক এবং শক্তি বা একটি গুচ্ছ ডায়োড এবং শক্তি। এটি সার্কিট ডিজাইনের বাকি অংশ, এবং কাস্টম পিসিবিএসের খরচ যা শুরুতে ইলেকট্রনিক্স পর্যায়ে কারো হাত থেকে বেরিয়ে যেতে শুরু করে। প্রকল্পের নতুন সংজ্ঞা: তাই প্রকল্পটি পুনরায় সংজ্ঞায়িত হওয়ার আগেই আমি সত্যিই এগিয়ে যাচ্ছি। আমার এমন কিছু দরকার ছিল যা একটি স্পিকার পিন টগল করতে পারে, সময় মতো, একটি বোতাম টিপে। আমি একটি পিসিবি ডিজাইন এবং কিনতে চাইনি। এটিকে সম্ভাব্য কয়েকটি উপাদান হিসাবে ব্যবহার করতে হয়েছিল এবং একটি নতুন কিট হিসাবে একত্রিত করা হয়েছিল। এটা আমাকে সারাক্ষণ মুখের দিকে তাকিয়ে ছিল। দুহ !! মাইক্রোকন্ট্রোলার! মাইক্রোকন্ট্রোলার: সুতরাং একটি আধুনিক যন্ত্রপাতি বেয়ার হাড় Arduino কিট এবং একটি মন্দ পাগল বিজ্ঞানী সরল টার্গেট বোর্ড উভয় কেনার পরে এবং তাদের ব্যবহার করা হচ্ছে না মাস ধরে আমার টেবিলে বসতে দেওয়া, আমি নিখুঁত সূচনা প্রকল্প ছিল। আমি উভয়কে একত্রিত করার সময়, কোডের জন্য শেখার বক্ররেখা, খরচ, প্রয়োজনীয় অতিরিক্ত যন্ত্রাংশ এবং আমি যা চাই তা করতে শুরু করেছি এবং লক্ষ্যবস্তুতে বসতে শুরু করেছি। খরচটি বেশ ভাল ছিল, $ 15 প্লাস $ 20 FTDI তারের Arduino জন্য, $ 12 প্লাস একটি $ 22 USBtinyISP প্রোগ্রামার। আমি আগে থেকেই জানতাম C ++ ছোট্ট কলেজ থেকে আমি দাঁড়াতে পারতাম এবং মনে করতাম মাইক্রোকন্ট্রোলারদের জন্য C এতটা খারাপ হবে না, অন্যদিকে আমি আমার কিটকে সঠিকভাবে একত্রিত করার জন্য একটি আলো জ্বালানো ছাড়াও, আমার আরডুইনো অভিজ্ঞতা ছিল না। দুটোই মাউন্ট করা যেত। এটা অনেকটা টস আপ ছিল, তাই আমি দুইটির কম অংশ, টার্গেট বোর্ড নিয়ে সিদ্ধান্ত নিয়েছি।

ধাপ 2: আপনার কি প্রয়োজন রেভ 1

আপনি কি প্রয়োজন Rev 1
আপনি কি প্রয়োজন Rev 1

যন্ত্রাংশের খরচ USBtinyISP AVR Programmer Kit (USB SpokePOV Dongle) v2.0 $ 22.00https://www.adafruit.com/index.php? 5-pk $ 2.75https://evilmadscience.com/tinykitlist/74-atmegaxx8 স্পিকার (8-ওহম মিনি) $ 2.79 5) $ 3.49 (4pack) https://www.radioshack.com/product/index.jsp?productId=2062539"AAA "ব্যাটারি হোল্ডার $ 1.79 সাবমিনি স্লাইড সুইচ (পাওয়ার সুইচের জন্য alচ্ছিক) যদি তারা আশেপাশে মিথ্যা কথা বলছে তবে তার কাছাকাছি শুয়ে থাকতে হবে মুভ ফ্লাক্স) যদি আপনি কিছু জায়গা টাকা বাঁচাতে চান, তাহলে আপনাকে রেডিওশ্যাক থেকে যন্ত্রাংশ পেতে হবে না। আমি করেছি কারণ তারা কাছাকাছি এবং অনুমানযোগ্য।

ধাপ 3: সমাবেশ রেভ 1

অ্যাসেম্বলি রেভ 1
অ্যাসেম্বলি রেভ 1
অ্যাসেম্বলি রেভ 1
অ্যাসেম্বলি রেভ 1

দেখানো হিসাবে আপনার অংশ একসঙ্গে রাখুন। সোল্ডারিং থেকে যে কোনো ফ্লাক্স পরিত্রাণ পেতে হলে রাবিং অ্যালকোহল এবং ফ্লাক্স ব্রাশ ব্যবহার করতে ভুলবেন না। D1 এবং R1 আপনি যা চান তা হতে পারে, এটি কেবল একটি পাওয়ার লাইট। C1 শুধুমাত্র ক্ষমতাকে আরও সামঞ্জস্যপূর্ণ করতে সাহায্য করার জন্য। আমি 10uF ব্যবহার করেছি। এই পরিকল্পিতটি পরবর্তী সংস্করণগুলির জন্য একই, কেবল ফ্যাব্রিক সুইচগুলির জন্য পুশ বোতামগুলি অদলবদল করুন। শেষ পুনর্বিবেচনায় আমি PC4 এবং PC5 বা 27 এবং 28 পিনগুলিতে সুইচ যুক্ত করেছি।

ধাপ 4: আপনার কি প্রয়োজন Rev 2

আপনি কি প্রয়োজন Rev 2
আপনি কি প্রয়োজন Rev 2

তাই মূলত আপনি হাতে তৈরি ফ্যাব্রিকের জন্য রেডিও শ্যাক বোতামগুলি অদলবদল করছেন আপনার প্রয়োজন: কাপড়ের একাধিক রঙ, অথবা একটি রঙ যদি আপনি প্রতিটি নোট একই রঙ চান। আপনার নিকটতম ফ্যাব্রিক স্টোরের কুইল্টিং বিভাগটি সস্তায় এটি পাওয়ার সেরা জায়গা। Quilting চতুর্থাংশ $ 1.50 এবং আপনি এক থেকে সুইচ একটি টন পেতে পারেন পরিবাহী ফ্যাব্রিক, আমি LessEMF থেকে Flectron ফ্যাব্রিক এটি একটি 12 "x54" টুকরা জন্য $ 20 ফ্যাব্রিক তারের সংযুক্ত করার জন্য চোখের পাতা। আপনি এগুলি বেশিরভাগ কাপড়ের দোকানে সস্তায় পেতে পারেন। JoAnn এর কাছে টুল আছে এবং 25 ডলারে 25 এর জন্য আপনার হাতুড়ি লাগবে। দোকানে জিজ্ঞাসা করুন এবং আপনি সম্ভবত এটি গজ দ্বারা কিনতে পারেন। এটি সম্ভবত জরিমানা কাজ করবে, যদিও আমি আপনাকে কাউকে ব্যাটিং জিজ্ঞাসা করার পরামর্শ দিচ্ছি, আমি প্রথমে একটি সত্যিই আলগা জিনিস ব্যবহার করেছি, তারপর কিছু শক্ত বুননে স্যুইচ করেছি। আমি সুপারিশ করছি আপনি শুধু একটি ভিন্ন কয়েকটি চেষ্টা করুন যতক্ষণ না আপনি সবচেয়ে ভাল কাজ খুঁজে পান। তাপগুলি সঙ্কুচিত তারগুলি একসাথে একে অপরের পাশ দিয়ে যাওয়ার সময় এবং তারা অনেক ভালো থাকবে।

ধাপ 5: সমাবেশ Rev 2

অ্যাসেম্বলি রেভ 2
অ্যাসেম্বলি রেভ 2
অ্যাসেম্বলি রেভ 2
অ্যাসেম্বলি রেভ 2
অ্যাসেম্বলি রেভ 2
অ্যাসেম্বলি রেভ 2

একে অপরের উপর বহু রঙের কাপড় রাখুন এবং একটি বর্গক্ষেত্র কেটে দিন, এটি নিখুঁত হতে হবে না। যেকোনো ভাঁজ বের করতে ফ্যাব্রিককে আয়রন করুন, আবার একে অপরের উপরে রাখুন এবং নিশ্চিত করুন যে প্রান্তগুলি সব মিলছে। যে প্রান্তগুলি নেই তা কেটে ফেলুন বাম এবং ডান দিক সোজা রেখে উপরের এবং নীচের বৃত্তটি কাটুন। আপনি সেলাই করার পরে সুইচটি উল্টাতে যাচ্ছেন তাই গোলাকার দিকগুলি খুব বেশি গোল করবেন না এবং সমতল দিকে যথেষ্ট উচ্চতা রেখে সুইচটি সহজেই ধাক্কা দিয়ে শেষ করুন। প্রথম এবং শেষ সুইচের সমতল দিকটি বের করুন আপনার সেলাই মেশিনের দিকে এগিয়ে যান এবং দুটি রাউন্ড একসাথে রাখুন যাতে ভাল দিকটি একে অপরের মুখোমুখি হয় এবং সমতল অংশে একটি সেলাই সেলাই করে। বোতামের উপরের অংশগুলি একবার সেলাই করা, পরিবাহী ফ্যাব্রিক থেকে স্কোয়ার কাটা এবং একপাশে ফিউজ করুন। তারের দৈর্ঘ্য কাটুন এবং এক প্রান্ত ফালা করুন। চোখের পাতার চারপাশে তারের সোল্ডার। (সোল্ডার সম্ভবত চোখের পাতায় লেগে থাকবে না) এক কোণে ফ্যাব্রিকের একটি ছোট্ট অংশ কেটে ফেলুন এবং ফ্যাব্রিক এবং তারের সাথে সংযুক্ত করতে আইলেটটি হাতুড়ি দিন। ফিউজিং থেকে ব্যাকিং সরান এবং পরিবাহী ফ্যাব্রিককে রঙিন ফ্যাব্রিকের পিছনে ফিউজ করুন। সমস্ত সুইচের জন্য পুনরাবৃত্তি করুন। জিনিসগুলিকে আরও সহজ করার জন্য, যখনই একটি তারের পরের সুইচটির জন্য তারের পাশ দিয়ে যায় তখন আপনি সঙ্কুচিত নলগুলিকে একসঙ্গে গরম করতে পারেন। রঙিন সুইচ থেকে ভিন্ন, এটি একটি দীর্ঘ টুকরা। সংযোগটি তৈরি করতে বোতামগুলি স্পর্শ করবে। একটি ছোট চেরা কাটা এবং একটি তারের সঙ্গে একটি তারের সংযুক্ত করুন, যেমন রঙিন সুইচ শীর্ষ। নীচের ফ্যাব্রিকের পিছনে এটি ফিউজ করুন। উপরের এবং নীচে একসাথে পরিবাহী ফ্যাব্রিকের মুখোমুখি সেলাই করুন, সেটটি সেলাই করার পরে সেটটি উল্টাতে একটি গজ কাঠি ব্যবহার করুন। ব্যাটিংয়ে কয়েকটি ছোট গর্ত কাটুন, আমি একটি চপস্টিক ব্যবহার করেছি একটি বৃত্ত তারপর শুধু চপস্টিক অপসারণ এবং কাটা করা। সেগুলোকে আকৃতিতে কেটে সুইচগুলিতে ertুকিয়ে দিন। এটিই পরিবাহী ফ্যাব্রিককে আলাদা রাখে। আমি যখন এটি erুকিয়েছিলাম তখন আমি যে জিনিসগুলি ব্যবহার করেছি তা বেশ খারাপ ছিল এবং আমাকে বিভিন্ন ব্যাটিং করতে হয়েছিল। লম্বা নীচের স্ট্রিপটি মাটি হবে।

ধাপ 6: আপনার কি প্রয়োজন Rev 3

আপনি কি প্রয়োজন Rev 3
আপনি কি প্রয়োজন Rev 3

রেভ 3 -এ আমি সুইচগুলিকে তারের থেকে স্বাধীন করেছিলাম। এটি এক টন সময় বাঁচিয়েছে। আমি সমাপ্ত ফলাফলের চেহারাটিও অনেক বেশি পছন্দ করি সুতরাং, এখানে আপনার প্রয়োজনীয় নতুন অংশগুলি রয়েছে: স্ন্যাপস, সেগুলি কেবল জোআনের কাছ থেকে পেয়েছি। তারা $ 7 এর জন্য খারাপ নয় এমন একটি ইনস্টল টুল নিয়ে এসেছিল আমি পরিবর্তে প্লায়ার সরঞ্জামগুলির একটি সুপারিশ করব কারণ মাঝখানে স্ন্যাপগুলি ইনস্টল করার জন্য আমাকে আমার সরঞ্জামটি আলাদা করতে হয়েছিল। সেলাই একটি ভাল বিকল্প হবে, যদিও তারা মেনে চলতে বেশি সময় নেয়। আমাকে আমার মেশিনে সত্যিই ধীর গতিতে যেতে হয়েছিল বা থ্রেডটি ভেঙে যাবে। আপনার মাইলেজ পরিবর্তিত হতে পারে

ধাপ 7: সমাবেশ Rev 3

অ্যাসেম্বলি রেভ 3
অ্যাসেম্বলি রেভ 3
অ্যাসেম্বলি রেভ 3
অ্যাসেম্বলি রেভ 3
অ্যাসেম্বলি রেভ 3
অ্যাসেম্বলি রেভ 3
অ্যাসেম্বলি রেভ 3
অ্যাসেম্বলি রেভ 3

এই পুনর্বিবেচনাটি নির্মাণের পূর্ব পর্যন্ত সময়ের তুলনায় অনেক ভালো ছিল। এছাড়াও, অপসারণযোগ্য সুইচগুলি আমার স্যানিটিকে একাধিকবার বাঁচিয়েছে। বেস তৈরি করে শুরু করুন। এটি অর্ধেক ভাঁজ করা মাত্র একটি কুইল্টিং কোয়ার্টার। উপরে ব্যাটিংয়ের একটি স্তর রাখুন এবং সেলাই করুন, এটি উল্টানোর জন্য একটি গর্ত রেখে। জিনিসটিকে গর্তের মধ্য দিয়ে ধাক্কা দিন এবং আপনার কাছে মূলত একটি বালিশ টাইপ জিনিস আছে। আমি এটি quilted তাই এটি সঙ্গে কাজ করা সহজ ছিল। প্লেইন থ্রেড ব্যবহার করুন এবং বাদাম যান। আমি এই একটি হীরা করেছি, কিন্তু সম্ভবত পরের বার আমি একটি ড্রাগন পিছনে, বা শীতল কিছু রাখা হবে। এখন, সুইচগুলিতে। আমি এই নকশাটি পছন্দ করি কারণ আপনি মূলত সময়ের আগে এইগুলির একটি টন তৈরি করতে পারেন এবং আপনি যা চান তা ব্যবহার করতে পারেন। কার্ডবোর্ড, কাগজ বা ফ্যাব্রিকের একটি স্ক্র্যাপ টুকরো ব্যবহার করে শুরু করুন এবং এটি থেকে একটি নাশপাতির আকৃতি কেটে নিন। প্রতিটি সুইচের জন্য একটি উপরে এবং নীচে কাটাতে এটি একটি গাইড হিসাবে ব্যবহার করুন। আমি প্রতিটি নীচের জন্য একটি রঙ এবং শীর্ষগুলির জন্য একটি ভিন্ন রঙ কাটলাম, কিন্তু আপনি সৃজনশীল হতে পারেন এবং আপনার যা ইচ্ছা তা করতে পারেন। "লাঠি" লম্বা করুন যাতে এটি "নাশপাতি" এর প্রান্তে মোড়ানো যায়। ফিউজিং এবং পরিবাহী ফ্যাব্রিক থেকে আকৃতি কেটে এবং পরিবাহী কাপড়ের একপাশে ফিউজ করুন। ফিউজিং উপাদান থেকে ব্যাকিং সরান এবং ফ্যাব্রিকের উপরের অংশে ফিউজ করুন যা নীচে থাকবে এবং ফ্যাব্রিকের নীচের অংশটি উপরে থাকবে। উপরের চারপাশে অতিরিক্ত বিট মোড়ানো। আপনার সেলাই মেশিনের দিকে এগিয়ে যান এবং উপরের এবং নীচের কাপড়ের মধ্যে গর্ত দিয়ে ব্যাটিং করুন। পরিবাহী কাপড়ের বাইরে সেলাই করুন এবং সুইচের "লাঠি" অংশটি এড়িয়ে যান। আমি দেখেছি যে উপরের পরিবাহী ফ্যাব্রিকটি নীচে একটি ছোট তৈরি করা সম্ভব। পরিবাহী কাপড় দিয়ে সেলাই না করাই ভালো। স্ন্যাপ সংযুক্ত করুন এবং সুইচ সম্পন্ন হয়েছে। আমি সব নীচে/GND সংযোগের জন্য পুরুষ স্ন্যাপ এবং সব শীর্ষের জন্য মহিলা স্ন্যাপ ব্যবহার করা সহজ পেয়েছি। এই সব সুইচ বিনিময়যোগ্য করে তোলে সার্কিট: রাউন্ড কাটার বিষয় হল যে আপনার অনেক অতিরিক্ত বিট আছে। আমি আমার স্ক্র্যাপ নিয়েছি, ফিউজিংয়ের বড় টুকরোগুলি পরিবাহী ফ্যাব্রিকের বড় টুকরো করে নিয়েছি এবং সেগুলি প্যাড হিসাবে ব্যবহার করা ছোট আয়তক্ষেত্রগুলি কাটতে ব্যবহার করেছি। মোটামুটি আপনার সুইচগুলি রাখুন এবং প্যাডগুলিকে বেসে ফিউজ করুন যাতে তাদের কাছে একটি লাইন সেলাই করা যায় এবং একটি স্ন্যাপ থাকে। আমি যে সেলাই মেশিনটি ব্যবহার করেছি তার পা স্ন্যাপের কাছাকাছি আসার জন্য দয়া করে নেয়নি, তাই এটি মনে রাখবেন এবং নিজেকে কিছুটা জায়গা দিন। যেহেতু আমি আমার সেলাই মেশিনে যেতে পারে এমন পরিবাহী থ্রেড পেয়েছি তাই আমি প্যাড থেকে প্যাড এবং পিছনে একটি লাইন সেলাই করেছি। আমাকে ধীর গতিতে যেতে হয়েছিল বা থ্রেডটি ভেঙে যাবে, কিন্তু এটি হাত সেলাইয়ের চেয়ে এক টন দ্রুত ছিল। এছাড়াও ববিন এবং সুইতে পরিবাহী থ্রেড দিয়ে, আমি সত্যিই একটি ভাল শক্ত সংযোগ পেয়েছি। জিনিসগুলি পাগলের মতো ফেটে যায়, তবে সামান্য কারুকাজের আঠা বা এলমার্স এটিকে পরিষ্কার করে। লাইনগুলি একে অপরের থেকে ভালভাবে দূরে রাখার চেষ্টা করুন এবং আপনার কোনও সমস্যা হওয়া উচিত নয়। চূড়ান্ত সমাবেশ: আপনার সমস্ত সুইচগুলিতে স্ন্যাপ করুন, বোর্ডটি সংযুক্ত করুন, কোড লোড করুন এবং আপনার কাজ শেষ। আমি বোর্ড থেকে প্যাডে যাওয়ার জন্য তারের ব্যবহার করেছি এবং তারপরে কেবল হাতে তারের বেসটি সেলাই করেছি। পরবর্তী সংস্করণের জন্য, আমি একটি প্লাস্টিকের বাক্সে স্ন্যাপ সহ বোর্ডটি মাউন্ট করব যাতে এটি বেসের সাথে সংযুক্ত থাকে যাতে নিষ্ক্রিয় আঙ্গুলগুলি এটিকে আলাদা না করে।

ধাপ 8: কোড

কোড
কোড

আপনি যদি আগে কখনো চিপ প্রোগ্রাম না করে থাকেন তবে এটি কিছুটা ভয়ঙ্কর কাজ। এটি সাহায্য করে না যে সরঞ্জামগুলি ঝাপসা এবং বেশিরভাগ সময় আপনাকে একই অপারেশন একাধিকবার করতে হবে। কি ঘটছে তা বোঝার জন্য আমি যে দুটি সেরা সম্পদ পেয়েছি তা হল USBtinyISP, https://www.ladyada.net/make/usbtinyisp/ এবং নয়েজ টয় প্রোগ্রামিংয়ের ক্র্যাশ কোর্স, http:/ /blog.makezine.com/archive/2008/05/noise_toy_crashcourse_in.html এগুলি আপনাকে শুরু করতে সক্ষম হওয়া উচিত।

এই কোডিংয়ের জন্য অনেক মানুষ আরডুইনো পছন্দ করে এবং এটি ব্যবহারে কিছু ভুল নেই, তবে আমি মনে করি এটি একটি সাধারণ সহজ প্রোগ্রামে প্রচুর ফুসকুড়ি যোগ করে। এছাড়াও, আমি সি জানতাম এবং আরডুইনোকে চিনি না। সময় থাকলে হয়তো একদিন।:) কোড: {{{#include // SPK চালু করতে একটি পিন ব্যবহার করুন /// Typedefs ////////// typedef স্বাক্ষরবিহীন চার u8; int প্রধান (অকার্যকর) {u8 btnState0; u8 btnState1; u8 btnState2; u8 btnState3; u8 btnState4; u8 btnState5; u8 btnState6; DDRB = (1 << DDB6); // আউটপুটের জন্য SPK সেট করুন PORTD = (1 << PD0) | (1 << PD1) | (1 << PD2) | (1 << PD3) | (1 << PD4); // সেট বোতাম হাই PORTC = (1 << PC4) | (1 << পিসি 6); TCCR2B = (1 << CS21); // টাইমার সেট করুন যখন (1) {btnState0 = ~ PINC & (1 << PC5); btnState1 = ~ PINC & (1 << PC4); btnState2 = ~ PIND & (1 << PD0); btnState3 = ~ PIND & (1 << PD1); btnState4 = ~ PIND & (1 << PD2); btnState5 = ~ PIND & (1 << PD3); btnState6 = ~ PIND & (1 << PD4); if (btnState0) {if (TCNT2> = 190) {PORTB ^= (1 << PD6); // ফ্লিপ SPK পিন TCNT2 = 0; }} if (btnState1) {if (TCNT2> = 179) {PORTB ^= (1 << PD6); // ফ্লিপ SPK পিন TCNT2 = 0; }} if (btnState2) {if (TCNT2> = 159) {PORTB ^= (1 << PD6); // ফ্লিপ SPK পিন TCNT2 = 0; }} if (btnState3) {if (TCNT2> = 142) {PORTB ^= (1 << PD6); // ফ্লিপ SPK পিন TCNT2 = 0; }} if (btnState4) {if (TCNT2> = 126) {PORTB ^= (1 << PD6); // ফ্লিপ SPK পিন TCNT2 = 0; }} if (btnState5) {if (TCNT2> = 119) {PORTB ^= (1 << PD6); // ফ্লিপ SPK পিন TCNT2 = 0; }} if (btnState6) {if (TCNT2> = 106) {PORTB ^= (1 << PD6); // ফ্লিপ SPK পিন TCNT2 = 0; }}}}}}} পিচগুলি কোথা থেকে আসে? একটু গণিত দরকার ছিল। Atmega 168 এ টাইমার ঘড়ি 1MHz এ চলে। অডিওর জন্য এটি খুব দ্রুত তাই আমাদের prescaler /8 ব্যবহার করতে হবে। তারপর যেহেতু আমাদের 1 টি চক্র তৈরির জন্য আউটপুট পিনকে উঁচু থেকে নীচে ফ্লিপ করতে হবে, তাই সঠিক পিচ নিয়ে আসার জন্য আমাদের উত্তরটি 2 দ্বারা ভাগ করতে হবে। সূত্রটি এরকম দেখাচ্ছে, কোড = (1000000/8)/(টার্গেট ফ্রিকোয়েন্সি*2) এ রাখার জন্য পি (440) এর জন্য এটি 125000/880 = 142.045 বা 142 হবে, কারণ মান অবশ্যই একটি পূর্ণসংখ্যা হতে হবে । নোটের টার্গেট ফ্রিকোয়েন্সি অনলাইনে প্রায় যেকোনো জায়গায় পাওয়া যাবে এবং সাধারণত সব একই রকম। আমি এখনও একটি গুচ্ছ ইফ ব্যবহার করার পরিবর্তে একটি কেস স্টেটমেন্ট যোগ করতে চাই এবং স্পিকারের ভলিউম এবং পিচকে আরও ভালভাবে নিয়ন্ত্রণ করতে PWM ব্যবহার করি, কিন্তু আপাতত এটি কাজ করে।

প্রস্তাবিত: