Programação com Processing e arduino

1. Programação com Processing e arduino

Neive Ferreira Coelho
Neive_27

(usa Outra)

Enviado em 13/05/2016 - 12:26h

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++;
}e]


  






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts