Sommario:

Arduino Soundlab: 3 passaggi
Arduino Soundlab: 3 passaggi

Video: Arduino Soundlab: 3 passaggi

Video: Arduino Soundlab: 3 passaggi
Video: 01# Визуальное программирование Arduino | Активируйте светодиод за 3 шага с помощью XOD 2024, Novembre
Anonim
Image
Image
Costruzione
Costruzione

È incredibile quale sia la vasta gamma di suoni straordinari che può essere generata con la tecnica di sintesi FM, anche utilizzando un semplice Arduino. In una precedente istruzione questo è stato illustrato con un sintetizzatore che aveva 12 suoni pre-programmati, ma un visualizzatore ha suggerito che sarebbe stato molto più interessante avere il pieno controllo dei parametri del suono con i potenziometri, e così è!

In questo laboratorio sonoro, i toni possono essere controllati da 8 parametri: 4 per l'inviluppo ADSR del volume e 4 per la modulazione di frequenza che determina la trama.

L'aggiunta degli 8 potenziometri non è andata a scapito del numero di tasti: tre serie di 8 tasti vengono letti pochi microsecondi uno dopo l'altro, per un totale di 24 tasti, corrispondenti a due intere ottave. In effetti, due pin Arduino sono inutilizzati e sarebbe possibile espandere a 40 tasti.

Guarda il video su come creare suoni selvaggi, ecco una breve panoramica:

* A=attacco: tempo impiegato da un tono per raggiungere il suo volume massimo (range 8ms-2s)

* D=decay: tempo impiegato da un tono per scendere al suo livello di volume costante (range 8ms-2s)

* S=sustain: livello costante di volume (range 0-100%)

* R=rilascio: tempo per l'estinzione di un tono (intervallo 8ms-2s)

* f_m: rapporto tra la frequenza di modulazione e la frequenza portante (range 0,06-16) valori inferiori a 1 danno luogo a sottotoni, valori maggiori a sovratoni

* beta1: ampiezza della modulazione FM all'inizio della nota (range 0,06-16) valori piccoli determinano variazioni minori della trama del suono. valori grandi producono suoni pazzi

* beta2: ampiezza della modulazione FM alla fine della nota (range 0,06-16) Assegna a beta2 un valore diverso da beta1 per far evolvere la trama del suono nel tempo.

* tau: velocità con cui l'ampiezza FM evolve da beta1 a beta 2 (range 8ms-2s) Valori piccoli danno un botto corto all'inizio di una nota, valori grandi un'evoluzione lunga e lenta.

Passaggio 1: costruzione

Costruzione
Costruzione
Costruzione
Costruzione
Costruzione
Costruzione

Chiaramente, questo è ancora un prototipo, spero che un giorno io o qualcun altro costruiremo questo grande, forte e bello con tasti grandi e veri quadranti per i potenziometri in una custodia fantastica…

Componenti necessari:

1 Arduino Nano (non funzionerà con Uno, che ha solo 6 ingressi analogici)

24 pulsanti

8 potenziometri, nella gamma 1kOhm - 100kOhm

1 potenziometro da 10kOhm per il controllo del volume

1 condensatore - 10microfarad elettrolitico

1 jack per cuffie da 3,5 mm

1 chip amplificatore audio LM386

2 condensatori elettrolitici da 1000 microfarad

1 condensatore ceramico da 1 microfarad

1 microinterruttore

1 altoparlante da 8 Ohm 2 Watt

1 scheda prototipo 10x15 cm

Assicurati di aver compreso gli schemi allegati. I 24 pulsanti si collegano in 3 gruppi di 8, da leggere su D0-D7, e da attivare su D8, D10 e D11. I potenziometri hanno +5V e massa sulle prese terminali e le prese centrali sono alimentate agli ingressi analogici A0-A7. D9 ha l'uscita audio e viene accoppiato in CA a un potenziometro da 10kOhm per il controllo del volume. Il suono può essere ascoltato direttamente con gli auricolari o amplificato con un chip amplificatore audio LM386.

Si adatta tutto a una scheda prototipo da 10x15 cm, ma i pulsanti sono troppo vicini per funzionare bene, quindi sarebbe meglio costruire una tastiera più grande.

Il circuito può essere alimentato tramite la connessione USB dell'Arduino Nano, oppure con un alimentatore esterno da 5V. Una scatola di batterie 2xAA seguita da un convertitore step-up è una soluzione di alimentazione perfetta.

Passaggio 2: software

Carica lo schizzo allegato su Arduino Nano e tutto dovrebbe funzionare.

Il codice è semplice e facilmente modificabile, non c'è codice macchina e non ci sono interruzioni, ma ci sono un paio di interazioni dirette con i registri, per interagire con il timer, per velocizzare la lettura dei pulsanti e per controllare il comportamento dell'ADC per la lettura del potenziometro

Passaggio 3: miglioramenti futuri

Le idee della community sono sempre ben accette!

Sono più infastidito dai pulsanti: sono minuscoli e fanno clic con forza quando vengono premuti. Sarebbe davvero bello avere pulsanti più grandi che siano più comodi da premere. Inoltre, i pulsanti sensibili alla forza o alla velocità consentirebbero di controllare il volume delle note. Forse i pulsanti a 3 vie oi pulsanti sensibili al tocco potrebbero funzionare?

Altre cose carine sarebbero memorizzare le impostazioni audio in EEPROM, memorizzare brevi brani in EEPROM consentirebbe anche di creare musica molto più interessante. Infine, potrebbero essere generati suoni più complessi, se qualcuno sa come generare suoni di percussioni in modo efficiente dal punto di vista computazionale, sarebbe fantastico…

Consigliato: