Secuenciador Solar Code
/* ====================================================================== sequenciador solar. DreamAddictive 2010 - http://dalab.ws Basado en el codigo de Arduino Punk Console ======================================================================*/ #define FrecuenciaAnaloga 1 #define TempoAnalogo 2 #define DuracionAnaloga 0 #define salida 11 #define boton0 2 #define boton1 3 #define boton2 4 #define boton3 5 #define boton4 6 #define boton5 7 #define boton6 8 #define StartStop 10 // lista para cada uno de los pasos int pasos[] = { 100,120,140,160,180,200,220}; // misc int duration = 50; int pitchval = 1; int modoTocar = true; int lastPushedStep = -1; int val = 3; int disminuir = 2; // tempo inicial = int tempo = 120; void setup() { // inputs y outputs pinMode (boton0, INPUT); pinMode (boton1, INPUT); pinMode (boton2, INPUT); pinMode (boton3, INPUT); pinMode (boton4, INPUT); pinMode (boton5, INPUT); pinMode (boton6, INPUT); pinMode (StartStop, INPUT); pinMode (salida, OUTPUT); } void loop() { // loop de sequencia principal for (int i=0; i<7; i++) { //MODO PARA TOCA modoTocar = digitalRead (StartStop); // checar el Hardware LeerBotones(); LeerPots(); // Make the noise if (modoTocar) { freqout (pasos[i], duration); } // Pause between steps delay (tempo); } } // Read the current values of the pots, called from the loop. void LeerPots () { tempo = (analogRead (TempoAnalogo) * 1.9); duration = (analogRead (DuracionAnaloga * 1.9)); } void LeerBotones() { // resete el ultimo paso lastPushedStep = -1; // check switch 0, if pressed, get the current freq into step 0, etc. etc. if (digitalRead (boton0) == HIGH) { pasos[0] = analogRead(FrecuenciaAnaloga); lastPushedStep = 1; } else if (digitalRead (boton1) == HIGH) { pasos[1] = analogRead(FrecuenciaAnaloga); lastPushedStep = 2; } else if (digitalRead (boton2) == HIGH) { pasos[2] = analogRead(FrecuenciaAnaloga); lastPushedStep = 3; } else if (digitalRead (boton3) == HIGH) { pasos[3] = analogRead(FrecuenciaAnaloga); lastPushedStep = 4; } else if (digitalRead (boton4) == HIGH) { pasos[4] = analogRead(FrecuenciaAnaloga); lastPushedStep = 5; } else if (digitalRead (boton5) == HIGH) { pasos[5] = analogRead(FrecuenciaAnaloga); lastPushedStep = 6; } else if (digitalRead (boton6) == HIGH) { pasos[6] = analogRead(FrecuenciaAnaloga); lastPushedStep = 7; } } //freqout code by Paul Badger // freq - frequency value // t - time duration of tone // Modificacion en el hperiod void freqout(int freq, int t) { long hperiod; //calculate 1/2 period in us long cycles, i; val = analogRead(3); Serial.begin(9600); Serial.print(val,DEC); Serial.print(" "); hperiod = (map(val, 0, 1023, 8000, 300000) / ((freq -3) - disminuir)); //* analogRead(Modulacion) checar mapeo de valores // calculate cycles cycles = ((long)freq * (long)t) / 1000; // calculate cycles for (i=0; i<= cycles; i++) { digitalWrite(salida, HIGH); delayMicroseconds(hperiod); digitalWrite(salida, LOW); delayMicroseconds(hperiod - 1); // - 1 to make up for fractional microsecond in digitaWrite overhead } }
Circuito Eléctrico
Circuito eléctrico compuesto de dos celdas solares en serie, diodo y batería recargable, para proveer de electricidad a Microcontrolador Boarduino.
Sonidos de Protoboard
Taller realizado en el Centro Cultural España México, los días 20, 21, 27, y 28 de marzo de 2010, como parte de las actividades de Comunidades Digitales dentro del Ars Electrónica en el fmx.
Sonidos de Protoboard es un taller de acercamiento práctico a los instrumentos electrónicos. Se impartieron dos talleres de seis horas cada uno. Durante las sesiones los participantes ensamblan un theremin óptico y un piano de escala variable.
Haciendo música manipulando electricidad
Sonidos de Protoboard es un taller de acercamiento práctico a los instrumentos electrónicos. Se realizarán dos talleres de seis horas en el Centro Cultural España México, como parte de las actividades de Comunidades Digitales dentro del Ars Electrónica el fmx.
Como material de apoyo para el taller se diseño un díptico, con los diagramas y referencias técnicas y teóricas. Descargar aquí
Piano de escala variable. Diagrama

El piano de escala varible, utiliza un potenciomentro para variar la frecuencia del sonido, permitiendonos contar con mas de una escala de notas.
Las resistencias permiten controlar directamente la cantidad de corriente que viaja por el circuito. Definiendo asi, la frecuencia específica o la nota de la escala que representara cada uno de los botones.
Frecuencias Sonoras y Frecuencias Eléctricas
La Frecuencia de las Notas Musicales
Los sonidos musicales son producidos por procesos físicos tales como la vibracion. Has notado que las cuerdas de guitarra tienen diferentes sonidos?, estos son efecto de la vibración de las cuerdas. Por ejemplo la nota Do vibra a 277.18 Hz, es decir que para producir la nota Do nuestra cuerda tiene que vibrar 277.18 veces por segundo. El herzio o HZ es la forma en que medimos la frecuencia de los sonidos o la cantidad de veces que se oscila por segundo.
Cuando una nota se escucha más aguda es por que tiene una frecuencia alta, y oscila muchisimas veces por segundo.
El oído humano tiene un rango de frecuencia audible de entre 20 Hz (sonidos muy graves) hasta 20,000 Hz (sonidos muy agudos).
Frecuencias Sonoras y Frecuencias Eléctricas
Al igual que en el sonido, en la electrónica también utilizamos las frecuencias para medir los ciclos de altas y bajas de corriente en un circuito. Utilizando esta misma lógica podemos hacer que la membrana de una bocina conectada a nuestro circuito vibre a 440Hz porduciendo asi la nota La.

Para producir variaciones en las frecuencias de un circuito utilizamos resistencias que dosifican la cantidad de electrones que pasan por él. De esta forma podemos obtener la escala musical completa con sonidos electrónicos.








