Created
December 12, 2016 13:42
-
-
Save varlen/54e5e78b11208375eb2a83dbc5fd5000 to your computer and use it in GitHub Desktop.
Disciplina Antenas 2016-2
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
int analogPin1 = 1; // 1a. entrada analógica | |
int analogPin2 = 2; // 2a. entrada analógica | |
int primeira_vez = 1; | |
int i = 1; // contador do while que vai calcular a média dos valores de entrada | |
int k1 = 0; // contador do número de picos que serão encontrados | |
int sinal_original_um[99]; | |
int sinal_original_dois[99]; | |
int time1[99]; | |
int time2[99]; | |
int contador_de_medidas; | |
float pi = 3.1415; | |
float valor_temporario_de_pico_sinal_um = 0; | |
float valor_temporario_de_pico_sinal_dois = 0; | |
float Media_do_sinal_um = 0; | |
float Media_do_sinal_dois = 0; | |
float Media_valdois = 0; | |
float soma_sinal_um = 0; | |
float soma_sinal_dois = 0; | |
float sinal_um_sem_media =0; | |
float tempo_primeiro_pico; | |
float tempo_segundo_pico; | |
float periodo; | |
float frequencia; | |
#include <math.h> | |
void setup() | |
{ | |
time1[0]=272; | |
sinal_original_um[0]=347; | |
time2[0]=392; | |
sinal_original_dois[0]=484; | |
time1[1]=512; | |
sinal_original_um[1]=421; | |
time2[1]=632; | |
sinal_original_dois[1]=482; | |
time1[2]=752; | |
sinal_original_um[2]=499; | |
time2[2]=872; | |
sinal_original_dois[2]=483; | |
time1[3]=992; | |
sinal_original_um[3]=580; | |
time2[3]=1112; | |
sinal_original_dois[3]=485; | |
time1[4]=1232; | |
sinal_original_um[4]=657; | |
time2[4]=1352; | |
sinal_original_dois[4]=489; | |
time1[5]=1472; | |
sinal_original_um[5]=730; | |
time2[5]=1592; | |
sinal_original_dois[5]=495; | |
time1[6]=1712; | |
sinal_original_um[6]=794; | |
time2[6]=1832; | |
sinal_original_dois[6]=501; | |
time1[7]=1952; | |
sinal_original_um[7]=848; | |
time2[7]=2072; | |
sinal_original_dois[7]=510; | |
time1[8]=2192; | |
sinal_original_um[8]=887; | |
time2[8]=2312; | |
sinal_original_dois[8]=518; | |
time1[9]=2432; | |
sinal_original_um[9]=906; | |
time2[9]=2552; | |
sinal_original_dois[9]=528; | |
time1[10]=2672; | |
sinal_original_um[10]=908; | |
time2[10]=2792; | |
sinal_original_dois[10]=536; | |
time1[11]=2912; | |
sinal_original_um[11]=895; | |
time2[11]=3032; | |
sinal_original_dois[11]=545; | |
time1[12]=3152; | |
sinal_original_um[12]=864; | |
time2[12]=3272; | |
sinal_original_dois[12]=552; | |
time1[13]=3392; | |
sinal_original_um[13]=814; | |
time2[13]=3512; | |
sinal_original_dois[13]=558; | |
time1[14]=3632; | |
sinal_original_um[14]=754; | |
time2[14]=3752; | |
sinal_original_dois[14]=563; | |
time1[15]=3872; | |
sinal_original_um[15]=684; | |
time2[15]=3992; | |
sinal_original_dois[15]=566; | |
time1[16]=4112; | |
sinal_original_um[16]=607; | |
time2[16]=4232; | |
sinal_original_dois[16]=566; | |
time1[17]=4352; | |
sinal_original_um[17]=529; | |
time2[17]=4472; | |
sinal_original_dois[17]=565; | |
time1[18]=4592; | |
sinal_original_um[18]=450; | |
time2[18]=4712; | |
sinal_original_dois[18]=562; | |
time1[19]=4832; | |
sinal_original_um[19]=374; | |
time2[19]=4952; | |
sinal_original_dois[19]=558; | |
time1[20]=5072; | |
sinal_original_um[20]=305; | |
time2[20]=5192; | |
sinal_original_dois[20]=551; | |
time1[21]=5312; | |
sinal_original_um[21]=246; | |
time2[21]=5432; | |
sinal_original_dois[21]=544; | |
time1[22]=5552; | |
sinal_original_um[22]=197; | |
time2[22]=5672; | |
sinal_original_dois[22]=535; | |
time1[23]=5792; | |
sinal_original_um[23]=164; | |
time2[23]=5912; | |
sinal_original_dois[23]=527; | |
time1[24]=6032; | |
sinal_original_um[24]=148; | |
time2[24]=6152; | |
sinal_original_dois[24]=518; | |
time1[25]=6272; | |
sinal_original_um[25]=152; | |
time2[25]=6392; | |
sinal_original_dois[25]=509; | |
time1[26]=6512; | |
sinal_original_um[26]=176; | |
time2[26]=6632; | |
sinal_original_dois[26]=501; | |
time1[27]=6752; | |
sinal_original_um[27]=217; | |
time2[27]=6872; | |
sinal_original_dois[27]=494; | |
time1[28]=6992; | |
sinal_original_um[28]=271; | |
time2[28]=7112; | |
sinal_original_dois[28]=489; | |
time1[29]=7232; | |
sinal_original_um[29]=335; | |
time2[29]=7352; | |
sinal_original_dois[29]=485; | |
time1[30]=7472; | |
sinal_original_um[30]=408; | |
time2[30]=7592; | |
sinal_original_dois[30]=483; | |
time1[31]=7712; | |
sinal_original_um[31]=486; | |
time2[31]=7832; | |
sinal_original_dois[31]=483; | |
time1[32]=7952; | |
sinal_original_um[32]=566; | |
time2[32]=8072; | |
sinal_original_dois[32]=485; | |
time1[33]=8200; | |
sinal_original_um[33]=645; | |
time2[33]=8320; | |
sinal_original_dois[33]=489; | |
time1[34]=8440; | |
sinal_original_um[34]=721; | |
time2[34]=8560; | |
sinal_original_dois[34]=494; | |
time1[35]=8680; | |
sinal_original_um[35]=788; | |
time2[35]=8800; | |
sinal_original_dois[35]=501; | |
time1[36]=8920; | |
sinal_original_um[36]=843; | |
time2[36]=9040; | |
sinal_original_dois[36]=509; | |
time1[37]=9160; | |
sinal_original_um[37]=884; | |
time2[37]=9280; | |
sinal_original_dois[37]=518; | |
time1[38]=9400; | |
sinal_original_um[38]=906; | |
time2[38]=9520; | |
sinal_original_dois[38]=527; | |
time1[39]=9640; | |
sinal_original_um[39]=911; | |
time2[39]=9760; | |
sinal_original_dois[39]=536; | |
time1[40]=9880; | |
sinal_original_um[40]=900; | |
time2[40]=10000; | |
sinal_original_dois[40]=544; | |
time1[41]=10120; | |
sinal_original_um[41]=870; | |
time2[41]=10248; | |
sinal_original_dois[41]=552; | |
time1[42]=10368; | |
sinal_original_um[42]=821; | |
time2[42]=10488; | |
sinal_original_dois[42]=558; | |
time1[43]=10608; | |
sinal_original_um[43]=761; | |
time2[43]=10728; | |
sinal_original_dois[43]=563; | |
time1[44]=10848; | |
sinal_original_um[44]=692; | |
time2[44]=10968; | |
sinal_original_dois[44]=566; | |
time1[45]=11088; | |
sinal_original_um[45]=616; | |
time2[45]=11208; | |
sinal_original_dois[45]=567; | |
time1[46]=11328; | |
sinal_original_um[46]=537; | |
time2[46]=11448; | |
sinal_original_dois[46]=566; | |
time1[47]=11568; | |
sinal_original_um[47]=458; | |
time2[47]=11688; | |
sinal_original_dois[47]=563; | |
time1[48]=11808; | |
sinal_original_um[48]=382; | |
time2[48]=11928; | |
sinal_original_dois[48]=559; | |
time1[49]=12048; | |
sinal_original_um[49]=312; | |
time2[49]=12168; | |
sinal_original_dois[49]=553; | |
time1[50]=12296; | |
sinal_original_um[50]=251; | |
time2[50]=12416; | |
sinal_original_dois[50]=545; | |
time1[51]=12536; | |
sinal_original_um[51]=200; | |
time2[51]=12656; | |
sinal_original_dois[51]=537; | |
time1[52]=12776; | |
sinal_original_um[52]=165; | |
time2[52]=12896; | |
sinal_original_dois[52]=527; | |
time1[53]=13016; | |
sinal_original_um[53]=148; | |
time2[53]=13136; | |
sinal_original_dois[53]=518; | |
time1[54]=13256; | |
sinal_original_um[54]=151; | |
time2[54]=13376; | |
sinal_original_dois[54]=509; | |
time1[55]=13496; | |
sinal_original_um[55]=173; | |
time2[55]=13616; | |
sinal_original_dois[55]=501; | |
time1[56]=13736; | |
sinal_original_um[56]=213; | |
time2[56]=13856; | |
sinal_original_dois[56]=494; | |
time1[57]=13976; | |
sinal_original_um[57]=266; | |
time2[57]=14096; | |
sinal_original_dois[57]=489; | |
time1[58]=14216; | |
sinal_original_um[58]=330; | |
time2[58]=14344; | |
sinal_original_dois[58]=485; | |
time1[59]=14464; | |
sinal_original_um[59]=405; | |
time2[59]=14584; | |
sinal_original_dois[59]=482; | |
time1[60]=14704; | |
sinal_original_um[60]=483; | |
time2[60]=14824; | |
sinal_original_dois[60]=483; | |
time1[61]=14944; | |
sinal_original_um[61]=563; | |
time2[61]=15064; | |
sinal_original_dois[61]=484; | |
time1[62]=15184; | |
sinal_original_um[62]=641; | |
time2[62]=15304; | |
sinal_original_dois[62]=488; | |
time1[63]=15424; | |
sinal_original_um[63]=715; | |
time2[63]=15544; | |
sinal_original_dois[63]=493; | |
time1[64]=15664; | |
sinal_original_um[64]=782; | |
time2[64]=15784; | |
sinal_original_dois[64]=500; | |
time1[65]=15904; | |
sinal_original_um[65]=838; | |
time2[65]=16024; | |
sinal_original_dois[65]=508; | |
time1[66]=16144; | |
sinal_original_um[66]=881; | |
time2[66]=16264; | |
sinal_original_dois[66]=517; | |
time1[67]=16392; | |
sinal_original_um[67]=904; | |
time2[67]=16504; | |
sinal_original_dois[67]=526; | |
time1[68]=16624; | |
sinal_original_um[68]=910; | |
time2[68]=16744; | |
sinal_original_dois[68]=535; | |
time1[69]=16864; | |
sinal_original_um[69]=900; | |
time2[69]=16984; | |
sinal_original_dois[69]=543; | |
time1[70]=17104; | |
sinal_original_um[70]=872; | |
time2[70]=17224; | |
sinal_original_dois[70]=551; | |
time1[71]=17344; | |
sinal_original_um[71]=826; | |
time2[71]=17464; | |
sinal_original_dois[71]=557; | |
time1[72]=17584; | |
sinal_original_um[72]=768; | |
time2[72]=17704; | |
sinal_original_dois[72]=563; | |
time1[73]=17824; | |
sinal_original_um[73]=700; | |
time2[73]=17944; | |
sinal_original_dois[73]=565; | |
time1[74]=18064; | |
sinal_original_um[74]=624; | |
time2[74]=18184; | |
sinal_original_dois[74]=566; | |
time1[75]=18304; | |
sinal_original_um[75]=546; | |
time2[75]=18424; | |
sinal_original_dois[75]=566; | |
time1[76]=18552; | |
sinal_original_um[76]=464; | |
time2[76]=18672; | |
sinal_original_dois[76]=563; | |
time1[77]=18792; | |
sinal_original_um[77]=387; | |
time2[77]=18912; | |
sinal_original_dois[77]=559; | |
time1[78]=19032; | |
sinal_original_um[78]=317; | |
time2[78]=19152; | |
sinal_original_dois[78]=553; | |
time1[79]=19272; | |
sinal_original_um[79]=255; | |
time2[79]=19392; | |
sinal_original_dois[79]=545; | |
time1[80]=19512; | |
sinal_original_um[80]=205; | |
time2[80]=19632; | |
sinal_original_dois[80]=537; | |
time1[81]=19752; | |
sinal_original_um[81]=168; | |
time2[81]=19872; | |
sinal_original_dois[81]=528; | |
time1[82]=19992; | |
sinal_original_um[82]=149; | |
time2[82]=20112; | |
sinal_original_dois[82]=519; | |
time1[83]=20232; | |
sinal_original_um[83]=150; | |
time2[83]=20352; | |
sinal_original_dois[83]=510; | |
time1[84]=20472; | |
sinal_original_um[84]=170; | |
time2[84]=20600; | |
sinal_original_dois[84]=502; | |
time1[85]=20720; | |
sinal_original_um[85]=210; | |
time2[85]=20840; | |
sinal_original_dois[85]=495; | |
time1[86]=20960; | |
sinal_original_um[86]=262; | |
time2[86]=21080; | |
sinal_original_dois[86]=489; | |
time1[87]=21200; | |
sinal_original_um[87]=325; | |
time2[87]=21320; | |
sinal_original_dois[87]=485; | |
time1[88]=21440; | |
sinal_original_um[88]=397; | |
time2[88]=21560; | |
sinal_original_dois[88]=483; | |
time1[89]=21680; | |
sinal_original_um[89]=474; | |
time2[89]=21800; | |
sinal_original_dois[89]=483; | |
time1[90]=21920; | |
sinal_original_um[90]=555; | |
time2[90]=22040; | |
sinal_original_dois[90]=484; | |
time1[91]=22160; | |
sinal_original_um[91]=633; | |
time2[91]=22280; | |
sinal_original_dois[91]=487; | |
time1[92]=22400; | |
sinal_original_um[92]=708; | |
time2[92]=22520; | |
sinal_original_dois[92]=493; | |
time1[93]=22648; | |
sinal_original_um[93]=778; | |
time2[93]=22768; | |
sinal_original_dois[93]=500; | |
time1[94]=22888; | |
sinal_original_um[94]=835; | |
time2[94]=23008; | |
sinal_original_dois[94]=508; | |
time1[95]=23128; | |
sinal_original_um[95]=879; | |
time2[95]=23248; | |
sinal_original_dois[95]=516; | |
time1[96]=23368; | |
sinal_original_um[96]=903; | |
time2[96]=23488; | |
sinal_original_dois[96]=525; | |
time1[97]=23608; | |
sinal_original_um[97]=911; | |
time2[97]=23728; | |
sinal_original_dois[97]=535; | |
time1[98]=23848; | |
sinal_original_um[98]=903; | |
time2[98]=23968; | |
sinal_original_dois[98]=543; | |
Serial.begin(9600); // setup serial | |
} | |
void loop() | |
{ | |
// Colhe 100 amostras de cada uma das entradas | |
if (primeira_vez == 1) // verifica se é a primeira vez que está passando por aqui | |
{ | |
// calcula valor de pico e valor médio de cada sinal | |
// calcula período, frequência do sinal um e diferença de | |
// tempos entre os dois sinais | |
i=0; | |
int derivada_um = 0; | |
int derivada_dois = 0; | |
int contador_de_picos_um =0; | |
int contador_de_picos_dois =0; | |
int valor_de_pico_sinal_um [10]; | |
int valor_de_pico_sinal_dois [10]; | |
int tempo_do_pico_um [10]; | |
int tempo_do_pico_dois [10]; | |
int Diferenca_de_tempos; | |
int Diferenca_relativa_de_tempos; | |
int Direcao_de_chegada; | |
while (i<=98) { | |
if (sinal_original_um[i] >= valor_temporario_de_pico_sinal_um) { | |
valor_temporario_de_pico_sinal_um = sinal_original_um[i]; | |
derivada_um = 1; | |
} | |
else{ | |
if (derivada_um == 1){ | |
contador_de_picos_um = contador_de_picos_um +1; | |
valor_de_pico_sinal_um [contador_de_picos_um] = sinal_original_um[i-1]; | |
tempo_do_pico_um [contador_de_picos_um] = time1[i-1]; | |
derivada_um = -1; | |
} | |
} | |
if (sinal_original_dois[i] >= valor_temporario_de_pico_sinal_dois) { | |
valor_temporario_de_pico_sinal_dois = sinal_original_dois[i]; | |
derivada_dois = 1; | |
} | |
else{ | |
if (derivada_dois == 1){ | |
contador_de_picos_dois = contador_de_picos_dois +1; | |
valor_de_pico_sinal_dois [contador_de_picos_dois] = sinal_original_dois[i-1]; | |
tempo_do_pico_dois [contador_de_picos_dois] = time2[i-1]; | |
derivada_dois = -1; | |
} | |
} | |
soma_sinal_um = soma_sinal_um + sinal_original_um[i]; // soma todos os valores de todas as amostras do sinal um | |
soma_sinal_dois = soma_sinal_dois + sinal_original_dois[i]; // soma todos os valores de todas as amostras do sinal dois | |
i++; | |
} | |
periodo = tempo_do_pico_um [2] - tempo_do_pico_um [1]; | |
Serial.print ("periodo = "); | |
Serial.println (periodo); | |
frequencia = 1000000.0/periodo; // lembrar que o período está em microsegundos | |
Serial.print ("frequencia = "); | |
Serial.println (frequencia); | |
Diferenca_de_tempos = tempo_do_pico_dois [1] - tempo_do_pico_um [1]; | |
Diferenca_relativa_de_tempos = Diferenca_de_tempos / periodo; | |
Serial.print ("Diferenca relativa de tempos = "); | |
Serial.println (Diferenca_relativa_de_tempos); | |
// Supondo que a distância entre os microfones equivalha a lambda/2 ==> T/2 | |
// que a diferença de tempos haja sido causada apenas pela diferença de percursos | |
// tomando a reta que contem os microfones como referência de ângulos | |
Direcao_de_chegada = acos(2*Diferenca_relativa_de_tempos); | |
Serial.print ("Direcao de chegada do sinal = "); | |
Serial.print(180*Direcao_de_chegada/pi); | |
Serial.println (" graus"); | |
//Media_do_sinal_um = soma_sinal_um/100; | |
//Media_do_sinal_dois = soma_sinal_dois/100; | |
//Serial.print ("valor de pico do sinal um = "); | |
//Serial.println (valor_de_pico_sinal_um); | |
//Serial.print ("Media do sinal um = "); | |
//Serial.println (Media_do_sinal_um); | |
//Serial.print ("Amplitude do sinal um = "); | |
//Serial.println (valor_de_pico_sinal_um - Media_do_sinal_um); | |
//Serial.println (" "); | |
//Serial.print ("valor de pico do sinal dois = "); | |
//Serial.println (valor_de_pico_sinal_dois); | |
//Serial.print ("Media do sinal dois = "); | |
//Serial.println (Media_do_sinal_dois); | |
//Serial.print ("Amplitude do sinal dois = "); | |
//Serial.println (valor_de_pico_sinal_dois - Media_do_sinal_dois); | |
primeira_vez = 0; // avisa que já passou pela amostragem | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
CONTADOR=0 | |
while read line | |
do | |
dados1=`echo $line | sed 's/ / /g' | tr -s " " | cut -d" " -f2` | |
tempo1=`echo $line | sed 's/ / /g' | tr -s " " | cut -d" " -f3` | |
dados2=`echo $line | sed 's/ / /g' | tr -s " " | cut -d" " -f4` | |
tempo2=`echo $line | sed 's/ / /g' | sed 's/ | |
//g' | tr -s " " | cut -d" " -f5` | |
echo "time1[$CONTADOR]=${tempo1%%\.*};" | |
echo "sinal_original_um[$CONTADOR]=$dados1;" | |
echo "time2[$CONTADOR]=${tempo2%%\.*};" | |
echo "sinal_original_dois[$CONTADOR]=$dados2;" | |
CONTADOR=$((CONTADOR+1)) | |
done < ./Dados\ para\ 140Hz.txt |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment