সুচিপত্র:

শব্দ সহ ওয়াইন চশমা ভেঙে !: 10 টি ধাপ (ছবি সহ)
শব্দ সহ ওয়াইন চশমা ভেঙে !: 10 টি ধাপ (ছবি সহ)

ভিডিও: শব্দ সহ ওয়াইন চশমা ভেঙে !: 10 টি ধাপ (ছবি সহ)

ভিডিও: শব্দ সহ ওয়াইন চশমা ভেঙে !: 10 টি ধাপ (ছবি সহ)
ভিডিও: গরুটা সাথে কি হয়েছে #shorts #wildlifebd 2024, জুলাই
Anonim
Image
Image

হ্যালো এবং স্বাগতম!

এখানে প্রকল্পের একটি সম্পূর্ণ ডেমো!

স্পিকারটি তার টিউবের প্রান্তে প্রায় 130 ডিবি পর্যন্ত শীর্ষে রয়েছে, তাই শ্রবণ সুরক্ষা নিশ্চিতভাবে প্রয়োজন!

এই প্রকল্পের ধারণাটি নিম্নরূপ:

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

বোতাম নিয়ন্ত্রণ এবং অপারেশন:

- উপরের বাম ডায়ালটি একটি ঘূর্ণমান এনকোডার। এটি অসীমভাবে ঘুরতে পারে এবং এটি কোন দিকে মোড়ানো হচ্ছে তা বেছে নেবে। এই আউটপুট ফ্রিকোয়েন্সি উভয় দিক সমন্বয় করা যাবে। ঘূর্ণমান এনকোডারের ভিতরে একটি পুশ বাটনও রয়েছে যা আপনাকে এটিতে 'ক্লিক' করার অনুমতি দেয়। আমার কাছে আউটপুট ফ্রিকোয়েন্সি রিসেট করার জন্য আপনি যেটা ফ্রিকোয়েন্সিটি 'ক্যাপচার' করেছেন তা পুনরায় সেট করুন। মূলত এটি আপনার টিউনিং বন্ধ করে দেয়।

- উপরের ডান একটি চালু/বন্ধ সুইচ। এটি পুরো সার্কিটে বিদ্যুৎ চালু বা বন্ধ করে দেয়।

- নিচের বাঁদিকে মাইক্রোফোন ক্যাপচারিং বোতাম। এটি রেকর্ডিং ফ্রিকোয়েন্সি উপেক্ষা করা এবং পুনরুত্পাদন ফ্রিকোয়েন্সি রেকর্ডিং মধ্যে বিকল্প। এইভাবে আপনি যে রুমে থাকেন তার "অ্যাম্বিয়েন্ট ফ্রিকোয়েন্সি" সরিয়ে ফেলতে পারেন।

- নিচের ডানদিকে স্পিকার আউটপুট বাটন। স্পিকারটি চাপার সময় এটি পূর্বে ধারণ করা ফ্রিকোয়েন্সি আউটপুট করা শুরু করে।

আপনি যদি কাচ ভাঙতেও আগ্রহী হন, তাহলে এই নির্দেশনাটি অনুসরণ করুন এবং হয়তো আপনি পথের মধ্যে ঝরঝরে কিছু শিখবেন। শুধু একটি মাথা, এই প্রকল্পে অনেক সোল্ডারিং এবং 3D মুদ্রণ অন্তর্ভুক্ত, তাই এটি কিছুটা কঠিন হতে পারে। একই সময়ে, আপনি ইতিমধ্যেই জিনিসগুলি তৈরিতে বেশ আশ্চর্যজনক (আপনি ইন্সট্রুকেবলগুলিতে আছেন, তাই না?)।

সুতরাং, নিজেকে প্রস্তুত করুন এবং …

আসুন রোবট তৈরি করি!

ধাপ 1: উপকরণ, সরঞ্জাম এবং সরঞ্জাম

উপকরণ, সরঞ্জাম এবং সরঞ্জাম
উপকরণ, সরঞ্জাম এবং সরঞ্জাম
উপকরণ, সরঞ্জাম এবং সরঞ্জাম
উপকরণ, সরঞ্জাম এবং সরঞ্জাম

কারণ এই প্রকল্পটি ঠিক যেমনটি আমি করেছি তেমন করার প্রয়োজন নেই, আমি একটি 'প্রয়োজনীয়' তালিকা এবং উপকরণগুলির একটি 'alচ্ছিক' তালিকা অন্তর্ভুক্ত করব, আপনি কতটা নির্মাণ করতে চান তার উপর নির্ভর করে! Partচ্ছিক অংশে স্পিকার এবং ইলেকট্রনিক্সের জন্য 3D প্রিন্টিং আবাসন অন্তর্ভুক্ত থাকবে।

প্রয়োজন:

উপকরণ:

  • ওয়াইন চশমা - যেকোনো ঠিক আছে, আমি শুভেচ্ছায় গিয়েছিলাম এবং সস্তা একটি খুঁজে পেয়েছিলাম, পাতলা ভাল
  • ওয়্যার (বিভিন্ন রং সহায়ক হবে, আমি 12 গেজ ব্যবহার করেছি)
  • 6 এস 22.2v লিপো ব্যাটারি (আপনার সত্যিই উচ্চ এমএএইচ দরকার নেই, আমি 1300 ব্যবহার করেছি):

    hobbyking.com/en_us/turnigy-1300mah-6s-35c…

  • এক ধরণের ব্যাটারি সংযোগকারী। আপনি যদি উপরেরটি ব্যবহার করেন তবে এটি একটি XT60:
  • কম্প্রেশন ড্রাইভার স্পিকার - আপনি একটি উচ্চ সংবেদনশীলতা রেটিং (~ 100 dB) সঙ্গে কিছু প্রয়োজন:

    www.amazon.com/dp/B075K3P2CL/ref=psdc_1098…

  • Arduino- সামঞ্জস্যপূর্ণ মাইক্রোফোন:

    www.amazon.com/Electret-Microphone-Amplifi…

  • আরডুইনো (নন-সোল্ডারিংয়ের জন্য ইউনো বা সোল্ডারিংয়ের জন্য ন্যানো):

    www.amazon.com/ELEGOO-Arduino-ATmega328P-W…

  • রোটারি এনকোডার:

    www.amazon.com/Encoder-15%C3%9716-5-Arduin…

  • কিছু ধরণের চালু/বন্ধ সুইচও দরকারী (আমি এগুলি ব্যবহার করেছি):

    www.amazon.com/Encoder-15%C3%9716-5-Arduin…

  • পুশ বোতাম:

    www.adafruit.com/product/1009

  • কমপক্ষে একটি 60W পরিবর্ধক:

    www.amazon.com/KKmoon-TPA3118-Digital-Ampl…

  • 5v BEC Arduino কে পাওয়ার করতে:

    www.amazon.com/Servo-Helicopter-Airplane-R…

সরঞ্জাম ও যন্ত্রপাতি:

  • শ্রবণ সুরক্ষা - মজা করছে না, এই লোকটি প্রায় 130 ডিবি তে শীর্ষে রয়েছে, যা তাত্ক্ষণিক ক্ষতি করতে পারে
  • তাতাল
  • ঝাল
  • তারের স্ট্রিপার
  • বালির কাগজ
  • গরম আঠা বন্দুক

আবশ্যক না:

আপনি যদি আপনার প্রকল্পের জন্য সম্পূর্ণ 3D প্রিন্টেড হাউজিং করতে চান তবেই নিম্নলিখিতগুলি প্রয়োজন

উপকরণ:

  • বুলেট সংযোগকারী:
  • তারের তাপ সঙ্কুচিত:
  • প্রচুর ABS ফিলামেন্ট - আমি কতটা ব্যবহার করেছি তা পরিমাপ করিনি, তবে দুটি ~ 24hr প্রিন্ট এবং একটি ~ 8hr প্রিন্ট আছে
  • এম 3 স্ক্রু এবং বোল্টের ভাণ্ডার - আপনি যদি এর জন্য গর্তগুলি ড্রিল করতে চান তবে আপনি সম্ভবত কোনও আকার ব্যবহার করতে পারেন। কিন্তু আমি M3 স্ক্রু মাথায় রেখে নকশা তৈরি করেছি।

সরঞ্জাম ও যন্ত্রপাতি:

  • 3D প্রিন্টার - আমি আল্টিমেকার 2 ব্যবহার করেছি
  • প্রিন্টার আপনার অংশে কিছু অবশিষ্টাংশ রেখে দিলে ড্রেমেলও কার্যকর।

ধাপ 2: টেস্ট সার্কিট তৈরি করুন

টেস্ট সার্কিট তৈরি করুন
টেস্ট সার্কিট তৈরি করুন
টেস্ট সার্কিট তৈরি করুন
টেস্ট সার্কিট তৈরি করুন
টেস্ট সার্কিট তৈরি করুন
টেস্ট সার্কিট তৈরি করুন

পরবর্তীতে আমরা সম্ভবত জাম্পার ওয়্যার এবং ব্রেডবোর্ড ব্যবহার করে সার্কিট তৈরি করতে চাই!

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

পোস্ট করা প্রথম ছবিটিতে, আমি এম্প্লিফায়ার বোর্ড বা পাওয়ার সুইচকে সংযুক্ত করিনি, আমি আমার 9 এবং 10 পিনগুলিকে একটি মিনি টেস্ট স্পিকারের সাথে সংযুক্ত করেছি, কিন্তু আমি আপনাকে এগিয়ে যাওয়ার আগে সবকিছু একসাথে রাখার জন্য উত্সাহিত করি।

সার্কিটে:

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

বিদ্যুৎ সরবরাহ দিয়ে শুরু করা যাক:

ব্যাটারির ইতিবাচক শেষ সুইচে চলে যায়। এটি আমাদের সার্কিটটি চালু এবং বন্ধ করার অনুমতি দেয় যা কিছু সম্পূর্ণরূপে আনপ্লাগ না করে বা প্রয়োজনে সার্কিট পুনরায় চালু করার জন্য খুব উন্মাদ কিছু করে না। আমি যে আসল সুইচটি ব্যবহার করেছি তাতে কেবল দুটি টার্মিনাল ছিল এবং সুইচটি তাদের সংযুক্ত করেছিল বা সেগুলি খোলা রেখেছিল।

ইতিবাচক শেষ তারপর সুইচ থেকে এম্প্লিফায়ার বোর্ডে যায়।

ব্যাটারির নেতিবাচক প্রান্তটি সুইচ দিয়ে যাওয়ার দরকার নেই। এটি সরাসরি Amp- এর পাওয়ার-এন্ডে যেতে পারে।

পরবর্তী, পরিবর্ধক বোর্ড:

এম্প্লিফায়ার বোর্ডে চার সেট পিন থাকে, প্রতিটি সেটে দুটি থ্রোল থাকে। আমি এই বোর্ডের 'মিউট' বৈশিষ্ট্যটি ব্যবহার করছি না, তাই নির্দ্বিধায় এটি সম্পর্কে চিন্তা করবেন না। আমি ইতিমধ্যে উপরে বর্ণনা করেছি যে পাওয়ার + এবং পাওয়ার - ব্যাটারি থেকে সরাসরি 22.2v পাওয়া উচিত। আউটপুটের জন্য, আপনাকে এটি সরাসরি কম্প্রেশন ড্রাইভারের লিডগুলিতে হুক করা উচিত। কোন সীসা কোন পিনে যায় তা কোন ব্যাপার না, কিন্তু মাঝে মাঝে সেগুলোকে স্যুইচ করলে আপনি আরও ভালো সাউন্ড কোয়ালিটি পাবেন। অবশেষে, ইনপুট + এবং ইনপুট - আরডুইনোতে 10 এবং 9 পিনে যান, আবার, আদেশটি অগত্যা গুরুত্বপূর্ণ নয়।

মাইক্রোফোন:

মাইক্রোফোনটি অতি সাধারণ। Vcc arduino থেকে 5v পায়, GND Arduino এ GND তে যায়, এবং OUT Arduino এ A0 পিনে যায়।

বোতাম:

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

www.instructables.com/id/Arduino-Button-wi…

মাইক্রোফোন থেকে যে বোতামটি পড়ছে তা পিন 6 এর সাথে সংযুক্ত হবে এবং যে বোতামটি আসলে স্পিকারকে শব্দ উৎপাদন শুরু করতে বলে তা হল পিন 5 -এ।

রোটারি এনকোডার:

আমি যে ঘূর্ণমান এনকোডারটি ব্যবহার করেছি তাতে এর ভিতরে একটি বোতাম অন্তর্ভুক্ত ছিল। সুতরাং, আপনি আসলে ডায়ালে ক্লিক করতে পারেন, এবং এটি একটি বোতাম প্রেস হিসাবে পড়তে পারে।

এর জন্য ওয়্যারিং নিম্নরূপ: GND থেকে Arduino GND, + to Arduino + 5v, SW to pin 4, DT to pin 3, CLK to pin 2

ঘূর্ণমান এনকোডারগুলি কীভাবে কাজ করে সে সম্পর্কে আপনি যদি আরও তথ্য চান তবে এই লিঙ্কটি দেখুন:

howtomechatronics.com/tutorials/arduino/ro…

এবং এটা সার্কিটের জন্য!

ধাপ 3: পরীক্ষা কোড

পরীক্ষা কোড
পরীক্ষা কোড

এখন আপনার Arduino এ কিছু কোড আপলোড করার সময়

আপনি GitHub- এ আমার রেপো ডাউনলোড করতে পারেন যার জন্য আপনার প্রয়োজনীয় সমস্ত ফাইল রয়েছে:

অথবা, আমি এই ধাপের নীচে শুধু GlassGun.ino ফাইলটি আপলোড করেছি

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

আমি এই সব ব্যবহার করছি:

  • লিঙ্কডলিস্ট -
  • ToneAC -
  • রোটারি -

তাদের প্রত্যেকেরই নির্দেশ রয়েছে কিভাবে আপনার Arduino ডিরেক্টরিতে ইনস্টল করবেন। আপনার যদি আরডুইনো লাইব্রেরি সম্পর্কে আরও তথ্যের প্রয়োজন হয় তবে এই লিঙ্কটি দেখুন:

www.arduino.cc/en/Guide/Libraries

এই পতাকাটি ব্যবহারকারীকে সিরিয়াল লাইনে সহজেই বা স্ক্রিন প্রিন্টআউট বন্ধ করতে দেয়:

// ডিবাগ পতাকা

বুলিয়ান প্রিন্ট ডিবাগ = সত্য;

এটি ফ্রিকোয়েন্সি ক্যাপচার করতে ব্যবহৃত ভেরিয়েবলগুলিকে আরম্ভ করে এবং যেটি সবচেয়ে বেশি দেখা যায় তা ফেরত দেয়:

// ফ্রিকোয়েন্সি ক্যাপচারলিংকড লিস্ট freqData; লিঙ্কডলিস্ট NOT_DATA; int মোডহোল্ড; int modeCount = 1; int modeSubCount = 1; বুলিয়ান gotData = মিথ্যা; বুলিয়ান badData = সত্য;

এটি স্পিকারে আউটপুট করার মান নির্ধারণ করে। freqModifier আমরা ঘূর্ণমান এনকোডার টিউনিং এর উপর ভিত্তি করে আউটপুটে যোগ বা বিয়োগ করি। modeValue হল মাইক্রোফোন থেকে রেকর্ডিং ধারণ করে। চূড়ান্ত আউটপুট শুধু modeValue + freqModifier।

// ফ্রিকোয়েন্সি নির্গমন

int freqModifier = 0; int modeValue;

লাইব্রেরি ব্যবহার করে রোটারি এনকোডার সেট আপ করুন:

// ঘূর্ণমান এনকোডারের মাধ্যমে টিউনিং

int val; #সংজ্ঞায়িত এনকোডার বাটনপিন 4 #সংজ্ঞায়িত এনকোডারপিনএ 2 #সংজ্ঞায়িত এনকোডারপিনবি 3

বোতামগুলি সংযুক্ত পিনের সংজ্ঞা দেয়:

// মাইক্রোফোন এবং স্পিকার ট্রিগার করার জন্য বোতাম

#ডিফাইন স্পিকার বাটন 5 #মাইক্রোফোন সংজ্ঞায়িত করুন বাটন 6

এই মানটি বলে যে রেকর্ড করা ফ্রিকোয়েন্সিটি খুব বেশি বা কম:

// ক্লিপিং সূচক ভেরিয়েবল

বুলিয়ান ক্লিপিং = 0;

ফ্রিকোয়েন্সি রেকর্ডিং ব্যবহার করা হয়:

// ডেটা স্টোরেজ ভেরিয়েবল

বাইট newData = 0; বাইট prevData = 0;

দোলনের উপর ভিত্তি করে ফ্রিকোয়েন্সি সংখ্যার প্রকৃত গণনায় ব্যবহৃত হয়:

// freq ভেরিয়েবল

স্বাক্ষরবিহীন int টাইমার = 0; // তরঙ্গের সময় গণনা স্বাক্ষরবিহীন int সময়কাল; int ফ্রিকোয়েন্সি;

এখন, কোডের প্রকৃত অংশে:

এখানে, আমরা টেস্ট সার্কিট ধাপে পূর্বে বর্ণিত বাটন টিপে রোধক ব্যবহার না করার জন্য মাইক্রোফোন এবং স্পিকার বোতাম সেটআপ করেছি (আরো তথ্য: https://www.instructables.com/id/Arduino-Button-wi…) I এছাড়াও resetMicInterupt কল করুন, যা পিনের কিছু খুব নিম্ন স্তরের সেটিং করে যাতে A0 পিনটি খুব স্বতন্ত্র সময়কালে শোনা যায়। এই মানগুলি থেকে ফ্রিকোয়েন্সি কীভাবে পেতে হয় তা আমাকে নির্দেশ করার জন্য আমি এই নির্দেশযোগ্য ব্যবহার করেছি:

www.instructables.com/id/Arduino-Frequency…

অকার্যকর সেটআপ () {পিনমোড (13, আউটপুট); // নেতৃত্বাধীন নির্দেশক পিন পিনমোড (মাইক্রোফোন বাটন, INPUT_PULLUP); // মাইক্রোফোন পিন পিনমোড (স্পিকার বাটন, INPUT_PULLUP); যদি (printDebug) {Serial.begin (9600); } resetMicInterupt (); } void resetMicInterupt () {cli (); // diable interrupts // set up सतत sample of analog pin 0 // clear ADCSRA and ADCSRB registers ADCSRA = 0; ADCSRB = 0; ADMUX | = (1 << REFS0); // সেট রেফারেন্স ভোল্টেজ ADMUX | = (1 << ADLAR); // ADC মান বাম সারিবদ্ধ করুন- তাই আমরা ADCH রেজিস্টার থেকে সর্বোচ্চ 8 বিট পড়তে পারি শুধুমাত্র ADCSRA | = (1 << ADPS2) | (1 << ADPS0); // 32 টি prescaler- 16mHz/32 = 500kHz ADCSRA সহ ADC ঘড়ি সেট করুন = = (1 << ADATE); // স্বয়ংক্রিয় ট্রিগার ADCSRA | = (1 << ADIE); // পরিমাপ সম্পন্ন হলে বাধাগুলি সক্ষম করুন ADCSRA | = (1 << ADEN); // ADC ADCSRA সক্রিয় করুন | = (1 << ADSC); // এডিসি পরিমাপ শুরু sei (); // ইন্ট্রাপ্টস সক্ষম করুন} ISR (ADC_vect) {// যখন নতুন এডিসি মান প্রস্তুত prevData = newData; // পূর্ববর্তী মান newData = ADCH; // A0 থেকে মান পান যদি (prevData = 127) // // যদি মিডপয়েন্ট পিরিয়ড = টাইমার বৃদ্ধি পায় এবং অতিক্রম করে; // পিরিয়ড টাইমার = 0 পান। /সেট পিন 13 হাই-ক্লিপিং ইন্ডিকেটর নেতৃত্বে ক্লিপিং = 1; // বর্তমানে ক্লিপিং} টাইমার ++; // 38.5kHz হারে ইনক্রিমেন্ট টাইমার}

আমি মনে করি যে এখানে বেশিরভাগ কোড যথেষ্ট সহজ, এবং বেশ পাঠযোগ্য হওয়া উচিত, তবে আমি আরও বিভ্রান্তিকর কিছু ক্ষেত্র তুলে ধরব:

এই অংশটি বেশিরভাগই রোটারি লাইব্রেরি থেকে আসে। যা বলা হচ্ছে তা হল, যদি আপনি ঘড়ির কাঁটার দিকে চলে যান, তাহলে freqModifer এক করে বাড়িয়ে দিন, যদি আপনি উপরে না যান, তাহলে আপনি অবশ্যই নিচে চলে গেছেন, তাই freqModifier কে এক করে নিন।

স্বাক্ষরবিহীন চার ফলাফল = r.process (); // দেখুন ঘূর্ণমান এনকোডার সরানো হয়েছে কিনা

যদি (ফলাফল) {firstHold = true; যদি (ফলাফল == DIR_CW) freqModifier ++; // যদি আমরা ঘড়ির কাঁটার দিকে চলে যাই, অন্যথায় বৃদ্ধি, অন্যথায় হ্রাস যদি (freqModifier 50) freqModifier = 50; যদি (printDebug) {Serial.print ("FreqMod:"); Serial.println (freqModifier); }}

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

void getMode () {boolean doAdd = true // "খারাপ মান" বা আমরা যে মানগুলি জানি তা খারাপ হওয়ার জন্য প্রথম বোতাম টিপে ছোট হওয়া উচিত // এটি "খারাপ ডেটা" এবং "ভাল ডেটা" রেকর্ডিংয়ের মধ্যে পরিবর্তিত হয় যদি (badData) {if (printDebug) Serial.println ("খারাপ ডেটা:"); জন্য (int j = 0; j <freqData.size (); j ++) {for (int i = 0; i <NOT_DATA.size (); i ++) {if (freqData.get (j) == NOT_DATA.get (i)) {doAdd = false; বিরতি; }} যদি (doAdd) {NOT_DATA.add (freqData.get (j)); } doAdd = সত্য; } যদি (printDebug) {Serial.println ("-----"); জন্য (int i = 0; i <NOT_DATA.size (); i ++) {Serial.println (NOT_DATA.get (i)); } Serial.println ("-------"); }}

এখানে আমরা "ভাল ডেটা" এর মাধ্যমে লুপিং করছি এবং "আগের থেকে খারাপ ডেটা" এর সাথে মেলে এমন সমস্তগুলি বের করছি

যখনই আমরা তালিকা থেকে একটি উপাদান মুছে ফেলি, তখন আমাদের আউটটার লুপে একটি ধাপ পিছিয়ে যেতে হবে (j--) কারণ অন্যথায় আমরা মান এড়িয়ে যাব।

অন্য {

যদি (printDebug) Serial.println ("খারাপ ডেটা নয়:"); জন্য (int j = 0; j <freqData.size (); j ++) {for (int i = 0; i <NOT_DATA.size (); i ++) {if (freqData.get (j) == NOT_DATA.get (i)) {যদি (printDebug) {Serial.print ("সরানো হয়েছে:"); Serial.println (freqData.get (j)); } freqData.remove (j); j--; বিরতি; }}} freqData.sort (minToMax); modeHold = freqData.get (0); modeValue = modeHold; জন্য (int i = 0; i modeSubCount) {modeSubCount = modeCount; modeValue = modeHold; } modeCount = 1; modeHold = freqData.get (i); }} modeCount = 1; মোড সাবকাউন্ট = 1; যদি (printDebug) {Serial.println ("--------"); Serial.println (modeValue); Serial.println ("---------"); } NOT_DATA. clear (); } যদি (badData) badData = মিথ্যা; অন্যথায় badData = সত্য; freqData.clear (); }

ধাপ 4: আপনার মাইক্রোফোন টিউন করুন

আপনার মাইক্রোফোন টিউন করুন
আপনার মাইক্রোফোন টিউন করুন
আপনার মাইক্রোফোন টিউন করুন
আপনার মাইক্রোফোন টিউন করুন

এটি সম্ভবত আমার জন্য সবচেয়ে কঠিন পদক্ষেপগুলির মধ্যে একটি ছিল, কারণ আমি সঠিক আউটপুট ফ্রিকোয়েন্সি তৈরির জন্য কোড সম্পাদনার সাথে এটি করছিলাম।

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

এটি আপনাকে আপনার মাইক্রোফোনকে ওয়াইন গ্লাসের অডিও স্তরে 'টিউন' করতে দেয়।

সুতরাং, আপনি আসলে এটি কিভাবে অর্জন করবেন?

আচ্ছা, আপনি USB তারের মাধ্যমে আপনার কম্পিউটারে আপনার Arduino সংযুক্ত করতে পারেন, Arduino সম্পাদকের উপরের ডানদিকে আইকনে ক্লিক করে সিরিয়াল মনিটর খুলুন।

বড রেট 9600 সেট করুন।

তারপরে যখন আপনি আপনার কোডটি আরডুইনোতে আপলোড করবেন, তখন আপনাকে সেই নতুন উইন্ডোতে সমস্ত "printDebug" বার্তা দেখতে হবে।

আপনার মাইক্রোফোনটি সঠিকভাবে টিউন করার জন্য, আমি আপনার ফোনে এমন একটি অ্যাপ পাওয়ার সুপারিশ করব যা ফ্রিকোয়েন্সিগুলিতে পড়ে (এটির মতো) এবং আসলে আপনার কাচের সঠিক ফ্রিকোয়েন্সি কী তা খুঁজে বের করুন। অ্যাপটি খোলা রেখে গ্লাস টিং করুন, সঠিক ফ্রিকোয়েন্সি খুঁজুন, তারপরে আপনার মাইক্রোফোন টিউন করা শুরু করুন যতক্ষণ না আপনি মোটামুটি সামঞ্জস্যপূর্ণ ফলাফল পান।

সুতরাং, প্রক্রিয়া হল:

  1. স্পেকট্রোমিটার অ্যাপটি দিয়ে গ্লাস টিং করুন এবং দেখুন যে প্রকৃত অনুরণন ফ্রিকোয়েন্সি কি
  2. দ্রুত আপনার সার্কিটে তারযুক্ত মাইক্রোফোন বোতাম টিপে 'খারাপ ডেটা' রেকর্ড করুন
  3. আপনার সার্কিটে মাইক্রোফোন বোতামটি চেপে রাখুন প্রকৃত মাইক্রোফোনটি কাচের কাছাকাছি এবং স্ক্রু ড্রাইভার বা অন্য কিছু দিয়ে কাচ টিং করুন
  4. সিরিয়াল মনিটরের আউটপুটটি দেখুন এবং দেখুন যে এটি প্রকৃত ফ্রিকোয়েন্সি ভ্যালুর কাছাকাছি কিনা
  5. মাইক্রোফোনে পোটেন্টিওমিটার স্ক্রু সামান্য সামঞ্জস্য করুন এবং পুনরাবৃত্তি করুন

আপনি শুধু 'mic_test' স্ক্রিপ্ট চালাতে পারেন, যা ক্রমাগত মাইক্রোফোন চালাবে, এটি স্ক্রিনে আউটপুট করবে। আপনি যদি এই ভাবে করেন, কোডটি চলার সময় আপনাকে স্ক্রু পোটেন্টিওমিটার চালু করতে হবে যেখানে এটির জন্য সেরা স্পটটি দেখতে হবে।

ধাপ 5: কিছু গ্লাস ভাঙ্গুন

কিছু গ্লাস ভাঙ্গুন!
কিছু গ্লাস ভাঙ্গুন!
কিছু গ্লাস ভাঙ্গুন!
কিছু গ্লাস ভাঙ্গুন!

পুরনো কাচ ভাঙার সময়!

প্রথমত, নিশ্চিত হয়ে নিন যে আপনি কানের সুরক্ষা পরিধান করছেন!

গ্লাস ভাঙার জন্য সবকিছু ঠিক জায়গায় পড়ে যাওয়ার একটি শিল্প আছে।

  1. আপনাকে ওয়াইন গ্লাসের রিম বালি করতে হবে
  2. আপনাকে ফ্রিকোয়েন্সি ঠিক করতে হবে
  3. আপনাকে কোণটি সঠিকভাবে পেতে হবে
  4. আপনাকে নিশ্চিত করতে হবে যে আপনার ওয়াইন গ্লাস মূল্যবান কম্পন শক্তি হারায় না

সুতরাং, আমি এটি করার সবচেয়ে ভাল উপায় হল:

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

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

দ্বিতীয়ত, কাচটি ঘাড়ের দিকে বাঁকানো শুরু হওয়ার ঠিক আগে কাচের সবচেয়ে প্রশস্ত অংশে স্পিকার নির্দেশ করার চেষ্টা করুন।এখানেই এটি খড় বা জিপ টাইকে অনেক বাউন্স করে, তাই আপনি কোন অংশটি সবচেয়ে ভাল কাজ করে তা দেখতে সক্ষম হওয়া উচিত।

অবশেষে, আমি আমার গ্লাস টেবিলে টেপলাম। যদি গ্লাসটি পুরো গ্লাসটি স্পন্দিত করার এবং টেবিল জুড়ে স্কুট করার বিকল্প থাকে তবে এটি কম্পন হারাচ্ছে যা অন্যথায় কাচের ঝাঁকুনি তৈরি করতে পারে। সুতরাং, আমার সুপারিশ হল স্কচ টেপ দিয়ে গ্লাসটি টেবিলে আলগাভাবে টেপ করা। আপনি যদি এটি খুব বেশি টেপ করেন তবে এটি মোটেও কম্পন করতে সক্ষম হবে না!

লেভেলগুলি সঠিকভাবে পেতে চেষ্টা করার জন্য এটির সাথে কিছু সময় কাটান এবং নিশ্চিত করুন যে আপনি এটি রেকর্ড করেছেন যাতে আপনি আপনার সমস্ত বন্ধুদের দেখাতে পারেন!

ধাপ 6: (alচ্ছিক) ঝাল

(Ptionচ্ছিক) ঝাল
(Ptionচ্ছিক) ঝাল
(Ptionচ্ছিক) ঝাল
(Ptionচ্ছিক) ঝাল
(Ptionচ্ছিক) ঝাল
(Ptionচ্ছিক) ঝাল

সুতরাং, আপনি পুরো জিনিসটি আপনার কাছে করার সিদ্ধান্ত নিয়েছেন? ভাল, আপনার জন্য ভাল! আমি অবশ্যই এটি করতে উপভোগ করেছি!

আচ্ছা, প্রথমে প্রথম জিনিস। সার্কিট মূলত একই, কিছু সূক্ষ্ম পার্থক্য আছে।

  1. আপনি সরাসরি স্পিকারের নেতৃত্বে সোল্ডারিং করা হবে
  2. আপনি স্পিকারে বুলেট সংযোগকারী যুক্ত করবেন
  3. আপনি আরডুইনো ন্যানোকে পাওয়ার জন্য BEC যুক্ত করবেন

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

আমাদের ব্যাটারির ইতিবাচক শেষ প্রথমে সুইচে যায়, BEC- এ। এটি আমাদের ভোল্টেজকে 22.2v থেকে 5v এ নামিয়ে Arduino তে বিদ্যুৎ সরবরাহ করে। ব্যাটারির ইতিবাচক প্রান্তটি আমাদের পরিবর্ধকের পাওয়ার+ প্রান্তেও যায়। এটি সরাসরি Amp কে 22.2v প্রদান করে।

BEC নিম্ন ভোল্টেজ শেষ Arduino এ + থেকে + 5v, এবং - Arduino এ GND- এ যায়।

এটি অত্যন্ত সুপারিশ করা হয় যে আপনি বুলেট সংযোগকারীগুলিতে কিছু তারের অন্তরণ ব্যবহার করুন, যাতে তারা একে অপরকে স্পর্শ না করে এবং সার্কিটটি ছোট করে।

এছাড়াও, আপনি বিশেষভাবে কোন কিছুর কাছে সোল্ডারিং করবেন না। আপনি বাতাসে শুধু সোল্ডার, এটি এমন একটি কৌশল যাকে আমি "এয়ার সোল্ডারিং" বলি এটি শুরুতে ঝুলানো কঠিন, তবে আপনি কিছুক্ষণ পরে এটিতে অভ্যস্ত হয়ে উঠবেন।

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

ধাপ 7: (ptionচ্ছিক) প্রিন্ট হাউজিং

(Alচ্ছিক) প্রিন্ট হাউজিং
(Alচ্ছিক) প্রিন্ট হাউজিং
(Alচ্ছিক) প্রিন্ট হাউজিং
(Alচ্ছিক) প্রিন্ট হাউজিং
(Alচ্ছিক) প্রিন্ট হাউজিং
(Alচ্ছিক) প্রিন্ট হাউজিং
(Alচ্ছিক) প্রিন্ট হাউজিং
(Alচ্ছিক) প্রিন্ট হাউজিং

এই প্রকল্পের সাথে মুদ্রণ করার জন্য তিনটি ফাইল রয়েছে:

  1. সামনের অংশ যা স্পিকার এবং মাইক্রোফোন ধারণ করে
  2. মাঝের বিটটিতে সমস্ত ইলেকট্রনিক্স, বোতাম এবং ব্যাটারি রয়েছে
  3. ব্যাটারি কভার

সবগুলো অংশ একসাথে জর্জিয়া টেকের আল্টিমেকার 2 এর 48-ঘন্টা মুদ্রণ। নিশ্চিত করুন যে আপনি সমর্থন সহ মুদ্রণ করেন, কারণ এই মুদ্রণে কিছু বড় ওভারহ্যাং রয়েছে।

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

ধাপ 8: (alচ্ছিক) পেইন্ট - যোগ করা শীতলতার জন্য

(Alচ্ছিক) পেইন্ট - যোগ করা শীতলতার জন্য
(Alচ্ছিক) পেইন্ট - যোগ করা শীতলতার জন্য
(Alচ্ছিক) পেইন্ট - যোগ করা শীতলতার জন্য
(Alচ্ছিক) পেইন্ট - যোগ করা শীতলতার জন্য
(Alচ্ছিক) পেইন্ট - যোগ করা শীতলতার জন্য
(Alচ্ছিক) পেইন্ট - যোগ করা শীতলতার জন্য

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

ধাপ 9: (ptionচ্ছিক) একত্রিত করুন

(Alচ্ছিক) একত্রিত করুন
(Alচ্ছিক) একত্রিত করুন
(Alচ্ছিক) একত্রিত করুন
(Alচ্ছিক) একত্রিত করুন
(Alচ্ছিক) একত্রিত করুন
(Alচ্ছিক) একত্রিত করুন

এখন যেহেতু সমস্ত যন্ত্রাংশ মুদ্রিত হয়েছে, সোল্ডারটি শক্ত, এবং কোডটি কাজ করছে, এখন এটি একসাথে এক জায়গায় রাখার সময়।

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

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

ঘূর্ণমান এনকোডারের নিজস্ব স্ক্রু রয়েছে, তাই আপনি এটিকে বাদাম দিয়ে উপরে থেকে শক্ত করতে পারেন।

পাওয়ার সুইচটি উপরে থেকে স্লট করা দরকার। এটা পেতে বাধ্য করার একটি বিট নিতে পারে, কিন্তু এটি স্লটে একবার এটি সুন্দরভাবে মাপসই করা উচিত।

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

ব্যাটারি ট্রে এর পিছনে snugly মাপসই করা উচিত, কিন্তু আমি সেখানে এটি ফিট পেতে কোন সমস্যা ছিল না

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

ধাপ 10: ()চ্ছিক) আবার গ্লাস ভাঙ্গুন

Image
Image

এই মুহুর্তে আপনার চারপাশের সমস্ত ভাঙা কাচের গৌরবে বিনা দ্বিধায় পড়ে যান। একটি শ্বাস নিন, আপনি এটি তৈরি করেছেন। আপনার চারপাশে উড়ে যাওয়ার সাথে সাথে গন্ধগুলি গন্ধ নিন।

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

যদিও একটি গুরুতর নোটে, আমার ছোট প্রকল্পটি নির্মাণের জন্য সময় নেওয়ার জন্য ধন্যবাদ। যদি আপনার কোন প্রতিক্রিয়া বা উন্নতি থাকে তবে আপনি আমাকে করতে চান, আমাকে জানান! আমি শোনার জন্য নিচে বেশী!

এবং একটি শেষবার …

আসুন রোবট তৈরি করি!

অডিও প্রতিযোগিতা 2018
অডিও প্রতিযোগিতা 2018

অডিও প্রতিযোগিতা 2018 এ রানার আপ

প্রস্তাবিত: