সুচিপত্র:

Arduino Metronome: 4 ধাপ
Arduino Metronome: 4 ধাপ

ভিডিও: Arduino Metronome: 4 ধাপ

ভিডিও: Arduino Metronome: 4 ধাপ
ভিডিও: Метроном на ардуино! #arduino #электроника #метроном 2024, নভেম্বর
Anonim
Image
Image

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

ধাপ 1: কার্যকরী বর্ণনা

অংশ তালিকা
অংশ তালিকা

বাড়িতে বা মিউজিক স্কুলে সুবিধামত ব্যবহার করার জন্য নিম্নলিখিত ফাংশন সহ একটি মেট্রোনোম ডিভাইস থাকলে ভাল হবে।

  • কম্প্যাক্ট ফর্ম ফ্যাক্টর ছোট ছোট জায়গাগুলির উপরে বা বাদ্যযন্ত্রের পাশে,
  • ব্যাটারি চালিত, শক্তিশালী এবং বহনযোগ্য বহনযোগ্য,
  • বাচ্চাদের জন্যও সহজে সেট আপ, BPM মান সবসময় প্রদর্শিত হয়,
  • 240 বিপিএম পর্যন্ত একটি রোটারি নোব দিয়ে প্রতি মিনিটে অ্যাডজাস্টেবল বিট
  • ভলিউম নিয়ন্ত্রণের সাথে শ্রবণযোগ্য কৌশল,
  • রাতারাতি হেডফোন অনুশীলনের জন্য নীরব মোড,
  • 8 টি LED পর্যন্ত বিটের ভিজ্যুয়াল প্রতিক্রিয়া (1/4, 2/4, 3/3, 4/4, 6/8, ইত্যাদি),
  • চাক্ষুষ এবং শ্রবণযোগ্য প্রতিক্রিয়া সহ, নেতৃস্থানীয় উচ্চারণ সহ বা ছাড়া।

স্যুইচিং, মেট্রোনোম মোড BP০ বিপিএম -এ শুরু হবে ছোট ডিসপ্লেতে দেখানো হবে এবং ১০ থেকে ২ 240০ এর মধ্যে রোটারি নোব দ্বারা গতি সুর করা হবে। নিওপিক্সেলগুলি নীল এলইডিতে বিট দেখায় যখন বুজার টিক করে। গাঁট টিপলে বিট অ্যাডজাস্টমেন্ট মোডে চলে যাবে এবং সবুজ এলইডি সেট বিট স্ট্রাকচার নির্দেশ করবে। ঘূর্ণমান গাঁট বীট কাঠামো বৃদ্ধি বা হ্রাস করবে (2/2, 3/3, 4/4, 6/8, ইত্যাদি)। 8 টি এলইডি -র উপরে, ঘড়ির কাঁটার দিকে ঘোরানো, লিডিং অ্যাকসেন্ট চালু করা হবে এবং প্রথম এলইডি এটি লাল রঙে নির্দেশ করবে। নেতৃস্থানীয় উচ্চারণে শ্রবণযোগ্য প্রতিক্রিয়াও থাকবে। ঘড়ির কাঁটার উল্টো দিকে ঘুরিয়ে এটি বন্ধ করা যায়। গাঁট টিপলে বিট অ্যাডজাস্টমেন্ট মোড থেকে মেট্রোনোম মোডে ফিরে যাবে।

ধাপ 2: যন্ত্রাংশ তালিকা

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

  • 9V ব্যাটারি, USD 1.50
  • ব্যাটারি সংযোগকারী কেবল, USD 0, 16
  • পিন হেডার সহ Arduino Nano, USD 2.05
  • ন্যানো আইও এক্সটেনশন শিল্ড, USD 1, 05
  • পাওয়ারের জন্য মিনি স্লাইড সুইচ, USD 0.15
  • Piezo buzzer, USD 0, 86
  • Adafruit Neopixel WS2812 8-bit, USD 1, 01
  • OLED ডিসপ্লে 128x64, USD 1, 53
  • রোটারি এনকোডার, USD 0, 50
  • Dupont তারের F/F, USD 0, 49

উপাদানগুলির মোট মূল্য USD 10 এর কম, -

ধাপ 3: তারের ডায়াগ্রাম

তারের ডায়াগ্রাম
তারের ডায়াগ্রাম

ন্যানো আইও এক্সটেনশন বোর্ড ব্যবহার করুন যাতে একাধিক জিএনডি এবং ভিসিসি সংযোগের ঝামেলা না হয়। ন্যানো পিন হেডার এবং নিওপিক্সেল মডিউল সংযোগকারীদের জন্য ন্যূনতম সোল্ডারিং প্রয়োজন হবে। ডুপন্ট তারের ব্যবহার ডায়াগ্রামে দেখানো হিসাবে বাকি তারের জন্য স্থিতিশীল সংযোগের অনুমতি দেয়। 9V ব্যাটারি GND এবং VIN এর সাথে সংযুক্ত, পরবর্তীতে পাওয়ার স্লাইডার সুইচের মাধ্যমে। ঘূর্ণমান এনকোডার মডিউলটিতে একটি সমন্বিত সুইচ বোতাম রয়েছে, যা তাদের কীভাবে সংযুক্ত করা যায় তা সহজে বোঝার জন্য চিত্রটিতে আলাদাভাবে দেখানো হয়েছে। ঘূর্ণমান অংশ (CLK এবং DT) যথাক্রমে PIN2 এবং PIN3 এর সাথে সংযুক্ত, কারণ এগুলি একমাত্র ন্যানো পিন যা ইন্টারাপ্ট হ্যান্ডলিং করতে সক্ষম। রোটারি জিএনডি অবশ্যই ন্যানোর জিএনডি পিনের সাথে সংযুক্ত। ইন্টিগ্রেটেড সুইচ বোতামটি পিন 4 এর সাথে সংযুক্ত। Piezo buzzer PIN5 এবং GND এর সাথে সংযুক্ত। Adafruit Neopixel মডিউল যথাক্রমে PIN7 এবং এর VIN এবং GND এর সাথে যথাক্রমে Nano এর 5V এবং GND এর সাথে সংযুক্ত। ছোট OLED ডিসপ্লেটি I2C বাস ইন্টারফেসের সাথে সংযুক্ত, যা SDA এবং SDL এর জন্য PIN A4 এবং A5। VCC এবং GND অবশ্যই ন্যানোর 5V এবং GND- এ যায়। এটি আমাদের ডুপন্ট ওয়্যারিং শেষ করে।

ধাপ 4: Arduino সোর্স কোড

আরডুইনো সোর্স কোড
আরডুইনো সোর্স কোড

// মেট্রোনোম, লিডিং অ্যাকসেন্ট, ভিজ্যুয়াল অ্যান্ড অডিবল ট্যাক্ট - 2019 পিটার সিগার্গে

#অন্তর্ভুক্ত #অন্তর্ভুক্ত #অন্তর্ভুক্ত #অন্তর্ভুক্ত #অন্তর্ভুক্ত #অন্তর্ভুক্ত "টাইমারঅন.এইচ" #ডিফাইন SCREEN_WIDTH 128 #ডিফাইন SCREEN_HEIGHT 64 #ডিফাইন OLED_RESET -1 // রিসেট পিন #(অথবা -1 যদি Arduino রিসেট পিন শেয়ার করে) Adafruit_SSD1306 ডিসপ্লে & ওয়্যার, OLED_RESET); #ডিফাইন পিন_নিওপিক্সেল 7 #ডিফাইন NUMPIXELS 8 #ডিফাইন ব্রাইটনেস 32 এডাফ্রুট_নিও পিক্সেল = অ্যাডাফ্রুট_নিও পিক্সেল (NUMPIXELS, pin_neopixel, NEO_GRB + NEO_KHZ800); #ডিফাইন IDLE_11 0 #ডিফাইন SCLK_01 1 #ডিফাইন SCLK_00 2 #ডিফাইন SCLK_10 3 #ডিফাইন SDT_10 4 #ডিফাইন SDT_00 5 #ডিফাইন SDT_01 6 int state = IDLE_11; #ডিফাইন CLK 2 #ডিফাইন ডিটি 3 #ডিফাইন পিন_সুইচ 4 #ডিফাইন পিন_বুজার 5 ইন্ট বিপিএম = 60; int bpmFirst = 0; // প্রথমে LED অন, বাকি সময়ে অফ… int tack = 4; bool leadingTack = মিথ্যা; int pos = 0; int curVal = 0; int prevVal = 0; অকার্যকর সেটআপ () {pixels.begin (); pinMode (pin_buzzer, আউটপুট); Timer1.initialize (1000000*60/bpm/2); Timer1.attachInterrupt (buzztick); পিনমোড (CLK, INPUT_PULLUP); pinMode (DT, INPUT_PULLUP); pinMode (pin_switch, INPUT_PULLUP); attachInterrupt (digitalPinToInterrupt (CLK), rotaryCLK, CHANGE); attachInterrupt (digitalPinToInterrupt (DT), rotaryDT, CHANGE); if (! display.begin (SSD1306_SWITCHCAPVCC, 0x3C)) {// ঠিকানা 0x3D 128x64 এর জন্য (;;); // এগোবেন না, লুপ চিরকাল} display.clearDisplay (); display.display (); } void loop () {if (digitalRead (pin_switch) == LOW) {বিলম্ব (100); যখন (digitalRead (pin_switch) == LOW); বিলম্ব (100); Timer1.detachInterrupt (); ShowGreenTacks (); while (digitalRead (pin_switch) == HIGH) {if (curVal> prevVal) {tack+= 1; if (tack> 8) {if (leadingTack) tack = 8; অন্যথায় {leadingTack = true; ট্যাক = 1; }}} অন্যথায় যদি (curValprevVal) {bpm+= 2; যদি (bpm> 240) bpm = 240; } অন্যথায় যদি (curVal = 100) display.print (""); অন্যথায় display.print (""); display.print (bpm); display.display (); } void buzztick () {if (bpmFirst == 0) {int volume = 4; যদি (LeadTack && pos == 0) ভলিউম = 8; জন্য (int i = 0; i

প্রস্তাবিত: