विषयसूची:

अरुडिनो मेट्रोनोम: 4 कदम
अरुडिनो मेट्रोनोम: 4 कदम

वीडियो: अरुडिनो मेट्रोनोम: 4 कदम

वीडियो: अरुडिनो मेट्रोनोम: 4 कदम
वीडियो: न्यूनतम हार्डवेयर ड्रमसेक 81212 के साथ एक और अरुडिनो ड्रम सीक्वेंसर 2024, जुलाई
Anonim
Image
Image

एक बच्चे के रूप में एक नया संगीत वाद्ययंत्र सीखते समय, ध्यान केंद्रित करने के लिए बहुत सी नई चीजें होती हैं। सही गति में गति बनाए रखना उनमें से एक है। कार्यात्मक रूप से पूर्ण और सुविधाजनक मेट्रोनोम नहीं मिलने का मतलब मेरे बच्चों के साथ फिर से निर्माण शुरू करने का सबसे अच्छा बहाना था। इस इंस्ट्रक्शंस पोस्ट में आपको कार्यात्मक विवरण, वेबशॉप लिंक और कीमतों के साथ भागों की सूची, असेंबली के लिए वायरिंग आरेख और पूरा Arduino स्रोत कोड मिलेगा।

चरण 1: कार्यात्मक विवरण

हिस्सों की सूची
हिस्सों की सूची

घर पर या संगीत विद्यालय में आसानी से उपयोग करने के लिए निम्नलिखित कार्यों के साथ एक मेट्रोनोम डिवाइस रखना अच्छा होगा।

  • संगीत वाद्ययंत्रों के ऊपर या बगल में छोटे स्थानों को फिट करने के लिए कॉम्पैक्ट फॉर्म फैक्टर,
  • बैटरी संचालित, मजबूत और पोर्टेबल ले जाने के लिए,
  • बच्चों के लिए भी आसानी से सेट अप, BPM मान हमेशा प्रदर्शित होता है,
  • एक रोटरी नॉब के साथ प्रति मिनट एडजस्टेबल बीट्स, 240 बीपीएम तक
  • वॉल्यूम नियंत्रण के साथ श्रव्य चातुर्य,
  • रात भर हेडफोन अभ्यास के लिए साइलेंट मोड,
  • बीट्स की दृश्य प्रतिक्रिया (1/4, 2/4, 3/3, 4/4, 6/8, आदि) 8 एल ई डी तक,
  • प्रमुख उच्चारण के साथ या उसके बिना, दृश्य और श्रव्य प्रतिक्रिया के साथ।

स्विच ऑन करने पर, मेट्रोनोम मोड 60 बीपीएम पर शुरू होगा जो छोटे डिस्प्ले पर दिखाई देगा और गति को 10 और 240 के बीच रोटरी नॉब द्वारा ट्यून किया जाएगा। नियोपिक्सल ब्लू एलईडी में बीट दिखाते हैं जबकि बजर टिकता है। नॉब को दबाने से बीट एडजस्टमेंट मोड में स्विच हो जाएगा और हरे रंग की एलईडी सेट बीट स्ट्रक्चर को दर्शाएगी। रोटरी नॉब बीट स्ट्रक्चर (2/2, 3/3, 4/4, 6/8, आदि) में वृद्धि या कमी करेगा। 8 एल ई डी से ऊपर, आगे दक्षिणावर्त घुमाते हुए, अग्रणी उच्चारण चालू किया जाएगा, और पहली एलईडी इसे लाल रंग में इंगित करेगी। अग्रणी उच्चारण में श्रव्य प्रतिक्रिया भी होगी। इसे वामावर्त घुमाकर बंद किया जा सकता है। नॉब दबाने से बीट एडजस्टमेंट मोड से मेट्रोनोम मोड में वापस स्विच हो जाएगा।

चरण 2: भागों की सूची

आपको एक मामले की आवश्यकता होगी। किसी भी आकार या आकार को खरीदा जा सकता है, लेकिन हमारे पास एक पुराने मैनुअल वीजीए स्विच का एक अच्छा काला धातु का मामला था जिसे एक दोस्त ने निपटाया था। शेष भाग नीचे सूचीबद्ध हैं।

  • 9वी बैटरी, यूएसडी 1.50
  • बैटरी कनेक्टर केबल, USD 0, 16
  • पिन हेडर के साथ Arduino नैनो, USD 2.05
  • नैनो आईओ एक्सटेंशन शील्ड, यूएसडी 1, 05
  • बिजली के लिए मिनी स्लाइड स्विच, यूएसडी 0.15
  • पीजो बजर, USD 0, 86
  • Adafruit Neopixel WS2812 8-बिट, USD 1, 01
  • OLED डिस्प्ले 128x64, USD 1, 53
  • रोटरी एनकोडर, USD 0, 50
  • ड्यूपॉन्ट केबल्स एफ/एफ, यूएसडी 0, 49

घटकों की कुल कीमत 10 अमरीकी डालर से कम है, -

चरण 3: वायरिंग आरेख

वायरिंग का नक्शा
वायरिंग का नक्शा

नैनो आईओ एक्सटेंशन बोर्ड का उपयोग करें ताकि कई जीएनडी और वीसीसी कनेक्शनों को सोल्डर करने से परेशान न हों। नैनो पिन हेडर और नियोपिक्सल मॉड्यूल कनेक्टर के लिए न्यूनतम सोल्डरिंग की आवश्यकता होगी। ड्यूपॉन्ट तारों का उपयोग करने से शेष तारों के लिए स्थिर कनेक्शन की अनुमति मिलती है जैसा कि आरेख में दिखाया गया है। 9वी बैटरी जीएनडी और वीआईएन से जुड़ी है, बाद में पावर स्लाइडर स्विच के माध्यम से। रोटरी एन्कोडर मॉड्यूल में एक एकीकृत स्विच बटन होता है, जिसे आरेख में अलग से दिखाया जाता है ताकि उन्हें आसानी से समझा जा सके कि उन्हें कैसे जोड़ा जाए। रोटरी पार्ट (सीएलके और डीटी) क्रमशः पिन 2 और पिन 3 से जुड़ा है, क्योंकि ये एकमात्र नैनो पिन हैं जो इंटरप्ट हैंडलिंग में सक्षम हैं। रोटरी जीएनडी बेशक नैनो के जीएनडी पिन से जुड़ा है। एकीकृत स्विच बटन पिन4 से जुड़ा है। पीजो बजर पिन5 और जीएनडी से जुड़ा है। Adafruit Neopixel मॉड्यूल क्रमशः PIN7 और इसके VIN और GND से नैनो के 5V और GND से जुड़ा है। छोटा OLED डिस्प्ले I2C बस इंटरफ़ेस से जुड़ा है, जो SDA और SDL के लिए पिन A4 और A5 है। VCC और GND बेशक नैनो के 5V और GND में जाते हैं। यह हमारे ड्यूपॉन्ट वायरिंग का समापन करता है।

चरण 4: Arduino स्रोत कोड

Arduino स्रोत कोड
Arduino स्रोत कोड

// मेट्रोनोम, लीडिंग एक्सेंट, विजुअल और ऑडिबल टैक्ट - 2019 पीटर सेर्गे

#शामिल करें #शामिल करें #शामिल करें #शामिल करें "टाइमरऑन.एच" शामिल करें #SCREEN_WIDTH 128 परिभाषित करें #SCREEN_HEIGHT 64 परिभाषित करें #OLED_RESET -1 // रीसेट पिन # (या -1 अगर Arduino रीसेट पिन साझा कर रहा है) Adafruit_SSD1306 डिस्प्ले (SCREEN_WIDTH, SCREEN_HEIGHT, &वायर, OLED_RESET); #define pin_neopixel 7 #define NUMPIXELS 8 #define BRIGHTNESS 32 Adafruit_NeoPixel पिक्सल = Adafruit_NeoPixel(NUMPIXELS, pin_neopixel, NEO_GRB + NEO_KHZ800); #define IDLE_11 0 #define SCLK_01 1 #define SCLK_00 2 #define SCLK_10 3 #define SDT_10 4 #define SDT_00 5 #define SDT_01 6 int State = IDLE_11; #define CLK 2 #define DT 3 #define pin_switch 4 #define pin_buzzer 5 int bpm = 60; इंट बीपीएमफर्स्ट = 0; // एलईडी ऑन फर्स्ट, ऑफ ऑफ रेस्ट… इंट टैकल = 4; बूल लीडिंगटैक = झूठा; इंट पॉज़ = 0; इंट कर्वल = 0; इंट प्रचलित = 0; शून्य सेटअप () {पिक्सेल। शुरू (); पिनमोड (pin_buzzer, OUTPUT); Timer1.initialize(1000000*60/bpm/2); Timer1.attachInterrupt(buzztick); पिनमोड (सीएलके, INPUT_PULLUP); पिनमोड (डीटी, INPUT_PULLUP); पिनमोड (पिन_स्विच, INPUT_PULLUP); अटैचइंटरप्ट (डिजिटलपिनटोइंटरप्ट (सीएलके), रोटरीसीएलके, चेंज); अटैचइंटरप्ट (डिजिटलपिनटोइंटरप्ट (डीटी), रोटरीडीटी, चेंज); if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {// पता 0x3D के लिए 128x64 for(;;); // आगे बढ़ें, लूप हमेशा के लिए } display.clearDisplay (); डिस्प्ले.डिस्प्ले (); } शून्य लूप () { अगर (डिजिटल रीड (पिन_स्विच) == कम) {देरी (100); जबकि (डिजिटल रीड (पिन_स्विच) == कम); देरी (100); Timer1.detachInterrupt (); शो ग्रीनटैक्स (); जबकि (डिजिटल रीड (पिन_स्विच) == हाई) {अगर (curVal> prevVal) {कील + = 1; अगर (कील> 8) { अगर (अग्रणी टैक) कील = 8; अन्य {अग्रणीटैक = सत्य; कील = 1; } } } और अगर (curValprevVal) {bpm+=2; अगर (बीपीएम> 240) बीपीएम = 240; } और अगर (curVal=100) डिस्प्ले.प्रिंट(""); अन्य प्रदर्शन। प्रिंट (""); डिस्प्ले।प्रिंट (बीपीएम); डिस्प्ले.डिस्प्ले (); } शून्य बज़टिक () { अगर (बीपीएम फर्स्ट == 0) {इंट वॉल्यूम = 4; अगर (लीडिंगटैक && pos==0) वॉल्यूम = 8; के लिए (int i=0; i

सिफारिश की: