Ir ao conteúdo
  • Cadastre-se
Ferreira27

Programação em processing

Recommended Posts

Olá

Boa tarde!

 

Estou tendo erro ao executar o código abaixo na Ide do Processing 

O erro é este

No library found for org.gicentre.utils.stat
Libraries must be installed in a folder named 'libraries' inside the 'sketchbook' folder.
 

se alguém poder me ajudar com a biblioteca org.gicentre.utils.stat, para  que eu posso estar baixando esta biblioteca

 

import processing.serial.*;
import cc.arduino.*;
import org.gicentre.utils.stat.*;
 
Arduino arduino; // Objeto arduino
 
XYChart lineChart; // Objedo do gráfico
 
int s1Pin = 0, s2Pin = 1, s3Pin = 2, s4Pin = 3, s5Pin = 4, s6Pin = 5; // Pinos dos sensores
float coord1x[],coord2x[],coord3x[],coord4x[],coord5x[],coord6x[]; // variaveis das coordenadas (eixo X)
float coord1y[],coord2y[],coord3y[],coord4y[],coord5y[],coord6y[];  // variaveis das coordenadas (eixo Y)
float grausC,grausC1,grausC2,grausC3,grausC4,grausC5,grausC6; // Conversão do valor lido no arduino para Graus C
float regC1[],regC2[],regC3[],regC4[],regC5[],regC6[]; // Registro das temperaturas
int iniciado=0; // variavel que indica se o gráfico foi iniciado
int vetor=0; // contador do eixo X e dos vetores das coordenadas
int MinY=29; // Menor valor do eixo Y
int MaxY=35; // Maior valor do eixo Y
int tempo=15,cont=1; // Tempo de atualização do gráfico (segundos)
 
void Media() // Limpa todos os vetores da variavel
{
  int x;
  grausC1 = grausC2 = grausC3 = grausC4 = grausC5 = grausC6 = 0;
  for(x=1;x <= tempo*8;x++)
  {
    grausC1 += regC1[x];
    grausC2 += regC2[x];
    grausC3 += regC3[x];
    grausC4 += regC4[x];
    grausC5 += regC5[x];
    grausC6 += regC6[x];
  }  
}
 
 
void setup()
{
  coord1x = coord2x = coord3x = coord4x = coord5x = coord6x = new float[0];
  coord1y = coord2y = coord3y = coord4y = coord5y = coord6y = new float[0];
  regC1 = regC2 = regC3 = regC4 = regC5 = regC6 = new float[0];
  regC1 = expand(regC1,tempo*8+1);
  regC2 = expand(regC2,tempo*8+1);
  regC3 = expand(regC3,tempo*8+1);
  regC4 = expand(regC4,tempo*8+1);
  regC5 = expand(regC5,tempo*8+1);
  regC6 = expand(regC6,tempo*8+1);
  arduino = new Arduino(this, Arduino.list()[0]); // Inicia o arduino
  size(768,480); // Tamanho da tela
  if (frame != null) {
    frame.setResizable(true);
  }
  background(255);
  textFont(createFont("Arial",10),10);
  fill(0, 0, 0);
 
 
  lineChart = new XYChart(this); // Inicia um gráfico em lineChart
 
  // Definições iniciais dos eixos X e Y
  lineChart.showXAxis(true);
  lineChart.showYAxis(true);
  lineChart.setMinY(MinY);
  lineChart.setMaxY(MaxY);
  lineChart.setMinX(0);
  lineChart.setMaxX(vetor*5);
  lineChart.setXFormat("0s");
  lineChart.setYFormat("0ºc");
 
  // Aparência da linha
  lineChart.setPointSize(3);
  lineChart.setLineWidth(2);
  lineChart.setPointColour(color(128,128,128));
}
void AlterarEixoY() // Aumenta os valores do eixo Y se necessário
{
  grausC+=1;
  if(grausC>MaxY)
  {
    MaxY=int(grausC)+1;
    lineChart.setMaxY(MaxY);
  }
  grausC-=1;
  if(grausC<MinY)
  {
    MinY=int(grausC);
    lineChart.setMinY(MinY);
  }
}
 
float truncar(float vlr)
{
  int x;
  vlr/=float(tempo*8);
  x=int(vlr*10.0);
  vlr=x/10.0;
  return vlr;
}
 
void Linhas()
{
  stroke(180, 180, 180);
  // Linhas do eixo X
  float nx=30; // numero de linhas do eixo X
  float ny=60; // numero de linhas do eixo Y
  float areax=(height-30-40)/nx;
  float areay=(width-44-20)/ny;
  for(float n=0;n<nx;n++)
  {
    line(44, 40+areax*n, width-20,40+areax*n);
  }
  for(float n=1;n<=ny;n++)
  {
    line(44+areay*n, 40, 44+areay*n, height-30);
  }
}
 
void TextoGrafico() // Mostra dados e o gráfico
{
  background(255); // Limpa a tela
  textSize(9);
  //Linhas();
  // Desenha o grafico
  lineChart.setLineColour(color(255,0,0));
  lineChart.setData(coord1x,coord1y);
  lineChart.draw(10,30,width-20,height-35);
  lineChart.setLineColour(color(191,0,0));
  lineChart.setData(coord2x,coord2y);
  lineChart.draw(10,30,width-20,height-35);
  lineChart.setLineColour(color(127,0,0));
  lineChart.setData(coord3x,coord3y);
  lineChart.draw(10,30,width-20,height-35);
  lineChart.setLineColour(color(0,0,255));
  lineChart.setData(coord4x,coord4y);
  lineChart.draw(10,30,width-20,height-35);
  lineChart.setLineColour(color(0,0,191));
  lineChart.setData(coord5x,coord5y);
  lineChart.draw(10,30,width-20,height-35);
  lineChart.setLineColour(color(0,0,127));
  lineChart.setData(coord6x,coord6y);
  lineChart.draw(10,30,width-20,height-35);
 
  textSize(10);
  fill(0, 0, 0);
  text("Temperatura atual em ºC", 15,15);
  fill(255, 0, 0);
  text("Sensor3: ", 15+(85*0), 25);
  grausC1=truncar(grausC1);
  text(String.format("%.1f",grausC1), 56+(85*0), 25);
  fill(191, 0, 0);
  text("Sensor2: ", 15+(85*1), 25);
  grausC2=truncar(grausC2);
  text(String.format("%.1f",grausC2), 56+(85*1), 25);
  text("Sensor1: ", 15+(85*2), 25);
  grausC3=truncar(grausC3);
  text(String.format("%.1f",grausC3), 56+(85*2), 25);
  fill(0, 0, 255);
  text("Sensor1: ", 15+(85*3), 25);
  grausC4=truncar(grausC4);
  text(String.format("%.1f",grausC4), 56+(85*3), 25);
  fill(0, 0, 191);
  text("Sensor2: ", 15+(85*4), 25);
  grausC5=truncar(grausC5);
  text(String.format("%.1f",grausC5), 56+(85*4), 25);
  fill(0, 0, 127);
  text("Sensor3: ", 15+(85*5), 25);
  grausC6=truncar(grausC6);
  text(String.format("%.1f",grausC6), 56+(85*5), 25);
  fill(127, 0, 0);
  text("Vermelho: Cobre", 15+(85*6), 25);
  fill(0, 0, 127);
  text("Azul: Aluminio", 15+(85*7), 25);
}
 
void LerSensores(boolean alteraEixo)
{
  // Lê os valores dos pinos e altera o gráfico se necessário
  regC1[cont] = grausC = (arduino.analogRead(s1Pin) * 500.0) / 1023.0;
  if(alteraEixo) AlterarEixoY();
  regC2[cont] = grausC = (arduino.analogRead(s2Pin) * 500.0) / 1023.0;
  if(alteraEixo) AlterarEixoY();
  regC3[cont] = grausC = (arduino.analogRead(s3Pin) * 500.0) / 1023.0;
  if(alteraEixo) AlterarEixoY();
  regC4[cont] = grausC = (arduino.analogRead(s4Pin) * 500.0) / 1023.0;
  if(alteraEixo) AlterarEixoY();
  regC5[cont] = grausC = (arduino.analogRead(s5Pin) * 500.0) / 1023.0;
  if(alteraEixo) AlterarEixoY();
  regC6[cont] = grausC = (arduino.analogRead(s6Pin) * 500.0) / 1023.0;
  if(alteraEixo) AlterarEixoY();
  Media();
  // Gambiarra
  float menor1,menor2;
  menor1 = grausC1;
  menor2 = grausC4;
  if(grausC2 < menor1)
    menor1 = grausC2;
  if(grausC3 < menor1)
    menor1 = grausC3;
  if(grausC5 < menor2)
    menor2 = grausC5;
  if(grausC6 < menor2)
    menor2 = grausC6;
  if(grausC1-(6*tempo)<menor1)
    grausC1 = (menor1+grausC1)/2;
  if(grausC2-(6*tempo)<menor1)
    grausC2 = (menor1+grausC2)/2;
  if(grausC3-(6*tempo)<menor1)
    grausC3 = (menor1+grausC3)/2;
  if(grausC4-(6*tempo)<menor2)
    grausC4 = (menor2+grausC4)/2;
  if(grausC5-(6*tempo)<menor2)
    grausC5 = (menor2+grausC5)/2;
  if(grausC6-(6*tempo)<menor2)
    grausC6 = (menor2+grausC6)/2;
}
 
void draw()
{
  if(cont >= tempo*8)
  {
//    lineChart.setMaxX(vetor*tempo); // Aumenta o eixo X
      lineChart.setMaxX(1500);  // ****************************
 
    LerSensores(true);
 
    // Altera os vetores do grafico 1
    coord1x=expand(coord1x,vetor+1);
    coord1y=expand(coord1y,vetor+1);
    coord1y[vetor]=truncar(grausC1);
    coord1x[vetor]=vetor*tempo;
    // Altera os vetores do grafico 2
    coord2x=expand(coord2x,vetor+1);
    coord2y=expand(coord2y,vetor+1);
    coord2y[vetor]=truncar(grausC2);
    coord2x[vetor]=vetor*tempo;
    // Altera os vetores do grafico 3
    coord3x=expand(coord3x,vetor+1);
    coord3y=expand(coord3y,vetor+1);
    coord3y[vetor]=truncar(grausC3);
    coord3x[vetor]=vetor*tempo;
    // Altera os vetores do grafico 4
    coord4x=expand(coord4x,vetor+1);
    coord4y=expand(coord4y,vetor+1);
    coord4y[vetor]=truncar(grausC4);
    coord4x[vetor]=vetor*tempo;
    // Altera os vetores do grafico 5
    coord5x=expand(coord5x,vetor+1);
    coord5y=expand(coord5y,vetor+1);
    coord5y[vetor]=grausC5/8.0/float(tempo);
    coord5x[vetor]=vetor*tempo;
    // Altera os vetores do grafico 6
    coord6x=expand(coord6x,vetor+1);
    coord6y=expand(coord6y,vetor+1);
    coord6y[vetor]=grausC6/8.0/float(tempo);
    coord6x[vetor]=vetor*tempo;
 
    vetor++; // Eixo x+1
 
    TextoGrafico();
    cont = 0; // reseta o contador do tempo
    iniciado = 1;
  } else {
    LerSensores(false);
    if(iniciado == 1)
      TextoGrafico();
    else {
      background(255);
      textSize(15);
      text("Carregando o gráfico",width/2-80,height/2-8);
      text((cont*100)/(tempo*8),width/2-10,height/2+10);
    }
  }
  delay(125);
  cont++;
}

 

 

 

 

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×