Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Ferreira_27

Programação com Processing

Recommended Posts

Olá

Boa Noite!

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.