Mündəricat:
- Addım 1: Ehtiyac duyacağınız şeylər
- Addım 2: Abstrakt
- Addım 3: Əsas Fikir
- Addım 4: Walabot
- Addım 5: Başlayın
- Addım 6: Raspberry Pi qurmaq - 1
- Addım 7: Raspberry Pi qurmaq - 2
- Addım 8: Raspberry Pi qurmaq - 3
- Addım 9: Raspberry Pi qurmaq - 4
- Addım 10: Python
- Addım 11: Walabot üçün
- Addım 12: Servo Arayüzü üçün
- Addım 13: LCD üçün
- Addım 14: Blynk
- Addım 15: Blynk Tətbiqini konfiqurasiya edin
- Addım 16: Vaxtınıza qənaət etmək üçün bu QR Kodunu Blynk Tətbiqi ilə Layihəmi Klonlaşdırmaq üçün istifadə edə bilərsiniz
- Addım 17: Raspberry Pi ilə Blynk çalıştırın və Python üçün Blynk HTTPS istifadə edin
- Addım 18: Skriptin yenidən işə salınması
- Addım 19: Avadanlıq
- Addım 20: Kassa Dizaynı
- Addım 21: Atışları Guts
- Addım 22: Final Montaj Çəkilişləri
- Addım 23: Walabotu Stendə Düzəltmək
- Addım 24: 3D Çap üçün Hardware STL Faylları
- Addım 25: İşin Kabelləşdirilməsi Şemaları
- Addım 26: Kod
- Addım 27: İstifadə ediləcək Github Depoları
- Addım 28: Nəticə
2025 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2025-01-13 06:56
Zəhmli gitara pozalarından başqa heç bir şey istifadə etmədən sevdiyiniz gitara effektinə nəzarət edin!
Addım 1: Ehtiyac duyacağınız şeylər
Avadanlıq Komponentləri
Walabot - Walabot
Raspberry Pi - Raspberry Pi 3 Model B
Sunfounder LCD1602
SunFounder PCA9685 Arduino və Raspberry Pi üçün 16 Kanal 12 Bit PWM Servo Sürücü
Servo (ümumi) Bağlantı yoxdur
9V Batareya Klipi
4xAA batareya tutacağı
AA Batareyaları
Jumper telləri (ümumi)
DPDT Latching Fəaliyyət Ayaq Açarı
Korg SDD3000-PDL
Proqram Əməliyyat Sistemləri, Tətbiqlər və Onlayn Xidmətlər
Autodesk Fusion360 -
Blynk -
Alətlər və s
3D printer
Lehimleme dəmir
Addım 2: Abstrakt
Gitaranızın 3D məkandakı mövqeyindən başqa bir şey istifadə etmədən musiqi ifadəsini idarə etmək necə olardı? Yaxşı, bir şeyi protoype edək və öyrənək!
Addım 3: Əsas Fikir
3 effektli parametri real vaxtda idarə edə bilmək istədim, gitara necə yerləşdirdiyimi istifadə edərək bunu etmək istədim. Beləliklə, bir şey aydın idi, bir neçə şeyə ehtiyacım var idi.
- 3D məkanı görə bilən sensor
- Düymələri çevirmək üçün servolar
- LCD ekran
- I2C Servo sürücü
- Bir Moruq Pi
- Python öyrənmək üçün
Addım 4: Walabot
Divarlardan görmək istəyirsən? 3D məkanda obyektləri hiss edirsiniz? Otağın hər tərəfindən nəfəs aldığınızı hiss edirsiniz? Yaxşı, şanslısan!
Walabot, aşağı güclü bir radar istifadə edərək ətrafınızdakı məkanı hiss etməyin yeni bir yoludur.
Bu, bu layihənin açarı olacaqdı, mən 3D məkanda cisimlərin karteasan (X-Y-Z) coodinatlarını götürə və onları pedala toxunmadan real vaxtda gitara effektinin necə səsləndiyini dəyişən servo mövqelərinə uyğunlaşdıra bilərdim.
Qazan.
Walabot haqqında daha çox məlumatı burada tapa bilərsiniz
Addım 5: Başlayın
İlk növbədə, Walabotu idarə etmək üçün bir kompüterə ehtiyacınız olacaq, bu layihə üçün quraşdırılmış WiFi və ümumi əlavə işləmə səbəbiylə bir Raspberry Pi 3 (burada RPi -də istinad edilir) istifadə edirəm.
Hər şeyi gözəl və sadə saxlamaq üçün əvvəlcədən quraşdırılmış NOOBS ilə 16GB SD kart aldım və Raspianı seçdiyim Linux OS olaraq seçdim
(Raspian -ı necə quracağınızı bilmirsinizsə, bir az vaxt ayırın bunu oxuyun)
Tamam, Raspianızı RPi -də işə saldıqdan sonra, layihəmizə hazırlaşmaq üçün bir neçə konfiqurasiya addımı var.
Addım 6: Raspberry Pi qurmaq - 1
Əvvəlcə ən son Kernel versiyasını işlədiyinizə əmin olun və bir əmr qabığını açaraq yazaraq yeniləmələri yoxlayın
sudo apt-get yeniləməsi
sudo apt-get dist-upgrade
(inzibati imtiyazlara malik olduğunuzdan əmin olmaq üçün sudo əlavə olunur, məsələn, işlər işləyəcək)
Bunun tamamlanması bir az vaxt ala bilər, buna görə də gedib gözəl bir çay iç.
Addım 7: Raspberry Pi qurmaq - 2
RPi üçün Walabot SDK qurmalısınız. RPi veb brauzerinizdən https://www.walabot.com/gettingstarted ünvanına daxil olun və Raspberry Pi Installer Paketini yükləyin.
Komanda qabığından:
cd yükləmələri
sudo dpkg -I walabotSDK_RasbPi.deb
Addım 8: Raspberry Pi qurmaq - 3
İ2c avtobusundan istifadə etmək üçün RPi konfiqurasiyasına başlamalıyıq.
sudo apt-get python-smbus quraşdırın
sudo apt-get i2c alətlərini quraşdırın
Bunu etdikdən sonra modul faylına aşağıdakıları əlavə etməlisiniz
Komanda qabığından:
sudo nano /etc /modulları
bu 2 sətri ayrı sətirlərə əlavə edin:
i2c-dev
i2c-bcm2708
Addım 9: Raspberry Pi qurmaq - 4
Walabot kifayət qədər cərəyan çəkir və biz də bunları idarə etmək üçün GPIO -dan istifadə edəcəyik.
Komanda qabığından:
sudo nano /boot/config.txt
faylın sonuna aşağıdakı sətirləri əlavə edin:
safe_mode_gpio = 4
max_usb_current = 1
RPi istehsalçılar üçün əla bir vasitədir, ancaq Walabot -a göndərə biləcəyi məhduddur. Buna görə daha standart 500mA deyil, 1Amp maksimum cərəyan əlavə edirik
Addım 10: Python
Niyə Python? Yaxşı, kodlaşdırmaq çox asandır, işə düşmək sürətlidir və yaxşı python nümunələri mövcuddur! Daha əvvəl heç istifadə etməmişdim və tezliklə işə düşdüm. İndi RPi istədiyimiz üçün qurulmuşdur, növbəti addım Python -un Walabot API, LCD Servo interfeyslərinə çıxış əldə etmək üçün konfiqurasiya edilməsidir.
Addım 11: Walabot üçün
Komanda qabığından
Sudo pip "/usr/share/walabot/python/WalabotAPI-1.0.21.zip" quraşdırın
Addım 12: Servo Arayüzü üçün
Komanda qabığından
sudo apt-get install git-basic python-dev quraşdırın
cd ~
git klonu
cd Adafruit_Python_PCA9685
sudo python setup.py qurun
Niyə servo sürücü istifadə etməliyik? Yaxşı, bir RPi üçün bir neçə səbəb.
1. Bir servo tərəfindən çəkilən cərəyan çox yüksək ola bilər və bu sayı əlinizdə olan servoların sayını artırır (əlbəttə). Bir RPi -dən servo directky sürürsünüzsə, onun enerji təchizatına zərbə vurma riski var
2. Servo mövqeyini idarə edən PWM (Pulse Width Modulation) vaxtları çox vacibdir. RPi zamanlı bir OS istifadə etmədiyi üçün (fasilələr ola bilər və sair) vaxt dəqiq deyil və servoları əsəbi şəkildə bükə bilər. Xüsusi bir sürücü dəqiq idarə etməyə imkan verir, eyni zamanda 16 -a qədər servo əlavə etməyə imkan verir, buna görə genişləndirmə üçün əladır.
Addım 13: LCD üçün
RPi veb brauzerinizi açın
www.sunfounder.com/learn/category/sensor-k…
yükləyin
github.com/daveyclk/SunFounder_SensorKit_…
Komanda qabığından:
sudo mkdir/usr/share/sunfounder
Qrafik tədqiqatçıdan istifadə edərək, python qovluğunu zip faylından yeni günəş qurucu qovluğuna kopyalayın
LCD, istifadəçiyə tam olaraq nə olduğunu soruşmaq üçün istifadə olunur. Konfiqurasiya prosesini hər bir servoya uyğunlaşdırılan x, y və z dəyərlərinə qədər göstərmək
Addım 14: Blynk
Blynk, əşyalarınızı idarə etmək üçün xüsusi bir tətbiq yaratmağa imkan verən parlaq bir IoT xidmətidir. Ayarlarda həqiqətən yığmaq üçün mənə walabotun uzaqdan idarə olunmasını vermək üçün mükəmməl bir həll kimi görünürdü …
Bir problem. Blynk hazırda Python platformasında dəstəklənmir, bugger. Amma qorxma! Uzaqdan idarə etməyə və uzaqdan parametr daxil etməyə imkan verən gözəl bir kiçik iş tapa bildim! bir az gicdir
ilk addım Blynk tətbiqini sevdiyiniz tətbiq mağazasından yükləməkdir
İkincisi, bir hesab üçün qeydiyyatdan keçin
Bunu etdikdən sonra proqramı açın və Raspberry Pi 3 -ü aparat olaraq seçərək yeni bir layihəyə başlayın.
Tətbiq sizə bir giriş nişanı ayıracaq (kodunuzu daxil etmək üçün buna ehtiyacınız olacaq)
Bunu etdikdən sonra. Şəkildə göstərildiyi kimi proqramı qurmalısınız. Walabot ilə necə əlaqə quracaq.
Addım 15: Blynk Tətbiqini konfiqurasiya edin
Addım 16: Vaxtınıza qənaət etmək üçün bu QR Kodunu Blynk Tətbiqi ilə Layihəmi Klonlaşdırmaq üçün istifadə edə bilərsiniz
Tamam Tətbiq hazır olduqdan sonra Python və RPi -ni İnternet üzərindən danışmaq üçün konfiqurasiya edə bilərik. Sehrli
Addım 17: Raspberry Pi ilə Blynk çalıştırın və Python üçün Blynk HTTPS istifadə edin
Əvvəlcə Python üçün Blynk HTTPS sarğı qurmalısınız
Komanda qabığından:
sudo git klonu
sudo pip blynkapi quraşdırın
İkincisi, Blynk Xidmətini RPi -də quraşdırmalısınız
Komanda qabığından:
git klonu
cd blynk-kitabxana/linux
hamısını təmizləyin
blynk xidmətini işə salmaq
sudo./blynk --token = YourAuthToken
Blynk Xidmətinin işə salınmasını təmin etmək üçün /etc/rc.local -ı dəyişdirməlisiniz
etməklə
sudo nano /etc/rc.local
bunu sonunda əlavə edin
./blynk-library/linux/blynk --token = işarəm &
(istinad üçün /etc/rc.local faylımın kod hissəsinə daxil etdim)
İşlədiyini yoxlamaq üçün sadəcə yazın
sudo /etc/rc.local başlanğıcı
Blynk Xidməti indi işləməlidir
Addım 18: Skriptin yenidən işə salınması
İndi bütün bunlar qurulduqdan və konfiqurasiya edildikdən sonra python kodumuz hazırdır. şeyləri avtomatik işə sala bilərik ki, klaviatura və monitorları ata bilək
Ediləcək bir neçə iş var
Python Proqramını bitirmək üçün yeni bir skript faylı yaradın
sudo nano guitareffect.sh
bu sətirləri əlavə edin
#!/bin/sh
python /home/pi/GuitarEffectCLI.py
saxladığınızdan əmin olun
Sonra yazaraq işləmək üçün skriptə icazə verməliyik
Sudo chmod +x /home/pi/guitareffect.sh
Və nəhayət, bu skripti əvvəllər işlətdiyimiz /etc/rc.local faylına əlavə etməliyik.
Sudo nano /etc/rc.local
Əlavə et
/home/pi/guitareffect.sh &
Python Script -in arxa planda işləməsinə imkan verən "&" işarəsini daxil etməyinizə əmin olun
Doğru! Bütün konfiqurasiya və proqram sıralanır, bundan sonra cihazı bağlamaq vaxtı gəldi
Addım 19: Avadanlıq
İlk Breadboard prototipi
Addım 20: Kassa Dizaynı
Qutu, möhtəşəm Fusion360 -da dizayn edildi və göstərildi
Addım 21: Atışları Guts
Addım 22: Final Montaj Çəkilişləri
Addım 23: Walabotu Stendə Düzəltmək
Yerində düzəltmək üçün walabot ilə gələn öz -özünə yapışan metal diskdən istifadə edin
Addım 24: 3D Çap üçün Hardware STL Faylları
Addım 25: İşin Kabelləşdirilməsi Şemaları
Addım 26: Kod
Layihəniz üçün əlavə edilmiş Python skriptindən istifadə edin
_future_ idxalından print_functionfrom sys idxal platformasından blynkapi idxalından Blynk idxal WalabotAPI idxal vaxtı idxal RPi. GPIO olaraq GPIO olaraq
#Board nömrələnməsindən istifadə edərək GPIO qurun
GPIO.setmode (GPIO. BOARD) GPIO.setup (18, GPIO. IN, pull_up_down = GPIO. PUD_UP)
#blynk kimlik məlumatı
auth_token = "your_auth_token_here"
# Servo nəzarət üçün PCA9685 modulunu idxal edin.
Adafruit_PCA9685 idxal edin
#Yerdən LCD modulu idxal edin
import idxalından load_source LCD1602 = load_source ('LCD1602', '/usr/share/sunfounder/Python/LCD1602.py')
# Varsayılan ünvanı (0x40) istifadə edərək PCA9685 -i işə salın.
pwm = Adafruit_PCA9685. PCA9685 ()
# blynk obyektləri
varsayılanlar = 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 = Blynk (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")
Eşik = Blynk (auth_token, pin = "V8")
ServoMin = Blynk (auth_token, pin = "V10")
ServoMax = Blynk (auth_token, pin = "V11")
Def LCDsetup ():
LCD1602.init (0x27, 1) # init (slave ünvanı, arxa işıq)
def numMap (x, in_min, in_max, out_min, out_max): "" "walabot oxunuşlarını servo mövqeyinə uyğunlaşdırmaq üçün istifadə olunur" "" int int ((x- in_min) * (out_max - out_min) / (in_max - in_min) + kənar_min)
# xam məlumatları təyin olunmuş dəyərə yuvarlaqlaşdırmaq üçün istifadə edin
def myRound (x, base = 2): return int (base * round (float (x)/base))
#qaytarılmış blynk simindən nömrəni çıxarır
def numberExtract (val): val = str (val) return int (filter (str.isdigit, val))
# Tezliyi 60Hz -ə təyin edin, servolar üçün yaxşıdır.
pwm.set_pwm_freq (60)
# Minimum və maksimum servo nəbz uzunluqlarını təyin edin
SERVO_MIN = 175 # 4096 -dan min nəbz uzunluğu SERVO_MAX = 575 # 4096 -dan maksimum nəbz uzunluğu
# walabot standart dəyərlər
R_MAX = 60 R_MIN = 20 R_RES = 5
THETA_MAX = 20
THETA_RES = 5
PHI_MAX = 20
PHI_RES = 5
BAŞQA = 1
blynk keçid üçün # dəyişən
on = "[u'1 ']"
sinif Walabot:
def _init _ (özünü):
self.wlbt = WalabotAPI self.wlbt. Init () self.wlbt. SetSettingsFolder () self.isConnected = False self.isTargets = False
def blynkConfig (özünü):
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 = sayıÇıxar (SERVO_MIN) çap ("Servo MIN =", SERVO_MIN) R_MAX = Rmax.get_val () R_MAX = sayıÇıxar (R_MAX) çap ("R max =", R_MAX)
R_MIN = Rmin.get_val ()
R_MIN = sayıÇıxar (R_MIN) çap ("R Min =", R_MIN)
R_RES = Rres.get_val ()
R_RES = sayıÇıxar (R_RES) çap ("R Res =", R_RES)
THETA_MAX = ThetaMax.get_val ()
THETA_MAX = numberExtract (THETA_MAX) çapı ("Theta Max =", THETA_MAX) THETA_RES = ThetaRes.get_val () THETA_RES = numberExtract (THETA_RES) çap ("Theta Res =", THETA_RES)
PHI_MAX = PhiMax.get_val ()
PHI_MAX = numberExtract (PHI_MAX) çapı ("Phi Max =", PHI_MAX) PHI_RES = PhiRes.get_val () PHI_RES = numberExtract (PHI_RES) çap ("Phi Res =", PHI_RES)
THRESHOLD = Threshold.get_val ()
THRESHOLD = numberExtract (THRESHOLD) çap ("Threshold =", THRESHOLD)
başqa: # blynk tətbiqindən heç bir şey yoxdursa, yükləmə standartları SERVO_MIN = 175 # 4096 -dan min nəbz uzunluğu SERVO_MAX = 575 # 4096 -dan maksimum nəbz uzunluğu
# walabot standart dəyərlər
R_MAX = 60 R_MIN = 20 R_RES = 5
THETA_MAX = 20
THETA_RES = 5
PHI_MAX = 20
PHI_RES = 5
BAŞQA = 1
def connect (self): cəhd edin: self.wlbt. ConnectAny () self.isConnected = True self.wlbt. SetProfile (self.wlbt. PROF_SENSOR) #self.wlbt. SetDynamicImageFilter (self.wlbt. FILTER_TYPynMilTM) (self.wlbt. FILTER_TYPE_NONE) #self.wlbt. SetDynamicImageFilter (self.wlbt. FILTER_TYPE_DERIVATIVE) self.wlbt. SetArenaTheta (-THETA_MAX, THETA_MAX, THE PHLIPH_SMA) SetArenaR (R_MIN, R_MAX, R_RES) self.wlbt. SetThreshold (THRESHOLD) istisna olmaqla, self.wlbt. WalabotError səhv olaraq: əgər err.code! = 19: # 'WALABOT_INSTRUMENT_NOT_FOUND' yüksəltmək səhv
def start (özünü):
self.wlbt. Start ()
def kalibrləmə (özünü):
self.wlbt. StartCalibration ()
def get_targets (özünü):
self.wlbt. Trigger () qayıt self.wlbt. GetSensorTargets ()
def stop (özünü):
self.wlbt. Stop ()
def ayırın (özünü):
self.wlbt. Disconnect ()
def main ():
bayraq = Doğru yoxlama = "" LCDsetup () bayraq olarkən: LCD1602. yaz (0, 0, 'Gitara') LCD1602. yaz (0, 1, 'Təsir Nəzarəti') vaxt.yuxu (2) LCD1602. yaz (0, 0, 'Başlat düyməsini basın') LCD1602. yaz (0, 1, 'başla') vaxt. Yuxu (2) əgər (str (yoxla) == yandır): bayraq = Yanlış başqa: yoxla = start_button.get_val () # blynk başlanğıc düyməsini yoxlayın, əgər (GPIO.input (18) == 0): #footswitch bayrağını yoxla = False
LCD1602.write (0, 0, "OK! Bunu edək")
LCD1602.write (0, 1, '') wlbt = Walabot () wlbt.blynkConfig () wlbt.connect () LCD1602.clear () wlbt.isConnected deyilsə: LCD1602.write (0, 0, 'Bağlı deyil') başqa: LCD1602. yaz (0, 0, 'Bağlandı') vaxt.yuxu (2) wlbt.start () wlbt.calibrate () LCD1602. yaz (0, 0, 'Kalibrləmə…..') vaxt.yuxu (3)) LCD1602. yazın (0, 0, 'Walabot Başlayır')
appcheck = start_button.app_status () flag = Əsas proqram üçün True # sıfırlama bayrağı
bayraq: # gözləmə rejiminə keçmək üçün istifadə olunur (effektiv şəkildə)
if (appcheck == True): if (str (check)! = on): if (GPIO.input (18)! = 0): #footswitch bayrağını = False else: check = start_button.get_val () #check Başlat düyməsini basın appcheck = start_button.app_status ()
başqa:
if (GPIO.input (18)! = 0): #ayaq anahtarı bayrağını = False yoxlayın
xval = 0
yval = 0 zval = 0 orta = 2 gecikməTime = 0
hədəflər = wlbt.get_targets ()
əgər len (hədəflər)> 0:
aralığında j üçün (orta):
hədəflər = wlbt.get_targets ()
əgər len (hədəflər)> 0: çap (len (hədəflər)) hədəflər = hədəflər [0]
çap (str (targets.xPosCm))
xval += int (targets.xPosCm) yval += int (targets.yPosCm) zval += int (targets.zPosCm) time.sleep (delayTime) başqa: yazdır ("hədəf yoxdur") xval = xval/orta
xval = numMap (xval, -60, 60, SERVO_MIN, SERVO_MAX)
xval = myRound (xval) əgər xval SERVO_MAX: xval = SERVO_MAX LCD1602.write (0, 0, 'x =' + str (xval) + '') pwm.set_pwm (0, 0, xval)
yval = yval/orta
yval = numMap (yval, -60, 60, SERVO_MIN, SERVO_MAX)
yval = myRound (yval) əgər yval SERVO_MAX: yval = SERVO_MAX LCD1602.write (0, 1, 'y =' + str (yval)) pwm.set_pwm (1, 0, yval)
zval = zval/orta
zval = numMap (zval, R_MIN, R_MAX, SERVO_MIN, SERVO_MAX)
zval = myRound (zval) əgər zval SERVO_MAX: zval = SERVO_MAX LCD1602.write (8, 1, 'z =' + str (zval)) pwm.set_pwm (2, 0, zval)
başqa:
yazdır ("hədəf yoxdur") LCD1602. yaz (0, 0, "Kapat") LCD1602. yaz (0, 1, 'The Walabot') vaxt.yuxu (3) wlbt.stop () wlbt.disconnect ()
əgər _ adı_ == '_ əsas_' olarsa:
Doğru isə: main ()
guitareffect.sh üçün
#!/bin/sh
cd /ev /pi
sudo python GuitarEffectCLI.py
İstinad üçün RC yerli faylının surəti
#!/bin/sh -e # # rc.local # # Bu skript hər çox istifadəçi səviyyəsinin sonunda icra olunur. # Skriptin müvəffəqiyyətdə və ya səhvdə hər hansı digər # dəyərdən "0 çıxacağına" əmin olun. # # Bu skriptin işə salınması və ya söndürülməsi üçün # bitin icrasını dəyişmək kifayətdir. # # Varsayılan olaraq bu skript heç bir iş görmür.
# IP ünvanını çap edin
_IP = $ (ana adı -I) || doğru olarsa ["$ _IP"]; sonra printf "IP ünvanım %s / n" "$ _IP" fi
./blynk-library/linux/blynk --token = "işarəniz bura gedir" &
yuxu 10 sudo /home/pi/guitareffect.sh & çıxmaq 0
Addım 27: İstifadə ediləcək Github Depoları
Bunu Sunfounder LCD üçün istifadə edin
github.com/daveyclk/SunFounder_SensorKit_f…
Bunu servo sürücü üçün istifadə edin
github.com/daveyclk/Adafruit_Python_PCA968…
Bunu Blynk Python HTTPS Sarıcı üçün istifadə edin
github.com/daveyclk/blynkapi
Addım 28: Nəticə
Yaxşı bu dik bir öyrənmə əyrisi idi, amma buna dəyərdi.
Baxışlarım budur
- Python öyrənmək məcburiyyətində qaldım
- Raspberry Pi üzərindəki Python ilə Blynk IoT xidməti arasında əlaqə qurdu. Bu rəsmi olaraq dəstəklənmir, buna görə funksiyalarında bəzi məhdudiyyətlər var. Hələ də əla işləyir!
- Walabot musiqi ifadəsi üçün əladır. Korg SDD3000 -də istifadə etdim, amma istədiyiniz effekti istifadə edə bilərsiniz
Özünüz gedin. Bu, gitara effektləri ilə məhdudlaşmır, istənilən effektli istənilən alətlə istifadə oluna bilər.
2017 -ci il Raspberry Pi Müsabiqəsində ikinci yeri tutdu