Სარჩევი:
- ნაბიჯი 1: ის, რაც დაგჭირდებათ
- ნაბიჯი 2: რეფერატი
- ნაბიჯი 3: ძირითადი იდეა
- ნაბიჯი 4: Walabot
- ნაბიჯი 5: დაწყება
- ნაბიჯი 6: ჟოლოს პი - 1 - ის დაყენება
- ნაბიჯი 7: ჟოლოს პი - 2 - ის დაყენება
- ნაბიჯი 8: ჟოლოს პი - 3 - ის დაყენება
- ნაბიჯი 9: ჟოლოს პი - 4 - ის დაყენება
- ნაბიჯი 10: პითონი
- ნაბიჯი 11: ვალაბოტისთვის
- ნაბიჯი 12: სერვო ინტერფეისისთვის
- ნაბიჯი 13: LCD– ისთვის
- ნაბიჯი 14: ბლინკი
- ნაბიჯი 15: ბლინკის აპლიკაციის კონფიგურაცია
- ნაბიჯი 16: თქვენ შეგიძლიათ გამოიყენოთ ეს QR კოდი Blynk აპლიკაციით, რომ დაალაგოთ ჩემი პროექტი დაზოგოთ თქვენი დრო
- ნაბიჯი 17: გაუშვით ბლინკი Raspberry Pi– ით და გამოიყენეთ ბლინკ HTTPS პითონისთვის
- ნაბიჯი 18: სკრიპტის ავტომატური გაშვება
- ნაბიჯი 19: აპარატურა
- ნაბიჯი 20: დანართის დიზაინი
- ნაბიჯი 21: Guts Shots
- ნაბიჯი 22: შეკრების საბოლოო კადრები
- ნაბიჯი 23: დააფიქსირეთ Walabot სტენდზე
- ნაბიჯი 24: ტექნიკური STL ფაილები 3D ბეჭდვისთვის
- ნაბიჯი 25: ნივთების გაყვანილობის სქემები
- ნაბიჯი 26: კოდი
- ნაბიჯი 27: Github საცავები გამოსაყენებლად
- ნაბიჯი 28: დასკვნა
ვიდეო: Walabot FX - გიტარის ეფექტის კონტროლი: 28 ნაბიჯი (სურათებით)
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:22
აკონტროლეთ თქვენი საყვარელი გიტარის ეფექტი არა მხოლოდ გიტარის გასაოცარი პოზების გამოყენებით!
ნაბიჯი 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: რეფერატი
როგორი იქნებოდა მუსიკალური გამოხატვის გაკონტროლება არაფრით, გარდა გიტარის პოზიციისა 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 აპლიკაციით, რომ დაალაგოთ ჩემი პროექტი დაზოგოთ თქვენი დრო
კარგი ახლა, როდესაც აპლიკაცია დაყენებულია, ჩვენ შეგვიძლია დავაკონფიგურიროთ პითონი და 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: აპარატურა
პირველი პურის დაფის პროტოტიპი
ნაბიჯი 20: დანართის დიზაინი
დანართი შეიქმნა და გაფორმდა გასაოცარ Fusion360– ში
ნაბიჯი 21: 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: დასკვნა
ეს იყო სწავლის მრუდი, მაგრამ ასე ღირდა.
ჩემი აღქმა არის
- პითონი უნდა ვისწავლო.. გამოდის რომ ეს ტუზია
- დაუკავშირდა პითონს Raspberry Pi– ზე Blynk IoT სერვისით. ეს ოფიციალურად არ არის მხარდაჭერილი, ამიტომ არსებობს გარკვეული შეზღუდვები მის ფუნქციებზე. თუმცა მაინც მშვენივრად მუშაობს!
- გამოდის, რომ Walabot შესანიშნავია მუსიკალური გამოხატვისთვის. მე გამოვიყენე იგი Korg SDD3000– ზე, მაგრამ თქვენ შეგიძლიათ გამოიყენოთ ნებისმიერი ეფექტი, რომელიც მოგწონთ
წადი შენ თვითონ ეს არ შემოიფარგლება გიტარის ეფექტებით, მე შემიძლია მისი გამოყენება ნებისმიერი ინსტრუმენტის მქონე ნებისმიერი ეფექტის მქონე.
მეორე ადგილი Raspberry Pi კონკურსში 2017
გირჩევთ:
NeckCrusher (გიტარაზე დამონტაჟებული ეფექტის პედლები): 6 ნაბიჯი (სურათებით)
NeckCrusher (გიტარაზე დამონტაჟებული ეფექტის პედლები): დეილ როზენი, კარლოს რეიესი და რობ კოხი DATT 2000
სიკაშკაშის კონტროლი PWM დაფუძნებული LED კონტროლი Push ღილაკების, ჟოლოს Pi და Scratch გამოყენებით: 8 ნაბიჯი (სურათებით)
სიკაშკაშის კონტროლი PWM დაფუძნებული LED კონტროლი Push Buttons, Raspberry Pi და Scratch გამოყენებით: მე ვცდილობდი მეპოვა გზა იმის ახსნა, თუ როგორ მუშაობდა PWM ჩემს მოსწავლეებზე, ამიტომ მე დავაყენე საკუთარი თავი ამოცანა ვცდილობდი გავაკონტროლო LED სიკაშკაშე 2 ღილაკის გამოყენებით - ერთი ღილაკი გაზრდის LED- ს სიკაშკაშეს და მეორე აფერხებს მას. წინსვლისთვის
როგორ ავაშენოთ საკუთარი ანემომეტრი ლერწმის გადამრთველების, ჰოლის ეფექტის სენსორის და ზოგიერთი ნაკაწრის გამოყენებით ნოდემკუზე - ნაწილი 2 - პროგრამული უზრუნველყოფა: 5 ნაბიჯი (სურათებით)
როგორ ავაშენოთ საკუთარი ანემომეტრი ლერწმის გადამრთველების, ჰოლის ეფექტის სენსორის და ზოგიერთი ნაკაწრისათვის ნოდემკუზე - ნაწილი 2 - პროგრამული უზრუნველყოფა: შესავალი ეს არის პირველი პოსტის გაგრძელება " როგორ ავაშენოთ საკუთარი ანემომეტრი ლერწმის გადამრთველების, ჰოლის ეფექტის სენსორის და ზოგიერთი ნაკაწრის გამოყენებით ნოდემკუზე - ნაწილი 1 - აპარატურა " - სადაც მე ვაჩვენებ როგორ შევიკრიბოთ ქარის სიჩქარე და მიმართულება
როგორ ავაშენოთ საკუთარი ანემომეტრი ლერწმის გადამრთველების, ჰოლის ეფექტის სენსორისა და ნოდემკუს ზოგიერთი ნაკაწრის გამოყენებით. - ნაწილი 1 - აპარატურა: 8 ნაბიჯი (სურათებით)
როგორ ავაშენოთ საკუთარი ანემომეტრი ლერწმის გადამრთველების, ჰოლის ეფექტის სენსორისა და ნოდემკუს ზოგიერთი ნაკაწრის გამოყენებით. - ნაწილი 1 - აპარატურა: შესავალი მას შემდეგ რაც დავიწყე სწავლა Arduino– ს და Maker Culture– ისგან, მომწონდა სასარგებლო მოწყობილობების აშენება ნაგვისა და ჯართის გამოყენებით, როგორიცაა ბოთლის თავსახური, PVC, სასმელის ქილა და ა.შ. სიცოცხლე ნებისმიერ ნაჭერზე ან ნებისმიერ ამხანაგზე
ჰოლის ეფექტის სენსორი Arduino– ზე Fidget Spinner– ის გამოყენებით: 3 ნაბიჯი (სურათებით)
ჰოლის ეფექტის სენსორი არდუინოზე Fidget Spinner- ის გამოყენებით: რეზიუმე ამ პროექტში მე განვმარტავ, თუ როგორ მუშაობს დარბაზის ეფექტის სენსორი არდოინოს დაფაზე fidget spinner სიჩქარის გაზომვით. მუშაობს: -ჰოლის ეფექტის სენსორი არის გადამყვანი, რომელიც ცვლის მის გამომავალ ძაბვას მაგნიტური ველის საპასუხოდ. ჰოლის ეფექტი