Sisukord:
2025 Autor: John Day | [email protected]. Viimati modifitseeritud: 2025-01-23 14:40
See on minu esimene juhendatav, nii et olge minuga.
Mulle meeldib muusikat teha ja sellistes reaalajas olukordades nagu elutoa kontserdid meeldib mulle, kui mängitavaga sünkroonis on valgusefektid. Nii ehitasin ma Arduino-põhise kasti, mis paneb LED-riba heledama juhusliku värviga, kui taban oma MIDI-klaviatuuri noodi ja kus ma noodi taban.
Tarvikud
- Arduino Uno
- Arduino protoshield
- MIDI pesa
- Diood 1N4148
- 6N138 optiline sidur
- takistid: 2x 220 Ohm, 1x 10kOhm, 1x 470Ohm
- WS2812B LED -riba (60 LED -i)
- mõned juhtmete jäägid
- termokahanevad torud
- sobiv korpus Arduino jaoks (ma kasutan plastikust jaotuskarpi)
Teil on ka vaja
- jootekolb ja jootekolb
- MIDI -klaviatuur ja MIDI -kaabel
Samm: elektroonika
Ahel on üsna lihtne. See koosneb tavalisest MIDI -sisendist (Arduino vasakul) ja ühendusest LED -ribaga (Arduino paremal). Asetage kõik osad protoshieldile, seal on palju ruumi. Üldiselt soovitatakse LED -riba toiteks kasutada välist toiteallikat, kuid leidsin, et mängides põlevad korraga vaid mõned LED -id, seega Arduino +5V / GND kasutamisel väljundina pole probleeme. (Püüdke vältida kõigi klahvide üheaegset ja täie kiirusega vajutamist.;-)) Kui otsustate kasutada välist toiteallikat, ühendage see lihtsalt Arduino +5V ja GND kontaktidega. Mõned inimesed soovitavad nende kahe rea vahele sisestada 100uF kondensaatori (pole skemaatiliselt näidatud).
Jootke osad protoshieldi külge ja ühendage LED -riba, nagu on näidatud skemaatiliselt.
Samm: LED -riba ühendamine
Oluline on ühendada ahelaga LED -riba parem ots - sisendots. Minu ribal on sisendina naissoost pistik ja sellel on väikesed kolmnurgad, mis on suunatud sisendist eemale. Väljundis oli isane pistik (et saaksime selle ühendada teise ribaga, mida me ei vaja), nii et katkestasin selle ja jootsin selle kolme Arduino kaabli külge. Siduge kolm kaablit LED -riba külge ja vähendage nende nähtavust termokahanevate torude abil.
Minu kasutatud LED -riba tagaküljel on kleeplint, nii et seda saab kergesti liimida MIDI -klaviatuuri tagaküljele.
3. samm: projekti kohandamine oma klaviatuuriga
Võimalik, et peate LED -riba ja Arduino koodi oma klaviatuuriga kohandama. Minul on 76 klahvi ja riba pikkus on peaaegu täpselt klaviatuuri laius. Kui teil on nt. 61 klahvi, võib vaja minna lühemat riba. LED -riba saab lõigata kahe LED -i vahele. Lihtsalt veenduge, et lõikate õige osa ära, sellel on sisendots (naissoost pistikuga) ja väljundots (meessoost pistikuga), peate sisendotsa alles hoidma. Muutke koodis #defines eest
- NUMBER_OF_LEDS pärast riba lõppu jäänud ribade LED -ide arvu,
- NUMBER_OF_KEYS klaviatuuri klahvide arvule ja
- MIN_KEY madalaima võtme MIDI pigi numbrile. Selle leiate klaviatuuri kasutusjuhendist; või kasutage tööriista, mis kuvab MIDI märkme numbri, näiteks KMidiMon Linuxi jaoks või Pocket MIDI Windowsi või Maci jaoks; või proovige erinevaid väärtusi, kuni seade reageerib kõigile teie klaviatuuri klahvidele
Samm: Arduino kood
Arduino kood kasutab Forty Seven Effectsi MIDI raamatukogu (v4.3.1) ja Adafruit NeoPixeli raamatukogu (v1.3.4). Installige need teegid Arduino IDE abil. Seejärel koostage kood ja laadige see Arduinosse ilma kilpi ühendamata (optron on ühendatud RX -pistikuga, mis takistab üleslaadimist). Lülitage Arduino sisse USB -kaabli kaudu (ma kasutan USB -seintüügast).
Kui soovite koodi oma maitse järgi muuta, siis siin on lühike ülevaade selle toimimisest: igas silmus loetakse ette MIDI sisend. Kui on saabunud sündmus Note On või Note Off, kutsutakse üles funktsioonid MyHandleNoteOn või MyHandleNoteOff. Mõlemad kutsuvad funktsiooni updateVelocityArray, mis salvestab võtme numbri kiiruse (st kui kõvasti olete klahvi vajutanud). Kui kiirus on suurem kui varem salvestatud, määratakse vastava LED -i värviks "praegune värv". Pärast MIDI sündmuste käsitlemist kutsutakse üles funktsioon updateLedArray. See värskendab "praegust värvi" (mille punased, rohelised ja sinised väärtused muutuvad lineaarselt sõltumatult, kuni saavutatakse alumine või ülemine ots, mille juures lineaarse muutuse kiirus on seatud juhuslikule numbrile), vähendab aeglaselt pressitud nootide kiirust ja värskendab iga LED -i värviväärtusi, mis peavad värvi muutma (uue noodi tabamise või kiiruse vähenemise tõttu). Funktsioon showLedArray kannab värvid üle Adafruit_NeoPixeli struktuurile, mida nimetatakse piksliteks, ja paneb tegelikud LED -id näitama pikslite struktuuri värve.
Samm: võimalikud täiustused…
Projekt pole kunagi lõppenud. Selle parandamiseks saab alati midagi teha:
- Protoshield sisaldab nii vähe osi, et see on tõesti raiskamine; sama efekti oleks lihtne saavutada Arduino Nano ja 15x7 auguga PCB ning mõne naissoost tihvtiga.
- Mõned MIDI -signaalid lähevad kaduma. Kui see on NoteOn, siis vastav LED ei sütti; kui see on NoteOff, siis see ei kustu (sellepärast võtsin kasutusele kiiruse vähendamise, mis tagab, et LED -id ei jää lõputult põlema). Püüan ikka põhjuse välja selgitada. Võimalik, et see on ajastusprobleem ja MIDI.read () tuleks helistada sagedamini.
- Mõnda MIDI -signaali loetakse valesti, s.t põlevad valed LED -id. Võib ühendada ülaltoodud punktiga. Vajab uurimist.
- Vooluahel on loodud andma meeldiva visuaalse efekti ilma kasutaja sekkumiseta (peale klaviatuuri mängimise). Kuid ma võiksin ette kujutada lisatud potentsiomeetri lisamist (kasutades ühte Arduino analoogsisendit), millega saate muuta värvide muutumise maksimaalset kiirust (praegu #define'd kui MAX_COLOR_CHANGE_SPEED = 20). Või mõõtke kahe NoteOn -sündmuse vahelist keskmist aega ja muutke vastavalt MAX_COLOR_CHANGE_SPEED - aeglaste lugude puhul peaks värv muutuma aeglasemalt.
6. samm: valmis
Lülitage Arduino sisse USB -kaabli kaudu (ma kasutan USB -seintüügast). Ühendage oma MIDI -klaviatuur MIDI -pesaga ja hakake rokkima. Vaadake, kuidas ma mängin veidi kerget muusikat (sõnamäng, nii halb kui see ka pole, mõeldud).
Soovitan:
Klaasist kivist LED -toru (WiFi kaudu juhitav nutitelefonirakenduse kaudu): 6 sammu (koos piltidega)
Klaasist kivist LED-toru (WiFi kaudu juhitav nutitelefonirakenduse kaudu): Tere kaastegijad! Selles juhendatavas näitan teile, kuidas ehitada WiFi-juhitav LED-toru, mis on klaasikividega täidetud, et saada kena difusiooniefekt. Valgusdioodid on individuaalselt adresseeritavad ja seetõttu on mõned head efektid võimalikud
Google'i assistendi juhitav LED -maatriks!: 7 sammu (koos piltidega)
Google'i assistendi juhitav LED -maatriks!: Selles õpetuses näitan teile, kuidas saate teha Google'i assistendi juhitavat LED -maatriksit, mida saate nutitelefoni abil igal pool vormi juhtida. Nii et alustame
Bluetooth nutitelefoniga juhitav nutikas LED-lamp: 7 sammu
Bluetooth nutitelefoniga juhitav nutikas LED-lamp: unistan alati oma valgustite juhtimisest. Siis tegi keegi uskumatult värvilise LED -lambi. Sattusin hiljuti Youtube'is kokku Joseph Casha LED -lambiga. Sellest inspireerituna otsustasin lisada mitmeid funktsioone, säilitades samal ajal
Kamina valgusefekt: 4 sammu
Kamina valgusefekt: kas pole pärast pikka ja külma talvepäeva mõnus oma maja soojuses oma kamina ees istuda? Enamikul inimestel pole tegelikult kaminat, kuid isegi nägemine või leekide valgus võivad teid ja teie külma südant soojendada. Kui otsite
Roheline LED -lamp (juhitav vilkuva LED -iga): 9 sammu
Roheline LED -lamp (juhitav vilkuva LED -iga): paar aastat tagasi lugesin artiklit arengumaade valgustuse kohta, kus öeldi, et 1,6 miljardil inimesel puudub juurdepääs elektrienergiale ja usaldusväärne valgusallikas on nende jaoks SUUR probleem. Üks Kanada ettevõte toodab ja turustab lightinâ € ¦