Cuprins:
- Pasul 1: fundal
- Pasul 2: Ideea originală
- Pasul 3: Probleme întâmpinate
- Pasul 4: Soluție
- Pasul 5: Detectarea muchiilor și programul Matlab
- Pasul 6: Exemplu: Robot instruibil
- Pasul 7: Depanare / Exemplu de fișiere
Video: Muzica osciloscopului: 7 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:43
Introducere: Acest instructabil trebuie să îndeplinească o cerință pentru partea de documentare a proiectului de interfață cu microcomputer la Universitatea de Stat din Utah.
Pasul 1: fundal
Fundal:
Un osciloscop este utilizat pentru a afișa și măsura un semnal de tensiune care este trasat în funcție de timp. Un osciloscop în modul XY trasează un semnal împotriva unui alt semnal, cum ar fi o ecuație parametrică. Acest proiect folosește un osciloscop în modul XY pentru a afișa imaginile produse de un fișier de sunet.
Pasul 2: Ideea originală
Ideea inițială a proiectului a fost aceea de a converti un televizor vechi cu tuburi cu raze catodice (CRT) într-un osciloscop XY și de a-l utiliza pentru a afișa imaginile. Acest lucru se poate face prin deconectarea bobinelor de deviere. Când deconectați bobinele orizontale apare o linie verticală, iar când deconectați bobina verticală, apare o linie orizontală. Tot ce trebuia să fac era să conectez sursa audio la bobinele de deviere și aș avea un osciloscop XY. Din păcate, am întâmpinat mai multe probleme.
Pasul 3: Probleme întâmpinate
Una dintre problemele întâmpinate de mine a fost caracteristicile de siguranță. Televizorul a reușit să detecteze că bobinele de deviere au fost deconectate și nu s-ar fi aprins. Acest lucru este pentru a preveni fasciculul de electroni să ardă o gaură în fosforul de pe ecran. Am măsurat rezistența bobinelor și am plasat un rezistor peste el. Rezistența a ars imediat în jumătate din cauza tensiunilor ridicate. Am încercat din nou folosind un rezistor cu o valoare mai mare, dar nici asta nu a funcționat. Am citit câteva forumuri online despre modul în care un alt set de bobine de deviere ar putea fi conectat la televizorul original, așa că am găsit un alt televizor și am conectat bobina de deflexiune la a mea. Impedanța nu a fost aceeași, așa că nu a pornit. După mai multe cercetări, am constatat că televizoarele mai vechi nu aveau caracteristica de siguranță și nu le păsa dacă bobinele de deviere au fost deconectate. Am putut găsi un televizor produs în 2000 care părea să funcționeze. Am putut obține niște forme simple pe ecran, dar orice lucru mai complicat decât un cerc ar fi puternic distorsionat. În cele din urmă, acest televizor a încetat să funcționeze și a continuat să sufle siguranțe.
Am reușit să găsesc un mic televizor realizat în 1994. Acest televizor a funcționat destul de bine, dar nu am reușit să obțin orientarea corectă a imaginii, chiar și atunci când am schimbat semnalele în fiecare combinație. De asemenea, avea aceleași probleme ca și celelalte televizoare și nu ar produce imagini complicate. După multe cercetări, am aflat că problema era că încercam să produc o imagine vectorială pe un ecran raster. Un afișaj raster este un ecran care scanează orizontal foarte repede și apoi pe verticală la un ritm mai lent. Un afișaj vectorial folosește linii pentru a produce imagini. Am găsit tutoriale despre cum să convertesc un afișaj raster într-un afișaj vector, dar procesul a fost periculos și ar dura mult timp.
Pasul 4: Soluție
După toate aceste probleme, am putut găsi o soluție destul de simplă; un program de emulator de osciloscop XY care a luat audio ca intrare. Odată ce am găsit acest program, am trecut de la concentrarea pe crearea unui osciloscop la crearea unui mod de a produce un fișier audio dintr-o imagine pentru a fi afișat pe un osciloscop.
Emulator de osciloscop
Pasul 5: Detectarea muchiilor și programul Matlab
Iată o schemă de bază a programului meu. Începe cu o imagine care este încărcată în programul EdgeDetect.m MATLAB. Acest program îl convertește într-o imagine la scară de gri și apoi detectează marginile din imagine. Coordonatele XY ale marginilor detectate sunt plasate în două matrice care sunt convertite într-un fișier de sunet.
Pasul 6: Exemplu: Robot instruibil
Iată un exemplu al procesului cu robotul instructabile. Mai întâi descărcați o imagine a robotului instructables și salvați-o ca „image.png” în folderul de lucru MATLAB (același loc cu „EdgeDetect.m”). Asigurați-vă că imaginea nu are nimic din ceea ce doriți să fie detectat sau ar putea adăuga o grămadă de coordonate inutile în fișierul dvs. de sunet. Rulați programul EdgeDetect, iar imaginea va fi convertită la scară de gri și va avea marginile detectate și stocate ca un fișier de sunet numit „vector.wav”. Apoi deschideți fișierul de sunet în Audacity sau alt program de editare a sunetului. Deschideți programul emulator de osciloscop (link în pasul anterior), setați rata de eșantionare la 192000 Hz, apăsați Start, faceți clic pe butonul microfon și selectați linia în opțiune. În Audacity apăsați „Shift + bara de spațiu” pentru a reda fișierul audio într-o buclă. Imaginea ar trebui să apară pe emulatorul osciloscopului.
Pasul 7: Depanare / Exemplu de fișiere
Pe măsură ce am dezvoltat acest program, a trebuit să ajustez unele setări din program. Iată câteva lucruri de verificat dacă nu funcționează:
-Asigurați-vă că ieșirea audio este introdusă în linia dvs. de pe computer și că aveți 2 canale audio separate (stânga și dreapta)
-Dacă imaginea nu este citită de programul MATLAB, poate fi necesar să o editați în vopsea și să o salvați ca un alt format.
-În linia 61 a codului, asigurați-vă că includeți numerele de pe ecranul de detectare a marginilor. Programul pune de obicei un dreptunghi în jurul întregului lucru pe care îl puteți tăia schimbându-l de la „i = 1: lungime (B)” la „i = 2: lungime (B)”. De asemenea, dacă aveți numere specifice pe care doriți să le includeți, dar nu doriți să le includeți pe toate, puteți utiliza paranteze pătrate pentru a obține numere specifice: "[1 3 6 10 15 17]"
-Dacă imaginea arată tremurată și piesele sunt peste tot, poate fi necesar să reduceți numărul de probe prin ajustarea „N” pe linia 76. Cu cât imaginea este mai simplă, cu atât poate fi mai mic N, dar ar trebui să fie mai mare dacă imaginea este complex. Pentru robot am folosit N = 5.
-Puteți regla, de asemenea, „Fs” pe linia 86. Cu cât rata de eșantionare este mai mare, cu atât imaginea va arăta mai bine, dar unele plăci de sunet nu vor putea gestiona rate de eșantionare mai mari. Melodiile moderne au o rată de eșantionare de aproximativ 320000 Hz.
Recomandat:
Spectacol de lumină de Crăciun sincronizat cu muzica !: 4 pași
Spectacol de lumină de Crăciun sincronizat cu muzica !: În acest instructable, vă voi arăta cum să faceți un spectacol de lumină de Crăciun sincronizat cu muzică de Crăciun folosind pixeli RGB. Nu lăsați acest nume să vă sperie! Nu este prea greu să înveți cum să faci asta. Cu toate acestea, vă voi avertiza că acest lucru poate fi destul de
JUCĂTOR DE MUZICĂ DE BUZUNĂ: 6 pași
PLAYER MUSIC PLAYER: În acest instructable veți învăța cum să vă creați propriul player de muzică de buzunar DIY cu pause play skip și puteți alte caracteristici folosind arduino pro mini sau arduino nano
Muzică-muzică cu Arduino: 7 pași
Muscle-Music With Arduino: Bună ziua tuturor, acesta este primul meu Instructables, acest proiect a fost inspirat după ce am vizionat reclama video Old Spice Muscle Music, unde putem urmări cum Terry Crews cântă diferite instrumente cu semnale EMG
Lumina reactivă pentru muzică -- Cum să faci lumină reactivă pentru muzică super simplă pentru a face desktop-ul grozav .: 5 pași (cu imagini)
Muzică lumină reactivă || Cum să facem muzică super simplă lumină reactivă pentru a face desktopul grozav. basul care este de fapt semnal audio de joasă frecvență. Este foarte simplu de construit. Vom
Afișaj Arduino XY pe ecranul osciloscopului: 7 pași (cu imagini)
Afișaj Arduino XY pe un ecran de osciloscop: De-a lungul anilor am luat adesea un osciloscop care afișează siglele și textul folosind modul x y la evenimentele la care Makerspace a ajutat. În mod normal, conduceți-l folosind pinii PWM pe un Ardiuno și un circuit RC pentru a netezi jitterul. Câteva da