Πίνακας περιεχομένων:
- Βήμα 1: Πράγματα που θα χρειαστείτε
- Βήμα 2: Περίληψη
- Βήμα 3: Η βασική ιδέα
- Βήμα 4: Walabot
- Βήμα 5: Ξεκινώντας
- Βήμα 6: Ρύθμιση του Raspberry Pi - 1
- Βήμα 7: Ρύθμιση του Raspberry Pi - 2
- Βήμα 8: Ρύθμιση του Raspberry Pi - 3
- Βήμα 9: Ρύθμιση του Raspberry Pi - 4
- Βήμα 10: Python
- Βήμα 11: Για το Walabot
- Βήμα 12: Για τη διεπαφή Servo
- Βήμα 13: Για την οθόνη LCD
- Βήμα 14: Blynk
- Βήμα 15: Διαμόρφωση της εφαρμογής Blynk
- Βήμα 16: Μπορείτε να χρησιμοποιήσετε αυτόν τον κωδικό QR με την εφαρμογή Blynk για να κλωνοποιήσετε το έργο μου για να εξοικονομήσετε χρόνο
- Βήμα 17: Εκτέλεση του Blynk With the Raspberry Pi και χρήση του Blynk HTTPS για Python
- Βήμα 18: Αυτόματη εκτέλεση του σεναρίου
- Βήμα 19: Το υλικό
- Βήμα 20: Σχεδιασμός περιβλήματος
- Βήμα 21: Έντονα πλάνα
- Βήμα 22: Τελικές βολές συναρμολόγησης
- Βήμα 23: Για να στερεώσετε το Walabot στη βάση
- Βήμα 24: Αρχεία STL υλικού για τρισδιάστατη εκτύπωση
- Βήμα 25: Σχήματα για την καλωδίωση του πράγματος
- Βήμα 26: Κωδικός
- Βήμα 27: Αποθετήρια Github προς χρήση
- Βήμα 28: Συμπέρασμα
Βίντεο: Walabot FX - Έλεγχος εφέ κιθάρας: 28 βήματα (με εικόνες)
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:39
Ελέγξτε το αγαπημένο σας εφέ κιθάρας χρησιμοποιώντας παρά μόνο εκπληκτικές πόζες κιθάρας!
Βήμα 1: Πράγματα που θα χρειαστείτε
Συστατικά υλικού
Walabot - Walabot
Raspberry Pi - Raspberry Pi 3 Model 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
Λογισμικά λειτουργικά συστήματα, εφαρμογές και διαδικτυακές υπηρεσίες
Autodesk Fusion360 -
Blynk -
Εργαλεία κλπ
Τρισδιάστατος εκτυπωτής
Συγκολλητικό σίδερο
Βήμα 2: Περίληψη
Πώς θα ήταν να ελέγχετε τη μουσική έκφραση χωρίς να χρησιμοποιείτε παρά τη θέση της κιθάρας σας σε τρισδιάστατο χώρο; Λοιπόν, ας πρωτοτυπήσουμε κάτι και θα το μάθουμε!
Βήμα 3: Η βασική ιδέα
Wantedθελα να μπορώ να ελέγξω την παράμετρο 3 εφέ σε πραγματικό χρόνο, ήθελα να το κάνω χρησιμοποιώντας τον τρόπο τοποθέτησης της κιθάρας μου. Έτσι, ένα πράγμα ήταν ξεκάθαρο, θα χρειαζόμουν μερικά πράγματα.
- Ένας αισθητήρας που μπορεί να δει 3D χώρο
- Σέρβο για να γυρίσετε τα πόμολα
- Οθόνη LCD
- Πρόγραμμα οδήγησης I2C Servo
- Ένα Raspberry Pi
- Για να μάθεις Python
Βήμα 4: Walabot
Θέλετε να δείτε μέσα από τους τοίχους; Αισθητήρια αντικείμενα στον τρισδιάστατο χώρο; Αίσθηση αν αναπνέετε από το δωμάτιο; Λοιπόν, είστε τυχεροί!
Το Walabot είναι ένας εντελώς νέος τρόπος ανίχνευσης του χώρου γύρω σας χρησιμοποιώντας ραντάρ χαμηλής ισχύος.
Αυτό επρόκειτο να είναι το κλειδί για αυτό το έργο, θα μπορούσα να πάρω τα καρτεσιανά (X-Y-Z) coodinates αντικειμένων σε τρισδιάστατο χώρο και να τα χαρτογραφήσω σε servo θέσεις αλλάζοντας τον τρόπο που ακούγεται ένα εφέ κιθάρας, σε πραγματικό χρόνο, χωρίς να αγγίζω το πεντάλ.
Νίκη.
Περισσότερες πληροφορίες για το Walabot μπορείτε να βρείτε εδώ
Βήμα 5: Ξεκινώντας
Πρώτα απ 'όλα, θα χρειαστείτε έναν υπολογιστή για να οδηγήσετε το Walabot, για αυτό το έργο χρησιμοποιώ ένα Raspberry Pi 3 (εδώ αναφέρεται στο RPi) λόγω του ενσωματωμένου WiFi και γενικότερης πρόσθετης λειτουργίας.
Αγόρασα μια κάρτα SD 16 GB με προεγκατεστημένο το NOOBS για να διατηρήσω τα πράγματα ωραία και απλά και επέλεξα να εγκαταστήσω το Raspian ως Linux OS της επιλογής μου
(αν δεν είστε εξοικειωμένοι με τον τρόπο εγκατάστασης του Raspian, αφιερώστε λίγο χρόνο για να το διαβάσετε λίγο)
Εντάξει, μόλις ενεργοποιήσετε το Raspian στο RPi, πρέπει να ακολουθήσετε μερικά βήματα διαμόρφωσης για να προετοιμάσετε τα πράγματα για το έργο μας
Βήμα 6: Ρύθμιση του Raspberry Pi - 1
Πρώτα βεβαιωθείτε ότι εκτελείτε την πιο πρόσφατη έκδοση Kernel και ελέγξτε για ενημερώσεις ανοίγοντας ένα κέλυφος εντολών και πληκτρολογώντας
sudo apt-get ενημέρωση
sudo apt-get dist-upgrade
(το sudo προστίθεται για να διασφαλιστεί ότι έχετε δικαιώματα διαχειριστή, π.χ. τα πράγματα θα λειτουργήσουν)
Αυτό μπορεί να πάρει λίγο χρόνο για να ολοκληρωθεί, οπότε πηγαίνετε και πιείτε ένα ωραίο φλιτζάνι τσάι.
Βήμα 7: Ρύθμιση του Raspberry Pi - 2
Πρέπει να εγκαταστήσετε το SDK Walabot για RPi. Από το πρόγραμμα περιήγησης ιστού RPi μεταβείτε στη διεύθυνση https://www.walabot.com/gettingstarted και κάντε λήψη του πακέτου εγκατάστασης Raspberry Pi.
Από ένα κέλυφος εντολών:
λήψεις cd
sudo dpkg -I walabotSDK_RasbPi.deb
Βήμα 8: Ρύθμιση του Raspberry Pi - 3
Πρέπει να ξεκινήσουμε τη διαμόρφωση του RPi για χρήση του διαύλου i2c. Από ένα κέλυφος εντολών:
sudo apt-get install python-smbus
sudo apt-get install i2c-tools
μόλις γίνει αυτό, πρέπει να προσθέσετε τα ακόλουθα στο αρχείο λειτουργικών μονάδων
Από ένα κέλυφος εντολών:
sudo nano /etc /modules
προσθέστε αυτές τις 2 συμβολοσειρές σε ξεχωριστές γραμμές:
i2c-dev
i2c-bcm2708
Βήμα 9: Ρύθμιση του Raspberry Pi - 4
Το Walabot αντλεί αρκετό ρεύμα και θα χρησιμοποιήσουμε επίσης GPIO για να ελέγξουμε πράγματα, οπότε πρέπει να τα ρυθμίσουμε
Από ένα κέλυφος εντολών:
sudo nano /boot/config.txt
προσθέστε τις ακόλουθες γραμμές στο τέλος του αρχείου:
safe_mode_gpio = 4
max_usb_current = 1
Το RPi είναι ένα εξαιρετικό εργαλείο για τους κατασκευαστές, αλλά είναι περιορισμένο στο ρεύμα που μπορεί να στείλει στο Walabot. Αυτός είναι ο λόγος για τον οποίο προσθέτουμε ένα μέγιστο ρεύμα 1Amp αντί για το πιο τυπικό 500mA
Βήμα 10: Python
Γιατί Python; Λοιπόν, καθώς είναι εξαιρετικά εύκολο να κωδικοποιηθεί, γρήγορα να τρέξει και υπάρχουν πολλά καλά παραδείγματα python διαθέσιμα! δεν το είχα χρησιμοποιήσει ποτέ πριν και σύντομα ξεκίνησε να λειτουργεί σε χρόνο μηδέν. Τώρα το RPi έχει ρυθμιστεί για αυτό που θέλουμε, το επόμενο βήμα είναι να διαμορφώσουμε την Python ώστε να έχει πρόσβαση στις διεπαφές Walabot API, LCD Servo
Βήμα 11: Για το Walabot
Από ένα κέλυφος εντολών
Sudo pip install "/usr/share/walabot/python/WalabotAPI-1.0.21.zip"
Βήμα 12: Για τη διεπαφή Servo
Από ένα κέλυφος εντολών
sudo apt-get install git build-απαραίτητο python-dev
cd
git clone
cd Adafruit_Python_PCA9685
sudo python setup.py install
Γιατί πρέπει να χρησιμοποιήσουμε ένα σερβο πρόγραμμα οδήγησης; Λοιπόν, για ένα RPi δύο λόγους.
1. Το ρεύμα που αντλεί ένα σερβο μπορεί να είναι πολύ υψηλό και αυτός ο αριθμός γίνεται μεγαλύτερος όσο περισσότερα σερβίς έχετε (φυσικά). Εάν οδηγείτε το servo directky από RPi, διατρέχετε τον κίνδυνο να φυσήξετε το τροφοδοτικό του
2. Οι χρονισμοί του PWM (Pulse Width Modulation) που ελέγχουν τη θέση του servos είναι πολύ σημαντικοί. Δεδομένου ότι το RPi δεν χρησιμοποιεί λειτουργικό σύστημα σε πραγματικό χρόνο (μπορεί να υπάρχουν διακοπές και τέτοια) οι χρονισμοί δεν είναι ακριβείς και μπορούν να κάνουν τα servos να αναστατωθούν νευρικά. Ένα ειδικό πρόγραμμα οδήγησης επιτρέπει τον ακριβή έλεγχο, αλλά επιτρέπει επίσης την προσθήκη έως 16 servos, οπότε αυτό είναι εξαιρετικό για επέκταση.
Βήμα 13: Για την οθόνη LCD
ανοίξτε το πρόγραμμα περιήγησης ιστού RPi
www.sunfounder.com/learn/category/sensor-k…
Κατεβάστε
github.com/daveyclk/SunFounder_SensorKit_…
Από ένα κέλυφος εντολών:
sudo mkdir/usr/share/sunfounder
Χρησιμοποιώντας τον γραφικό εξερευνητή, αντιγράψτε τον φάκελο python από το αρχείο zip στον νέο σας φάκελο sunfounder
Η οθόνη LCD χρησιμοποιείται για να ζητήσει από τον χρήστη τι ακριβώς συμβαίνει. Εμφάνιση της διαδικασίας διαμόρφωσης των τιμών x, y και z που αντιστοιχίζονται σε κάθε σερβο
Βήμα 14: Blynk
Το Blynk είναι μια λαμπρή υπηρεσία IoT που σας επιτρέπει να δημιουργήσετε μια προσαρμοσμένη εφαρμογή για τον έλεγχο των αντικειμένων σας. Φαινόταν σαν η τέλεια λύση για να μου δώσετε το τηλεχειριστήριο του walabot για να καλέσετε πραγματικά στις ρυθμίσεις…
Ενα πρόβλημα. Το Blynk δεν υποστηρίζεται προς το παρόν στην πλατφόρμα Python, bugger. Όμως μη φοβάσαι! μπόρεσα να βρω μια ωραία μικρή δουλειά που επιτρέπει τηλεχειρισμό και απομακρυσμένη εισαγωγή παραμέτρων! είναι λίγο χακαρισμένο
το πρώτο βήμα είναι να κατεβάσετε την εφαρμογή Blynk από το αγαπημένο σας κατάστημα εφαρμογών
Δεύτερον, εγγραφείτε για λογαριασμό
Μόλις γίνει αυτό, ανοίξτε την εφαρμογή και ξεκινήστε ένα νέο έργο, επιλέγοντας το Raspberry Pi 3 ως υλικό.
Η εφαρμογή θα σας διαθέσει ένα διακριτικό πρόσβασης (αυτό θα χρειαστεί για να βάλετε τον κωδικό σας)
Μόλις το κάνετε αυτό. θα χρειαστεί να ρυθμίσετε την εφαρμογή όπως φαίνεται στις εικόνες. Έτσι θα διασυνδεθεί με το walabot.
Βήμα 15: Διαμόρφωση της εφαρμογής Blynk
Βήμα 16: Μπορείτε να χρησιμοποιήσετε αυτόν τον κωδικό QR με την εφαρμογή Blynk για να κλωνοποιήσετε το έργο μου για να εξοικονομήσετε χρόνο
OK Τώρα που η εφαρμογή έχει ρυθμιστεί, μπορούμε να διαμορφώσουμε την Python και το RPi για να μιλάμε σε αυτήν μέσω των διαδικτυακών δικτύων. Μαγεία
Βήμα 17: Εκτέλεση του Blynk With the Raspberry Pi και χρήση του Blynk HTTPS για Python
Πρώτον, πρέπει να εγκαταστήσετε το περιτύλιγμα Blynk HTTPS για Python
Από ένα κέλυφος εντολών:
sudo git κλώνος
sudo pip install blynkapi
Δεύτερον, πρέπει να εγκαταστήσετε την υπηρεσία Blynk στο RPi
Από ένα κέλυφος εντολών:
git clone
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.τοπική εκκίνηση
Η υπηρεσία Blynk θα πρέπει τώρα να λειτουργεί
Βήμα 18: Αυτόματη εκτέλεση του σεναρίου
Τώρα που όλα αυτά έχουν ρυθμιστεί και διαμορφωθεί και έχουμε έτοιμο τον κώδικα python. μπορούμε να ρυθμίσουμε τα πράγματα να εκτελούνται αυτόματα, ώστε να μπορούμε να αποβάλλουμε το πληκτρολόγιο και τις οθόνες
Υπάρχουν μερικά πράγματα που πρέπει να κάνετε
Δημιουργήστε ένα νέο αρχείο σεναρίου για να τελειώσει το πρόγραμμα Python
sudo nano guitareffect.sh
προσθέστε αυτές τις γραμμές
#!/bin/sh
python /home/pi/GuitarEffectCLI.py
φροντίστε να το αποθηκεύσετε
Στη συνέχεια, πρέπει να δώσουμε στο σενάριο άδεια για εκτέλεση πληκτρολογώντας
Sudo chmod +x /home/pi/guitareffect.sh
Και τέλος, πρέπει να προσθέσουμε αυτό το σενάριο στο αρχείο /etc/rc.local με το οποίο ασχοληθήκαμε νωρίτερα.
Sudo nano /κ.λπ.rc.local
Προσθήκη
/home/pi/guitareffect.sh &
Φροντίστε να συμπεριλάβετε το "&" αυτό επιτρέπει στο Python Script να εκτελείται στο παρασκήνιο
Σωστά! Αυτή είναι όλη η διαμόρφωση και το λογισμικό ταξινομημένο, την επόμενη ώρα είναι να συνδέσετε το υλικό
Βήμα 19: Το υλικό
Πρώτο πρωτότυπο Breadboard
Βήμα 20: Σχεδιασμός περιβλήματος
Το περίβλημα σχεδιάστηκε και αποδόθηκε στο φοβερό Fusion360
Βήμα 21: Έντονα πλάνα
Βήμα 22: Τελικές βολές συναρμολόγησης
Βήμα 23: Για να στερεώσετε το Walabot στη βάση
Χρησιμοποιήστε τον αυτοκόλλητο μεταλλικό δίσκο που συνοδεύει το walabot για να το στερεώσετε στη θέση του
Βήμα 24: Αρχεία STL υλικού για τρισδιάστατη εκτύπωση
Βήμα 25: Σχήματα για την καλωδίωση του πράγματος
Βήμα 26: Κωδικός
Χρησιμοποιήστε το συνημμένο σενάριο Python για το έργο σας
από _future_ import print_functionfor sys import platform from os import system from blynkapi import Blynk import WalabotAPI import time import RPi. GPIO as GPIO
#ρυθμίστε το GPIO χρησιμοποιώντας την αρίθμηση πίνακα
GPIO.setmode (GPIO. BOARD) GPIO.setup (18, GPIO. IN, pull_up_down = GPIO. PUD_UP)
διακριτικό #blynk auth
auth_token = "your_auth_token_here"
# Εισαγάγετε τη μονάδα 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
προεπιλογές = 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")
Threshold = 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, φως φόντου)
def numMap (x, in_min, in_max, out_min, out_max): "" χρησιμοποιείται για τη χαρτογράφηση των ενδείξεων του walabot στη θέση σερβο "" επιστροφής int ((x- in_min) * (out_max - out_min) / (in_max - in_min) + έξω_λεπτά)
# χρησιμοποιήστε αυτό για στρογγυλοποίηση των ακατέργαστων δεδομένων στην καθορισμένη τιμή
def myRound (x, base = 2): return int (base * round (float (x)/base))
#εξαγάγει τον αριθμό από την επιστρεφόμενη συμβολοσειρά blynk
def numberEstract (val): val = str (val) return int (φίλτρο (str.isdigit, val))
# Ρυθμίστε τη συχνότητα στα 60Hz, καλό για servos.
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
on = "[u'1 ']"
κατηγορία Walabot:
def _init _ (self):
self.wlbt = WalabotAPI self.wlbt. Init () self.wlbt. SetSettingsFolder () self.isConnected = Λάθος self.isTargets = Λάθος
def blynkConfig (self):
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 = numberExtract (R_MAX) εκτύπωση ("R max =", R_MAX)
R_MIN = Rmin.get_val ()
R_MIN = numberExtract (R_MIN) print ("R Min =", R_MIN)
R_RES = Rres.get_val ()
R_RES = numberExtract (R_RES) print ("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 = numberExtract (PHI_RES) εκτύπωση ("Phi Res =", PHI_RES)
THRESHOLD = Threshold.get_val ()
THRESHOLD = numberExtract (THRESHOLD) εκτύπωση ("Threshold =", THRESHOLD)
else: # εάν τίποτα από την εφαρμογή blynk, φορτώστε τις προεπιλογές 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 connect (self): try: self.wlbt. ConnectAny () self.isConnected = True self.wlbt. SetProfile (self.wlbt. PROF_SENSOR) #self.wlbt. SetDynamicImageFilter (self.wlbt. FILTER_TyPI_TYPE (self.wlbt. FILTER_TYPE_NONE) #self.wlbt. SetDynamicImageFilter (self.wlbt. FILTER_TYPE_DERIVATIVE) self.wlbt. SetArenaTheta (-THETA_MAX, THETA_AX, PHAX, PH, PH, PH, PH, PH, PH, PH, PH, PH, PH, PH, SetArenaR (R_MIN, R_MAX, R_RES) self.wlbt. SetThreshold (THRESHOLD) εκτός από self.wlbt. WalabotError as err: if err.code! = 19: # WALABOT_INSTRUMENT_NOT_FOUND 'raise err err
def start (self):
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 disconnect (self):
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 = False
LCD1602.write (0, 0, "ΟΚ! Ας το κάνουμε")
LCD1602.write (0, 1, '') wlbt = Walabot () wlbt.blynkConfig () wlbt.connect () LCD1602.clear () αν όχι wlbt.isConnected: LCD1602.write (0, 0, 'Not Connected') else: LCD1602.write (0, 0, 'Connected') time.sleep (2) wlbt.start () wlbt.calibrate () LCD1602.write (0, 0, 'Calibrating…..') time.sleep (3) LCD1602.write (0, 0, 'Starting Walabot')
appcheck = start_button.app_status () flag = True # reset σημαία για κύριο prog
ενώ σημαία: # χρησιμοποιείται για να τεθεί σε ισχύ σε κατάσταση αναμονής (αποτελεσματικά)
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): #check footswitch flag = False
xval = 0
yval = 0 zval = 0 μέσος όρος = 2 καθυστερήσειςΧρόνος = 0
στόχοι = wlbt.get_targets ()
αν len (στόχοι)> 0:
για j σε εύρος (μέσος όρος):
στόχοι = wlbt.get_targets ()
εάν len (στόχοι)> 0: εκτύπωση (len (στόχοι)) στόχοι = στόχοι [0]
εκτύπωση (str (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) if xval SERVO_MAX: xval = SERVO_MAX LCD1602.write (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 LCD1602.write (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) if zval SERVO_MAX: zval = SERVO_MAX LCD1602.write (8, 1, 'z =' + str (zval)) pwm.set_pwm (2, 0, zval)
αλλού:
εκτύπωση ("χωρίς στόχους") LCD1602.write (0, 0, "Shutting Down") LCD1602.write (0, 1, 'The Walabot') time.sleep (3) wlbt.stop () wlbt.disconnect ()
αν _name_ == '_main_':
ενώ True: main ()
για το guitareffect.sh
#!/bin/sh
cd /home /pi
sudo python GuitarEffectCLI.py
Αντίγραφο του τοπικού αρχείου RC για αναφορά
#!/bin/sh -e # # rc.local # # Αυτό το σενάριο εκτελείται στο τέλος κάθε επιπέδου runlevel πολλαπλών χρηστών. # Βεβαιωθείτε ότι το σενάριο θα "βγεί από το 0" για επιτυχία ή οποιαδήποτε άλλη # τιμή για σφάλμα. # # Για να ενεργοποιήσετε ή να απενεργοποιήσετε αυτό το σενάριο, απλώς αλλάξτε # bit εκτέλεσης. # # Από προεπιλογή, αυτό το σενάριο δεν κάνει τίποτα.
# Εκτυπώστε τη διεύθυνση IP
_IP = $ (όνομα κεντρικού υπολογιστή -I) || true αν ["$ _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: Συμπέρασμα
Λοιπόν, αυτό ήταν μια απότομη καμπύλη μάθησης, αλλά άξιζε τον κόπο.
Οι αποδράσεις μου είναι
- Έπρεπε να μάθω Python.. αποδεικνύεται ότι είναι άσος
- Διασυνδέθηκε με την Python στο Raspberry Pi με την υπηρεσία Blynk IoT. Αυτό δεν υποστηρίζεται επίσημα, οπότε υπάρχουν ορισμένα όρια στις λειτουργίες του. Ακόμα δουλεύει άψογα όμως!
- Αποδεικνύεται ότι το Walabot είναι εξαιρετικό για μουσική έκφραση. Το χρησιμοποίησα σε ένα Korg SDD3000, αλλά μπορείτε να χρησιμοποιήσετε οποιοδήποτε εφέ σας αρέσει
Πηγαίνετε μόνοι σας. Αυτό δεν περιορίζεται στα εφέ κιθάρας, μπορώ να χρησιμοποιηθώ με οποιοδήποτε όργανο με οποιοδήποτε εφέ.
Επόμενος στο Διαγωνισμό Raspberry Pi 2017
Συνιστάται:
Πεντάλ Overdrive με μπαταρία DIY για εφέ κιθάρας: 5 βήματα
DIY Battery Powered Overdrive Pedal for Guitar Effects: Για την αγάπη της μουσικής ή για την αγάπη για τα ηλεκτρονικά, ο στόχος αυτού του Instructable είναι να δείξει πόσο κρίσιμο είναι το SLG88104V Rail to Rail I/O 375nA Quad OpAmp με τις εξελίξεις χαμηλής ισχύος και χαμηλής τάσης μπορεί να είναι η επανάσταση στα κυκλώματα overdrive. Ty
Διπλό εφέ καθυστέρησης: 10 βήματα (με εικόνες)
Double Delay Effect: SUPER απλό εφέ διπλής καθυστέρησης! Ο στόχος μου ήταν να χτίσω την πιο συμπαγή, πιο μεγάλη καθυστέρηση, χρησιμοποιώντας μόνο μια χούφτα εξαρτημάτων. Το αποτέλεσμα είναι μια μηχανή θορύβου χωρίς περιβλήματα, εύκολα τροποποιήσιμη με έναν εκπληκτικά τεράστιο ήχο. ΕΝΗΜΕΡΩΣΗ: Λεπτομέρειες
Car Horn - Προσαρμοσμένα ηχητικά εφέ: 4 βήματα (με εικόνες)
Car Horn - Προσαρμοσμένα ηχητικά εφέ: Εγκατέστησα προσαρμοσμένα ηχητικά εφέ κόρνας στο αυτοκίνητό μου με βάση τα βίντεο του YouTube από τον Mark Rober και I Like To Make Stuff Η βασική κόρνα του αυτοκινήτου χρειάζεται περισσότερες επιλογές για αποτελεσματική επικοινωνία μεταξύ οδηγών κατά τη γνώμη μου. Εκεί που είμαι από την τυπική κόρνα του αυτοκινήτου έχει
Πώς να κάνετε εφέ κιθάρας FUZZ από το κιτ DIY Aliexpress: 20 βήματα (με εικόνες)
Πώς να φτιάξετε το FUZZ Guitar Effect From Aliexpress DIY Kit: Πήρα το αποτέλεσμα της ηλεκτρικής κιθάρας DIY Fuzz από το AliExpress και υπήρχαν τόσο μέτριες πληροφορίες που αποφάσισα να κάνω ένα Instructables σε άλλους, λιγότερο έμπειρους χρήστες ή αγοραστές. Αυτό λοιπόν είναι
Θήκη εφέ κιθάρας βαλβίδας και τροφοδοτικό: 7 βήματα (με εικόνες)
Θήκη εφέ κιθάρας βαλβίδας και τροφοδοτικό: Αυτό θα είναι πηγή ενέργειας και πλαίσιο για πεντάλ εφέ κιθάρας με βάση βαλβίδα. Το κατάλαβα καθώς προχωρούσα, οπότε η εξέλιξη που θα δείξω δεν ήταν απαραίτητα η σειρά που πήρα-αυτό που ακολουθεί είναι μια εξιδανικευμένη διαδρομή, ανακατασκευασμένη και απροσδιόριστη