विषयसूची:
- चरण 1: कंपोनेंटन वेरज़ामेलन
- चरण 2: प्रोटोटाइप Bouwen
- चरण 3: कोड प्रोटोटाइप
- चरण 4: प्रोटोटाइप Uittesten
- चरण 5: "ओंटमैंटेलन" एन किजकेन वेल्के कॉम्पोनेन्टेन गेब्रिक्ट गान वर्डेन को बेहुइज़ करना
- चरण 6: वर्किंग ओरिजिनल बटन + ड्रेमेलन
- चरण 7: बेडराडिंग सोल्डरन + बटन वास्तिलिजमेन
- चरण 8: प्लाट्स माकन इन दे बेहुइज़िंग
- चरण 9: बेडराडिंग Ansluiten Op Protobord
- चरण 10: वर्स्टेविजेन
- चरण 11: कोड वूर हैट कम्युनिकेरेन मेट रीपर
- चरण 12: नियंत्रक यूटेस्टेन
वीडियो: गिटार हीरो अरुडिनो प्रोजेक्ट: 12 कदम (चित्रों के साथ)
2024 लेखक: John Day | [email protected]. अंतिम बार संशोधित: 2024-01-30 09:23
विज ज़िजन मार्टेन व्रेबोस, जस्टिन कैवानास और वेन्स स्ट्रोबंड्ट में हम मल्टीमीडिया और संचार प्रौद्योगिकी का अध्ययन करते हैं। वोर ईन ग्रोप्सप्रोजेक्ट वूर हेट वाक ऑडियोविज़ुअल एंड आईटी प्रिंसिपल्स हेब्बेन विज ईन गिटार हीरो-गिटार गेहकट एन गेब्रिक्ट अल बेहुइज़िंग वूर ऑनज़ मिडी-कंट्रोलर। वह ओन्ज़े बेडोइलिंग ओम दे बेस्टांडे नोपेन ऑप डे गीतार इंटर्न ते वर्वांगेन थे। ओन्ज़े कंट्रोलर ज़ल वास्तेगेहौडेन एन बेस्पेल्ड वर्डेन अल्स एन नॉर्मले गीतार। एंजेज़ियन वी आइट्स हेब्बेन गेहाकट हेब्बेन वी एर नीट वील एक्स्ट्रा मटेरियल इन मोएटेन वर्वर्कन।
इन द अफबील्डिंग कान यू ओन्ज़े एलेरेरस्टे स्कैट्स ओप पेपर ज़िएन वैन हो हेट ईइंडप्रोडक्ट एर ज़ू मोएटेन यूट्ज़िएन मेट डरनास्ट ईन फ़ोटो वैन डे गीतार डाई अल्स बेहुइज़िंग ज़ल वर्डेन गेब्रुइक्ट।
विज हेब्बेन ओन्स वूर डिट प्रोजेक्ट गेबेसर्ड ऑप वोल्गेंडे ब्रोनन:
slapyak.wordpress.com/guitar-hero-midi-con…
www.instructables.com/id/Converting-a-rescu…
gizmodo.com/391834/turn-your-guitar-hero-g…
बेनोडिग्हेडेन वूर डिट प्रोजेक्ट
- 6 क्लेन पुशबटन
- 7 1kohm प्रतिरोधक
- 1 जिले एलईडी 1
- ब्लौवे एलईडी
- 1 Arduino Uno R3
- 1 ग्रोन एलईडी
- 2 सवार एलईडी
- १ शुइफ़्सचाकेलार
- 1 ब्रेडबोर्ड
- 1 पोटेंशियोमीटर
- 1 प्रोटोबॉर्ड
- १ गिटार हीरो गीता
- वोल्डोएन्डे बेडराडिंग
- सामग्री ओम ते सोल्डरन/ड्रेमेलन/
- श्रोवेंद्रएयर
चरण 1: कंपोनेंटन वेरज़ामेलन
वूर ऑन प्रोटोटाइप (ऑप ब्रेडबोर्ड) हेब्बेन वी वोल्गेंडे कॉम्पोनेंटन गेब्रुइकट:
6 पुशबटन
7 1kohm प्रतिरोधी
1 पीला एलईडी
1 ब्लू एलईडी
1 Arduino Uno R3
1 ग्रीन एलईडी
2 लाल एलईडी
१ शुइफ़्सचकेलार
1 ब्रेडबोर्ड
1 पोटेंशियोमीटर
चरण 2: प्रोटोटाइप Bouwen
ओम ऑन्स प्रोटोटाइप ते बौवेन हेब्बेन वी अल ऑन्ज़ कॉम्पोनेन्टेन गेब्रिक्ट ओप ईन ब्रेडबोर्ड, डीज़ ब्रेडबोर्ड डियंट और टेस्टोबजेक्ट राशि हम नीट मेटेन इन डे बेहुइज़िंग ते वर्क मोतेन गान। डिट प्रोटोटाइप हेब्बेन हम टिंकरकैड डॉट कॉम के माध्यम से गेडिजिटलीसीर्ड को देखते हैं, ओप डीज़ मैनियर हैडन वी ईन डुइडेलिज्क ओवरज़िच वैन ओन्स प्रोटोटाइप डेट एल्क ग्रोप्स्लिड ओके कोन बेवरकेन।
एर वर्डन 5 क्लेन पुशबटन्स गेब्रिक्ट डाई फंगरेन अल्स 5 स्नेरेन एन ग्रोट पुशबटन डाई इन कॉम्बिनेटी मेट ईन ऑफ मीरडेरे 'स्नारेन' मोएट वर्डेन इंजीड्रुक्ट ओम ईन ऑडिट इफेक्ट ते क्रिजेन। एलईडी-लैम्पजेस डिएनन ग्यून अल्स विसुएल कंट्रोल ओम एर ज़ेकर वैन ते ज़िजन डेट डे इंटरेक्टी सक्सेसवॉल वर्क्ट।
चरण 3: कोड प्रोटोटाइप
ग्लोबल वेरिबेलन
इन पहले डील वैन डे कोड इनिशियलाइज़र जे ग्लोबल वेरिअबेलन वूर डे पिन्स वैन अरडिनो उनो वार एले पुशबटन्स मी वर्बोंडेन ज़िजन।
// जेट पिन नंबर वार मेनबटन (स्नार) और एंडेरे बटन आन वर्बोंडेन ज़िजन: कॉन्स्ट इंट मेनबटन = ए 1; // गीतार स्नार कॉन्स्ट इंट लाइटसेंसर = ए0; कॉन्स्ट इंट बटनपिन1 = 2; // नंबर वैन पुशबटन 1 कॉन्स्ट इंट बटन पिन 2 = 3; // नंबर वैन पुशबटन 2 कॉन्स्ट इंट बटन पिन 3 = 4; // नंबर वैन पुशबटन3कॉन्स्ट इंट बटनपिन4 = 5; // नंबर वैन पुशबटन4कॉन्स्ट इंट बटनपिन5 = 6; // नंबर वैन पुशबटन 5
हायरना वर्डन एर ट्वी एरेज़ अंगेमाकत वूर डे नेमेन वैन डे पुशबटन्स एन हुन पिन्नमेर।
const int anantalKnoppen = 5;const String namenKnoppen[aantalKnoppen] = {"नॉप 1", "नॉप 2", "नॉप 3", "नोप 4", "नोप 5"}; const int knopPinnen[aantalKnoppen] = {2, 3, 4, 5, 6};
एन डैन नोग वेरिएबेलन वूर डे पिन वैन डे एलईडी लिचटेज।
कॉन्स्ट इंट लेडपिन१ = १३; // एलईडी पिन की संख्या 13
कॉन्स्ट इंट लेडपिन२ = १२; // एलईडी पिन की संख्या 12 कास्ट इंट एलईडीपिन 3 = 11; // एलईडी पिन की संख्या 11 कास्ट इंट एलईडीपिन 4 = 10; // एलईडी पिन की संख्या 10 कास्ट इंट एलईडी पिन 5 = 9; // एलईडी पिन की संख्या 9 कास्ट इंट पॉटपिन = ए 5; // एलईडी पिन A5 की संख्या
डे लाटस्ते ग्लोबल वेरिबेलन डायनेन अल्स 'स्टेट्स' वूर डे सेंसर्स (नीट के इंजीड्रूकट? पोटेंशियोमीटर, लिचसेंसर)।
// इनिशियलाइज़र बटनस्टेट्स वूर डी नोपपेन (एनआईईटी का इंजीड्रुक्ट)इंट मेनबटनस्टेट = 0; इंट बटनस्टेट1 = 0; इंट बटनस्टेट2 = 0; इंट बटनस्टेट3 = 0; इंट बटनस्टेट4 = 0; इंट बटनस्टेट5 = 0; इंट लाइट सेंसरस्टेट = 0; इंट पॉटवैल्यू = 0; इंट लाइटवैल्यू = 0;
सेट अप
शून्य सेटअप कार्य के बाद भी। डीज़ इज वैन हेट टाइप वॉयड (गीफ्ट गेन वार्डे तेरुग) एन डे इंस्ट्रक्शन्स हिरिन वर्डेन मार १ कीर यूटगेवोर्ड।
बिज एल्के फंक्शनी कमेंटार गेश्रेवेन वाट एर कंक्रीट गेदान वर्ड है। अतिरिक्त यूटिलग ओवर वाट ईन स्पेसिफिक फंक्शनल कॉन्क्रीट डोएट ते विन्डेन इन डे आर्डिनो रेफरेंस है
शून्य सेटअप () {// डेटा दर प्रति सेकेंड (बॉड) वूर सीरियल डेटा ट्रांसमिसी सीरियल.बेगिन (९६००); // इनिशियलाइज़र डी लेडपिन वेरिबेलन अल आउटपुट पिनमोड (ledPin1, OUTPUT); पिनमोड (ledPin2, OUTPUT); पिनमोड (ledPin3, OUTPUT); पिनमोड (एलईडीपिन 4, आउटपुट); पिनमोड (ledPin5, OUTPUT); // प्रारंभकर्ता एली पुशबटन अल इनपुट: पिनमोड (मेनबटन, इनपुट); पिनमोड (बटनपिन 1, इनपुट); पिनमोड (बटनपिन 2, इनपुट); पिनमोड (बटनपिन 3, इनपुट); पिनमोड (बटनपिन 4, इनपुट); पिनमोड (बटनपिन 5, इनपुट); पिनमोड (पोटपिन, इनपुट); पिनमोड (लाइट सेंसर, इनपुट); }
शून्य समारोह
ना दे सेटअप () फंक्शनल वॉल्गट डे लूप () फंक्टी, डे इंस्ट्रक्शंस डाई हायरिन स्टैन गान हेर्हाल्ड यूटगेवोर्ड वर्डन।
शून्य लूप () {// लीज़ डे स्टैट वैन डे पुशबटन्स यूआईटी (एनआईएट की सामग्री) मेनबटनस्टेट = डिजिटलरेड (मेनबटन); बटनस्टेट 1 = डिजिटल रीड (बटनपिन 1); बटनस्टेट 2 = डिजिटल रीड (बटनपिन 2); बटनस्टेट 3 = डिजिटलरीड (बटनपिन 3); बटनस्टेट 4 = डिजिटल रीड (बटनपिन 4); बटनस्टेट ५ = डिजिटलरेड (बटनपिन ५);
// ईन सरणी में पुशबटन स्टेटसन एलील करें
इंट बटनस्टेट्स = {बटनस्टेट1, बटनस्टेट2, बटनस्टेट3, बटनस्टेट4, बटनस्टेट5};
// लीस्ट डे वार्डे यूआईटी वैन डे पोटेंशियोमीटर एन डे लिच्टसेंसर
पॉटवैल्यू = एनालॉगरेड (पोटपिन); लाइटवैल्यू = एनालॉगरेड (लाइट सेंसर);
// डिक्लेअर ईन ऐरे मेनस्टेट्स एन जिफ डाई डे स्टैंडआर्ड वार्डन 0 इन।
int mainStates = {0, 0, 0, 0, 0};
// लूप ओवर डे ऐरे
for(int i = 0; i <antalKnoppen; i++){ pinMode(knopPinnen, INPUT); // इनिशियलाइज़र एली नोपपिनन अल्स इनपुट डिजिटलरीड (नॉपपिनन ); // लीज़ डे वार्डे वैन एले नोपिनन यूआईटी // इंडियन डे मेनस्विच (स्नार) इंजीड्रुक है, प्रिंट एली नॉपनामेन, एली बटनस्टेट्स अगर (मेनबटनस्टेट == हाई) {सीरियल.प्रिंट (नामेननोपेन ); सीरियल.प्रिंट ("", "); Serial.println (बटनस्टेट्स ); } }
चरण 4: प्रोटोटाइप Uittesten
नदत हेट प्रोटोटाइप gebouwd volgens ons model en de code geschreven प्रसंस्करण में है, यह अभी भी प्रोटोटाइप uit te testen है। ओप डी वीडियो ते ज़िएन डेट एले नोपेन ईन रिएक्टी गेवेन ऑप डे बिझोरेन्डे लेजेज एन डाट ओके कॉम्बिनेशन वैन नोपेन मोगेलिज्क ज़िजन है।
इन डी ट्वीड वीडियो प्रोसेसिंग में ते ज़िएन हो ओन्ज़े ट्रेमोलो वर्कट आन डे हैंड वैन ईन पोटेंशियोमीटर इन डी गीतार एन हो डे वार्डेस वर्डेन यूटगेलेज़ेन है।
चरण 5: "ओंटमैंटेलन" एन किजकेन वेल्के कॉम्पोनेन्टेन गेब्रिक्ट गान वर्डेन को बेहुइज़ करना
इसके अलावा, कोड सही काम करता है और प्रोटोटाइप का निर्माण करता है, हम "ऑन्टमैंटेलन" वैन ऑन्ज़ गिटार हीरो-गिटार से मिले थे। वी हेब्बेन डे गीतार ओपनगेमाकट मेट ईन श्रोएवेंद्रेयर एन बेकेकेन वेल्के ओरिजिनल कॉम्पोनेंटेन वी इवेंट नोग ज़ूडेन कुन्नन हर्गेब्रुइकन वूर ऑन्ज़ कंट्रोलर। यूइटइंडेलिज्क हेब्बेन हम डे बेस्टांडे बटन गेक्रेजेन (ज़ी वोल्गेंडे स्टैप) में ईजेन पुशबटन को ऑनज़ करते हैं। वी हेब्बेन डे ट्रेमोलो ओके गेब्रिक्ट वूर ऑन ईइंडप्रोडक्ट एन वूर ओन्जे हूफडबटन (इनिशियल बटन ओम अल्स एन कॉम्बिनेटी ऑफ ते स्पेलेन) हेब्बेन वी ओके डे ओरिजिनल ट्वी बटन गेब्रिक्ट(ज़ी विएरडे फोटो)। डी एलईडीजेस ज़ुलेन वर्डविजेन (डीज़ वेरेन एनकेल टेर इंडिकैटी ज़ोडैट वी ज़ागेन डेट एले नोपेन सही वर्कटेन।
चरण 6: वर्किंग ओरिजिनल बटन + ड्रेमेलन
Op de bijhorende video is de wijze te zien waarop de twee Originele knoppen werken als een soort van schakelaar die with gebruiken om een effect te Genereren bij Combinatie van knoppen.
ओम ओन्ज़े ईजेन बटन ते वेरकेन इन डे ओरिजिनल नोपेन हेब्बेन वी डे बिन्नेंकांत वैन डे ओरिजिनेलन एर ग्रोटेन्डेल्स यूटगेहाल्ड ज़ोल्स ते ज़िएन इज़ ओप डे फोटो।
चरण 7: बेडराडिंग सोल्डरन + बटन वास्तिलिजमेन
ओमदत वी नीट मीर मेट ईन ब्रेडबोर्ड वर्कन मोएटेन डे ड्रेडेन गेसोल्डियर्ड वर्डन ओम ज़ो डे वर्शिलेंडे कॉम्पोनेन्टेन मेट एल्कार ते वर्बिंडन। Nadat dit gebeurd is kunnen we debuttons vislijmen zoals te zien is op de photo's. इन्स डिट गेबर्ड इज कुनन वी दूरगण नार दे वोलगेंडे स्टेप।
चरण 8: प्लाट्स माकन इन दे बेहुइज़िंग
ओमदत डिट गिटार हीरो-मॉडल रेडेलिज्क क्रैप ओम मी ते वर्कन हेब्बेन हम अतिरिक्त प्लेट्स मोएटेन माकन डी.एम.वी. डरमेलन ज़ो हेब्बेन वी यूट दे आक्टरकांत वैन दे गीतार ऐन हेले स्ट्रोक वर्विजर्ड जोडैट एर मीर प्लाट्स ऑन स्टाट वूर डे बेडरेडिंग इन दे गीतार। ओमदत एर ओवरऑल इन डे बिन्नेंकांत ऑब्सटेकल्स वारेन, वेरोन्डर वील बुइसजेस ओम डे विजेन इन ते बेवेस्टिगन, हेब्बेन वी डाई ऊक वर्विजर्ड ओम ऑप्टिमाल वैन डे गेगेवेन रुइमते गेब्रिक ते कुन्नन माकन। ऑप दे विएर्डे एन विजफ्दे फोटो इस ते ज़िएन डाट वी इन दे आक्टरकांत वैन डे गीतार एन डोरंग हेब्बेन गेक्रेर्ड वूर डे ड्रैडेन डाई नार दे बटन्स गान ओमदत दे गीतार एंडर्स नीट मीर ते स्लुइटन था। एन ऑप डे लाट्स फोटो इस ते ज़िएन डेट वी डे ड्रेडेन डाई रेचस्ट्रीक्स वर्बोंडेन वर्डन मेट डे अरुडिनो डोर ईन गत इन डे ओन्डरकंट वैन डे गीतार डे बेहुइज़िंग वर्लाटेन।
चरण 9: बेडराडिंग Ansluiten Op Protobord
ओम एले कॉम्पोनेंटन मिले एलकार ते वर्बिंडन हेब्बेन वी गेब्रिक गेमाकत वैन ऐन प्रोटोबॉर्ड। डिट इस ईन बोर्डजे डेट ईजेनलिज्क ऑप नेट डीज़ेल्फ़डे मैनियर वर्क्ट अल्स ईन ब्रेडबॉर्ड, मार और बेट्रोवबार्डर एन एफिशिएंसी। वी हेब्बेन डे बेडराडिंग आन हेट बोर्डजे गेसोल्डर्ड जोल्स ते ज़िएन इज ओप डे डर्ड फोटो। Dit bord is het Centrale punt van waaruit al onze verbindingen vertrekken en Samenkomen(zie photo 2).
चरण 10: वर्स्टेविजेन
इसके अलावा फिनिशिंग टच यह है कि यह बेहतर है और इसके लिए अतिरिक्त स्थिरता है। ऑप देज़ फोटो इस ते ज़िएन हो वी हेट डील डेट वी एर हेब्बेन यूटगेहाल डी.एम.वी. dremelen achteraan de button verstevigen मुलाकात stukjes karton.
चरण 11: कोड वूर हैट कम्युनिकेरेन मेट रीपर
Deze कोड twee delen में opgedeeld है, het eerste deel de arduino IDE (इंटरैक्टिव डेवलपमेंट एनवायरमेंट) geschreven में है। डाई कोड वर्ड्ट जियूपलोड नार आर्डिनो ज़ेल्फ़ एन डिएंट ओम एले वार्डन वैन डे सेंसर्स वैन डे मिडी कंट्रोलर यूआईटी ते लेज़ेन एन डोर ते स्ट्युरन नार प्रोसेसिंग।
प्रसंस्करण हेट ट्वीड गेडेल्टे है। Deze code dient om alles wat arduino Doortuurt te ontvangen en Door te sturen naar Reaper.
अरुडिनो
/* यह कोड सीरियल के माध्यम से प्रसंस्करण के साथ संचार करने के लिए एक मूल स्केच है।
यह एक ब्लूप्रिंट है जिसमें आप अपना कोड डाल सकते हैं
आपके अपने बटन, पोटेंशियोमीटर या सेंसर के लिए निर्दिष्ट।
यह सुनिश्चित करने के लिए हाथ मिलाना है कि हमारे पास संपर्क है
और जिस प्रारूप में हम संवाद कर रहे हैं वह तय है
संदेश को इसी तरह बनाना महत्वपूर्ण है, ताकि प्रोसेसिंग को पता चले कि इसे कैसे डीकंस्ट्रक्ट करना है और हमारे डीएडब्ल्यू को सही ओएससी-संदेश भेजना है
वर्ककॉलेज AV&IT. के लिए बनाया गया
अक्टूबर 2017
*
/ बॉड दर
कॉन्स्ट लॉन्ग बॉडरेट = ११५२००;
// पिन से चुनाव के बीच एमएस में प्रतीक्षा करने का समय
कॉन्स्ट इंट लूप पॉज़टाइम = २००; // मिली सेकंड
// सीरियल पर भेजे गए संदेश के लिए प्रारंभ और समाप्ति मान
कॉन्स्ट स्ट्रिंग स्टार्टस्ट्रिंग = "*", एंडस्ट्रिंग = "#";
कॉन्स्ट चार कॉन्टैक्ट कैरेक्टर = '|';
// पिन आईडी का
// अन्य वैश्विक चर
कास्ट इंट अंटल नोपेन = 5; कॉन्स्ट स्ट्रिंग नामेनकोपेन[aantalKnoppen] = {"नॉप १", "नॉप २", "नॉप ३", "नॉप ४", "नॉप ५"}; const int knopPinnen[aantalKnoppen] = {2, 3, 4, 5, 6}; कॉन्स्ट इंट मेनबटन = A1;
इंट मेनबटनस्टेट = 0;
इंट पॉटवैल्यू = 0;
// एनालॉग सेंसर
कॉन्स्ट इंट पॉटपिन = A5; // पिन वूर कांपोलो
// हमें प्रोसेसिंग स्केच के साथ संपर्क स्थापित करने के लिए इस फ़ंक्शन की आवश्यकता है
// इसे यहां रखें शून्य स्थापना संपर्क () { जबकि (सीरियल.उपलब्ध () <= 0) { सीरियल.प्रिंट (संपर्क चरित्र); // एक चार भेजें और प्रतिक्रिया की प्रतीक्षा करें … देरी (लूपपॉज़टाइम); } सीरियल.रीड (); }
व्यर्थ व्यवस्था() {
// सभी पिनों के लिए पिनमोड सेट करें (int i = 0; i <antalKnopen; i ++) {पिनमोड (knopPinnen , INPUT); } पिनमोड (मेनबटन, इनपुट); // असहज अगर आप 5V के बजाय 3V पर काम करने वाले सेंसर का उपयोग करते हैं // आपको 'ext' पिन को 3.3V पर भी वायर करना होगा //analogReference(EXTERNAL);
// सीरियल कॉम को इनिशियलाइज़ करें
सीरियल.बेगिन (बॉडरेट); जबकि (! सीरियल); // हैंडशेक की प्रतीक्षा करें स्थापना संपर्क (); }
शून्य लूप () {
// स्टेप १: रीड बटन /* बटनस्टेट्स [0] = डिजिटलरीड (नॉपपिनन [0]); बटनस्टेट्स [1] = डिजिटल रीड (नॉपपिनन [1]); बटनस्टेट्स [2] = डिजिटल रीड (नॉपपिनन [2]); बटनस्टेट्स [3] = डिजिटल रीड (नॉपपिनन [3]); बटनस्टेट्स [4] = डिजिटल रीड (नॉपपिनन [4]); */ मेनबटनस्टेट = डिजिटल रीड (मेनबटन); for(int i = 0; i < antalKnoppen; i++){ buttonStates = digitalRead(knopPinnen); } पॉटवैल्यू = एनालॉगरेड (पोटपिन); // उदाहरण: // फ्लोट v0 = नक्शा (बीपीएम, 0, 1023, 60, 250); // यदि आप एक सामान्यीकृत फ्लोट का उपयोग करना चाहते हैं (उदाहरण के लिए वॉल्यूम के लिए) // फ्लोट v1 = मैप (एनालॉग रीड (पिन 2), मिन से, मैक्स से, 0, 100) / 100.0;
// चरण 2: संदेश लिखें
सीरियल.प्रिंट (स्टार्टस्ट्रिंग); // के लिए एक संदेश अनुक्रम प्रारंभ करें (int i = 0; i <antalKnoppen; i++){ if(mainButtonState == High){ Serial.print(namenKnoppen); सीरियल.प्रिंट ("", "); सीरियल.प्रिंट (बटनस्टेट्स ); अगर (मैं <अन्ताल नोपपेन -1) {सीरियल.प्रिंट ("", "); }} और {बटनस्टेट्स = 0; Serial.print(namenKnoppen); सीरियल.प्रिंट ("", "); सीरियल.प्रिंट (बटनस्टेट्स ); अगर (मैं <आंटल नोपपेन -1) {सीरियल.प्रिंट ("", "); } } } सीरियल.प्रिंट ("", "); सीरियल.प्रिंट ("ट्रेमोलो"); सीरियल.प्रिंट ("", "); सीरियल.प्रिंट (मानचित्र (पोटवैल्यू, 0, 1023, 0, 100)); // संदेश का अंत लिखें Serial.print(endString);
// थोड़ी देर के लिए इंतजार करो..
देरी (लूप पॉज़टाइम); }
प्रसंस्करण
अस्वीकरण: नीट एली कोड वैन डे प्रोसेसिंग स्केच स्टैट हायर इन गेश्रेवेन, वूर डी वोलेडिज कोड ज़ी हेट बेस्टऔर: प्रोसेसिंग साउंडकंट्रोल_हैंडआउट_v6_1.pde in bijlage
डे वोल्गेंडे ने मोएटेन अंगेपस्ट वर्डेन (इंडियन नोडिग) को निर्देश दिया:
// बॉड्रेट मोएट हेट्ज़ेलफ़दे ज़िजन ज़ोल्स इन डे आर्डिनो स्केच
अंतिम इंट बॉडरेट = ११५२००;
// ज़ोएक नार हेट आईपी एड्रेस इन रीपर (बिजलेज में ज़ी स्क्रीनशॉट)
// प्रोसेसिंग स्टुअर्ट नार डिट एंड्रेस एन रीपर ल्यूस्टर्ट हायर नार //
// अंतिम स्ट्रिंग रिमोटआईपी = "192.168.1.43"; // जैसे। "127.0.0.1";
अंतिम स्ट्रिंग रिमोटआईपी = "10.3.209.60";
// सेंडपोर्ट पर ध्यान दें और इसे रीपर में भरें।
// यह वह पोर्ट है जिसे प्रोसेसिंग भेजता है और रीपर सुनता है।
अंतिम इंट सुनोपोर्ट = 12000, सेंडपोर्ट = 12000;
// यहां लिनेपोर्ट सक्रिय रूप से डिबग करने के लिए है।
// पोर्टनाम यहां डिबग करने के लिए भी हैं।
// अंतिम स्ट्रिंग पोर्टनाम = "/ dev/ttyACM0";
अंतिम स्ट्रिंग पोर्टनाम = "COM5"; // "/ देव/ttyUSB0";
/////////////////// उपयोगकर्ता पैरामीटर का अंत //////////////////////// ////
आयात प्रसंस्करण। धारावाहिक। *;
आयात java.util.*;
आयात oscP5.*;
आयात netP5.*;
ओएससीपी5 ओएससीपी5;
नेटएड्रेस myRemoteLocation;
सीरियल कॉमसपोर्ट; // सीरियल पोर्ट
बूलियन संदेश आ गया = झूठा;
स्ट्रिंग इनकमिंग = "", इनकमिंगओएससीमैसेज = "";
अंतिम चार स्टार्टचार = '*', एंडचर = '#'; अंतिम चार संपर्क चरित्र = '|';
// यह सुनिश्चित करने के लिए कि हम केवल पैरामीटर (मान) भेजते हैं जो बदलते हैं
// इन ग्लोबल वेरिएबल्स को यहां डिक्लेयर किया गया है, लेकिन // यहां इनिशियलाइज़ नहीं किया जाना चाहिए! हैश मैप पुराने पैराम्स, न्यू पैराम्स, टू सेंड पैराम्स;
// हमें संदेश को प्रत्येक अल्पविराम में विभाजित करने की आवश्यकता है
शून्य प्रक्रिया आने वाली () {स्ट्रिंग resVec = आने वाली। विभाजन ("", "); // हमें नाम + मूल्य जोड़े मिलते हैं // इसलिए प्रत्येक नाम (+2) के लिए … कोशिश करें {के लिए (int i = 0; i < resVec.length; i + = 2) {float value = Float.parseFloat (resVec [i + 1]); // उन्हें नए हैशटेबल में डालें newParams.put(resVec, value); } } // यदि कोई त्रुटि होती है, तो आइए इसे प्रदर्शित करें और बाहर निकलें। पकड़ (अपवाद पूर्व) {println ("अपवाद संदेश:" + पूर्व); प्रिंटअरे (resVec); बाहर जाएं(); } }
// हमारे संदेशों को फ़िल्टर करने के लिए
/* हम सुनिश्चित करते हैं कि केवल एक OSC-आउट संदेश है जब * इनपुट संदेश (सीरियल) बदलता है * अर्थात: यदि हम बटन को घुमाते / दबाते हैं और यह मान बदलता है। * इसलिए हम आने वाले मूल्यों को फ़िल्टर करते हैं जो वास्तव में बदलते हैं * नोट: हम कूदने वाले मूल्यों से नहीं बचेंगे * जैसे कि एक्सेलेरोमीटर या दूरी सेंसर से आते हैं * आपको Arduino */ void filterParams () {toSendParams = new में स्वयं को सुचारू करने की आवश्यकता होगी हैश मैप(); के लिए (स्ट्रिंग कुंजी: newParams.keySet ()) {// यदि कुंजी पहले से मौजूद है यदि (oldParams.containsKey (कुंजी)) {// कुंजी मौजूद है और मान समान नहीं है, तो अपडेट करें यदि (!oldParams.get(key).equals(newParams.get(key))) {toSendParams.put(key, newParams.get(key)); } } और {// कुंजी पुराने पैरा में मौजूद नहीं है, इसलिए इसे लगाएं! toSendParams.put (कुंजी, newParams.get (कुंजी)); } oldParams.put(key, newParams.get(key)); } }
शून्य मेकओएससी () {
के लिए (स्ट्रिंग कुंजी: toSendParams.keySet ()) {OscMessage myMessage = new OscMessage("/"+ key); myMessage.add(toSendParams.get(key)); /* संदेश भेजें */ oscP5.send(myMessage, myRemoteLocation); } }
शून्य अनुवाद संदेश () {
आने वाली प्रक्रिया (); फ़िल्टरपरम्स (); मेकओएससी (); } // जब हम विंडो पर प्रिंट करना चाहते हैं शून्य ShowIncoming() {// आने वाले संदेश को देखने के लिए, जैसा कि हैश मैप टेक्स्ट ("Arduino से आने वाली", 20, 20) में सेट किया गया है; इंट वाई = 20; के लिए (स्ट्रिंग कुंजी: newParams.keySet ()) {y = y+20; पाठ (कुंजी, 20, वाई); पाठ (newParams.get (कुंजी), ३००, y); } }
शून्य शो ओएससी () {
पाठ (आने वाली OSCMessage, ३००, २००); इनकमिंगओएससीमैसेज = ""; }
व्यर्थ व्यवस्था() {
आकार (1000, 800); // स्टेज साइज फिल (255); पृष्ठभूमि (0); OldParams = नया हैश मैप (); newParams = नया हैश मैप (); // प्रिंटअरे (सीरियल। सूची ()); कॉमसपोर्ट = नया सीरियल (यह, पोर्टनाम, बॉडरेट);
/* oscP5 शुरू करें, आने वाले संदेशों को सुनें */
oscP5 = नया OscP5 (यह, सुनोपोर्ट);
/* myRemoteLocation एक नेटएड्रेस है। एक नेटएड्रेस 2 पैरामीटर लेता है, * एक आईपी पता और एक पोर्ट नंबर।myRemoteLocation को * oscP5.send() में पैरामीटर के रूप में उपयोग किया जाता है जब किसी अन्य कंप्यूटर, डिवाइस, * एप्लिकेशन को osc पैकेट भेजते हैं। उपयोग नीचे देखें। परीक्षण उद्देश्यों के लिए श्रवण बंदरगाह * और दूरस्थ स्थान पते का बंदरगाह समान हैं, इसलिए आप * इस स्केच पर संदेश वापस भेजेंगे। */ myRemoteLocation = नया नेटएड्रेस (रिमोटआईपी, सेंडपोर्ट); }
शून्य ड्रा () {
अगर (संदेश पहुंचे) {पृष्ठभूमि (0); अनुवाद संदेश (); शो इनकमिंग (); संदेश पहुंचे = झूठा; } शोऑस्क (); }
शून्य सीरियलइवेंट (सीरियल कॉमसपोर्ट) {
// सीरियल पोर्ट से एक बाइट पढ़ें: char inChar = CommsPort.readChar (); स्विच (इनचर) {केस कॉन्टैक्ट कैरेक्टर: कॉमसपोर्ट.राइट (संपर्क कैरेक्टर); // अधिक प्रिंट के लिए पूछें ("शुरू हो रहा है …"); टूटना; केस स्टार्टचर: इनकमिंग = ""; टूटना; केस एंडचर: मैसेज अराइव्ड = ट्रू; // println ("संदेश का अंत"); टूटना; डिफ़ॉल्ट: इनकमिंग + = inChar; टूटना; } }
/* आने वाले osc संदेश को oscEvent विधि में अग्रेषित किया जाता है। */
शून्य oscEvent (OscMessage theOscMessage) {फ्लोट मान = theOscMessage.get(0).floatValue (); // पहला ओएससी तर्क प्राप्त करें
इनकमिंगOSCMessage += "\n" +
String.format ("### को एक ओएससी संदेश प्राप्त हुआ:" + "addrpattern:" + theOscMessage.addrPattern() + ": %f", value); println (आने वाली OSCMessage); }
चरण 12: नियंत्रक यूटेस्टेन
Nu Alles is angesloten, Alle code is geschreven en alles is gedubbelcheckt is het eindelijk tijd om de controler z'n work te laten doen. ज़ोएक इन पार ल्यूक इफेक्टेन ओप रीपर एन जीनिएट वैन डे वोल्टूइड गिटार हीरो मिडी कंट्रोलर!
सिफारिश की:
ज़ूम को नियंत्रित करने के लिए गिटार हीरो गिटार का उपयोग करना (केवल विंडोज़): 9 कदम
ज़ूम (केवल विंडोज़) को नियंत्रित करने के लिए गिटार हीरो गिटार का उपयोग करना: जैसा कि हम एक वैश्विक महामारी के बीच में हैं, हम में से कई लोग घर की सफाई और जूम पर बैठकों में शामिल होने में फंस गए हैं। थोड़ी देर के बाद, यह बहुत ही नीरस और थकाऊ हो सकता है। अपने घर की सफाई करते समय, मुझे एक पुराना गिटार हीरो गिटार मिला जिसे टी में फेंका गया था
गिटार हीरो गिटार डिस्कनेक्टिंग फिक्स: 5 कदम (चित्रों के साथ)
गिटार हीरो गिटार डिस्कनेक्टिंग फिक्स: तो, आपने अभी-अभी ईबे से उस अच्छे इस्तेमाल किए गए गिटार हीरो गिटार को खरीदा है, और जब यह आपके पास आया तो यह उस यूएसबी डोंगल से कनेक्ट नहीं होगा, इसलिए आपको लगता है कि आपने अभी-अभी 30 यूरो बर्बाद किए हैं। नाली के नीचे। लेकिन एक फिक्स है, और यह फिक्स शायद काम करेगा
बिल्ट-इन स्पीकर के साथ गिटार हीरो गिटार: 8 कदम
बिल्ट-इन स्पीकर के साथ गिटार हीरो गिटार: मूल रूप से, मैंने एक गिटार हीरो कंट्रोलर को खोला और सोचा कि मैं अंदर क्या फिट कर सकता हूं। यह हल्का लग रहा था इसलिए मुझे लगा कि बहुत जगह है। निश्चित रूप से, बहुत कुछ था। मूल रूप से मैंने गिटार और आरओ के गले में आईपॉड शफल लगाने की योजना बनाई थी
महाकाव्य! गिटार हीरो - डबल नेक गिटार विफल: 7 कदम (चित्रों के साथ)
महाकाव्य! गिटार हीरो - डबल नेक गिटार … विफल: 2015 पॉप संस्कृति घटना गिटार हीरो की 10 साल की सालगिरह का प्रतीक है। आपको याद है, वह वीडियो गेम जो संगीत वाद्ययंत्र की तुलना में अधिक लोकप्रिय हो गया, वह केवल अस्पष्ट रूप से नकल करने में सफल रहा? इसके दशक को मनाने का इससे बेहतर तरीका और क्या हो सकता है
लेजर-सिंथिटार एक गिटार-हीरो-जैसे खिलौना गिटार से: 6 कदम
लेज़र-सिंथिटार एक गिटार-हीरो-जैसे टॉय गिटार से: मैं लेज़र वीणा के सभी यूट्यूब वीडियो से बहुत प्रेरित था, लेकिन मैंने उन सभी को जाम सत्र के लिए साथ लाने के लिए बहुत बड़ा पाया या उन्हें एक जटिल सेटअप और एक पीसी आदि की आवश्यकता थी। मैंने स्ट्रिंग्स के बजाय लेज़रों वाले गिटार के बारे में सोचा। तब मुझे एक टूटा हुआ टी मिला