Բովանդակություն:

Walabot FX - Կիթառի էֆեկտի կառավարում. 28 քայլ (նկարներով)
Walabot FX - Կիթառի էֆեկտի կառավարում. 28 քայլ (նկարներով)

Video: Walabot FX - Կիթառի էֆեկտի կառավարում. 28 քայլ (նկարներով)

Video: Walabot FX - Կիթառի էֆեկտի կառավարում. 28 քայլ (նկարներով)
Video: Walabot FX- Guitar Effect Control. Full Demo 2024, Նոյեմբեր
Anonim
Walabot FX - Կիթառի էֆեկտի կառավարում
Walabot FX - Կիթառի էֆեկտի կառավարում

Վերահսկեք ձեր սիրած կիթառի էֆեկտը ՝ օգտագործելով ոչ այլ ինչ, քան կիթառի հիանալի պոզեր:

Քայլ 1: Այն, ինչ ձեզ հարկավոր կլինի:

Սարքավորման բաղադրիչներ

Walabot - Walabot

Ազնվամորի Pi - Ազնվամորի Pi 3 մոդել B

Sunfounder LCD1602

SunFounder PCA9685 16 Channel 12 Bit PWM Servo Driver Arduino- ի և Raspberry Pi- ի համար

Servo (ընդհանուր) Հղում չկա

9V մարտկոցի սեղմիչ

4xAA մարտկոցի կրիչ

AA մարտկոցներ

Թռիչքային լարեր (ընդհանուր)

DPDT Latching Action Foot Switch

Korg SDD3000-PDL

Softwareրագրային ապահովման համակարգեր, ծրագրեր և առցանց ծառայություններ

Autodesk Fusion360 -

Բլինք -

Գործիքներ և այլն

3D տպիչ

Sոդման երկաթ

Քայլ 2: Վերացական

Getting Started
Getting Started

Ինչպիսի՞ն կլիներ երաժշտական արտահայտչությունը վերահսկելը ՝ օգտագործելով ոչ այլ ինչ, քան կիթառի դիրքը 3D տարածքում: Դե, եկեք ինչ -որ բան նախատիպ պատրաստենք և պարզենք:

Քայլ 3: Հիմնական գաղափարը

Ես ուզում էի, որ կարողանամ իրական ժամանակում վերահսկել 3 էֆեկտի պարամետրը, ուզում էի դա անել ՝ օգտագործելով կիթառիս դիրքավորման եղանակը: Այսպիսով, մի բան պարզ էր, որ ինձ պետք էին մի քանի բան:

  • Սենսոր, որն ունակ է տեսնել 3D տարածք
  • Սերվոս ՝ պտուտակները պտտելու համար
  • LCD էկրան
  • I2C Servo վարորդ
  • Ազնվամորի Պի
  • Python սովորելու համար

Քայլ 4: Walabot

Wantանկանում եք տեսնել պատերի միջով: 3D տարածության մեջ զգացող օբյեկտներ: Enseգո՞ւմ եք, եթե շնչում եք սենյակից այն կողմ: Դե, հաջողակ եք:

Walabot- ը բոլորովին նոր միջոց է ցածր էներգիայի ռադարների միջոցով ձեր շուրջը գտնվող տարածքը զգալու համար:

Սա պետք է լիներ այս նախագծի բանալին, ես կկարողանայի վերցնել 3D տարածության օբյեկտների քարտեզային (X-Y-Z) կոդինատները և դրանք տեղակայել սերվոյի դիրքերի վրա ՝ փոխելով կիթառի էֆեկտի հնչողությունը իրական ժամանակում ՝ առանց ոտնակին դիպչելու:

Հաղթել:

Walabot- ի մասին լրացուցիչ տեղեկություններ կարող եք գտնել այստեղ

Քայլ 5: Սկսելու համար

Առաջին հերթին, Walabot- ը վարելու համար ձեզ հարկավոր կլինի համակարգիչ, այս նախագծի համար ես օգտագործում եմ Raspberry Pi 3 (այստեղ նշվում է RPi- ում) ներկառուցված WiFi- ի և ընդհանուր լրացուցիչ օմֆի պատճառով:

Ես գնել եմ 16 ԳԲ SD քարտ NOOBS- ով նախապես տեղադրված ՝ ամեն ինչ գեղեցիկ և պարզ պահելու համար և նախընտրեցի տեղադրել Raspian- ը որպես իմ ընտրած Linux OS:

(եթե Ձեզ անծանոթ է, թե ինչպես տեղադրել Raspian- ը, խնդրում ենք մի փոքր ժամանակ տրամադրեք ՝ մի փոքր կարդալու համար)

Լավ, երբ Raspian- ը գործարկվի ձեր RPi- ով, կան մի քանի կազմաձևման քայլեր, որոնք պետք է պատրաստվեն մեր նախագծին պատրաստ լինելու համար

Քայլ 6: Ազնվամորու Pi- ի կարգավորում - 1

Նախ համոզվեք, որ աշխատում եք Kernel- ի վերջին տարբերակի վրա և ստուգեք թարմացումները `բացելով հրամանի պատյան և մուտքագրելով

sudo apt-get թարմացում

sudo apt-get dist-upgrade

(sudo- ն ավելացվում է ՝ ապահովելու համար, որ դուք ունեք վարչական իրավունքներ, օրինակ ՝ իրերը կաշխատեն)

Սա կարող է որոշ ժամանակ տևել, ուստի գնացեք և մի լավ թեյ խմեք:

Քայլ 7: Ազնվամորու Pi - 2 կարգաբերում

Դուք պետք է տեղադրեք Walabot SDK- ն RPi- ի համար: Ձեր RPi վեբ դիտարկիչից գնացեք https://www.walabot.com/gettingstarted և ներբեռնեք Raspberry Pi Installer փաթեթը:

Հրամանի պատուհանից.

cd ներլցումներ

sudo dpkg -I walabotSDK_RasbPi.deb

Քայլ 8: Ազնվամորու Pi- ի կարգավորում - 3

Մենք պետք է սկսենք կարգավորել RPi- ն i2c ավտոբուսից օգտվելու համար: Հրամանի պատուհանից.

sudo apt-get տեղադրել python-smbus

sudo apt-get տեղադրել i2c- գործիքներ

Երբ դա արվի, դուք պետք է մոդուլների ֆայլին ավելացնեք հետևյալը

Հրամանի պատուհանից.

sudo nano /etc /մոդուլներ

ավելացնել այս 2 տողը առանձին տողերի վրա.

i2c-dev

i2c-bcm2708

Քայլ 9. Ազնվամորու Pi- ի կարգավորում - 4

Walabot- ը բավականին քիչ ընթացք է տալիս, և մենք նաև GPIO- ները կօգտագործենք իրերը վերահսկելու համար, այնպես որ մենք պետք է դրանք կարգավորենք

Հրամանի պատուհանից.

sudo nano /boot/config.txt

ֆայլի վերջում ավելացրեք հետևյալ տողերը.

safe_mode_gpio = 4

max_usb_current = 1

RPi- ն հիանալի գործիք է ստեղծողների համար, սակայն այն սահմանափակ է ընթացիկում, որը կարող է ուղարկել Walabot: Ուստի մենք ավելացնում ենք 1Amp առավելագույն հոսանք, քան ավելի ստանդարտ 500mA

Քայլ 10: Python

Ինչու՞ Python- ը: լավ, քանի որ դա շատ հեշտ է կոդավորել, արագ աշխատել և կան բազմաթիվ լավ պիթոնների օրինակներ: ես երբեք չէի օգտագործել այն նախկինում և շուտով գործի դրվեց: Այժմ RPi- ն կազմաձևված է մեր ուզածի համար, հաջորդ քայլը Python- ի կազմաձևումն է ՝ Walabot API, LCD Servo ինտերֆեյսերին հասանելիություն ունենալու համար:

Քայլ 11: Walabot- ի համար

Հրամանի պատյանից

Sudo pip տեղադրեք «/usr/share/walabot/python/WalabotAPI-1.0.21.zip»

Քայլ 12: Servo ինտերֆեյսի համար

Հրամանի պատյանից

sudo apt-get տեղադրել git build- հիմնական python-dev

cd

git կլոն

cd Adafruit_Python_PCA9685

sudo python setup.py տեղադրել

Ինչու՞ պետք է օգտագործենք servo վարորդ: Դե, RPi- ի համար մի քանի պատճառ:

1. Սերվոյի քաշած հոսանքը կարող է շատ բարձր լինել, և այդ թիվը մեծանում է այնքան, որքան ավելի շատ սերվոներ ունեք (իհարկե): Եթե դուք servo directky- ն քշում եք RPi- ից, դուք ռիսկի եք դիմում փչել նրա սնուցման աղբյուրը

2. PWM- ի (Pulse Width Modulation) ժամանակը, որը վերահսկում է servos- ի դիրքերը, շատ կարևոր են: Քանի որ RPi- ն չի օգտագործում իրական ժամանակի ՕՀ (կարող են լինել ընդհատումներ և նման) ժամկետները ոչ ճշգրիտ են և կարող են սպասարկողներին նյարդայնանալ: Նվիրված վարորդը թույլ է տալիս ճշգրիտ կառավարում, բայց նաև թույլ է տալիս ավելացնել մինչև 16 սերվեր, այնպես որ սա հիանալի է ընդլայնման համար:

Քայլ 13: LCD- ի համար

Բլինկ
Բլինկ

բացեք ձեր RPi վեբ դիտարկիչը

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

բեռնել

github.com/daveyclk/SunFounder_SensorKit_…

Հրամանի պատուհանից.

sudo mkdir/usr/share/sunfounder

Օգտագործելով գրաֆիկական հետազոտողը, պատճենեք python թղթապանակը zip ֆայլից ձեր նոր sunfounder պանակում

LCD- ն օգտագործվում է օգտագործողին հուշելու, թե կոնկրետ ինչ է կատարվում: Showingույց տալ կազմաձևման գործընթացը մինչև x, y և z արժեքները, որոնք քարտեզագրվում են յուրաքանչյուր servo- ում

Քայլ 14: Բլինք

Բլինկ
Բլինկ
Բլինկ
Բլինկ

Blynk- ը փայլուն IoT ծառայություն է, որը թույլ է տալիս ստեղծել հատուկ ծրագիր ՝ ձեր իրերը վերահսկելու համար: Թվում էր, թե իդեալական լուծում է ինձ տալ walabot- ի հեռակառավարման վահանակը, որն իսկապես պարամետրերում հավաքում է…

Մեկ խնդիր. Blynk- ը ներկայումս չի աջակցվում Python հարթակում, bugger: Բայց մի՛ վախեցեք: Ես կարողացա գտնել մի գեղեցիկ փոքրիկ աշխատանք, որը թույլ է տալիս հեռակառավարման և հեռավոր պարամետրերի մուտքագրում: դա մի փոքր չարաճճի է

առաջին քայլը `ներբեռնել Blynk ծրագիրը ձեր նախընտրած հավելվածների խանութից

Երկրորդ, գրանցվեք հաշվի համար

Երբ դա արվի, բացեք ծրագիրը և սկսեք նոր նախագիծ ՝ ընտրելով Raspberry Pi 3 -ը որպես սարքավորում:

Հավելվածը ձեզ կտրամադրի մուտքի նշան (դա ձեզ հարկավոր կլինի ձեր կոդը տեղադրելու համար)

Երբ դա արեցիր: դուք պետք է կարգավորեք ծրագիրը, ինչպես ցույց է տրված նկարներում: Ահա թե ինչպես է այն կապվելու walabot- ի հետ:

Քայլ 15. Կարգավորեք Blynk հավելվածը

Blynk հավելվածի կազմաձևում
Blynk հավելվածի կազմաձևում
Blynk հավելվածի կազմաձևում
Blynk հավելվածի կազմաձևում
Blynk հավելվածի կազմաձևում
Blynk հավելվածի կազմաձևում

Քայլ 16. Կարող եք օգտագործել այս QR ծածկագիրը Blynk հավելվածի միջոցով ՝ իմ նախագիծը կլոնավորելու համար ՝ ձեր ժամանակը խնայելու համար

Դուք կարող եք օգտագործել այս QR կոդը Blynk հավելվածի միջոցով ՝ իմ նախագիծը կլոնավորելու համար ՝ ձեր ժամանակը խնայելու համար
Դուք կարող եք օգտագործել այս QR կոդը Blynk հավելվածի միջոցով ՝ իմ նախագիծը կլոնավորելու համար ՝ ձեր ժամանակը խնայելու համար

OK Այժմ, երբ ծրագիրը պատրաստ է, մենք կարող ենք կարգավորել Python- ը և RPi- ն ՝ ինտերնետի միջոցով դրա հետ խոսելու համար: Կախարդական

Քայլ 17. Blynk- ի գործարկումը Raspberry Pi- ի հետ և Blynk HTTPS- ի օգտագործումը Python- ի համար

Նախ, դուք պետք է տեղադրեք Blynk HTTPS փաթաթանը Python- ի համար

Հրամանի պատուհանից.

sudo git կլոն

sudo pip տեղադրել blynkapi

Երկրորդ, դուք պետք է տեղադրեք Blynk ծառայությունը RPi- ի վրա

Հրամանի պատուհանից.

git կլոն

cd blynk-library/linux

մաքրել բոլորը

գործարկել blynk ծառայությունը

sudo./blynk --token = YourAuthToken

Blynk ծառայության գործարկման մեկնարկը ապահովելու համար անհրաժեշտ է փոփոխել /etc/rc.local- ը

կատարելով

sudo nano /etc/rc.local

ավելացրեք սա վերջում

./blynk-library/linux/blynk --token = իմ նշանը &

(ես հղման համար ներառել եմ իմ /etc/rc.local ֆայլի ծածկագիրը ծածկագրի բաժնում)

Աշխատելու համար պարզապես մուտքագրեք

sudo /etc/rc.local start

Այժմ Blynk ծառայությունը պետք է գործի

Քայլ 18: Սցենարի ինքնագործողարկում

Այժմ, երբ այս ամենը կարգավորված և կազմաձևված է, և մենք պատրաստ ենք պիթոնի ծածկագիրը: մենք կարող ենք ինքնաբերաբար գործարկել իրերը, որպեսզի կարողանանք հեռացնել ստեղնաշարը և մոնիտորները

Մի քանի բան կա անելու

Ստեղծեք նոր սցենարային ֆայլ ՝ Python ծրագիրը սպառելու համար

sudo nano guitareffect.sh

ավելացնել այս տողերը

#!/bin/sh

python /home/pi/GuitarEffectCLI.py

համոզվեք, որ այն պահեք

Հաջորդը մենք պետք է սցենարին տանք մուտքագրման թույլտվություն

Sudo chmod +x /home/pi/guitareffect.sh

Եվ վերջապես, մենք պետք է այս սցենարը ավելացնենք /etc/rc.local ֆայլում, որով ավելի վաղ շփվել էինք:

Սուդո նանո /այլն /rc.local

Ավելացնել

/home/pi/guitareffect.sh &

անպայման ներառեք «&» - ն, ինչը թույլ է տալիս Python Script- ը գործարկել հետին պլանում

Ճիշտ! Ահա բոլոր կոնֆիգուրացիան և ծրագրակազմը դասավորված են, հաջորդը ժամանակն է միացնել սարքավորումները

Քայլ 19: Սարքավորումը

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

Առաջին Breadboard- ի նախատիպը

Քայլ 20. Պատյանների ձևավորում

Պատյանների ձևավորում
Պատյանների ձևավորում
Պատյանների ձևավորում
Պատյանների ձևավորում

Պարիսպը նախագծված և պատրաստված է հիանալի Fusion360- ում

Քայլ 21. Աղիքային կրակոցներ

Փորոտ կրակոցներ
Փորոտ կրակոցներ
Փորոտ կրակոցներ
Փորոտ կրակոցներ
Փորոտ կրակոցներ
Փորոտ կրակոցներ

Քայլ 22. Վերջնական հավաքի կրակոցներ

Վերջնական հավաքի նկարահանումներ
Վերջնական հավաքի նկարահանումներ
Վերջնական հավաքի նկարահանումներ
Վերջնական հավաքի նկարահանումներ
Վերջնական հավաքի նկարահանումներ
Վերջնական հավաքի նկարահանումներ

Քայլ 23. Walabot- ը ամրացնել կանգառին

Walabot- ը ամրացնելու համար
Walabot- ը ամրացնելու համար

Օգտագործեք ինքնասոսնձվող մետաղական սկավառակը, որն ուղեկցվում է walabot- ով, այն ամրացնելու համար տեղում

Քայլ 24. Ապարատային STL ֆայլեր 3D տպագրության համար

Քայլ 25. Բանը միացնելու սխեմաներ

Քայլ 26: Կոդ

Օգտագործեք կցված Python սցենարը ձեր նախագծի համար

_future_ import print_function sys ներմուծման հարթակից os ներմուծման համակարգից blynkapi import Blynk import WalabotAPI ներմուծման ժամանակի ներմուծում RPi. GPIO որպես GPIO

#կարգավորեք GPIO- ն ՝ օգտագործելով տախտակի համարակալումը

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

#blynk auth նշան

auth_token = "քո_օ_խոսված_այստեղ"

# Սերվոյի կառավարման համար ներմուծեք PCA9685 մոդուլը:

ներմուծել Adafruit_PCA9685

#ներմուծել LCD մոդուլը գտնվելու վայրից

imp import load_source LCD1602 = load_source ('LCD1602', '/usr/share/sunfounder/Python/LCD1602.py')

# Սկզբնականացրեք PCA9685- ը `օգտագործելով կանխադրված հասցեն (0x40):

pwm = Adafruit_PCA9685. PCA9685 ()

# բլինք օբյեկտ

կանխադրված = Blynk (auth_token, pin = "V9") start_button = Blynk (auth_token, pin = "V3") Rmax = Blynk (auth_token, pin = "V0") Rmin = Blynk (auth_token, pin = "V1") Rres = Բլինք (auth_token, pin = "V2")

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

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

PhiMax = Blynk (auth_token, pin = "V6")

PhiRes = Blynk (auth_token, pin = "V7")

Շեմ = Բլինկ (auth_token, pin = "V8")

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

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

def LCDsetup ():

LCD1602.init (0x27, 1) # init (ստրուկի հասցե, ֆոնային լույս)

def numMap (x, in_min, in_max, out_min, out_max). դուրս_մին)

# օգտագործեք սա ՝ հումքի տվյալները նշանակված արժեքին կլորացնելու համար

def myRound (x, բազա = 2). վերադարձ int (հիմք * կլոր (float (x)/base))

#քաղում է համարը վերադարձված blynk տողից

def numberExtract (val). val = str (val) վերադարձ int (զտիչ (str.isdigit, val))

# Սահմանեք հաճախականությունը 60 հց, լավ սերվերի համար:

pwm.set_pwm_freq (60)

# Կարգավորեք կանխադրված նվազագույն և առավելագույն սերվո զարկերակի երկարությունները

SERVO_MIN = 175 # Իմ իմպուլսի երկարությունը 4096 -ից SERVO_MAX = 575 # Իմպուլսի առավելագույն երկարությունը 4096 -ից

# walabot կանխադրված արժեքներ

R_MAX = 60 R_MIN = 20 R_RES = 5

THETA_MAX = 20

THETA_RES = 5

PHI_MAX = 20

PHI_RES = 5

THRESHOLD = 1

# փոփոխական blynk անցման համար

միացված = "[u'1 ']"

դաս Walabot:

def _init _ (self):

self.wlbt = WalabotAPI self.wlbt. Init () self.wlbt. SetSettingsFolder () self.isConnected = Կեղծ self.isTargets = Կեղծ

def blynkConfig (ինքն):

load_defaults = defaults.get_val () if str (load_defaults) == on: SERVO_MAX = ServoMax.get_val () SERVO_MAX = numberExtract (SERVO_MAX) print ("Servo Max =", SERVO_MAX)

SERVO_MIN = ServoMin.get_val ()

SERVO_MIN = numberExtract (SERVO_MIN) տպագիր ("Servo MIN =", SERVO_MIN) R_MAX = Rmax.get_val () R_MAX = numberExtract (R_MAX) տպագիր ("R max =", R_MAX)

R_MIN = Rmin.get_val ()

R_MIN = numberExtract (R_MIN) տպագիր ("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_MAX) THETA_RES = ThetaRes.get_val () THETA_RES = numberExtract (THETA_RES) տպագիր («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)

THRESHOLD = Threshold.get_val ()

THRESHOLD = numberExtract (THRESHOLD) տպագիր ("Threshold =", THRESHOLD)

else: # եթե ոչինչ blynk հավելվածից, բեռնեք կանխադրված SERVO_MIN = 175 # 4096 -ից 40 րոպե զարկերակի նվազագույն երկարություն SERVO_MAX = 575 # Առավելագույն զարկերակի երկարությունը 4096 -ից

# walabot կանխադրված արժեքներ

R_MAX = 60 R_MIN = 20 R_RES = 5

THETA_MAX = 20

THETA_RES = 5

PHI_MAX = 20

PHI_RES = 5

THRESHOLD = 1

def connect (self): try: self.wlbt. ConnectAny () self.isConnected = selfշմարիտ self.wlbt. SetProfile (self.wlbt. PROF_SENSOR) #self.wlbt. SetDynamicImageFilter (self.wlbt. FILTER_TYPI_IYEE) (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: SetArenaR (R_MIN, R_MAX, R_RES) self.wlbt. SetThreshold (THRESHOLD) բացառությամբ self.wlbt. WalabotError as err: if err.code! = 19: # 'WALABOT_INSTRUMENT_NOT_FOUND' բարձրացնել սխալ

def սկսել (ինք):

self.wlbt. Start ()

def calibrate (self):

self.wlbt. StartCalibration ()

def get_targets (self):

self.wlbt. Trigger () վերադարձել self.wlbt. GetSensorTargets ()

def stop (self):

self.wlbt. Stop ()

def անջատել (ինքն):

self.wlbt. Անջատել ()

def main ():

flag = True check = "" LCDsetup () while flag: LCD1602.write (0, 0, 'Guitar') LCD1602.write (0, 1, 'Effect Control') time.sleep (2) LCD1602.write (0, 0, «Սեղմիր Սկիզբ») LCD1602. գրել (0, 1, «սկսել») time.sleep (2) if (str (check) == on): flag = False else: check = start_button.get_val () # ստուգեք blynk մեկնարկի կոճակի համար սեղմեք if (GPIO.input (18) == 0): #ստուգեք footswitch դրոշը = Կեղծ

LCD1602.գրեք (0, 0, «Լավ, եկեք դա անենք»)

LCD1602. գրել (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.calibrate () LCD1602. գրել (0, 0, «Կալիբրացում…..») ժամանակ: քուն (3) LCD1602.գրեք (0, 0, «Սկսած Walabot»)

appcheck = start_button.app_status () flag = #շմարիտ # վերակայման դրոշ հիմնական ծրագրերի համար

մինչդեռ դրոշը ՝ # օգտագործվում էր սպասման մեջ ազդեցություն գործադրելու համար (արդյունավետ)

if (appcheck == True): if (str (check)! = on): if (GPIO. մուտքագրում (18)! = 0): մեկնարկի կոճակը սեղմել appcheck = start_button.app_status ()

այլ:

եթե (GPIO.input (18)! = 0): #ստուգեք footswitch դրոշը = Կեղծ է

xval = 0

yval = 0 zval = 0 միջին = 2 ուշացում imeամանակ = 0

թիրախներ = wlbt.get_targets ()

եթե len (թիրախներ)> 0:

j- ի միջակայքում (միջին):

թիրախներ = wlbt.get_targets ()

եթե լեն (թիրախներ)> 0: տպել (լեն (թիրախներ)) թիրախներ = թիրախներ [0]

տպել (փող (targets.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 LCD 1602. գրել (0, 0, 'x =' + str (xval) + '') pwm.set_pwm (0, 0, xval)

yval = yval/միջին

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

yval = myRound (yval) եթե yval SERVO_MAX: yval = SERVO_MAX LCD 1602. գրել (0, 1, 'y =' + str (yval)) pwm.set_pwm (1, 0, yval)

zval = zval/միջին

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

zval = myRound (zval) եթե zval SERVO_MAX: zval = SERVO_MAX LCD 1602. գրել (8, 1, 'z =' + str (zval)) pwm.set_pwm (2, 0, zval)

այլ:

տպել («թիրախներ չկան») LCD1602. գրել (0, 0, «Անջատում») LCD1602. գրել (0, 1, «The Walabot») time.sleep (3) wlbt.stop () wlbt.disconnect ()

եթե _name_ == '_ հիմնական_':

իսկ ճշմարիտ: հիմնական ()

guitareffect.sh- ի համար

#!/bin/sh

cd /home /pi

sudo python GuitarEffectCLI.py

Տեղեկատվության համար RC տեղական ֆայլի պատճենը

#!/bin/sh -e # # rc.local # # Այս սցենարը կատարվում է յուրաքանչյուր բազմակի օգտագործման մակարդակի վերջում: # Համոզվեք, որ հաջողության դեպքում սցենարը «դուրս կգա 0» -ից կամ սխալի դեպքում ցանկացած այլ # արժեքից: # # Այս սցենարը միացնելու կամ անջատելու համար պարզապես փոխեք կատարման # բիթերը: # # Լռելյայն այս սցենարը ոչինչ չի անում:

# Տպեք IP հասցեն

_IP = $ (հյուրընկալողի անունը -I) || ճիշտ է, եթե ["$ _IP"]; ապա printf "Իմ IP հասցեն է %s / n" "$ _IP" fi

./blynk-library/linux/blynk --token = "նշանը գնում է այստեղ" &

քնել 10 sudo /home/pi/guitareffect.sh և ելք 0

Քայլ 27. Օգտագործման Github պահեստարաններ

Օգտագործեք սա Sunfounder LCD- ի համար

github.com/daveyclk/SunFounder_SensorKit_f…

Օգտագործեք սա servo վարորդի համար

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
Եզրակացություն
Եզրակացություն
Եզրակացություն
Եզրակացություն

Դե, սա ուսման կտրուկ կոր էր, բայց այնքան արժեր:

Իմ վերաբերմունքն են

  • Ես ստիպված էի սովորել Python- ը: պարզվում է, որ դա տուզ է
  • Միաձուլեք Python- ը Raspberry Pi- ով Blynk IoT ծառայության հետ: Սա պաշտոնապես չի աջակցվում, ուստի դրա գործառույթների համար կան որոշակի սահմանափակումներ: Չնայած դեռ հիանալի է աշխատում:
  • Պարզվում է, որ Walabot- ը հիանալի է երաժշտական արտահայտվելու համար: Ես այն օգտագործել եմ Korg SDD3000- ում, բայց դուք կարող եք օգտագործել ցանկացած էֆեկտ, որը Ձեզ դուր է գալիս

Ինքներդ գնացեք: Սա չի սահմանափակվում կիթառի էֆեկտներով, կարող եմ օգտագործվել ցանկացած ազդեցության ցանկացած գործիքի հետ:

Ազնվամորի Պի մրցույթ 2017 թ
Ազնվամորի Պի մրցույթ 2017 թ
Ազնվամորի Պի մրցույթ 2017 թ
Ազնվամորի Պի մրցույթ 2017 թ

Մրցանակակիր Raspberry Pi մրցույթում 2017 թ

Խորհուրդ ենք տալիս: