Სარჩევი:

Walabot FX - გიტარის ეფექტის კონტროლი: 28 ნაბიჯი (სურათებით)
Walabot FX - გიტარის ეფექტის კონტროლი: 28 ნაბიჯი (სურათებით)

ვიდეო: Walabot FX - გიტარის ეფექტის კონტროლი: 28 ნაბიჯი (სურათებით)

ვიდეო: Walabot FX - გიტარის ეფექტის კონტროლი: 28 ნაბიჯი (სურათებით)
ვიდეო: Walabot FX- Guitar Effect Control. Full Demo 2024, ივლისი
Anonim
Walabot FX - გიტარის ეფექტის კონტროლი
Walabot FX - გიტარის ეფექტის კონტროლი

აკონტროლეთ თქვენი საყვარელი გიტარის ეფექტი არა მხოლოდ გიტარის გასაოცარი პოზების გამოყენებით!

ნაბიჯი 1: ის, რაც დაგჭირდებათ

აპარატურის კომპონენტები

Walabot - Walabot

Raspberry Pi - Raspberry Pi 3 Model B

Sunfounder LCD1602

SunFounder PCA9685 16 არხი 12 ბიტიანი PWM სერვო დრაივერი არდუინოსთვის და ჟოლოსთვის

სერვო (ზოგადი) ბმული არ არის

ბატარეის კლიპი 9V

4xAA ბატარეის დამჭერი

AA ბატარეები

ჯუმბერის მავთულები (ზოგადი)

DPDT Latching Action Foot Switch

Korg SDD3000-PDL

პროგრამული უზრუნველყოფის OS, პროგრამები და ონლაინ სერვისები

Autodesk Fusion360 -

ბლინკი -

ინსტრუმენტები და ა

3D პრინტერი

გასაყიდი რკინა

ნაბიჯი 2: რეფერატი

Getting Started
Getting Started

როგორი იქნებოდა მუსიკალური გამოხატვის გაკონტროლება არაფრით, გარდა გიტარის პოზიციისა 3D სივრცეში? აბა, მოდი რამე პროტოტიპი გავუკეთოთ და გავარკვიოთ!

ნაბიჯი 3: ძირითადი იდეა

მინდოდა რეალურ დროში შევძლო 3 ეფექტის პარამეტრის გაკონტროლება, მინდოდა ამის გაკეთება, როგორ განვათავსე ჩემი გიტარა. ასე რომ, ერთი რამ ცხადი იყო, მე მჭირდებოდა რამდენიმე რამ.

  • სენსორი, რომელსაც შეუძლია 3D სივრცის დანახვა
  • სერვოს ღილაკების გადასაბრუნებლად
  • LCD დისპლეი
  • I2C სერვო დრაივერი
  • ჟოლო პი
  • პითონის შესასწავლად

ნაბიჯი 4: Walabot

გსურთ კედლების ნახვა? გრძნობს ობიექტებს 3D სივრცეში? გრძნობთ თუ სუნთქავთ ოთახის გადაღმა? კარგი, იღბლიანი ხარ!

Walabot არის სრულიად ახალი გზა დაბალი სივრცის რადარის გამოყენებით თქვენს ირგვლივ არსებული სივრცის შესაგრძნობად.

ეს იქნებოდა ამ პროექტის გასაღები, მე შემეძლო გადამეღო ობიექტების კარდინალური (X-Y-Z) კუდინატები 3D სივრცეში და დავსახე ისინი სერვო პოზიციებზე, რომლებიც ცვლის გიტარის ეფექტს რეალურ დროში, პედლებზე შეხების გარეშე.

გაიმარჯვე.

დამატებითი ინფორმაცია Walabot– ის შესახებ შეგიძლიათ იხილოთ აქ

ნაბიჯი 5: დაწყება

უპირველეს ყოვლისა, თქვენ დაგჭირდებათ კომპიუტერი Walabot– ის მართვისთვის, ამ პროექტისთვის მე ვიყენებ Raspberry Pi 3 (აქ მითითებულია RPi– ში) ჩაშენებული WiFi და ზოგადი დამატებითი ფუნქციის გამო.

შევიძინე 16 GB SD ბარათი NOOBS წინასწარ დაინსტალირებული, რომ შევინარჩუნო ყველაფერი ლამაზი და მარტივი და შევარჩიე Raspian- ის დაყენება, როგორც ჩემი არჩეული Linux OS

(თუ თქვენ არ იცით როგორ დააინსტალიროთ Raspian, გთხოვთ დაუთმოთ ცოტა ხანი ამის წასაკითხად)

კარგი, მას შემდეგ რაც Raspian გააქტიურდება თქვენს RPi– ზე, არის რამოდენიმე კონფიგურაციის ნაბიჯი, რომელიც უნდა გადაიდგას ჩვენი პროექტისათვის ნივთების მოსამზადებლად

ნაბიჯი 6: ჟოლოს პი - 1 - ის დაყენება

უპირველეს ყოვლისა, დარწმუნდით, რომ თქვენ იყენებთ ბირთვის უახლეს ვერსიას და შეამოწმეთ განახლებები ბრძანების გარსის გახსნით და აკრეფით

sudo apt-get განახლება

sudo apt-get dist-upgrade

(sudo ემატება იმის უზრუნველსაყოფად, რომ თქვენ გაქვთ ადმინისტრაციული უფლებები, მაგ. პერსონალი იმუშავებს)

ამას შეიძლება გარკვეული დრო დასჭირდეს, ასე რომ წადი და დალიე კარგი ჭიქა ჩაი.

ნაბიჯი 7: ჟოლოს პი - 2 - ის დაყენება

თქვენ უნდა დააინსტალიროთ Walabot SDK RPi– სთვის. თქვენი RPi ვებ ბრაუზერიდან გადადით https://www.walabot.com/gettingstarted და ჩამოტვირთეთ Raspberry Pi Installer პაკეტი.

ბრძანების ჭურვიდან:

cd ჩამოტვირთვები

sudo dpkg -I walabotSDK_RasbPi.deb

ნაბიჯი 8: ჟოლოს პი - 3 - ის დაყენება

ჩვენ უნდა დავიწყოთ RPi კონფიგურაცია i2c ავტობუსის გამოსაყენებლად. ბრძანების გარსიდან:

sudo apt-get დააინსტალირეთ python-smbus

sudo apt-get დააინსტალირეთ i2c- ინსტრუმენტები

ამის დასრულების შემდეგ, თქვენ უნდა დაამატოთ შემდეგი მოდულის ფაილს

ბრძანების ჭურვიდან:

sudo nano /etc /modules

დაამატეთ ეს 2 სტრიქონი ცალკეულ ხაზებზე:

i2c-dev

i2c-bcm2708

ნაბიჯი 9: ჟოლოს პი - 4 - ის დაყენება

Walabot ხატავს საკმაოდ ცოტა მიმდინარეობას და ჩვენ ასევე გამოვიყენებთ GPIO– ს ნივთების გასაკონტროლებლად, ამიტომ ჩვენ გვჭირდება მათი დაყენება

ბრძანების ჭურვიდან:

sudo nano /boot/config.txt

დაამატეთ შემდეგი ხაზები ფაილის ბოლოს:

safe_mode_gpio = 4

max_usb_current = 1

RPi არის შესანიშნავი ინსტრუმენტი შემქმნელებისთვის, მაგრამ ის შეზღუდულია მიმდინარეობით, რომელსაც შეუძლია გაუგზავნოს Walabot. ამიტომ ჩვენ ვამატებთ 1Amp მაქსიმალურ დენს, ვიდრე უფრო სტანდარტულ 500mA

ნაბიჯი 10: პითონი

რატომ პითონი? კარგად, რადგან ეს არის ძალიან მარტივი კოდირება, სწრაფად გაშვება და უამრავი კარგი პითონის მაგალითები არსებობს! მე არასოდეს გამომიყენებია ადრე და მალევე ამოქმედდა უმოკლეს დროში. ახლა RPi არის კონფიგურირებული იმისთვის, რაც ჩვენ გვინდა, შემდეგი ნაბიჯი არის პითონის კონფიგურაცია, რომ ჰქონდეს წვდომა Walabot API, LCD Servo ინტერფეისებზე

ნაბიჯი 11: ვალაბოტისთვის

ბრძანების ჭურვიდან

Sudo pip ინსტალაცია "/usr/share/walabot/python/WalabotAPI-1.0.21.zip"

ნაბიჯი 12: სერვო ინტერფეისისთვის

ბრძანების ჭურვიდან

