Questo è lo sketch:
- Codice: Seleziona tutto
import processing.serial.*;
//Serial port
Serial port;
//variables read from serial
float val;
//variables to create x and y axes
int x = 150;
int y = 600;
//variables to write line x and y axes
int x1;
int y1;
//variables to write value x axis
int xValue = 147;
int number = 1;
//variable to write value y axis
int yValue = 605;
int number2 = 1;
//variable that rapresent the time
int time = 150;
//Mapped value of temperature
float mapped;
//------------------------------------------------------------------------------------------------------------------------------------------------------
void setup()
{
size(1000, 700);
background(255);
//name of the USB port
String portname = Serial.list()[0];
//object port
port = new Serial(this, portname, 9600);
//Increase in 2 the thickness
strokeWeight(2);
//x axis
line(100, 650, 900, 650);
//y axis
line(100, 650, 100, 50);
//intervals x axis
for(int i = 0; i < 16;i++)
{
line(x, 640, x, 660);
x = x + 50;
}
//intervals y axis
for(int i = 0;i < 12; i++)
{
line(90, y, 110, y);
y = y - 50;
}
//values x axis
fill(0);
for(int i = 0;i < 16;i++)
{
text(str(number), xValue, 675);
number = number + 1;
xValue = xValue + 50;
}
//values y axis
text("1", 65, 605);
for(int i = 0; i < 12; i++)
{
text(str(number2), 65, yValue);
number2 = number2 + 1;
yValue = yValue - 50;
}
}
//--------------------------------------------------------------------------------------------------------------------------------------------------
void draw()
{
//If port is available
if(port.available() > 0)
{
String strVal = port.readStringUntil(ENTER);
//to avoid null entries
if(strVal != null)
{
val = float(strVal);
mapped = map(val, 50, -30, 650, 0);
println(val);
}
}
//Writing of data in the diagram
strokeWeight(4);
point(time, mapped);
time = time + 50;
}
Questo è il codice. Anche per chi non conoscesse Processing diciamo che il codice è stato creato a somiglianza del java. Qui potete trovare la "reference" di Processing : https://processing.org/reference/ .
Il problema del mio codice è che mi arrivano da Arduino temperatura del tipo 18.5 , 23.2 , 17.9 che io devo rappresentare nel diagramma come cordinate x e y. Per quanto riguarda le cordinate y è facile, basta assegnare al tempo un valore y e poi come vedrete nel codice (leggendolo bene) ogni secondo aumenta di 50 pixel, che corrisponderanno alle tacche disegnate nel grafico (posto lo screen del avvio del programma). Per quanto riguarda l'asse x invece non so proprio come poter rappresentare ad esempio una temperatura di 1 C alla cordinata x = 519 (esempio). Ho provato con la funzione map (come potete constatare) ma non ho avuto successo.
Aiuto!

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)


