Giradischi, googlemaps, javascript, microfoni (!?)

Ho deciso di creare qualcosa che avesse a che fare con mappe, strade, percorsi e al tempo stesso dischi in vinile. Una macchina per creare percorsi (Derive, dalla psicogeografia di Debord...) a seconda del disco che scegli (e dello spazio in cui lo vai ad ascoltare).

Mentre il giradischi suonerà il vinile scelto, un microfono analizzerà lo spettro sonoro di ciò che sta suonando. Questo spettro verrà commutato in due variabili (X, Y), diciamo per esempio che prenderemo in esame il volume e il pitch. Queste due variabili verrano usate per aggiungere un punto di coordinate X, Y sulla mappa che stiamo creando. Al tempo stesso, la mappa conterrà un terzo tipo di informazioni (variabile Z), del tipo altitudine o densità di popolazione. Quindi per ogni valore di X, Y avremmo un valore di Z. Quest'ultimo verrà rimandato indietro al giradischi e servirà per decidere il movimento del braccio dove alloggia la puntina. In pratica il braccio del giradischi sarà comandato da un motore (che si dovrà muovere in due sensi). I valori di questo motore (Z1) andranno ad esempio da 0 a 100 (corrispettivamente: inizio - fine del disco). Per ogni valore di Z, ad esempio (altitudine 450 metri su Via Cavour 42) avremo un corrispondente Z1, ad esempio 86.. che farà muovere il braccio del giradischi. Questo farà si che ascolteremo un altro pezzo del vinile che - ricominciando il processo da capo - darà luogo ad un altra coordinata. (Ah, quasi dimenticavo... la puntina non si dovrà alzare per cambiare posizione ma semplicemente strascicarsi fino alla nuova posizione creando un po' scratch nel passaggio.)

Sarebbe molto carino poter usare questa API di google maps, che ti permette di mettere punti a caso su una mappa e poi (pigiando "get directions"), "normalizzare" il percorso creando una strana vera, non passando sui palazzi. http://gmaps-samples-v3.googlecode.com/svn/trunk/drivingdirections/directions-optimized.html
Il problema è integrare ciò che il microfono riceve (processing, max?) con javascripit,,,

Poi devo decidere quale motore usare, mi serve qualcosa di piuttosto piccolo e preciso e che vada in due direzioni ovviamente... Stavo guardando gli stepper su sparkfun, mi sa che ordino qualcosa da lì (?)

Grazie mille a tutti, Giulio

ciao troglodisme
"creando un po' scratch nel passaggio.)" mi viene la pelle d'oca.
se ho capito bene il disco inizia al inizio e analizza per un certo tempo la musica e poi calcomano da valori derivanti dal suono e da un database (mappa) si posizionerá in un altra posizione dove riincomincia ad analizzare la musica.

Non so quanto resistono le puntine e il disco al spostamento senza aver alzato il braccio.

Vedo alcuni problemi. L' elaborazione del suono non é facile sopratutto da Arduino a causa delle sua limitata potenza di calcolo. Vedo meglio condizionare il suono prima con un circuito analogico con uno o piú operzionale in modo da avere 2 segnali analogici che devi campionare solo poche volte.

Per il motore ci sono problemi meccanici perché il braccio deve comunque avere la possibilitá di seguire la riga sul disco durante la riproduzione del suono. Devi accopiare il motore all'asse del braccio in modo non rigido libero per permettere al braccio di seguire la pista, ma abbastanza rigido da farlo spostare.

Tu sai che Javascript é un linguaggio interpretato dal Browser? Esiste un Browser per arduino? Senó devi scivere un interprete per javascript.

Come motore consiglio un Servo. Esistono molto piccoli.
In conclusione ti consiglio di usare un PC per elaborare e gestire gli api e l'arduino per leggere il segnale del microfono elaborato e comandare il motore di posizionamento bracetto giradischi.

Ciao Uwe

Grazie mille per gli utilissimi consigli.

Ho rielaborato un po' tutto il progetto e credo che cercherò di far muovere il braccio anche in su e in giù ogni volta, in modo da non distruggere la puntina e il disco. Devo ancora capire come posizionare i motori (anche per il problema che sottolineavi tu), ma spero troverò un modo.

Per quanto riguarda l'audio, cosa intendi per due processi analogici? una sorta di conversione? fammi capire meglio se hai un minuto..

grazie ancora