Cuprins:

Muzica osciloscopului: 7 pași
Muzica osciloscopului: 7 pași

Video: Muzica osciloscopului: 7 pași

Video: Muzica osciloscopului: 7 pași
Video: Skip a Beat (Oscilloscope Music) 2024, Noiembrie
Anonim
Image
Image
fundal
fundal

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 originală
Ideea originală
Ideea originală
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

Probleme întâlnite
Probleme întâlnite
Probleme întâlnite
Probleme întâlnite
Probleme întâlnite
Probleme întâlnite

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

Soluţie
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

Detectarea muchiilor și programul Matlab
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

Exemplu: Robot instruibil
Exemplu: Robot instruibil
Exemplu: Robot instruibil
Exemplu: Robot instruibil
Exemplu: Robot instruibil
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: