Professional Documents
Culture Documents
Gagik Hakobyan
AEP 3630
Objective
Touch
Tilt
Future: Sound
Schematic
Cost
Arduino Leonardo
$21
$20
$15
Breadboard
$7
$1.20
$1.20
1F Capacitor
$0.20
$0
100k Resistor x2
$0
$0
How it works
6 frequencies
http://www.wondermagnet.com/images/ferro1.jpg
@Override
protected void onResume() {
super.onResume();
//fill in samples[][]
for (int i=0; i<numChannels; i++) {
double alpha = 2*Math.PI/sampleRate;
if (i==0) alpha*=200;
else if (i==1) alpha*=300;
else if (i==2) alpha*=400;
else if (i==3) alpha*=600;
else if (i==4) alpha*=700;
else if (i==5) alpha*=1200;
for (int j=0; j<numSamples; j++) {
samples[i][j] = Math.cos(j*alpha)/numChannels;
}
}
for (int i=0; i<numSamples; i++) {
preOut[i]=0;
}
Arduino Code
#define PI 3.14159
int real[6][84];
int imag[6][84];
int input[84];
double retotal;
double imtotal;
double preOut[6];
byte output[6];
void setup() {
// Fill out the waveforms
for (int i=0; i<6; i++) {
double alpha = 2.0*PI;
if (i==0) alpha/=42.0;
if (i==1) alpha/=28.0;
if (i==2) alpha/=21.0;
if (i==3) alpha/=14.0;
if (i==4) alpha/=12.0;
if (i==5) alpha/=7.0;
for (int j=0; j<84; j++) {
real[i][j] = cos(alpha*j)*512;
imag[i][j] = sin(alpha*j)*512;
}
}
for (int i=0; i<84; i++) input[i]=0;
Serial.begin(9800);
}
void loop() {
// Read 84 values from the ADC
for (int i=0; i<84; i++) {
input[i]=analogRead(A0);
}