sudo apt-get დააინსტალირეთ git build- არსებითი python-dev

cd

git კლონი

cd Adafruit_Python_PCA9685

sudo python setup.py ინსტალაცია

რატომ გვჭირდება სერვო დრაივერის გამოყენება? ისე, RPi რამდენიმე მიზეზის გამო.

1. სერვოს მიერ გაყვანილი დენი შეიძლება იყოს ძალიან მაღალი და ეს რიცხვი უფრო დიდი გახდება რაც მეტი სერვო გაქვთ (რა თქმა უნდა). თუ თქვენ მართავთ servo directky– ს RPi– დან, თქვენ რისკავთ ააფეთქოთ მისი კვების წყარო

2. PWM (პულსის სიგანის მოდულაციის) დრო, რომელიც აკონტროლებს servos პოზიციას, ძალიან მნიშვნელოვანია. ვინაიდან RPi არ იყენებს რეალურ დროში ოპერაციულ სისტემას (შეიძლება არსებობდეს შეფერხებები და ასეთი) ვადები არ არის ზუსტი და შეუძლია სერვისებს ნერვული გადახრა შეუქმნას. ერთგული დრაივერი იძლევა ზუსტ კონტროლს, მაგრამ ასევე იძლევა 16 სერვოს დამატებას, ასე რომ ეს შესანიშნავია გაფართოებისთვის.

ნაბიჯი 13: LCD– ისთვის

ბლინკი
ბლინკი

გახსენით თქვენი RPi ბრაუზერი

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

ჩამოტვირთვა

github.com/daveyclk/SunFounder_SensorKit_…

ბრძანების ჭურვიდან:

sudo mkdir/usr/share/sunfounder

გრაფიკული მკვლევარის გამოყენებით, დააკოპირეთ პითონის საქაღალდე zip ფაილიდან თქვენს ახალ sunfounder საქაღალდეში

LCD გამოიყენება მომხმარებლისთვის იმის გასარკევად, თუ რა ხდება ზუსტად. კონფიგურაციის პროცესის ჩვენება x, y და z მნიშვნელობებზე, რომლებიც ასახულია თითოეულ სერვოზე

ნაბიჯი 14: ბლინკი

ბლინკი
ბლინკი
ბლინკი
ბლინკი

Blynk არის ბრწყინვალე IoT სერვისი, რომელიც საშუალებას გაძლევთ შექმნათ პერსონალური აპლიკაცია თქვენი პერსონალის გასაკონტროლებლად. როგორც ჩანს, ეს იყო სრულყოფილი გადაწყვეტა, რომ მომცა walabot– ის დისტანციური მართვა, რომ მართლა დამეკარებინა პარამეტრებში…

ერთი პრობლემა. ბლინკი ამჟამად არ არის მხარდაჭერილი პითონის პლატფორმაზე, შეცდომა. მაგრამ ნუ გეშინია! მე შემეძლო ვიპოვო ლამაზი პატარა სამუშაო, რომელიც საშუალებას იძლევა დისტანციური მართვის და პარამეტრების დისტანციური შეყვანა! ეს არის პატარა გარყვნილება

პირველი ნაბიჯი არის ჩამოტვირთოთ Blynk აპლიკაცია თქვენი საყვარელი აპლიკაციების მაღაზიიდან

მეორე, დარეგისტრირდით ანგარიშზე

ამის დასრულების შემდეგ გახსენით აპლიკაცია და დაიწყეთ ახალი პროექტი, შეარჩიეთ Raspberry Pi 3 როგორც ტექნიკა.

აპლიკაცია გამოგიყოფთ წვდომის ნიშანს (ეს დაგჭირდებათ თქვენს კოდში ჩასასმელად)

მას შემდეგ რაც ამას გააკეთებ. თქვენ დაგჭირდებათ პროგრამის დაყენება, როგორც ეს მოცემულია სურათებში. ასე დაუკავშირდება walabot– ს.

ნაბიჯი 15: ბლინკის აპლიკაციის კონფიგურაცია

ბლინკის აპლიკაციის კონფიგურაცია
ბლინკის აპლიკაციის კონფიგურაცია
ბლინკის აპლიკაციის კონფიგურაცია
ბლინკის აპლიკაციის კონფიგურაცია
ბლინკის აპლიკაციის კონფიგურაცია
ბლინკის აპლიკაციის კონფიგურაცია

ნაბიჯი 16: თქვენ შეგიძლიათ გამოიყენოთ ეს QR კოდი Blynk აპლიკაციით, რომ დაალაგოთ ჩემი პროექტი დაზოგოთ თქვენი დრო

თქვენ შეგიძლიათ გამოიყენოთ ეს QR კოდი Blynk აპლიკაციით, რომ დაალაგოთ ჩემი პროექტი, რომ დაზოგოთ თქვენი დრო
თქვენ შეგიძლიათ გამოიყენოთ ეს QR კოდი Blynk აპლიკაციით, რომ დაალაგოთ ჩემი პროექტი, რომ დაზოგოთ თქვენი დრო

კარგი ახლა, როდესაც აპლიკაცია დაყენებულია, ჩვენ შეგვიძლია დავაკონფიგურიროთ პითონი და RPi, რომ მას ესაუბრონ ინტერნეტით. მაგია

ნაბიჯი 17: გაუშვით ბლინკი Raspberry Pi– ით და გამოიყენეთ ბლინკ HTTPS პითონისთვის

პირველ რიგში, თქვენ უნდა დააინსტალიროთ Blynk HTTPS შესაფუთი პითონისთვის

ბრძანების ჭურვიდან:

sudo git კლონი

sudo pip დააინსტალირეთ blynkapi

მეორეც, თქვენ უნდა დააინსტალიროთ ბლინკის სერვისი RPi– ზე

ბრძანების ჭურვიდან:

git კლონი

cd blynk-library/linux

გაწმინდე ყველაფერი

ბლინკის სერვისის გასაშვებად

sudo./blynk --token = YourAuthToken

იმისათვის რომ უზრუნველყოთ ბლინკის სერვისის გაშვება, თქვენ უნდა შეცვალოთ /etc/rc.local

კეთებით

sudo nano /etc/rc.local

დაამატეთ ეს ბოლოს

./blynk-library/linux/blynk-ნათქვამი = ჩემი ნიშანი &

(მე შევიტანე ჩემი /etc/rc.local ფაილის კოპირება კოდის განყოფილებაში მითითებისათვის)

შესამოწმებლად მუშაობს უბრალოდ ჩაწერეთ

sudo /etc/rc. ადგილობრივი დაწყება

ბლინკის სერვისი ახლა უნდა იყოს გაშვებული

ნაბიჯი 18: სკრიპტის ავტომატური გაშვება

ახლა, როდესაც ეს ყველაფერი დაყენებულია და კონფიგურირებულია, და ჩვენ გვაქვს პითონის კოდი მზად. ჩვენ შეგვიძლია დავაყენოთ საგნები ავტომატურ რეჟიმში, ასე რომ ჩვენ შეგვიძლია გამოვყოთ კლავიატურა და მონიტორები

რამდენიმე რამ არის გასაკეთებელი

შექმენით ახალი სკრიპტის ფაილი პითონის პროგრამის ამოწურვის მიზნით

sudo nano guitareffect.sh

დაამატეთ ეს ხაზები

#!/bin/sh

პითონი/home/pi/GuitarEffectCLI.py

დარწმუნდით, რომ შეინახეთ იგი

შემდეგ ჩვენ უნდა მივცეთ სკრიპტს ნებართვა აკრეფით

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

დაბოლოს, ჩვენ უნდა დავამატოთ ეს სკრიპტი /etc/rc.local ფაილში, რომელთანაც ადრე ვსაუბრობდით.

სუდო ნანო /და ა.შ. rc.local

დამატება

/home/pi/guitareffect.sh &

აუცილებლად შეიყვანეთ "&", რაც პითონის სკრიპტის ფონს გაშვების საშუალებას აძლევს

მართალია! ეს არის ყველა კონფიგურაცია და პროგრამული უზრუნველყოფა დალაგებული, შემდეგი დროა შეაერთოთ ტექნიკა

ნაბიჯი 19: აპარატურა

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

პირველი პურის დაფის პროტოტიპი

ნაბიჯი 20: დანართის დიზაინი

დანართი დიზაინი
დანართი დიზაინი
დანართი დიზაინი
დანართი დიზაინი

დანართი შეიქმნა და გაფორმდა გასაოცარ Fusion360– ში

ნაბიჯი 21: Guts Shots

Guts Shots
Guts Shots
Guts Shots
Guts Shots
Guts Shots
Guts Shots

ნაბიჯი 22: შეკრების საბოლოო კადრები

ფინალური ასამბლეის კადრები
ფინალური ასამბლეის კადრები
ფინალური ასამბლეის კადრები
ფინალური ასამბლეის კადრები
ფინალური ასამბლეის კადრები
ფინალური ასამბლეის კადრები

ნაბიჯი 23: დააფიქსირეთ Walabot სტენდზე

ვალაბოტის დასაფიქსირებლად სტენდზე
ვალაბოტის დასაფიქსირებლად სტენდზე

გამოიყენეთ თვითწებვადი ლითონის დისკი, რომელსაც გააჩნია walabot, რათა დააფიქსიროთ იგი ადგილზე

ნაბიჯი 24: ტექნიკური STL ფაილები 3D ბეჭდვისთვის

ნაბიჯი 25: ნივთების გაყვანილობის სქემები

ნაბიჯი 26: კოდი

გამოიყენეთ თანდართული პითონის სკრიპტი თქვენი პროექტისათვის

_future_ იმპორტის print_function sys იმპორტის პლატფორმიდან os იმპორტის სისტემიდან blynkapi იმპორტი Blynk იმპორტი WalabotAPI იმპორტის დრო იმპორტი RPi. GPIO როგორც GPIO

#დააყენეთ GPIO დაფის ნუმერაციის გამოყენებით

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

#ბლინქ ავტორის ნიშანი

auth_token = "შენი_ავლა_თქმული_აქ"

# იმპორტი PCA9685 მოდული სერვო კონტროლისთვის.

იმპორტი Adafruit_PCA9685

#იმპორტი LCD მოდული ადგილიდან

imp იმპორტიდან load_source LCD1602 = load_source ('LCD1602', '/usr/share/sunfounder/Python/LCD1602.py')

# ინიციალიზაცია PCA9685 ნაგულისხმევი მისამართის გამოყენებით (0x40).

pwm = Adafruit_PCA9685. PCA9685 ()

# ბლინკის ობიექტი

ნაგულისხმევი = ბლინკი (auth_token, pin = "V9") start_button = ბლინკი (auth_token, pin = "V3") Rmax = ბლინკი (auth_token, pin = "V0") Rmin = Blynk (auth_token, pin = "V1") Rres = ბლინკი (auth_token, pin = "V2")

ThetaMax = ბლინკი (auth_token, pin = "V4")

ThetaRes = ბლინკი (auth_token, pin = "V5")

PhiMax = ბლინკი (auth_token, pin = "V6")

PhiRes = ბლინკი (auth_token, pin = "V7")

ბარიერი = ბლინკი (auth_token, pin = "V8")

ServoMin = ბლინკი (auth_token, pin = "V10")

ServoMax = ბლინკი (auth_token, pin = "V11")

def LCDsetup ():

LCD1602.init (0x27, 1) # init (მონა მისამართი, ფონური შუქი)

def numMap (x, in_min, in_max, out_min, out_max): "" "გამოიყენება ვალაბოტის კითხვების სერვო პოზიციაზე" "დაბრუნებისთვის int ((x- in_min) * (out_max - out_min) / (in_max - in_min) + გარეთ_წთ)

# გამოიყენეთ ეს ნედლი მონაცემების დამრგვალებისათვის დანიშნულ მნიშვნელობამდე

def myRound (x, base = 2): int int (base * round (float (x)/base))

#ამონაწერი რიცხვიდან დაბრუნებული ბლინკის სტრიქონიდან

def ნომერი ამონაწერი (val): val = str (val) return int (filter (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

# ცვლადი ბლინკის გადართვისთვის

ჩართული = "[u'1 ']"

კლასი Walabot:

def _ დაწყება _ (საკუთარი თავი):

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 = ნომერი ამონაწერი (SERVO_MIN) ბეჭდვა ("Servo MIN =", SERVO_MIN) R_MAX = Rmax.get_val () R_MAX = ნომერი ამონაწერი (R_MAX) ბეჭდვა ("R max =", R_MAX)

R_MIN = Rmin.get_val ()

R_MIN = ნომერი ამონაწერი (R_MIN) ბეჭდვა ("R Min =", R_MIN)

R_RES = Rres.get_val ()

R_RES = ნომერი ამონაწერი (R_RES) ბეჭდვა ("R Res =", R_RES)

THETA_MAX = ThetaMax.get_val ()

THETA_MAX = ნომერი ამონაწერი (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 = ნომერი ამონაწერი (PHI_MAX) ბეჭდვა ("Phi Max =", PHI_MAX) PHI_RES = PhiRes.get_val () PHI_RES = ნომერი ამონაწერი (PHI_RES) ბეჭდვა ("Phi Res =", PHI_RES)

THRESHOLD = Threshold.get_val ()

THRESHOLD = ნომერი ამონაწერი (THRESHOLD) ბეჭდვა ("ბარიერი =", THRESHOLD)

სხვა: # თუ არაფერი ბლინკის აპლიკაციიდან, ნაგულისხმევი ჩატვირთვა 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

def დაკავშირება (საკუთარი თავი): ცადეთ: self.wlbt. ConnectAny () self.isConnected = ჭეშმარიტი 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' შეცდომა err

def დაწყება (საკუთარი თავი):

self.wlbt. დაწყება ()

def calibrate (self):

self.wlbt. StartCalibration ()

def get_targets (საკუთარი თავი):

self.wlbt. Trigger () დაბრუნება self.wlbt. GetSensorTargets ()

დეფ გაჩერება (საკუთარი თავი):

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 is other: check = start_button.get_val () # შეამოწმეთ ბლინკის დაწყების ღილაკი დააჭირეთ თუ (GPIO.input (18) == 0): #შეამოწმეთ footswitch flag = False

LCD1602. დაწერეთ (0, 0, "კარგი, მოდით გავაკეთოთ")

LCD1602. დაწერეთ (0, 1, '') wlbt = Walabot () wlbt.blynkConfig () wlbt.connect () LCD1602.clear () თუ არა wlbt.isConnected: LCD1602.write (0, 0, 'დაუკავშირებელი') სხვა: LCD1602. დაწერე (0, 0, 'დაკავშირებული') დრო. ძილი (2) wlbt. დაწყება () 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.input (18)! = 0): #check footswitch flag = False else: check = start_button.get_val () #check for დაწყების ღილაკი დააჭირეთ appcheck = start_button.app_status ()

სხვა:

if (GPIO.input (18)! = 0): #შეამოწმეთ footswitch flag = მცდარი

xval = 0

yval = 0 zval = 0 საშუალო = 2 დაგვიანებით დრო = 0

სამიზნეები = wlbt.get_targets ()

თუ len (სამიზნეები)> 0:

j დიაპაზონში (საშუალო):

სამიზნეები = wlbt.get_targets ()

თუ ლენ (სამიზნეები)> 0: ბეჭდვა (ლენ (მიზნები)) სამიზნეები = მიზნები [0]

ბეჭდვა (სტრიქონი (სამიზნეები. 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- ისთვის.შ

#!/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…

გამოიყენეთ ეს სერვო დრაივერისთვის

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
დასკვნა
დასკვნა
დასკვნა
დასკვნა

ეს იყო სწავლის მრუდი, მაგრამ ასე ღირდა.

ჩემი აღქმა არის

  • პითონი უნდა ვისწავლო.. გამოდის რომ ეს ტუზია
  • დაუკავშირდა პითონს Raspberry Pi– ზე Blynk IoT სერვისით. ეს ოფიციალურად არ არის მხარდაჭერილი, ამიტომ არსებობს გარკვეული შეზღუდვები მის ფუნქციებზე. თუმცა მაინც მშვენივრად მუშაობს!
  • გამოდის, რომ Walabot შესანიშნავია მუსიკალური გამოხატვისთვის. მე გამოვიყენე იგი Korg SDD3000– ზე, მაგრამ თქვენ შეგიძლიათ გამოიყენოთ ნებისმიერი ეფექტი, რომელიც მოგწონთ

წადი შენ თვითონ ეს არ შემოიფარგლება გიტარის ეფექტებით, მე შემიძლია მისი გამოყენება ნებისმიერი ინსტრუმენტის მქონე ნებისმიერი ეფექტის მქონე.

ჟოლოს კონკურსი 2017
ჟოლოს კონკურსი 2017
ჟოლოს კონკურსი 2017
ჟოლოს კონკურსი 2017

მეორე ადგილი Raspberry Pi კონკურსში 2017

გირჩევთ: