विषयसूची:

वालाबोट एफएक्स - गिटार प्रभाव नियंत्रण: 28 कदम (चित्रों के साथ)
वालाबोट एफएक्स - गिटार प्रभाव नियंत्रण: 28 कदम (चित्रों के साथ)

वीडियो: वालाबोट एफएक्स - गिटार प्रभाव नियंत्रण: 28 कदम (चित्रों के साथ)

वीडियो: वालाबोट एफएक्स - गिटार प्रभाव नियंत्रण: 28 कदम (चित्रों के साथ)
वीडियो: Sensor Demo Application - Deeper Dive Tutorial 2024, जुलाई
Anonim
वालाबोट एफएक्स - गिटार प्रभाव नियंत्रण
वालाबोट एफएक्स - गिटार प्रभाव नियंत्रण

अपने पसंदीदा गिटार प्रभाव को नियंत्रित करें, लेकिन कुछ भी नहीं बल्कि भयानक गिटार पोज़ का उपयोग करें!

चरण 1: चीजें जो आपको चाहिए होंगी

हार्डवेयर घटक

वालाबोट - वालाबोट

रास्पबेरी पाई - रास्पबेरी पाई 3 मॉडल बी

सनफाउंडर LCD1602

Arduino और रास्पबेरी पाई के लिए SunFounder PCA9685 16 चैनल 12 बिट PWM सर्वो ड्राइवर

सर्वो (जेनेरिक) कोई लिंक नहीं

9वी बैटरी क्लिप

4xAA बैटरी होल्डर

एए बैटरी

जम्पर वायर (जेनेरिक)

DPDT लैचिंग एक्शन फुट स्विच

कोर्ग एसडीडी३०००-पीडीएल

सॉफ्टवेयर ओएस, ऐप्स और ऑनलाइन सेवाएं

Autodesk Fusion360 -

ब्लिंक -

उपकरण आदि

थ्री डी प्रिण्टर

सोल्डरिंग आयरन

चरण 2: सार

Getting Started
Getting Started

3D स्पेस में अपने गिटार की स्थिति के अलावा कुछ नहीं का उपयोग करके संगीत की अभिव्यक्ति को नियंत्रित करना कैसा होगा? चलो कुछ प्रोटोटाइप करते हैं और पता लगाते हैं!

चरण 3: मूल विचार

मैं वास्तविक समय में 3 प्रभाव पैरामीटर को नियंत्रित करने में सक्षम होना चाहता था, मैं अपने गिटार की स्थिति का उपयोग करके ऐसा करना चाहता था। तो एक बात साफ थी, मुझे कुछ चीजों की जरूरत थी।

  • एक सेंसर जो 3डी स्पेस देख सकता है
  • घुंडी घुमाने के लिए सर्वो
  • एक एलसीडी डिस्प्ले
  • एक I2C सर्वो ड्राइवर
  • एक रास्पबेरी पाई
  • पायथन सीखने के लिए

चरण 4: वालाबोट

दीवारों के माध्यम से देखना चाहते हैं? 3D स्पेस में सेंस ऑब्जेक्ट? महसूस करें कि क्या आप पूरे कमरे से सांस ले रहे हैं? अच्छा, तुम भाग्य में हो!

वालाबोट कम शक्ति वाले रडार का उपयोग करके आपके आस-पास की जगह को महसूस करने का बिल्कुल नया तरीका है।

यह इस परियोजना के लिए महत्वपूर्ण होने जा रहा था, मैं 3 डी अंतरिक्ष में वस्तुओं के कार्टेसन (एक्स-वाई-जेड) कोऑडिनेट्स लेने में सक्षम होगा, और उन सर्वो पदों पर मैप कर सकता हूं जो वास्तविक समय में, पेडल को छूए बिना गिटार प्रभाव कैसे लगता है।

जीत।

वालाबोट के बारे में अधिक जानकारी यहां मिल सकती है

चरण 5: आरंभ करना

सबसे पहले चीज़ें, आपको वालाबोट को चलाने के लिए एक कंप्यूटर की आवश्यकता होगी, इस परियोजना के लिए मैं एक रास्पबेरी पाई 3 (यहां आरपीआई में संदर्भित) का उपयोग कर रहा हूं, क्योंकि वाईफाई और सामान्य अतिरिक्त ओम्फ में बनाया गया है

मैंने चीजों को अच्छा और सरल रखने के लिए एनओओबीएस के साथ 16 जीबी एसडी कार्ड खरीदा, और मेरी पसंद के लिनक्स ओएस के रूप में रास्पियन को स्थापित करने का विकल्प चुना।

(यदि आप रास्पियन को स्थापित करने के तरीके से अपरिचित हैं, तो कृपया इसे थोड़ा पढ़ने के लिए कुछ समय दें)

ठीक है, एक बार जब आप रास्पियन को अपने आरपीआई पर चलाना शुरू कर देते हैं, तो हमारे प्रोजेक्ट के लिए चीजें तैयार करने के लिए कुछ कॉन्फ़िगरेशन कदम उठाने होंगे

चरण 6: रास्पबेरी पाई की स्थापना - 1

सबसे पहले सुनिश्चित करें कि आप नवीनतम कर्नेल संस्करण चला रहे हैं और कमांड शेल खोलकर और टाइप करके अपडेट की जांच करें

सुडो एपीटी-अपडेट प्राप्त करें

सुडो एपीटी-डिस्ट-अपग्रेड प्राप्त करें

(सुडो को यह सुनिश्चित करने के लिए जोड़ा जाता है कि आपके पास प्रशासनिक विशेषाधिकार हैं जैसे सामान काम करेगा)

इसे पूरा होने में कुछ समय लग सकता है, इसलिए जाइए और एक अच्छी चाय का प्याला लीजिए।

चरण 7: रास्पबेरी पाई की स्थापना - 2

आपको आरपीआई के लिए वालाबोट एसडीके स्थापित करने की आवश्यकता है। अपने आरपीआई वेब ब्राउज़र से https://www.walabot.com/gettingstarted पर जाएं और रास्पबेरी पाई इंस्टालर पैकेज डाउनलोड करें।

एक कमांड शेल से:

सीडी डाउनलोड

sudo dpkg -I walabotSDK_RasbPi.deb

चरण 8: रास्पबेरी पाई की स्थापना - 3

हमें i2c बस का उपयोग करने के लिए RPi को कॉन्फ़िगर करना शुरू करना होगा। कमांड शेल से:

sudo apt-पायथन-smbus स्थापित करें

sudo apt-i2c-tools स्थापित करें

एक बार यह हो जाने के बाद, आपको मॉड्यूल फ़ाइल में निम्नलिखित जोड़ना होगा:

एक कमांड शेल से:

सुडो नैनो / आदि / मॉड्यूल

इन 2 तारों को अलग-अलग पंक्तियों में जोड़ें:

i2c-देव

i2c-bcm2708

चरण 9: रास्पबेरी पाई की स्थापना - 4

वालाबोट थोड़ा सा करंट खींचता है, और हम सामान को नियंत्रित करने के लिए GPIO का भी उपयोग करेंगे, इसलिए हमें इन्हें सेट करने की आवश्यकता है

एक कमांड शेल से:

सुडो नैनो /boot/config.txt

फ़ाइल के अंत में निम्न पंक्तियाँ जोड़ें:

Safe_mode_gpio=4

max_usb_current=1

आरपीआई निर्माताओं के लिए एक उत्कृष्ट उपकरण है, लेकिन यह वर्तमान में सीमित है जो इसे वालाबोट को भेज सकता है। इसलिए हम अधिक मानक 500mA के बजाय 1Amp अधिकतम करंट क्यों जोड़ रहे हैं

चरण 10: पायथन

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

चरण 11: वालाबोट के लिए

कमांड शेल से

सुडो पाइप स्थापित करें "/usr/share/walabot/python/WalabotAPI-1.0.21.zip"

चरण 12: सर्वो इंटरफ़ेस के लिए

कमांड शेल से

sudo apt-get install git बिल्ड-एसेंशियल पायथन-देव

सीडी ~

गिट क्लोन

सीडी एडफ्रूट_पायथन_पीसीए9685

sudo python setup.py install

हमें सर्वो ड्राइवर का उपयोग करने की आवश्यकता क्यों है? ठीक है, आरपीआई के कुछ कारणों से।

1. एक सर्वो द्वारा खींची गई धारा बहुत अधिक हो सकती है, और यह संख्या आपके पास जितने अधिक सर्वो (बेशक) बड़ी होती जाती है। यदि आप आरपीआई से सर्वो डायरेक्टकी चला रहे हैं तो आप इसकी बिजली आपूर्ति को उड़ाने का जोखिम चलाते हैं

2. पीडब्लूएम (पल्स चौड़ाई मॉडुलन) का समय जो सर्वो स्थिति को नियंत्रित करता है, बहुत महत्वपूर्ण है। चूंकि आरपीआई रीयलटाइम ओएस का उपयोग नहीं करता है (इसमें इंटरप्ट और ऐसे हो सकते हैं) समय सटीक नहीं है और सर्वो को घबराहट कर सकता है। एक समर्पित ड्राइवर सटीक नियंत्रण की अनुमति देता है, लेकिन 16 सर्वो तक जोड़ने की भी अनुमति देता है, इसलिए यह विस्तार के लिए बहुत अच्छा है।

चरण 13: एलसीडी के लिए

ब्लिंको
ब्लिंको

अपना आरपीआई वेब ब्राउज़र खोलें

www.sunFounder.com/learn/category/sensor-k…

डाउनलोड

github.com/daveyclk/SunFounder_SensorKit_…

एक कमांड शेल से:

सुडो एमकेडीआईआर / यूएसआर / शेयर / सनफाउंडर

ग्राफिकल एक्सप्लोरर का उपयोग करते हुए, जिप फाइल से पाइथन फोल्डर को अपने नए सनफाउंडर फोल्डर में कॉपी करें

एलसीडी का उपयोग उपयोगकर्ता को यह बताने के लिए किया जाता है कि वास्तव में क्या चल रहा है। प्रत्येक सर्वो पर मैप किए जा रहे x, y और z मानों के माध्यम से कॉन्फ़िगरेशन की प्रक्रिया दिखा रहा है

चरण 14: ब्लिंक

ब्लिंको
ब्लिंको
ब्लिंको
ब्लिंको

Blynk एक शानदार IoT सेवा है जो आपको अपने सामान को नियंत्रित करने के लिए एक कस्टम ऐप बनाने की अनुमति देती है। यह वास्तव में सेटिंग्स में डायल करने के लिए मुझे वालेबोट का रिमोट कंट्रोल देने के लिए सही समाधान की तरह लग रहा था …

एक समस्या। Blynk वर्तमान में Python प्लेटफॉर्म, बगर पर समर्थित नहीं है। लेकिन डरो मत! मैं आसपास एक अच्छा सा काम ढूंढने में सक्षम था जो रिमोट कंट्रोल और रिमोट पैरामीटर इनपुट की अनुमति देता है! यह थोड़ा हैकी है

पहला कदम अपने पसंदीदा ऐप स्टोर से Blynk ऐप डाउनलोड करना है

दूसरा, एक खाते के लिए साइन अप करें

एक बार ऐसा करने के बाद, ऐप खोलें और एक नया प्रोजेक्ट शुरू करें, जिसमें रास्पबेरी पाई 3 को हार्डवेयर के रूप में चुनें।

ऐप आपको एक एक्सेस टोकन आवंटित करेगा (आपको अपना कोड डालने के लिए इसकी आवश्यकता होगी)

एक बार आपने ऐसा कर लिया। आपको छवियों में दिखाए गए अनुसार ऐप को सेट करना होगा। इस तरह यह वालाबोट के साथ इंटरफेस करेगा।

चरण 15: Blynk ऐप को कॉन्फ़िगर करना

Blynk ऐप को कॉन्फ़िगर करना
Blynk ऐप को कॉन्फ़िगर करना
Blynk ऐप को कॉन्फ़िगर करना
Blynk ऐप को कॉन्फ़िगर करना
Blynk ऐप को कॉन्फ़िगर करना
Blynk ऐप को कॉन्फ़िगर करना

चरण 16: आप अपना समय बचाने के लिए मेरे प्रोजेक्ट को क्लोन करने के लिए Blynk ऐप के साथ इस क्यूआर कोड का उपयोग कर सकते हैं

आप मेरा समय बचाने के लिए मेरे प्रोजेक्ट को क्लोन करने के लिए Blynk ऐप के साथ इस क्यूआर कोड का उपयोग कर सकते हैं
आप मेरा समय बचाने के लिए मेरे प्रोजेक्ट को क्लोन करने के लिए Blynk ऐप के साथ इस क्यूआर कोड का उपयोग कर सकते हैं

ठीक है अब जब ऐप पूरी तरह से सेट हो गया है, तो हम इंटरनेट पर बात करने के लिए पायथन और आरपीआई को कॉन्फ़िगर कर सकते हैं। जादू

चरण 17: रास्पबेरी पाई के साथ ब्लिंक चलाना और पायथन के लिए ब्लिंक HTTPS का उपयोग करना

सबसे पहले, आपको Python के लिए Blynk HTTPS आवरण स्थापित करना होगा

एक कमांड शेल से:

सुडो गिट क्लोन

sudo pip blynkapi स्थापित करें

दूसरे, आपको RPi. पर Blynk सेवा स्थापित करने की आवश्यकता है

एक कमांड शेल से:

गिट क्लोन

सीडी ब्लिंक-लाइब्रेरी/लिनक्स

सब साफ करो

ब्लिंक सेवा चलाने के लिए

sudo./blynk --token=YourAuthToken

यह सुनिश्चित करने के लिए कि Blynk सेवा स्टार्ट अप पर चलती है, आपको /etc/rc.local. को संशोधित करने की आवश्यकता है

ऐसा करके

सुडो नैनो /etc/rc.local

इसे अंत में जोड़ें

./blynk-लाइब्रेरी/linux/blynk --token=my टोकन &

(मैंने संदर्भ के लिए कोड अनुभाग में मेरी /etc/rc.local फ़ाइल का एक कॉप शामिल किया है)

परीक्षण करने के लिए यह काम कर रहा है बस टाइप करें

sudo /etc/rc.local start

Blynk सेवा अब चलनी चाहिए

चरण 18: स्क्रिप्ट को स्वतः चलाना

अब जब यह सब सेट और कॉन्फ़िगर हो गया है, और हमारे पास पायथन कोड तैयार है। हम चीजों को ऑटो चलाने के लिए सेट कर सकते हैं ताकि हम कीबोर्ड और मॉनिटर को छोड़ सकें

करने के लिए कुछ चीजें हैं

पायथन प्रोग्राम को चलाने के लिए एक नई स्क्रिप्ट फ़ाइल बनाएँ

सुडो नैनो गिटार इफेक्ट.श

इन पंक्तियों को जोड़ें

#!/बिन/श

अजगर /home/pi/GuitarEffectCLI.py

इसे सहेजना सुनिश्चित करें

आगे हमें टाइप करके स्क्रिप्ट को चलाने की अनुमति देनी होगी

सुडो चामोद +x /home/pi/guitareffect.sh

और अंत में, हमें इस स्क्रिप्ट को /etc/rc.local फ़ाइल में जोड़ने की आवश्यकता है जिसे हमने पहले जोड़ा था।

सूडो नैनो /etc/rc.local

जोड़ें

/home/pi/guitareffect.sh &

"&" को शामिल करना सुनिश्चित करें, यह पायथन स्क्रिप्ट को पृष्ठभूमि में चलने की अनुमति देता है

सही! यह सभी कॉन्फ़िगरेशन और सॉफ़्टवेयर सॉर्ट किए गए हैं, इसके बाद हार्डवेयर को वायर करने का समय है

चरण 19: हार्डवेयर

Image
Image
Walabot guitar effects control proto1
Walabot guitar effects control proto1

पहला ब्रेडबोर्ड प्रोटोटाइप

चरण 20: संलग्नक डिजाइन

संलग्नक डिजाइन
संलग्नक डिजाइन
संलग्नक डिजाइन
संलग्नक डिजाइन

बाड़े को भयानक Fusion360. में डिजाइन और प्रस्तुत किया गया था

चरण 21: हिम्मत शॉट्स

हिम्मत शॉट्स
हिम्मत शॉट्स
हिम्मत शॉट्स
हिम्मत शॉट्स
हिम्मत शॉट्स
हिम्मत शॉट्स

चरण 22: अंतिम विधानसभा शॉट्स

अंतिम विधानसभा शॉट्स
अंतिम विधानसभा शॉट्स
अंतिम विधानसभा शॉट्स
अंतिम विधानसभा शॉट्स
अंतिम विधानसभा शॉट्स
अंतिम विधानसभा शॉट्स

चरण 23: वालाबोट को स्टैंड पर ठीक करने के लिए

वालाबोट को स्टैंड पर ठीक करने के लिए
वालाबोट को स्टैंड पर ठीक करने के लिए

स्वयं चिपकने वाली धातु डिस्क का उपयोग करें जो इसे ठीक करने के लिए वालेबोट के साथ आती है

चरण 24: 3D प्रिंटिंग के लिए हार्डवेयर STL फ़ाइलें

चरण 25: थिंग अप वायरिंग के लिए योजनाबद्ध

चरण 26: कोड

अपनी परियोजना के लिए संलग्न पायथन लिपि का प्रयोग करें

_future_ से आयात प्रिंट_फंक्शन से sys आयात मंच से os आयात प्रणाली से blynkapi आयात से Blynk आयात WalabotAPI आयात समय RPI. GPIO GPIO के रूप में आयात करें

#बोर्ड नंबरिंग का उपयोग करके GPIO सेट करें

GPIO.setmode(GPIO. BOARD) GPIO.setup(18, GPIO. IN, pull_up_down = GPIO. PUD_UP)

#blynk प्रमाणीकरण टोकन

auth_token = "your_auth_token_here"

# सर्वो नियंत्रण के लिए PCA9685 मॉड्यूल आयात करें।

आयात Adafruit_PCA9685

#स्थान से एलसीडी मॉड्यूल आयात करें

आयात से load_source LCD1602 = load_source('LCD1602', '/usr/share/sunFounder/Python/LCD1602.py')

# डिफ़ॉल्ट पते (0x40) का उपयोग करके PCA9685 प्रारंभ करें।

pwm = Adafruit_PCA9685. PCA9685()

#ब्लिंक ऑब्जेक्ट्स

डिफॉल्ट्स = ब्लिंक (ऑथ_टोकन, पिन = "वी 9") स्टार्ट_बटन = ब्लिंक (ऑथ_टोकन, पिन = "वी 3") आरमैक्स = ब्लिंक (ऑथ_टोकन, पिन = "वी0") रमिन = ब्लिंक (ऑथ_टोकन, पिन = "वी 1") आरआरएस = Blynk(auth_token, pin = "V2")

ThetaMax = Blynk(auth_token, pin = "V4")

ThetaRes = Blynk(auth_token, pin = "V5")

PhiMax = Blynk (auth_token, पिन = "V6")

फ़िरेस = ब्लिंक (auth_token, पिन = "V7")

दहलीज = ब्लिंक (auth_token, पिन = "V8")

ServoMin = Blynk(auth_token, pin = "V10")

ServoMax = Blynk (auth_token, pin = "V11")

डीईएफ़ एलसीडीसेटअप ():

LCD1602.init(0x27, 1) # init(दास का पता, बैकग्राउंड लाइट)

def numMap(x, in_min, in_max, out_min, out_max): """ का उपयोग वाल्बोट रीडिंग को सर्वो स्थिति में मैप करने के लिए किया जाता है """ रिटर्न इंट ((x- in_min) * (आउट_मैक्स - आउट_मिन) / (इन_मैक्स - इन_मिन) + आउट_मिन)

# कच्चे डेटा को निर्दिष्ट मूल्य पर गोल करने के लिए इसका उपयोग करें

डीईएफ़ मायराउंड (एक्स, बेस = 2): रिटर्न इंट (बेस * राउंड (फ्लोट (एक्स) / बेस))

#नंबर निकाले गए ब्लिंक स्ट्रिंग से बनता है

डीईएफ़ नंबर एक्सट्रैक्ट (वैल): वैल = स्ट्र (वैल) रिटर्न इंट (फ़िल्टर (str.isdigit, वैल))

# आवृत्ति को 60 हर्ट्ज पर सेट करें, सर्वो के लिए अच्छा है।

pwm.set_pwm_freq(60)

# न्यूनतम और अधिकतम सर्वो पल्स लंबाई डिफ़ॉल्ट कॉन्फ़िगर करें

SERVO_MIN = 175 # 4096 में से न्यूनतम पल्स लंबाई SERVO_MAX = 575 # 4096 में से अधिकतम पल्स लंबाई

# वालाबोट डिफ़ॉल्ट मान

R_MAX = 60 R_MIN = 20 R_RES = 5

THETA_MAX = 20

थीटा_आरईएस = 5

PHI_MAX = 20

PHI_RES = 5

दहलीज = 1

# ब्लिंक स्विचिंग के लिए चर

पर = "[यू'1']"

क्लास वालाबोट:

def _init_(स्वयं):

self.wlbt = WalabotAPI self.wlbt. Init () self.wlbt. SetSettingsFolder () self.isConnected = False self.isTargets = False

def blynkConfig (स्वयं):

load_defaults = defaults.get_val() अगर str(load_defaults) == on: SERVO_MAX = ServoMax.get_val() SERVO_MAX = numberExtract(SERVO_MAX) प्रिंट ("सर्वो मैक्स =", SERVO_MAX)

सर्वो_मिन = सर्वोमिन.get_val ()

SERVO_MIN = numberExtract(SERVO_MIN) प्रिंट ("सर्वो MIN =", SERVO_MIN) R_MAX = Rmax.get_val () R_MAX = numberExtract (R_MAX) प्रिंट ("R अधिकतम =", R_MAX)

R_MIN = Rmin.get_val ()

R_MIN = numberExtract(R_MIN) प्रिंट ("आर मिन =", R_MIN)

R_RES = Rres.get_val ()

R_RES = numberExtract(R_RES) प्रिंट ("R Res =", R_RES)

THETA_MAX = ThetaMax.get_val ()

THETA_MAX = numberExtract(THETA_MAX) प्रिंट ("थीटा मैक्स =", THETA_MAX) THETA_RES = ThetaRes.get_val () THETA_RES = numberExtract (THETA_RES) प्रिंट ("थीटा रेस =", THETA_RES)

PHI_MAX = PhiMax.get_val ()

PHI_MAX = numberExtract(PHI_MAX) प्रिंट("Phi Max =", PHI_MAX) PHI_RES = PhiRes.get_val() PHI_RES = numberExtract(PHI_RES) प्रिंट ("Phi Res =", PHI_RES)

दहलीज = दहलीज। get_val ()

थ्रेशोल्ड = नंबर एक्सट्रैक्ट (थ्रेशोल्ड) प्रिंट ("थ्रेसहोल्ड =", थ्रेशोल्ड)

और: # अगर blynk ऐप से कुछ भी नहीं है, तो लोड डिफॉल्ट SERVO_MIN = 175 # 4096 में से न्यूनतम पल्स लंबाई SERVO_MAX = 575 # 4096 में से अधिकतम पल्स लंबाई

# वालाबोट डिफ़ॉल्ट मान

R_MAX = 60 R_MIN = 20 R_RES = 5

THETA_MAX = 20

थीटा_आरईएस = 5

PHI_MAX = 20

PHI_RES = 5

दहलीज = 1

डीईएफ़ कनेक्ट (स्वयं): कोशिश करें: स्वयं। (self.wlbt. FILTER_TYPE_NONE) #self.wlbt. SetDynamicImageFilter(self.wlbt. FILTER_TYPE_DERIVATIVE) self.wlbt. SetArenaTheta(-THETA_MAX, THETA_MAX, THETA_RES) self.wlbt. SetArenaPhi(-PHI_MAX, PHI_MAX, PHI_RES) self.wlbt. SetArenaPhi(-PHI_RES) SetArenaR(R_MIN, R_MAX, R_RES) self.wlbt. SetThreshold(THRESHOLD) को छोड़कर self.wlbt. WalabotError को गलती के रूप में: यदि err.code != 19: # 'WALABOT_INSTRUMENT_NOT_FOUND' एरर बढ़ाएं

डीईएफ़ प्रारंभ (स्वयं):

स्व.wlbt.प्रारंभ ()

डीईएफ़ कैलिब्रेट (स्वयं):

self.wlbt. StartCalibration ()

def get_targets (स्वयं):

self.wlbt. Trigger() वापसी self.wlbt. GetSensorTargets()

डीईएफ़ स्टॉप (स्वयं):

स्वयं.डब्ल्यूएलबीटी.स्टॉप ()

डीईएफ़ डिस्कनेक्ट (स्वयं):

स्व.wlbt.डिस्कनेक्ट ()

डीईएफ़ मुख्य ():

फ्लैग = ट्रू चेक = "" LCDsetup() जबकि फ्लैग: LCD1602.write(0, 0, 'Guitar') LCD1602.write(0, 1, 'Effect Control') time.sleep(2) LCD1602.write(0, 0, 'प्रेस स्टार्ट टू') LCD1602.लिखें (0, 1, 'शुरू') समय। सो (2) अगर (str (चेक) == चालू): ध्वज = गलत: चेक = start_button.get_val () # यदि (GPIO.input(18) == 0): #check footswitch ध्वज = गलत

LCD1602.लिखें(0, 0, "ओके! लेट्स डू इट")

LCD1602.write(0, 1, '' ') wlbt = Walabot() wlbt.blynkConfig() wlbt.connect() LCD1602.clear() अगर wlbt.isConnected नहीं है: LCD1602.write(0, 0, 'Not Connected') अन्य: LCD1602.लिखें(0, 0, 'कनेक्टेड') समय.स्लीप(2) wlbt.start() wlbt.कैलिब्रेट() LCD1602.लिखें (0, 0, 'कैलिब्रेटिंग…..') समय.स्लीप(3) LCD1602.लिखें (0, 0, 'स्टार्टिंग वालाबोट')

एपचेक = start_button.app_status () ध्वज = सही # मुख्य कार्यक्रम के लिए ध्वज रीसेट करें

जबकि ध्वज: # स्टैंडबाय में प्रभाव डालने के लिए उपयोग किया जाता है (प्रभावी रूप से)

if (appcheck == True): if (str(check) != on): if (GPIO.input(18) != 0): #check footswitch flag = false else: check = start_button.get_val() #check for स्टार्ट बटन प्रेस एपचेक = start_button.app_status ()

अन्यथा:

अगर (GPIO.input(18) != 0): # फ़ुटस्विच फ़्लैग की जाँच करें = गलत

xval = 0

यवल = ० ज़्वल = ० औसत = २ विलंब समय = ०

लक्ष्य = wlbt.get_targets ()

अगर लेन (लक्ष्य)> 0:

j के लिए रेंज में (औसत):

लक्ष्य = wlbt.get_targets ()

अगर लेन (लक्ष्य)> 0: प्रिंट (लेन (लक्ष्य)) लक्ष्य = लक्ष्य [0]

प्रिंट (str (लक्ष्य। xPosCm))

xval += int(targets.xPosCm) yval += int(targets.yPosCm) zval += int(targets.zPosCm) time.sleep(delayTime) और: प्रिंट ("कोई लक्ष्य नहीं") xval = xval/औसत

xval = numMap (xval, -60, 60, SERVO_MIN, SERVO_MAX)

xval = myRound(xval) यदि xval SERVO_MAX: xval = SERVO_MAX LCD1602.लिखें(0, 0, 'x=' + str(xval) + '' ') pwm.set_pwm(0, 0, xval)

यवल = यवल/औसत

yval = numMap (yval, -60, 60, SERVO_MIN, SERVO_MAX)

yval = myRound(yval) यदि yval SERVO_MAX: yval = SERVO_MAX LCD1602.लिखें(0, 1, 'y=' + str(yval)) pwm.set_pwm(1, 0, yval)

ज़्वल = ज़्वल/औसत

zval = numMap (zval, R_MIN, R_MAX, SERVO_MIN, SERVO_MAX)

zval = myRound(zval) if zval SERVO_MAX: zval = SERVO_MAX LCD1602.write(8, 1, 'z=' + str(zval)) pwm.set_pwm(2, 0, zval)

अन्यथा:

प्रिंट ("कोई लक्ष्य नहीं") LCD1602.लिखें(0, 0, "शट डाउन") LCD1602.लिखें(0, 1, 'द वालाबोट') समय। नींद (3) wlbt.stop() wlbt.disconnect()

अगर _name_ == '_main_':

जबकि सच: मुख्य ()

गिटार इफेक्ट के लिए

#!/बिन/श

सीडी / घर / पीआई

सूडो पायथन गिटारइफेक्टCLI.py

संदर्भ के लिए RC स्थानीय फ़ाइल की एक प्रति

#!/bin/sh -e# # rc.local # # यह स्क्रिप्ट प्रत्येक बहुउपयोगकर्ता रनलेवल के अंत में निष्पादित की जाती है। # सुनिश्चित करें कि स्क्रिप्ट सफल होने पर "0 से बाहर निकलें" या त्रुटि पर कोई अन्य # मान। # # इस स्क्रिप्ट को सक्षम या अक्षम करने के लिए बस निष्पादन # बिट बदलें। # # डिफ़ॉल्ट रूप से यह स्क्रिप्ट कुछ नहीं करती है।

# आईपी एड्रेस प्रिंट करें

_IP=$(होस्टनाम -I) || सच अगर ["$_आईपी"]; फिर प्रिंटफ "मेरा आईपी पता %s\n" "$_IP" फाई है

./blynk-library/linux/blynk --token="आप टोकन यहाँ जाता है" और

स्लीप १० sudo /home/pi/guitareffect.sh और बाहर निकलें ०

चरण 27: उपयोग करने के लिए जीथब रिपॉजिटरी

सनफाउंडर एलसीडी के लिए इसका इस्तेमाल करें

github.com/daveyclk/SunFounder_SensorKit_f…

सर्वो ड्राइवर के लिए इसका इस्तेमाल करें

github.com/daveyclk/Adafruit_Python_PCA968…

Blynk Python HTTPS Wrapper के लिए इसका इस्तेमाल करें

github.com/daveyclk/blynkapi

चरण 28: निष्कर्ष

Image
Image
Walabot FX- Guitar Effect Control. Full Demo
Walabot FX- Guitar Effect Control. Full Demo
निष्कर्ष
निष्कर्ष
निष्कर्ष
निष्कर्ष

वैसे यह एक कठिन सीखने की अवस्था रही है, लेकिन यह इसके लायक है।

मेरे लेने के रास्ते हैं

  • मुझे पायथन सीखना था..पता चला यह इक्का है
  • रास्पबेरी पाई पर पाइथन को Blynk IoT सेवा के साथ इंटरफेस किया। यह आधिकारिक तौर पर समर्थित नहीं है इसलिए इसके कार्यों की कुछ सीमाएँ हैं। हालांकि अभी भी बहुत अच्छा काम करता है!
  • यह पता चला है कि वालाबोट संगीत की अभिव्यक्ति के लिए बहुत अच्छा है। मैंने इसे Korg SDD3000 पर इस्तेमाल किया, लेकिन आप अपनी पसंद के किसी भी प्रभाव का उपयोग कर सकते हैं

खुद जाइए। यह गिटार प्रभाव तक सीमित नहीं है, मैं किसी भी उपकरण के साथ किसी भी प्रभाव के साथ उपयोग किया जा सकता है।

रास्पबेरी पाई प्रतियोगिता 2017
रास्पबेरी पाई प्रतियोगिता 2017
रास्पबेरी पाई प्रतियोगिता 2017
रास्पबेरी पाई प्रतियोगिता 2017

रास्पबेरी पाई प्रतियोगिता 2017 में उपविजेता

सिफारिश की: