Sommario:

Sonar MIDI "Theremin": 10 passaggi (con immagini)
Sonar MIDI "Theremin": 10 passaggi (con immagini)

Video: Sonar MIDI "Theremin": 10 passaggi (con immagini)

Video: Sonar MIDI
Video: Hardware Hacking a new musical instrument with an Arduino and an Electric Guitar 2024, Dicembre
Anonim
Sonar MIDI
Sonar MIDI

Questo è uno strumento musicale che utilizza due sensori di distanza sonar per controllare il tono e la qualità delle note. Ovviamente non è proprio un Theremin, ma "Theremin" è diventato il termine generico per gli strumenti suonati agitando le mani.

Ha un sintetizzatore MIDI integrato, amplificatore e altoparlanti. Le note musicali sono prodotte da un chip MIDI - il VS1053 - che ha 127 voci (ovvero strumenti presumibilmente diversi). Ha un alto grado di polifonia (fino a 64) quindi può suonare singole note o accordi.

La tua mano destra controlla la nota che viene suonata. In modalità "discreta" lo spazio a destra è suddiviso in "cestini". Quando la tua mano entra in un cestino, inizia la nota per quel cestino. Quando lasci il cestino, la nota potrebbe interrompersi (ad esempio un organo) o scomparire naturalmente (ad esempio un pianoforte).

In modalità "continua" lo spazio a destra determina un tono continuamente variabile - come il Theremin originale. La nota inizia quando la tua mano entra nello spazio e si ferma quando lasci lo spazio.

La tua mano sinistra controlla la qualità della nota suonata. Può controllare il volume, il tremolo, il vibrato, il pitch-bend, il riverbero, ecc.

Un piccolo schermo LCD ha un menu che consente di selezionare lo strumento corrente, la funzione della mano sinistra, la scala (o "chiave") della mano destra, vibrato, tremolo, ecc. È possibile salvare e caricare diversi "Setup" " e passa da uno all'altro rapidamente durante una performance.

L'intero strumento MIDI "Theremin" funziona autonomamente con il proprio altoparlante e batteria ricaricabile.

Se hai intenzione di copiare la mia build, avrai bisogno di un Arduino Nano (£ 1,50), un modulo VS1053 (£ 4,50), un display LCD ST7735 da 1,44 (£ 3,50), due moduli HC-SR04 (£ 1 ciascuno) e alcuni resistori. Avrai anche bisogno di alcuni altoparlanti amplificati e forse una cella al litio e un alimentatore, ma i dettagli dipenderanno da come deciderai di costruirlo. Ho preso tutti quegli extra dalle vendite di stivali di auto e dai negozi di beneficenza. Avrò bisogno della solita attrezzatura da officina elettronica.

Passaggio 1: controllo del VS1053

Controllo del VS1053
Controllo del VS1053
Controllo del VS1053
Controllo del VS1053

Ho scelto il modulo VS1053 mostrato nell'immagine. (Notare i due regolatori SOT223, le due prese jack e la posizione del connettore.) Cerca su eBay, Alibaba o il tuo fornitore preferito un modulo VS1053 che assomigli a questo. Sono disponibili da Aliexpress qui e qui.

L'ho comprato un paio di anni fa e non sembra più disponibile su eBay, solo su Alibaba. Una versione PCB rossa è ora disponibile su eBay. Sembra essere funzionalmente identico ma il pinout è diverso, quindi dovrai regolare i miei schemi e layout. Non l'ho testato. Nella discussione (sotto) puoi trovare le istruzioni su come aggiungere un resistore al PCB rosso per abilitare il MIDI "live". Oppure puoi inviare comandi aggiuntivi durante l'installazione per abilitarlo.

Il VS1053 è un buon chip ma piuttosto complicato. Sto usando solo la parte MIDI di esso. È possibile controllare il VS1053 su un'interfaccia seriale ma sto usando il bus SPI perché è più conveniente con un Arduino Nano. Qualsiasi byte inviato tramite il bus SPI viene trattato come un comando MIDI.

Troverai elenchi di comandi MIDI sul web. Il VS1053 risponde ad alcuni ma non a tutti. Il programma Miditheremin0.exe mostra quelli che so funzionare.

È possibile scaricare la scheda tecnica VS1053 dal web. È un documento enorme ed è difficile andare avanti. La sezione "8.9 Formati MIDI supportati" è quasi tutto ciò che dice sul MIDI. La sezione "10.10 Real-Time MIDI" parla dell'utilizzo di GPIO0 e GPIO1 per abilitare il MIDI ma la scheda che ho non ha richiesto alcuna abilitazione speciale. Potete anche scaricare un elenco di messaggi MIDI (non tutti supportati dal VS1053).

Collega il modulo VS1053 a un Arduino Nano come mostrato e carica il file INO su Arduino. Ho usato una breadboard senza saldatura. Non ho una foto in questa fase, ma puoi vedere la breadboard con altri componenti in un passaggio sottostante.

Lo sketch INO riceve un byte dal PC sulla linea seriale e invia il byte al VS1053. È un programma molto semplice che ti permette di testare il VS1053. Collegare la presa jack di uscita alle cuffie o all'altoparlante del computer.

Il programma Windows Miditheremin0.exe (scarica Step1.zip da github) invia comandi al VS1053. Fare clic sul pulsante "90 note vel" per riprodurre una nota. Oppure potresti scrivere il tuo programma Windows. Oppure usa uno dei tanti programmi terminali disponibili sul web.

Il modulo VS1053 ha i seguenti pin:

  • il bus SPI ha i soliti MISO, MOSI e SCLK
  • se XRST è basso, il chip si resetta
  • XDCS non fa nulla in modalità SPI, quindi collegalo a XCS
  • XCS è Chip Select
  • DREQ ti dice quando il chip è pronto per un nuovo comando.

XCS dovrebbe essere impostato su un valore basso mentre invii un byte; poi alto. In questo modo, sei sicuro di aver sincronizzato il primo bit di ogni byte. La lettura di DREQ ti dice che il chip è pronto per ricevere un nuovo comando.

Dopo che Arduino ha inviato un byte, deve inviare un byte fittizio in modo da commutare l'orologio e consentire al VS1053 di inviare un byte in risposta. La funzione SPItransfer() mostra come.

Il modulo rosso disponibile su eBay include uno slot per schede SD, quindi ha un paio di pin in più. Ignorali.

Ora sei sicuro di poter far funzionare il VS1053, lo trasformeremo in più di uno strumento musicale.

Passaggio 2: utilizzo dei sonar

Utilizzo dei sonar
Utilizzo dei sonar
Utilizzo dei sonar
Utilizzo dei sonar

Collega i moduli HC-SR04 ad Arduino Nano come mostrato e carica il file INO su Arduino.

Notare nello schema che DC3 - il condensatore di disaccoppiamento per i moduli HC-SR04 - deve essere collegato vicino ai moduli HC-SR04. Assorbono una certa corrente durante la trasmissione che DC3 aiuta a fornire.

In questa fase del progetto, il PC Windows invia ancora comandi al VS1053 ma il VS1053 è controllato anche dai sensori sonar HC-SR04 (scarica Step2.zip da github).

I nuovi comandi iniziano tutti con 0xFF e vengono interpretati dallo sketch di Arduino (piuttosto che essere inviati direttamente al VS1053). I byte non "FF-command" vengono inviati al VS1053.

Ci sono comandi per cambiare strumento, cambiare scala, aggiungere vibrato e tremolo, ecc. Il programma può essere eseguito in modalità "discreta" dove ci sono note separate (come un pianoforte) o in modalità "continua" dove una singola nota è piegato su e giù (come un theremin).

Fa abbastanza bene tutto ciò che farà lo strumento finale, ma è controllato da un PC.

Il sensore sonar HC-SR04 destro seleziona l'altezza della nota che viene suonata. In modalità "discreta" lo spazio a destra è suddiviso in "cestini". Quando la tua mano entra in un cestino, inizia la nota per quel cestino. Quando lasci il cestino, la nota potrebbe interrompersi (ad esempio un organo) o scomparire naturalmente (ad esempio un pianoforte). Quando la tua mano entra in un cestino, il cestino si espande leggermente in modo da non avere tremori sul bordo.

La funzione GetSonar() restituisce il tempo impiegato fino al primo eco. Ignora gli echi molto rapidi (durata < 10) che l'HC-SR04 a volte riporta. Se non è stata ricevuta alcuna eco da maxDuration, restituisce maxDuration. La durata non è misurata in nessuna unità particolare: è solo un numero.

In modalità Discreta, la durata viene prima filtrata per rimuovere interruzioni occasionali (quando non si riceve l'eco). Si presume che la mano sia presente solo dopo aver ricevuto 10 campioni di maxDuration. Quindi la durata viene filtrata utilizzando un filtro Mediano. I filtri mediani sono bravi a rimuovere il rumore "impulsivo" (cioè picchi occasionali). La durata filtrata viene utilizzata per selezionare un bin.

In modalità Continua, la durata viene nuovamente filtrata per rimuovere interruzioni occasionali. Quindi viene livellato utilizzando un filtro esponenziale. La durata filtrata viene utilizzata per impostare la frequenza della nota utilizzando il "pitch bend".

Passaggio 3: aggiunta di un display

Aggiunta di un display
Aggiunta di un display
Aggiunta di un display
Aggiunta di un display
Aggiunta di un display
Aggiunta di un display

Il display è uno schermo LCD TFT a colori da 1,44 con un controller ST7735, 128x128 pixel. Ci sono molti schermi disponibili su eBay, ad esempio potresti preferire sviluppare il tuo strumento con un touch-screen più grande. Non avevo usato l'ST7735 controller e volevo provarlo.

Ho preso il mio da questo fornitore. Lo stesso modulo è ampiamente venduto su eBay: prendine uno uguale alla foto.

Il display LCD ha i seguenti pin:

  • GND terra
  • VCC 3.3V
  • Autobus SCL SPI SCLK
  • SDA SPI bus MOSI di Arduino
  • RES reset
  • Dati/comando CC
  • Selezione chip CS
  • BL retroilluminazione

Il modulo funziona a 3,3 V, quindi non dovresti collegarlo direttamente al tuo Arduino 5 V. Ho usato resistori da 1k per abbassare la tensione. Non è una buona pratica (in generale, si dovrebbe usare un divisore di potenziale o un chip contagocce) ma funziona perfettamente in questo circuito. Ero pigro.

Il display è alimentato dai 3.3V forniti da Arduino. Il regolatore Arduino sembra abbastanza felice.

Adafruit pubblica molto gentilmente una libreria ST7735 e molte altre librerie sono disponibili in Github e altrove. Ne ho provati alcuni e non mi è piaciuto nessuno. Alcuni semplicemente non funzionavano e tutti erano enormi. Scrivi uno schizzo Arduino che disegna una linea e del testo e trovi la tua memoria se piena al 75%. Così ho scritto la mia libreria.

La libreria SimpleST7735 può essere scaricata (scarica Step3.zip da github).

Ha un set standard di comandi di disegno molto simile a tutte queste librerie.

Alcune delle librerie "veloci" che puoi scaricare utilizzano cicli di temporizzazione speciali e sono turbate quando altri dispositivi, forse più lenti, vengono utilizzati sullo stesso bus. SimpleST7735 è scritto in C piuttosto che in assembler, quindi non è così veloce come potrebbe essere, ma è molto più portatile e condivide educatamente il bus SPI con altri dispositivi. È possibile scaricare un programma Windows che consente di creare i propri caratteri e icone.

È possibile scaricare la scheda tecnica ST7735 dal web. Ci parli da

  • imposta CS basso
  • impostare DC basso
  • invia un byte di comando
  • impostare DC alto
  • inviare zero o più byte di dati
  • imposta CS alto

Puoi vedere come lo faccio nella funzione spiSend_TFT_CW() nella libreria. I byte di dati potrebbero essere un'intera riga di pixel o un'impostazione per un registro di controllo.

La funzione ST7735Begin() nella libreria mostra il set di comandi di inizializzazione che ho scelto. Potrebbe essere necessario modificare i comandi se si sceglie un display ST7735 diverso (ad es. con più pixel) o si desidera un orientamento diverso. Spero che il mio codice ti sia facile da vedere come cambiare se necessario.

Lo schema mostra un pulsante di controllo "SW1" e un pedale SW2". Il pulsante di controllo seleziona diverse "Impostazioni" (vedi passaggio successivo) o seleziona la modalità Menu. Il pedale è opzionale e seleziona solo diverse impostazioni - non l'ho fatto montato un pedale da solo. Le impostazioni sono utili durante un'esibizione quando si desidera cambiare rapidamente chiave o cambiare strumento.

Passaggio 4: il sistema di menu

Il sistema di menu
Il sistema di menu
Il sistema di menu
Il sistema di menu

Questo sketch Arduino Miditheremin3.ino aggiunge un sistema di menu al Theremin MIDI e controlla lo strumento completo finale.

Il Theremin MIDI di solito funziona in modalità "Play". La tua mano destra seleziona quale nota e la tua mano sinistra controlla la qualità della nota. Il display LCD mostra una tastiera di pianoforte con la nota corrente evidenziata.

Se si tiene premuto il pulsante di controllo per un secondo, il programma entra in modalità "Menu". In modalità Menu, se si tiene premuto il pulsante di controllo per un secondo, il programma torna in modalità "Play".

Il menu ha una struttura ad albero con voci principali e voci secondarie. La voce di menu corrente è evidenziata. Si sposta la selezione su/giù tramite il sonar di sinistra. I sottomenu per un elemento principale vengono espansi solo quando l'elemento principale è selezionato.

Dopo aver scelto un sottomenu, quando si fa clic sul pulsante, viene evidenziato il valore di quella voce. La mano sinistra ora incrementa o decrementa il valore. Fare nuovamente clic sul pulsante per tornare alla selezione dei sottomenu.

In modalità Discreta, la struttura del menu è

  • Strumento

    • 0: Pianoforte a coda
    • Scambia le mani: normale
  • Mano destra

    Modalità: discreta

  • Mano sinistra
    • Modalità: Vibrato
    • Profondità massima: 10
  • Scala
    • Scala: maggiore eptatonica
    • Ottave: 2
    • Nota più bassa: 60 C
  • Accordo

    • Accordo: Triade maggiore
    • Inversione: 0
    • Polifonia: 1
  • Tremolo

    • Dimensioni: 20
    • Periodo: 10
  • Vibrato

    • Dimensioni: 20
    • Periodo: 10

Lo strumento può essere "Grand Piano", "Church Organ", "Violin", ecc. Ci sono 127 strumenti nel VS1053, molti dei quali suonano identici e molti sono stupidi come "shotgun". Il sottomenu Scambia mani ti consente di scambiare le funzioni delle mani sinistra e destra - forse preferisci così o forse vuoi che gli altoparlanti siano rivolti verso il pubblico.

La Mano Destra può essere "Discreta" o "Continua". Vedi sotto per il menu "continuo".

La mano sinistra può controllare "Volume", "Tremolo", "Vibrato", "PitchBendUp", "PitchBendDown", "Reverb", "Polyphony" o "ChordSize".

"Volume" è ovvio. "Tremolo" è una rapida variazione di volume; la mano sinistra controlla la dimensione della variazione; il periodo è impostato da un'altra voce di menu. "Vibrato" è una rapida variazione di tono; la mano sinistra controlla la dimensione della variazione; il periodo è impostato da un'altra voce di menu. "PitchBendUp" e "PitchBendDown" alterano l'intonazione della nota suonata; la mano sinistra controlla la dimensione della curva. "Reverb" è piuttosto insignificante nel VS1053; la mano sinistra controlla la dimensione del riverbero. "Polyphony" controlla quante note stanno suonando contemporaneamente fino al massimo impostato dal menu Polyphony (vedi sotto). "ChordSize" significa che la mano sinistra controlla quante note di un accordo (vedi sotto) vengono suonate.

Nella musica, una "scala" o "chiave" è il sottoinsieme di note che stai utilizzando. Ad esempio, se ti limitassi alla scala eptatonica di Do maggiore, suoneresti solo le note bianche del pianoforte. Se scegli C# Major Pentatonic, useresti solo le note nere (ad esempio per le melodie popolari scozzesi).

Il menu Scala sceglie a quali note corrisponde lo spazio della mano destra e quante ottave copre lo spazio della mano destra. Quindi, se scegli 1 ottava di E maggiore, lo spazio per la mano destra viene diviso in 8 bin con E al tono più basso e E un'ottava sopra al tono più alto.

Il menu Scale ti consente di scegliere molte scale insolite di "musica non occidentale", ma presuppone che tutte le note provengano dalla tastiera equilibrata: è così che funziona il MIDI, non puoi specificare facilmente la frequenza di una nota. Quindi, se volessi, per esempio, la scala dei quarti di tono araba, saresti nei guai.

Il sottomenu Octaves ti permette di scegliere quante ottave della scala vuoi. E la nota più bassa dice dove inizia la scala.

Normalmente quando viene suonata una nota, viene suonata solo quella nota. Il menu Accordi consente di suonare più note contemporaneamente. Un accordo di triade maggiore significa "suonare la nota scelta più la nota quattro semitoni più alta, più la nota sette semitoni più alta".

Il sottomenu Inversion fornisce le inversioni degli accordi. Ciò significa che sposta alcune delle note dell'accordo a un'ottava sotto. La prima inversione sposta tutte le note "extra" in basso di un'ottava, la seconda inversione sposta in basso di una nota in più e così via.

Il sottomenu Polyphony dice quante note stanno suonando contemporaneamente; se la polifonia è 1 allora all'inizio di una nota la precedente viene interrotta; se la polifonia è più grande, più note possono sovrapporsi - provalo con l'organo della chiesa.

Il menu Tremolo specifica la profondità di qualsiasi tremolo e il periodo del ciclo di tremolo. Un periodo di "100" significa un ciclo al secondo. Se la mano sinistra controlla il tremolo, il sottomenu Dimensioni è nascosto.

Il menu Vibrato specifica la dimensione di qualsiasi vibrato e il periodo del ciclo di vibrato. Se la mano sinistra controlla il vibrato, il sottomenu Dimensioni è nascosto.

Il programma permette di salvare e caricare fino a 5 diversi "Setup". Un Setup memorizza tutti i valori che è possibile impostare nel menu. Quando si esce dalla modalità Menu, l'impostazione corrente viene salvata. Le impostazioni vengono salvate nella EEPROM.

In modalità di riproduzione, facendo clic sul pulsante si passa alla configurazione successiva. Se si tiene premuto il pulsante per un secondo, viene visualizzato il menu. Anche premendo il pedale si passa al setup successivo; il pedale non seleziona mai il menu.

In modalità continua, la struttura del menu è

  • Strumento

    • 0: Pianoforte a coda
    • Scambia le mani: normale
  • Mano destra

    Modalità: continua

  • Gamma
    • Numero semitoni: 12
    • Nota di cuore: 60 C
  • Mano sinistra
    • Modalità: Tremolo
    • Profondità massima: 10
  • Tremolo

    • Dimensioni: 20
    • Periodo: 10
  • Vibrato

    • Dimensioni: 20
    • Periodo 10

Il menu Range sceglie quale gamma di frequenze specifica la mano destra: il numero di semitoni coperti e la nota di mezzo.

La mano sinistra può controllare solo "Volume", "Tremolo" e "Vibrato".

Passaggio 5: saldarlo insieme

Saldandolo insieme
Saldandolo insieme
Saldandolo insieme
Saldandolo insieme
Saldandolo insieme
Saldandolo insieme

Ho costruito il circuito su stripboard. Non riesco a vedere il punto di ottenere un PCB realizzato per una tantum con solo 4 resistori, ma mi rendo conto che ad alcune persone non piacciono gli stripboard.

Il mio layout di stripboard è mostrato sopra. Le quattro schede - Arduino, VS1053, display e stripboard - formano un sandwich. Nel layout, il contorno di Arduino è giallo, il VS1053 è blu, il display è verde e la stripboard è arancione.

Le linee ciano sono le strisce di rame dello stripboard: assicurati di inserire delle interruzioni dove necessario. Le linee rosse sono collegamenti sul lato componente della stripboard o fili che vanno altrove.

Ho usato pin extra lunghi per la scheda VS1053 perché si trova sopra l'Arduino. I pin agli angoli più remoti del display e le schede VS1053 aiutano a stabilizzarli. I fori di montaggio dei moduli sono placcati in modo da poterli saldare. Assicurati che i tuoi non siano collegati a terra - i fori di montaggio dei miei moduli non lo sono.

Se hai un modulo VS1053 diverso o un display diverso, puoi cambiare i pin di Arduino:

  • Da D2 a D10 e da A0 a A5 possono essere usati nell'ordine che preferisci; aggiorna i numeri dei pin vicino all'inizio dello sketch INO
  • D11, D12, D13 sono dedicati a SPI e non possono essere riassegnati
  • D0, D1 sono dedicati agli I/O seriali
  • A6, A7 non possono essere utilizzati come pin digitali

I moduli HC-SR04 sono a 90° tra loro collegati da un pezzo di stripboard. Il pulsante è tra di loro. Senza dubbio avrai il tuo design preferito.

Se decidi di avere un pedale, collegalo tramite una presa jack.

Passaggio 6: aggiunta di un alimentatore

Aggiunta di un alimentatore
Aggiunta di un alimentatore
Aggiunta di un alimentatore
Aggiunta di un alimentatore
Aggiunta di un alimentatore
Aggiunta di un alimentatore

Ho misurato la corrente totale di Arduino, VS1053 e visualizzata come 79 mA. Secondo le schede tecniche, l'Arduino è 20 mA, il display è 25 mA, il VS1053 è 11 mA e l'HC-SR04 è 15 mA ciascuno quando "funziona" - quindi 80 mA sembra giusto.

Il display richiede 25 mA ed è alimentato dall'uscita 3V3 dell'Arduino che è classificata per fornire 50 mA. Quindi il circuito non dovrebbe stressare il regolatore 3V3 di Arduino.

Possiamo alimentare il circuito attraverso il pin Vin di Arduino? Non riesco a trovare la risposta da nessuna parte sul web. Non è nella documentazione di Arduino. Il regolatore 5V integrato dissiperà (Vin-5)*80 mW. Qual è la sua massima dissipazione? Sembra che nessuno lo sappia davvero. Secondo la sua scheda tecnica, il regolatore NCP1117 in un contenitore SOT-223 con un pad minimo di rame può dissipare 650 mW. Quindi per una corrente di 80 mA,

  • Vin Power
  • 8V 240mW
  • 9 320
  • 10 400
  • 11 480
  • 12 560
  • 13 640
  • 14 720

Per sicurezza, suppongo che non dovremmo superare i 9V su Vin.

Un alimentatore esterno da 5 V sarebbe molto più sicuro, ma ho usato il regolatore di Arduino e va bene.

Per alimentare il circuito, ho scelto un modulo che combina un caricabatterie agli ioni di litio e un alimentatore boost. Sono ampiamente disponibili su eBay o cerca "Li Charger Boost".

Il caricabatterie utilizza un chip TC4056 che ha un complicato algoritmo di corrente costante e tensione costante. Quando si rimuove l'ingresso di alimentazione USB, entra in modalità standby con un consumo della batteria inferiore a 2uA. Il TC4056 ha un ingresso per il rilevamento della temperatura ma non è disponibile sulla scheda del modulo (il pin è messo a terra).

Il circuito boost è presumibilmente efficiente dall'87 al 91% rispetto al normale intervallo di tensione della batteria con una corrente di uscita di 50-300 mA. (Non l'ho misurato da solo.) È abbastanza buono.

Tuttavia, la sua corrente di "standby" quando si rimuove il carico è di 0,3 mA, che è scarsa. Una cella da 300 mAH verrebbe drenata in 6 settimane. Forse sarebbe stato drenato così tanto che la sua tensione sarebbe scesa a un livello dannoso.

C'è una singola traccia che collega la batteria all'alimentatore boost. Puoi tagliare facilmente la pista (vedi foto). Saldare un filo sul resistore grande in alto in modo da poter colmare il taglio tramite un interruttore.

La corrente assorbita è ora 0.7uA con la scheda che ho testato. Quindi la cella durerà 50 anni - beh, ovviamente no, l'autoscarica di una cella agli ioni di litio è di circa il 3% al mese. Il 3% al mese per una cella da 300 mAH è una corrente di 13 uA. Confrontalo con il 300uA che prende il circuito boost. Penso che valga la pena spegnere il circuito boost.

Non si dovrebbe accendere il carico quando la cella è in carica. La corrente assorbita dal carico confonderà l'algoritmo di carica.

Quindi è necessario un interruttore di commutazione a 2 poli (ad esempio un interruttore a scorrimento) che sia in posizione "On" o "Charge".

Potresti ignorare la presa USB integrata e saldare i fili separati all'interruttore e alla tua presa USB.

Oppure potresti mantenere la presa integrata e tagliare la connessione tra la presa e il chip. Il diagramma sopra mostra dove tagliare.

Collega l'uscita 5V dell'alimentatore boost al pin 5V dell'Arduino. La gente dice "non farlo - stai bypassando il diodo di protezione di Arduino". Ma il Nano non ha un pin collegato al lato USB del diodo. Basta collegarsi al pin 5V. Qual è la cosa peggiore che potrebbe accadere? Perdi una Nano che costa meno di £ 3.

Il circuito dell'alimentatore deve alimentare anche l'amplificatore per gli altoparlanti.

Passaggio 7: aggiunta di altoparlanti

Aggiunta di altoparlanti
Aggiunta di altoparlanti

Volevo che il Theremin MIDI fosse portatile. Dovrebbe includere i propri altoparlanti e amplificatore.

Potresti costruire il tuo amplificatore o acquistare un modulo amplificatore, quindi acquistare altoparlanti e metterli in una custodia. Ma qual è il punto? Nel mio covo di techno ho una mezza dozzina di altoparlanti amplificati che ho comprato da negozi di beneficenza e da rivendite di auto, tutto per meno di £ 1 ciascuno.

Gli altoparlanti blu pallido usavano solo 30 mA a 5 V ma hanno una scarsa risposta sui bassi. La radio nera ha una bella forma - posso immaginare di montare i moduli HC-SR04 agli angoli e il display sulla superficie superiore. Quelli grigi "flat panel" sono alimentati da una presa USB che è l'ideale.

Con una piccola ricerca, dovresti trovare altoparlanti amplificati che hanno già un bel case. Assicurati che funzionino alla tensione del tuo alimentatore. Se è alimentato da quattro celle AA probabilmente funzionerà bene a 5V.

Ma ho scavato ulteriormente nel covo di techno e ho trovato una docking station molto carina che ho trovato in una bancarella "tutto per £ 0,50". Ha perso il caricabatterie e il telecomando IR ma funziona bene.

Se sei determinato a costruire i tuoi altoparlanti amplificati, ecco un buon Instructable. Oppure cerca Instructables per PAM8403 o Amplificatore.

Passaggio 8: stazione di aggancio

Stazione di attracco
Stazione di attracco
Stazione di attracco
Stazione di attracco
Stazione di attracco
Stazione di attracco
Stazione di attracco
Stazione di attracco

Questa è una docking station portatile Logitech molto bella. È improbabile che ne otterrai uno uguale, ma i principi di costruzione saranno simili.

La docking station include una cella agli ioni di litio ricaricabile e un alimentatore boost. (Se il tuo non lo fa, crea l'alimentatore sopra descritto e salta i prossimi paragrafi.)

Se il tuo amplificatore ha una cella agli ioni di litio, probabilmente ha un alimentatore boost. (La tensione della singola cella agli ioni di litio è scomodamente bassa, quindi è necessario aumentare.)

Per prima cosa, trova i collegamenti per l'alimentazione dell'amplificatore. L'alimentatore avrà grandi condensatori di livellamento - guarda la foto del PCB spazzatura. Misurare la tensione ai loro pad di saldatura sul lato inferiore. Il pad negativo dovrebbe essere il pad "massa" del circuito. Se il pcb è stato riempito di allagamento, verrà macinato. Oppure il terreno potrebbe essere una traccia spessa che va in molti punti del tabellone.

Potrebbero esserci grossi condensatori sullo stadio di uscita dell'amplificatore: questo è il modo antiquato di farlo. Misurare la tensione su di loro mentre funziona. Probabilmente varierà in base alla musica e potrebbe avere una media della metà della tensione dei condensatori di alimentazione. Quelli sono i condensatori sbagliati - vuoi quelli nell'alimentatore.

È molto improbabile che la scheda abbia potenza sia positiva che negativa (i grandi amplificatori di potenza stereo lo fanno, ma non ne ho mai visto uno leggero come quello). Assicurati di aver davvero scelto il terreno e il potere positivo.

La docking station Logitech che sto usando ha complicati circuiti digitali così come l'amplificatore analogico. Se il tuo è così, avrà condensatori di livellamento per 5 V o 3,3 V più forse 9 V per l'amplificatore. Misurare le tensioni su tutti i grandi condensatori e scegliere la tensione più grande.

Assicurati che la tensione della connessione di alimentazione che hai scelto dipenda dall'interruttore di accensione/spegnimento. (Quando si spegne l'interruttore, la tensione potrebbe impiegare un po' di tempo per scendere mentre il condensatore si svuota.)

Saldare i fili a qualunque cosa tu abbia scelto come fonte di alimentazione. La docking station Logitech produce circa 9V che si collegheranno bene al pin Vin dell'Arduino.

Gli altoparlanti alimentati o la docking station dovrebbero avere un jack da 3,5 mm per l'ingresso audio. Uno dei giunti di saldatura sarà rettificato, probabilmente quello più vicino al bordo della scheda. Usa un ohmmetro per verificare che si colleghi a ciò che pensi sia la terra. Con alcuni ingressi audio lo "scudo" del jack non è collegato direttamente a terra. Sta galleggiando. Quindi, se nessuno dei pin del jack è a terra, non preoccuparti per il momento. (Anche lo "scudo" del jack sul modulo VS1053 è flottante.)

Utilizzare un tester per verificare che il pin "massa" del jack sia alla stessa tensione della massa dell'alimentatore.

La docking station Logitech era strana. Se ho collegato la "massa" della presa jack Logitech alla "terra" della scheda VS1053 (usando un cavo audio, ha funzionato bene ma la corrente al mio sistema Theremin è salita da 80mA a oltre 200mA. Quindi mi sono assicurato Non ho collegato questi due "motivi", funziona bene ma non ho idea di cosa stesse succedendo.

Passaggio 9: creare un caso

Fare un caso
Fare un caso
Fare un caso
Fare un caso
Fare un caso
Fare un caso
Fare un caso
Fare un caso

Il caso che realizzerai dipenderà dai materiali che hai a disposizione, da cosa ti piace lavorare e dagli altoparlanti amplificati che hai scelto. Qualunque cosa tu faccia dovrebbe garantire che i sonar puntino lontano l'uno dall'altro e verso l'alto a 45°. Poi ci sarà il display e il pulsante.

Se hai guardato gli altri miei Instuctables, saprai che sono un grande fan della banda stagnata. Può essere piegato a forma, saldato dolcemente e verniciato. Le foto mostrano come ho sistemato le cose.

Il triangolo superiore è in banda stagnata piegata, saldata, riempita, levigata e verniciata. I circuiti stampati sono incollati a caldo nel triangolo e hanno piccole schegge di legno che fungono da distanziatori.

Il "pannello frontale" è un foglio di polistirene da 1 mm. I distanziatori sono realizzati con più fogli di polistirene e le viti autofilettanti tengono in posizione il listello. I supporti in legno sono incollati a caldo nella cavità nella parte anteriore della docking station e i circuiti stampati sono avvitati su di essi con lunghe viti autofilettanti.

Immagino che potrei stampare qualcosa in 3D, ma preferisco i metodi della vecchia scuola in cui posso regolare le cose mentre procedo. Fare le cose è un viaggio di scoperta piuttosto che di "ingegneria".

Passaggio 10: sviluppo futuro

Sviluppo futuro
Sviluppo futuro

Come potresti sviluppare ulteriormente lo strumento? Potresti cambiare l'interfaccia utente. Potresti sostituire il pulsante con un sensore di distanza IR in modo da non dover toccare affatto lo strumento. O magari usa un touch screen piuttosto che un pulsante e la mano sinistra per controllare il menu.

Il menu Scale ti permette di scegliere scale "musicali non occidentali" ma presuppone che tutte le note provengano dalla tastiera equilibrata - è così che funziona il MIDI La scala araba quarto di tono ha note che non sono sulla scala equilibrata. Altre scale non sono in alcun modo correlate a una tastiera equilibrata. Potrebbe essere possibile utilizzare il pitch bend per produrre tali note. Avresti bisogno di un modo affinché il menu specifichi la frequenza di ciascuna nota. Penso che il pitch bend possa applicarsi a tutte le note nel canale. Attualmente uso solo un canale: il canale 0. Quindi, se è polifonico o ha accordi, dovrai suonare ogni nota in un canale diverso.

Lo strumento potrebbe diventare un sintetizzatore di batteria. La mano sinistra potrebbe determinare l'intonazione di un tom melodico mentre il sonar destro è sostituito da un sensore piezoelettrico che si colpisce per far suonare il tamburo.

Le due mani potevano controllare due strumenti diversi.

La mano sinistra potrebbe scegliere uno strumento.

Circa a metà di questo progetto, ho scoperto il controller MIDI Altura MkII Theremin di Zeppelin Design Labs. Sembra un ottimo strumento.

Hanno un paio di video che vale la pena guardare:

(Ho rubato la parola "bidoni" ad Altura e l'idea che un bidone si espanda quando ci entri per aiutarti a rimanere dentro.)

Il mio Theremin MIDI differisce dall'Altura in alcuni modi. Il mio produce il proprio suono con il suo sintetizzatore MIDI incorporato, amplificatore, ecc.; l'Altura invia messaggi a un synth esterno. Potresti preferire il loro modo di farlo. Il mio ha uno schermo TFT piuttosto che un display a 7 segmenti: è decisamente meglio, ma potresti pensare che uno schermo più grande sarebbe un miglioramento. Il mio usa i menu per impostare i parametri mentre il loro usa le manopole. I menu sono necessari perché il mio ha bisogno di molti controlli per il dispositivo di input (i sonar) e il synth; l'Altura ha bisogno di meno controlli. Forse le manopole sono migliori durante un'esibizione dal vivo. Forse il mio dovrebbe avere le manopole. Una manopola per la scelta dei Setup potrebbe essere buona.

L'Altura ha un controllo "Articolazione" che imposta la velocità con cui possono essere suonate le note. Non l'ho incluso nel mio software, forse dovrebbe essere lì. L'Altura ha un arpeggiatore (step sequencer). Questa è una buona idea; il mio ha accordi che non sono proprio la stessa cosa.

Quindi è così. Spero che ti piaccia costruire e usare un Theremin MIDI. Fatemi sapere se trovate errori nella mia descrizione o se vi vengono in mente miglioramenti.

Consigliato: