Πίνακας περιεχομένων:
- Προμήθειες
- Βήμα 1: Βήμα 1: Λογισμικό
- Βήμα 2: Βήμα 2: Υλικό
- Βήμα 3: Βήμα 3: Κωδικός
- Βήμα 4: Βήμα 4: Συνδέστε το και δοκιμάστε το
Βίντεο: Weather Based Music Generator (ESP8266 Based Midi Generator): 4 βήματα (με εικόνες)
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:34
Γεια σας, σήμερα θα σας εξηγήσω πώς να φτιάξετε τη δική σας μικρή γεννήτρια Μουσικής βασισμένη στον καιρό.
Βασίζεται σε ένα ESP8266, το οποίο είναι σαν το Arduino και ανταποκρίνεται στη θερμοκρασία, τη βροχή και την ένταση του φωτός.
Μην περιμένετε να κάνει ολόκληρα τραγούδια ή προχωρήσεις χορδών. Μοιάζει περισσότερο με τους Generative Music που κάνουν μερικές φορές οι άνθρωποι με Modular Synthesizer. Αλλά είναι λίγο λιγότερο τυχαίο από αυτό, κολλάει σε ορισμένες κλίμακες για παράδειγμα.
Προμήθειες
ESP8266 (Χρησιμοποιώ το Feather Huzzah ESP8266 από το Adafruit)
BME280 Αισθητήρας θερμοκρασίας, υγρασίας και βαρομετρικής πίεσης (η έκδοση I2C)
Αισθητήρας βροχής Arduino
25K LDR (Αντίσταση εξαρτώμενη από το φως)
Μερικές αντιστάσεις (δύο 47, μία 100, μία 220 και μία 1k Ohm)
Θηλυκός συνδετήρας Midi (5 Pin Din) κατάλληλος για τοποθέτηση PCB
Jumper Wires
Breadboard ή κάποιο είδος πρωτοτύπου
Υπολογιστής, θα χρησιμοποιήσω ένα με Windows 8.1, αλλά θα πρέπει να λειτουργεί σε οποιοδήποτε λειτουργικό σύστημα από όσο γνωρίζω.
Προαιρετικά: Μπαταρία LiPo 1250 mAh με υποδοχή JST από την Adafruit (συμβατή μόνο με ορισμένα ESP)
Βήμα 1: Βήμα 1: Λογισμικό
Πρώτα απ 'όλα χρειάζεστε το Arduino IDE.
Στη συνέχεια, χρειάζεστε το πρόγραμμα οδήγησης SiLabs CP2104 και το πακέτο πλακέτας ESP8266.
Αυτό επιτρέπει στον υπολογιστή σας να προγραμματίσει το ESP μέσω του ενσωματωμένου UART και επιτρέπει στο Arduino IDE να προγραμματίσει το ESP.
Μπορείτε να βρείτε όλες τις πληροφορίες σχετικά με το πακέτο IDE, Driver and Board σε αυτήν τη σελίδα στον ιστότοπο του Adafruit.
Θα χρειαστείτε επίσης τη Arduino Midi Library για να μπορέσετε να στείλετε δεδομένα Midi. Μπορεί να γίνει χωρίς, αλλά αυτό απλώς κάνει τα πάντα πολύ πιο εύκολα.
Για να επικοινωνήσω με το BME280 χρησιμοποίησα αυτήν τη βιβλιοθήκη BME280-I2C-ESP32. (Αυτό ισχύει για την έκδοση I2C του BME280)
Και αυτή η βιβλιοθήκη με τη σειρά της απαιτεί Adafruit Unified Sensor Driver. Δεν είναι η πρώτη φορά που χρειάζομαι αυτήν τη βιβλιοθήκη για να χρησιμοποιήσω μια διαφορετική βιβλιοθήκη χωρίς προβλήματα, οπότε πάντα έχω αυτή τη Βιβλιοθήκη σελιδοδείκτη κάπου.
Βήμα 2: Βήμα 2: Υλικό
Εντάξει, φτάνουμε επιτέλους στα καλά πράγματα, το υλικό.
Όπως αναφέρθηκε, χρησιμοποίησα αυτό το Adafruit ESP, αλλά θα πρέπει να λειτουργεί καλά με ένα NodeMCU. Προτείνω την έκδοση V2 καθώς πιστεύω ότι ταιριάζει πολύ καλύτερα σε ένα breadboard και μπορείτε να τα πάρετε πολύ φθηνά από το eBay ή το AliExpress. Μου αρέσει το γεγονός ότι το Adafruit ESP έχει ταχύτερη CPU, έρχεται με θηλυκό JST βύσμα για LiPo και κύκλωμα φόρτισης. Είναι επίσης λίγο πιο εύκολο να καταλάβετε τι Pin χρησιμοποιείτε. Πιστεύω ότι σε ένα NodeMCU η καρφίτσα με την ετικέτα D1 είναι στην πραγματικότητα GPIO5, οπότε χρειάζεστε πάντα ένα διάγραμμα Pinout χρήσιμο. Δεν είναι καθόλου μεγάλο ζήτημα, αλλά απλώς βολικό για αρχάριους χαρακτήρισαν τόσο καθαρά το Adafruit.
Αρχικά ας συνδέσουμε το BME280, γιατί υπάρχουν κάποιες παραλλαγές σε αυτό το μοντέλο. Όπως μπορείτε να δείτε από τις εικόνες, το δικό μου έχει τη μεγάλη τρύπα, αλλά υπάρχουν και μερικές με 2 τρύπες. Μπορείτε να δείτε ότι έχει 4 εισόδους και εξόδους, 1 για ισχύ, μία για γείωση και SCL και SDA. Αυτό σημαίνει ότι επικοινωνεί μέσω I2C. Πιστεύω ότι άλλα μοντέλα επικοινωνούν μέσω SPI. Και σε μερικά μπορείτε να επιλέξετε είτε SPI είτε I2C. Το SPI μπορεί να απαιτεί διαφορετική Βιβλιοθήκη ή τουλάχιστον διαφορετικό κώδικα και διαφορετική καλωδίωση. Πιστεύω επίσης ότι το S in SPI σημαίνει Serial και δεν μπορώ να πω αν αυτό θα επηρεάσει το τμήμα Midi αυτού του έργου, καθώς λειτουργεί επίσης μέσω σειριακής σύνδεσης.
Η σύνδεση αυτού του BME είναι αρκετά απλή. Στο ESP8266 μπορείτε να δείτε τα pin 4 και 5 να φέρουν ετικέτα SDA και SCL αντίστοιχα. Απλώς συνδέστε αυτές τις ακίδες απευθείας στον πείρο SDA και SCL στο BME. Φυσικά, συνδέστε επίσης το VIN στο Positive Rail of the Breadboard και το GND στο Negative Rail. Αυτά με τη σειρά τους συνδέονται με τον ακροδέκτη 3V3 και GND του ESP.
Στη συνέχεια θα συνδέσουμε το LDR. Στο παράδειγμα Fritzing μπορείτε να δείτε τα 3,3 βολτ να περνούν από μια αντίσταση, στη συνέχεια να χωρίζεται στο LDR και σε άλλη αντίσταση. Στη συνέχεια, μετά το LDR, χωρίζεται ξανά σε αντίσταση και σε ADC.
Αυτό γίνεται για να προστατεύσει το ESP από πολύ υψηλές τάσεις και για να βεβαιωθείτε ότι παίρνει αναγνώσιμες τιμές. Το ADC μπορεί να χειριστεί 0-1 Volts, αλλά το 3V3 αποδίδει 3,3 volt. Πιθανότατα δεν θα ανατινάξει τίποτα αν πάτε πάνω από 1 βολτ, αλλά δεν θα λειτουργήσει καλά.
Έτσι, πρώτα χρησιμοποιούμε έναν διαχωριστή τάσης χρησιμοποιώντας αντιστάσεις 220 και 100 ohm για να μειώσουμε την τάση από 3,3 σε 1,031 βολτ. Στη συνέχεια, το LDR 25k ohm και η αντίσταση 1k ohm σχηματίζουν ένα άλλο Voltage Devider που μειώνει την τάση από οπουδήποτε μεταξύ 1.031 και 0 volts, ανάλογα με την ποσότητα φωτός που λαμβάνει το LDR.
Στη συνέχεια, έχουμε τον αισθητήρα βροχής. Το ένα μέρος λέει FC-37, το άλλο μέρος λέει HW-103. Αγόρασα μόλις το πρώτο που βρήκα στο Ebay που έλεγε ότι μπορεί να χειριστεί 3,3 á και 5 βολτ. (Νομίζω ότι μπορούν όλοι).
Αυτό είναι αρκετά απλό, θα μπορούσαμε να χρησιμοποιήσουμε μια αναλογική έξοδο, αλλά μπορούμε απλά να γυρίσουμε το μικροσκοπικό Trimpot για να κάνουμε τον αισθητήρα να είναι τόσο ευαίσθητος όσο θέλουμε (και χρησιμοποιήσαμε ήδη έναν αναλογικό μας πείρο στο ESP). Όπως και με τους άλλους αισθητήρες, πρέπει να τροφοδοτούμε την ισχύ από τη θετική ράγα και να τη συνδέουμε με τη ράγα εδάφους. Μερικές φορές η σειρά των ακίδων ποικίλλει όμως. Στο δικό μου είναι VCC, Ground, Digital, Analog, αλλά στην εικόνα Fritzing είναι διαφορετικό. Αλλά αν δώσετε μόνο προσοχή, αυτό θα πρέπει να είναι εύκολο να γίνει σωστό.
Και τέλος, το Midi Jack. Στο Breadboard μου δεν μπορεί να καθίσει στην άκρη του breadboard, καθώς οι καρφίτσες δεν ευθυγραμμίζονται όλες. Εάν αυτό σας ενοχλεί, θα προσπαθούσα να πάρω ένα breadboard σε ένα φυσικό κατάστημα. Or επιθεωρήστε τις εικόνες πολύ καλά.
Όπως μπορείτε να δείτε από το σχηματικό σχήμα, η θετική τάση και το σειριακό σήμα περνούν και τα δύο μέσω αντίστασης 47 ohm.
Αν κάνετε αυτό το έργο με Arduino Uno για παράδειγμα, βεβαιωθείτε ότι χρησιμοποιείτε αντιστάσεις 220 ohm !! Αυτά τα ESP λειτουργούν με λογική 3,3 V, αλλά τα περισσότερα Arduino χρησιμοποιούν 5,0 V, οπότε πρέπει να περιορίσετε περισσότερο το ρεύμα που περνάει από το καλώδιο Midi.
Και τέλος συνδέστε τον μεσαίο πείρο στη ράγα Ground. Οι άλλες 2 ακίδες από το 5 Pin Din δεν χρησιμοποιούνται.
Βήμα 3: Βήμα 3: Κωδικός
Και τελικά έχουμε τον κωδικό!
Σε αυτό το αρχείο Zip έβαλα 2 σκίτσα. Το "LightRainTemp" απλώς δοκιμάζει όλους τους αισθητήρες και στέλνει πίσω τις τιμές τους. (Βεβαιωθείτε ότι έχετε ανοίξει το τερματικό παράθυρο!)
Και φυσικά έχουμε το σκίτσο LRTGenerativeMidi (LRT σημαίνει Light, Rain, Temperature).
Μέσα μπορείτε να βρείτε μια δέσμη εξηγήσεων στα σχόλια για το τι συμβαίνει. Δεν πρόκειται να ασχοληθώ με το πώς έγραψα το όλο θέμα, αυτό θα χρειαζόταν ώρες. Αν θέλετε να μάθετε από πού να ξεκινήσετε με κάτι τέτοιο έχω στο μυαλό μου κάποια άλλα έργα. Μια μικρή γεννήτρια Random Riff με μερικά κουμπιά και ένα Sequencer με μια δέσμη χαρακτηριστικών που δεν μπορώ να βρω σε άλλα μοντέλα.
Αλλά αυτά που θα πρέπει πρώτα να ολοκληρώσω το σχεδιασμό και την κωδικοποίηση. Ενημερώστε με εάν θέλετε να είστε ενήμεροι για άλλα έργα. Δεν έχω αποφασίσει αν θα κάνω περισσότερες οδηγίες ή θα κάνω μια σειρά βίντεο.
Βήμα 4: Βήμα 4: Συνδέστε το και δοκιμάστε το
Και τώρα ήρθε η ώρα να το δοκιμάσετε!
Απλώς συνδέστε ένα καλώδιο Midi, βεβαιωθείτε ότι έχετε ρυθμίσει το Synth/Keyboard σας ώστε να ανταποκρίνεται στο κανάλι 1 ή αλλάξτε το κανάλι στον κώδικα Arduino και δείτε αν λειτουργεί!
Είμαι πραγματικά περίεργος να δω και να ακούσω τι κάνετε με αυτό. Εάν κάνετε αλλαγές, αναβαθμίσεις, τροποποιήσεις (όπως στον αισθητήρα φωτός και τις τιμές θερμοκρασίας. Εξωτερικά μπορεί να λειτουργήσει καλύτερα ή χειρότερα από ό, τι στο εσωτερικό) οτιδήποτε.
Είμαι επίσης περίεργος να δω αν λειτουργεί καλά με όλα τα Synthesizer. Στο Volca Bass μου λειτουργεί τέλεια, αλλά στο Neutron μου το LFO κολλάει μόλις στείλω ένα Midi Note. Είναι μια χαρά όταν το κάνω επανεκκίνηση, αλλά είναι περίεργο. Δεν είμαι σίγουρος αν υπάρχει κάτι στη βιβλιοθήκη Midi ή στον κωδικό μου, ίσως προσπαθήσω να το κάνω χωρίς βιβλιοθήκη σύντομα και να δω αν θα βελτιωθεί.
Ευχαριστώ για την ανάγνωση και την παρακολούθηση και καλή επιτυχία !!
Συνιστάται:
Alexa Based Voice Controlled Rocket Launcher: 9 βήματα (με εικόνες)
Alexa Based Voice Controlled Rocket Launcher: Καθώς πλησιάζει η χειμερινή περίοδος. έρχεται εκείνη την εποχή του χρόνου που γιορτάζεται το φεστιβάλ των φώτων. Ναι, μιλάμε για το Diwali που είναι ένα πραγματικό ινδικό φεστιβάλ που γιορτάζεται σε όλο τον κόσμο. Φέτος, το Diwali έχει ήδη τελειώσει και βλέπει ανθρώπους
Arduino based Egg Plotter: 17 βήματα (με εικόνες)
Arduino Based Egg Plotter: Ένα Egter plotter είναι ένα ρομπότ τέχνης που μπορεί να αντλήσει αντικείμενα σφαιρικού σχήματος όπως αυγά. Μπορείτε επίσης να χρησιμοποιήσετε αυτό το μηχάνημα για να σχεδιάσετε μπάλες πινγκ πονγκ και μπάλες γκολφ. Μπορείτε να χρησιμοποιήσετε τη φαντασία σας με τα σχέδια που του βάλατε, θα μπορούσατε για παράδειγμα να κάνετε
Χρησιμοποιήστε το Homie Firmware to Drive Sonoff Switch Module (ESP8266 Based): 5 βήματα (με εικόνες)
Χρήση υλικολογισμικού Homie to Drive Sonoff Switch Module (ESP8266 Based): Αυτό είναι ένα συνεχές εγχειρίδιο, το έγραψα λίγο μετά την " Δημιουργία συσκευών Homie για IoT ή οικιακό αυτοματισμό ". Το τελευταίο επικεντρώθηκε στη βασική παρακολούθηση (DHT22, DS18B20, φως) γύρω από τις πλακέτες D1 Mini. Αυτή τη φορά, θα ήθελα να δείξω
Υπερηχητικός μετρητής βροχής: Raspebbery Pi Open Weather Weather: Part 1: 6 Steps
Υπερηχητικός μετρητής βροχής: Raspebbery Pi Ανοιχτός μετεωρολογικός σταθμός: Μέρος 1: Διαθέσιμος εμπορικός IoT (Internet Of Things) Οι μετεωρολογικοί σταθμοί είναι ακριβοί και δεν είναι διαθέσιμοι παντού (όπως στη Νότια Αφρική). Οι ακραίες καιρικές συνθήκες μας χτυπούν. Η SA βιώνει τη σκληρότερη ξηρασία εδώ και δεκαετίες, η γη θερμαίνεται και καλλιεργείται
MIDI 5V LED Strip Light Controller for the Spielatron or Other MIDI Synth: 7 βήματα (με εικόνες)
MIDI 5V LED Strip Light Controller for the Spielatron or Other MIDI Synth: Αυτός ο ελεγκτής αναβοσβήνει με τρία χρώματα φώτα LED για 50mS ανά νότα. Μπλε για G5 έως D#6, κόκκινο για E6 έως B6 και πράσινο για C7 έως G7. Ο ελεγκτής είναι μια συσκευή ALSA MIDI, ώστε το λογισμικό MIDI να μπορεί να εξάγεται στις λυχνίες LED ταυτόχρονα με μια συνθετική συσκευή MIDI