विषयसूची:

Arduino MusicStump: लाइट, कैप्टिव टच और बजर: 3 कदम
Arduino MusicStump: लाइट, कैप्टिव टच और बजर: 3 कदम

वीडियो: Arduino MusicStump: लाइट, कैप्टिव टच और बजर: 3 कदम

वीडियो: Arduino MusicStump: लाइट, कैप्टिव टच और बजर: 3 कदम
वीडियो: Iot Wecker mit Arduino ESP8266, Nextion Touch Display, MP3 player, RTC, Lichtsensor 2024, नवंबर
Anonim
Arduino MusicStump: लाइट, कैप्टिव टच और बजर
Arduino MusicStump: लाइट, कैप्टिव टच और बजर

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

इलेक्ट्रॉनिक्स:- 1x Arduino Uno

- 15x केबल

- गोल टिप के साथ 1x सोल्डरिंग आयरन

- 1x एडफ्रूट 8-कुंजी कैप्टिव टच (CAP1188)

- 1x Arduino पावर केबल

- 1x 8 एलईडी रिंग

- 1x बजर

- 1x गर्म गोंद बंदूक

- CAP1188 की लाइब्रेरी डाउनलोड करें

- Adafruit Neopixel की लाइब्रेरी डाउनलोड करें

अतिरिक्त (आवरण):

- 1x ट्री स्टंप

- अंदर के लिए 1x स्टिक

- लकड़ी की थाली यह सब पर / में रखने के लिए

- बाहर के लिए स्टफ्ड एनिमल स्टफिंग

आप बाहर की तरह कुछ और भी इस्तेमाल कर सकते हैं, रचनात्मक बनें!

अब चलिए शुरू करते हैं…

चरण 1: चरण 1: कैप्टिव टच के साथ एलईडी रिंग

चरण 1: कैप्टिव टच के साथ एलईडी रिंग
चरण 1: कैप्टिव टच के साथ एलईडी रिंग

अब यदि आप भाग्यशाली हैं तो आपकी एलईडी रिंग में पहले से ही पिन लगे हैं। यदि नहीं तो यह सोल्डर करने का समय है!

इस परियोजना के लिए हम जिन चीजों का उपयोग करेंगे वे हैं:

- DI (डिजिटल इनपुट, पिन 6~

- 5 वी (पावर के लिए, 5 वी पिन)

- GND (जमीन, GND पिन)

वह अभी के लिए एलईडी रिंग है।अब कैप्टिव टच।

इसे ब्रेडबोर्ड में रखें और सब कुछ इस तरह से कनेक्ट करें: पिन में एसडीए/एमआईएसओ (एनालॉग इन) पिन में ए4एससीके (एनालॉग इन) ए5वीआईएन इन (पावर) 5वीजीएनडी जीएनडी पिन1एक्स केबल में सी1 पर (कैप्टिव टच पर ही)

अब परीक्षण करने के लिए निम्नलिखित कोड को अपने Arduino पर अपलोड करें:

// जूलिया एम्मिंक // इंटरएक्टिव ट्री के लिए लाइट और टच कोड 19 /// एडफ्रूट नियोपिक्सल और एडफ्रूट कैप्टिव टच (सीएपी1188) (स्थापित किया जाना है) और बिना किसी देरी के एलईडी ब्लिंकिंग के उपयोग के साथ बनाया गया

// नियोपिक्सल ~~~~~~~~~~~~~~~~

#शामिल

#define PIXELSPIN 6 // जहां आपने LED रिंग को कनेक्ट किया है

#define NUMPIXELS 8 // आपके रिंग पर लगे एल ई डी की मात्रा #define CALIBRATIONTIME 20000

Adafruit_NeoPixel पिक्सेल = Adafruit_NeoPixel(NUMPIXELS, PIXELSPIN, NEO_GRB + NEO_KHZ800);

अहस्ताक्षरित लंबे पिक्सेल अंतराल = 500; // वह समय जो हमें प्रतीक्षा करने की आवश्यकता है

अहस्ताक्षरित लंबा रंगWipePreviousMillis = 0; अहस्ताक्षरित लंबा थिएटरचेसपिछलामिलिस = 0; अहस्ताक्षरित लंबा इंद्रधनुषपिछलामिलिस = 0; अहस्ताक्षरित लंबा इंद्रधनुष साइकिल पिछलामिलिस = 0;

इंट थिएटरचेसक्यू = 0;

uint16_t currentPixel = 0;// हम किस पिक्सेल पर काम कर रहे हैं

// स्पर्श करें ~~~~~~~~~~~~~~~~~~~~

#शामिल करें #शामिल करें

// रीसेट पिन का उपयोग I2C या SPI के लिए किया जाता है

#define CAP1188_RESET 9

// CS पिन का उपयोग सॉफ्टवेयर या हार्डवेयर SPI के लिए किया जाता है

#CAP1188_CS 10 परिभाषित करें

// ये सॉफ्टवेयर एसपीआई के लिए परिभाषित हैं, हार्डवेयर एसपीआई के लिए, अपनी जांच करें

// Arduino प्रलेखन में बोर्ड के SPI पिन #define CAP1188_MOSI 11 #define CAP1188_MISO 12 #define CAP1188_CLK 13

// I2C का उपयोग करें, कोई रीसेट पिन नहीं!

Adafruit_CAP1188 कैप = Adafruit_CAP1188();

व्यर्थ व्यवस्था() {

// नियोपिक्सल ~~~~~~~~~~~~~~~~ करंट पिक्सेल = 0; पिक्सल। शुरू (); // यह NeoPixel लाइब्रेरी को इनिशियलाइज़ करता है। पिक्सल.शो (); // यह अद्यतन पिक्सेल रंग हार्डवेयर को भेजता है।

// स्पर्श करें ~~~~~~~~~~~~~~~~~~~~

सीरियल.बेगिन (300); Serial.println ("CAP1188 परीक्षण!");

अगर (! टोपी। शुरू ()) {

Serial.println ("CAP1188 नहीं मिला"); जबकि (1); } Serial.println ("CAP1188 मिला!"); }

शून्य लूप () {

// टच + नियोपिक्सल ~~~~~~~~~~~~~~~~~~~~ uint8_t छुआ = cap.touched (); अगर (स्पर्श किया हुआ == 0) { अगर ((अहस्ताक्षरित लंबा) (मिली () - कलरवाइपप्रिवियसमिलिस)> = पिक्सलइंटरवल) {colorWipePreviousMillis = मिलिस (); कलरवाइप (पिक्सेल। रंग (0, 255, 125));) कलरवाइप (पिक्सेल। रंग (100, 0, 150)); } }

}

शून्य रंगवाइप(uint32_t c) {

// नियोपिक्सल ~~~~~~~~~~~~~~~~//रंग पिक्सल से छुटकारा पाता है। सेट पिक्सेलकलर (वर्तमान पिक्सेल, सी); pixel.setPixelColor(currentPixel - 1, pixels. Color(0, 0, 0)); पिक्सल.शो (); वर्तमान पिक्सेल ++; अगर (currentPixel == NUMPIXELS) {currentPixel = 0; पिक्सल.सेटपिक्सेलकलर (7, पिक्सल। कलर (0, 0, 0));

}

}

इसका परीक्षण करें और मज़े करें! जैसा कि आप देखते हैं कि जब आप C1 कॉर्ड को स्पर्श करते हैं तो रंग बदल जाता है। (यदि यह पहली बार नहीं है तो बस अपने Arduino को अनप्लग करें और इसे अपने कंप्यूटर में वापस प्लग करें।)

चरण 2: चरण 2: ध्वनि जोड़ना

एक आसान ट्यूटोरियल के उपयोग से मैंने इसे बनाया है। ट्यूटोरियल नीचे है:

github.com/xitangg/-Pirates-of-the-Caribbe…

अपने बजर को हथियाने का समय! बजर के (-) को किसी एक GND पिन में और (+) को पिन 10~. में रखें

बस इतना ही, अब कोड को फिर से चलाने और उस प्यारे पाइरेट्स ऑफ द कैरेबियन धुन को सुनने का समय है! अब मज़ा परीक्षण करें!

// जूलिया एम्मिंक // इंटरएक्टिव ट्री के लिए लाइट, टच और म्यूजिक कोड 2018-01-19// एडफ्रूट नियोपिक्सल और कैप्टिव टच (सीएपी1188) (स्थापित किया जाना है) और बिना किसी देरी के एलईडी ब्लिंकिंग के उपयोग के साथ बनाया गया

// नियोपिक्सल ~~~~~~~~~~~~~~~~#शामिल

#PIXELSPIN 6 परिभाषित करें

# NUMPIXELS 8 परिभाषित करें # कैलिब्रेशन समय 20000 परिभाषित करें

Adafruit_NeoPixel पिक्सेल = Adafruit_NeoPixel(NUMPIXELS, PIXELSPIN, NEO_GRB + NEO_KHZ800);

अहस्ताक्षरित लंबे पिक्सेलअंतराल=500; // वह समय जो हमें प्रतीक्षा करने की आवश्यकता है

अहस्ताक्षरित लंबा रंगWipePreviousMillis=0; अहस्ताक्षरित लंबा थिएटरचेसपिछलामिलिस=0; अहस्ताक्षरित लंबा इंद्रधनुषपिछलामिलिस = 0; अहस्ताक्षरित लंबा इंद्रधनुष साइकिल पिछलामिलिस = 0;

इंट थिएटरचेसक्यू = 0;

uint16_t currentPixel = 0;// हम किस पिक्सेल पर काम कर रहे हैं

// संगीत ~~~~~~~~~~~~~~~~~~~~

कॉन्स्ट इंट बजर = 10; // पिन 10 को परिभाषित करें, अन्य पीडब्लूएम पिन (5, 6 या 9) का उपयोग कर सकते हैं // नोट पिन 3 और 11 का उपयोग Arduino Uno const int songspeed = 1.5 में टोन फ़ंक्शन का उपयोग करते समय नहीं किया जा सकता है; // गीत के धीमे संस्करण के लिए 2 में बदलें, गीत जितना बड़ा होगा, गीत उतना ही धीमा होगा //************* ************** # नोट_सी4 262 को परिभाषित करें 523 #डिफाइन नोट_डी5 587 #डिफाइन नोट_ई5 659 #डिफाइन नोट_एफ5 698 #डिफाइन नोट_जी5 784 #डिफाइन नोट_ए5 880 #डिफाइन नोट_बी5 988 //************************ ***** इंट नोट्स = {// गीत का नोट, 0 आराम/नाड़ी है नोट_ई4, नोट_जी4, नोट_ए4, नोट_ए4, 0, नोट_ए4, नोट_बी4, नोट_सी5, नोट_सी5, 0, नोट_सी5, नोट_डी5, नोट_बी4, नोट_बी4, 0, नोट_ए4, नोट_जी4, नोट_ए4, 0}; //*************************** अंतर अवधि = { / /प्रत्येक नोट की अवधि (एमएस में) क्वार्टर नोट 250 एमएस 125, 125, 250, 125, 125, 125, 125, 250, 125, 125, 125, 125, 250, 125, 125, 125, 125, पर सेट है। ३७५, १२५};

// स्पर्श करें ~~~~~~~~~~~~~~~~~~~~

#शामिल करें #शामिल करें

// रीसेट पिन का उपयोग I2C या SPI के लिए किया जाता है

#define CAP1188_RESET 9

// CS पिन का उपयोग सॉफ्टवेयर या हार्डवेयर SPI के लिए किया जाता है

#define CAP1188_CS 10

// ये सॉफ्टवेयर एसपीआई के लिए परिभाषित हैं, हार्डवेयर एसपीआई के लिए, अपनी जांच करें

// Arduino प्रलेखन में बोर्ड के SPI पिन #define CAP1188_MOSI 11 #define CAP1188_MISO 12 #define CAP1188_CLK 13

// I2C का उपयोग करें, कोई रीसेट पिन नहीं!

Adafruit_CAP1188 कैप = Adafruit_CAP1188();

व्यर्थ व्यवस्था() {

// संगीत ~~~~~~~~~~~~~~~~~~~~ के लिए (int i=0;i<203;i++){//203 में संगीत नोटों की कुल संख्या है गीत इंट प्रतीक्षा = अवधि * गीत गति; टोन (बजर, नोट्स , प्रतीक्षा करें); // टोन (पिन, फ़्रीक्वेंसी, अवधि);} // देरी का उपयोग किया जाता है, इसलिए टोन समाप्त होने से पहले यह अगले लूप पर नहीं जाता है // आप गाने को फिर से चलाने के लिए Arduino पर रीसेट पर क्लिक कर सकते हैं // NEOPIXEL ~~~ ~~~~~~~~~~~~~ वर्तमान पिक्सेल = 0; पिक्सल। शुरू (); // यह NeoPixel लाइब्रेरी को इनिशियलाइज़ करता है। पिक्सल.शो (); // यह अद्यतन पिक्सेल रंग हार्डवेयर को भेजता है।

// स्पर्श करें ~~~~~~~~~~~~~~~~~~~~

सीरियल.बेगिन (300); Serial.println ("CAP1188 परीक्षण!"); अगर (! cap.begin ()) { Serial.println ("CAP1188 नहीं मिला"); जबकि (1); } Serial.println ("CAP1188 मिला!");

}

शून्य लूप () {

// टच + नियोपिक्सल ~~~~~~~~~~~~~~~~~~~~ uint8_t छुआ = cap.touched (); अगर (स्पर्श किया हुआ == 0) { अगर ((अहस्ताक्षरित लंबा) (मिली () - कलरवाइपप्रिवियसमिलिस)> = पिक्सलइंटरवल) {colorWipePreviousMillis = मिलिस (); कलरवाइप (पिक्सेल। कलर (0, 255, 125));) कलरवाइप (पिक्सेल। रंग (100, 0, 150)); } }

के लिए (इंट आई = 0; आई = पिक्सल इंटरवल) {

colorWipePreviousMillis = मिली (); कलरवाइप (पिक्सेल। कलर (0, 255, 125));) कलरवाइप (पिक्सेल। रंग (100, 0, 150)); }}

देरी (प्रतीक्षा);

}

}

शून्य रंगवाइप(uint32_t c){

// नियोपिक्सल ~~~~~~~~~~~~~~~~//रंग पिक्सल से छुटकारा पाता है। सेट पिक्सेलकलर (वर्तमान पिक्सेल, सी); पिक्सेल.सेटपिक्सेलकलर (वर्तमान पिक्सेल -1, पिक्सेल। रंग (0, 0, 0)); पिक्सल.शो (); वर्तमान पिक्सेल ++; अगर (वर्तमान पिक्सेल == NUMPIXELS) {वर्तमान पिक्सेल = 0; पिक्सल.सेटपिक्सेलकलर (7, पिक्सल। कलर (0, 0, 0));

}

}

चरण 3: अतिरिक्त चरण: स्टंप को 'Arduino तैयार' बनाना

अतिरिक्त कदम: स्टंप को 'Arduino तैयार' बनाना
अतिरिक्त कदम: स्टंप को 'Arduino तैयार' बनाना
अतिरिक्त कदम: स्टंप को 'Arduino तैयार' बनाना
अतिरिक्त कदम: स्टंप को 'Arduino तैयार' बनाना
अतिरिक्त कदम: स्टंप को 'Arduino तैयार' बनाना
अतिरिक्त कदम: स्टंप को 'Arduino तैयार' बनाना

यदि आप ट्री स्टंप का उपयोग करने का निर्णय लेते हैं तो आपको निम्नलिखित कार्य करने होंगे।

  • एक ट्री स्टंप प्राप्त करें (मुझे एक पुराने क्रिसमस ट्री से एक मुफ्त में मिला है)
  • अपने Arduino को मापें और देखें कि आप ट्री स्टंप में वायरिंग कैसे करना चाहते हैं
  • स्टंप को खोखला करें (मैंने स्कूल से ड्रिल मशीन का इस्तेमाल किया)
  • खुरदुरे किनारों को रेत दें
  • मज़ेदार छोटे विवरण जोड़ें

मैंने जो विवरण जोड़ा वह एक छोटा लोगो था जिसे मैंने लेजर कटर से बनाया था। मैंने अपने सभी इलेक्ट्रॉनिक्स को अपने पेड़ के अंदर एक छड़ी पर ढेर कर दिया और मैंने बाहर की तरफ भरवां जानवरों की स्टफिंग को जोड़ा ताकि प्रकाश अंदर जा सके और वह छोटी अतिरिक्त कोमलता दे सके।

सिफारिश की: