Come creare musica con unità floppy e LabVIEW

Panoramica del progetto

Qualche disco floppy vecchio stile è in giro? Ottieni l'hacking … e trasformali in un'orchestra elettronica!

Questo progetto utilizza un controller embedded myRIO e quattro unità disco floppy. MyRIO riproduce efficacemente le unità disco come gli strumenti musicali, facendo avanzare i motori integrati del disco rigido a frequenze specifiche.

Facendo riferimento a questa tabella, ho sviluppato un LabVIEW VI (che gira sul processore in tempo reale myRIO) che converte un musical nota (come un C4) in una frequenza d'onda. Ad esempio, la nota C4 sarebbe una frequenza di 261,63 Hz. Questo valore di frequenza viene quindi passato al FPGA on-board myRIOs, che genera un treno di impulsi digitale usato per controllare i motori di azionamento del floppy. Per generare il treno di impulsi, ho usato LabVIEW per creare una semplice personalità FPGA che inverte il vero / falso digitale all'interno di un ciclo, ma ho impostato dinamicamente il tempo del ciclo per essere la metà del periodo del valore di frequenza richiesto.

Nota: il il periodo deve essere dimezzato, perché un ciclo del ciclo sarebbe vero e il ciclo successivo sarebbe falso. Pertanto, due cicli di loop è uguale a un periodo d'onda. Vedere la formula seguente.

Il prossimo compito è cambiare la direzione del motore quando la testina di lettura dell'unità floppy raggiunge la fine o l'inizio del disco. Per garantire che myRIO non provi mai a pilotare la testina di lettura oltre l'inizio / la fine del disco, ho implementato un contatore personalizzato sull'FPGA, per monitorare costantemente la posizione della testina di lettura e invertire la sua direzione come appropriato.

A un po 'di storia antica … i floppy disk sono fatti da un sottile pezzo di plastica rivestito con un materiale ferromagnetico, che è magnetizzato per conservare i dati. Più specificamente, il disco è diviso in 80 tracce di dati disposte in cerchi concentrici, come gli anelli su un albero.

Pertanto i motori integrati dell'unità floppy sono progettati per eseguire la lettura testa attraverso ognuna di queste 80 tracce. Usando queste informazioni, ho creato un contatore personalizzato su myRIO FPGA per garantire che la direzione del motore cambiasse quando raggiungeva l'inizio o la fine del disco. Quindi, per i valori 0-79 la testina di lettura andrà avanti (scrivendo un vero digitale sulla linea di direzione del lettore floppy), quindi per 80-159 la testina di lettura tornerà indietro (un falso digitale alla linea di direzione). [19659013] Come creare musica con unità floppy e LabVIEW ” width=”532″ height=”532″ style=”max-width:532px;height:auto;”>

Infine, dopo che il myRIO ha finito di suonare una canzone, la testina di lettura deve tornare nella posizione iniziale, riportando indietro i restanti passaggi del motore. Questo può essere fatto semplicemente usando il contatore personalizzato che è già stato creato.

Questa configurazione viene quindi duplicata per quante unità devi collegare a myRIO. La possibilità di creare / duplicare molte attività parallele è uno dei principali vantaggi di un FPGA.

Ora che le unità posso inviare una frequenza tonale e produrre una nota musicale, la parte successiva del progetto è stata quella di insegnare a myRIO alcune spartiti musicali! Per fare questo, ho scelto di usare i file MIDI. Per citare Wikipedia: "Un file MIDI non è una registrazione di musica reale, piuttosto è un set di istruzioni simile a un foglio di calcolo."

Un file MIDI ha fino a 15 tracce di messaggi, ognuno dei quali rappresenta uno strumento separato all'interno del canzone (per esempio pianoforte, synth, chitarra, basso, ecc.). Ogni messaggio MIDI include il numero del canale, la nota da suonare, l'ora di inizio della nota e la durata della nota. Questi messaggi possono quindi essere trasformati in array di note per ogni canale sul processore in tempo reale myRIOs, che può quindi essere passato all'Fpga.

I requisiti di cablaggio di myFloppyDriveQuartet sono piuttosto semplici, poiché ogni unità richiede solo due linee digitali- uno per il passo e uno per la direzione. È inoltre necessario cortocircuitare i pin di selezione dell'unità e collegare nuovamente i pin di messa a terra a DIO di myRIO.

Ogni unità avrà bisogno anche di 6 volt per l'alimentazione.

Ora che il software embedded (sia in tempo reale che FPGA) è sviluppato e l'hardware è cablato, c'è un ultimo pezzo del puzzle … la GUI (interfaccia utente grafica). Per controllare myFloppyDriveQuartet (selezionare la traccia musicale, avviare / arrestare le unità floppy, trasporre note musicali ecc.), Ho creato due opzioni di interfaccia utente.

Interfaccia PC / Laptop: un semplice LabVIEW VI che comunica i dati da un pannello frontale a una libreria di variabili condivise pubblicate dalla rete ospitate sull'interfaccia Tablet myRIO

: ho creato una GUI portatile per l'utilizzo con tablet Apple iPad e Android, utilizzando l'app gratuita NI Data Dashboard. Questo era un processo molto semplice che non richiedeva alcuna programmazione come mai. Poiché la GUI di Data Dashboard si collega alle stesse variabili condivise pubblicate in rete, è possibile utilizzare la GUI di PC o Tablet senza modificare il codice in esecuzione su myRIO.

Passi per implementare o eseguire codice

  • Scaricare il codice sorgente dalla pagina Community NI e collegare le unità (come descritto sopra).
  • Connetti myRIO al computer e alimentazione.
  • Esegui RT VI. [19659027] Esegui il tubo flessibile.
  • Scegli un brano e fai clic su Riproduci.
  • Una volta che funziona, puoi trasformarlo in VI di avvio e utilizzare l'app DataDashboard per selezionare la musica senza un computer collegato. [19659032] Requisiti

    Software:

    • LabVIEW per myRIO 2014
    • Data Dashboard (opzionale)

    Hardware:

    • myRIO
    • Unità floppy (più sono e meglio)
    • A 6V alimentazione per le unità (1 amplificatore per ogni unità)

    Risorse utili

    • Ulteriori informazioni su myRIO
    • Giù carica la guida myRIO Project Essentials
    • Richiedi un'unità di valutazione myRIO
    • Guida introduttiva con Data Dashboard
    • Esercitazione: integrazione di Data Dashboard nelle applicazioni LabVIEW

    Un po 'sullo sviluppatore

    Mi chiamo James Willis . Sono uno studente dell'Università di Cardiff che studia ingegneria elettrica ed elettronica, attualmente nel mio anno di tirocinio lavorando come ingegnere delle applicazioni presso National Instruments. Se sei interessato a fare un posizionamento su NI, dai un'occhiata a questa pagina.