sabato 6 novembre 2010

Incontri ravvicinati del terzo tipo

Ricordate la sequenza di note suonate nel film di Steven Spielberg, Incontri ravvicinati del terzo tipo? La famosa sequenza (casuale, anche se ci sono diverse teorie) fu scritta da John Williams, così come la colonna sonora del film. Perché non usare quella sequenza di note per farla suonare ad Arduino?
Per generare suoni con Arduino possiamo ricorrere alla funzione tone(pin, frequence), dove pin è il pin a cui è collegato l'altoparlante e frequence è la frequenza della nota da suonare. Esiste anche una seconda versione di tone, tone(pin, frequence, duration) dove duration specifica la durata (in millisecondi) della nota da suonare!
Adesso sappiamo quello che ci occorre per far suonare ad Arduino qualche melodia! Per la frequenza delle note possiamo ricorrere all'header pitches.h (che trovate qui). Si tratta di un file (da includere nel sorgente del programma per Arduino) che definisce con delle costanti mnemoniche le note da far suonare ad Arduino.


Nell'immagine di sopra potete osservare lo schema. Non vi sembra semplice? Il codice da me usato per provare la funzione tone lo trovate in questa pagina. Per descrivere la melodia mi sono servito di due array di interi. Il primo array, song[], contiene le note della melodia. Il secondo array, time[], contiene la tempificazione da applicare alle note del primo array! L'esecuzione della melodia avviene in un ciclo for che, partendo dai primi elementi dei due array, passa ad ogni iterazione i valori utili alla funzione tone che suonerà per noi la melodia!

2 commenti:

  1. ciao, senti da quanti ohm era l'altoparlante? ho visto che non hai usato resistenze, ma soprattutto diodi, non sarebbe opportuno usarne uno in serie all'altoparlante per evitare che piccole cariche prodotte dall'induttanza del solenoide interno ritornino al microcontrollore in senso contrario danneggiandolo?

    RispondiElimina
  2. Ciao, nell'esempio di sopra è stato utilizzato un altoparlante da 8 ohm. Concordo con te, avrei dovuto usare un diodo (come protezione). Consiglio di usare un altoparlante piezoelettrico.

    RispondiElimina