Pages: [1]   Go Down
Author Topic: [Risolto] Grafico real-time sensore  (Read 442 times)
0 Members and 1 Guest are viewing this topic.
Italy
Offline Offline
Full Member
***
Karma: 0
Posts: 188
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Vorrei realizzare in processing un programma che mi visualizzi un grafico dei valori letti da un sensore tramite Arduino, come dovrei fare?
Sono alle prime armi con questo linguaggio e quindi chiedo scusa per le troppe domande che sto ponendo su questo argomento.
Grazie in  anticipo per le risposte.
« Last Edit: May 14, 2013, 08:15:41 am by Hertz » Logged

Cagliari, Italy
Offline Offline
Tesla Member
***
Karma: 104
Posts: 6626
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

--> http://arduino.cc/en/Tutorial/Graph
--> http://material.media.mit.edu/?p=724
--> http://learning.codasign.com/index.php?title=Beginning_Processing_and_Arduino
« Last Edit: May 11, 2013, 09:20:10 am by PaoloP » Logged

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 120
Posts: 9185
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

In alternativa c'è questo
Logged

Italy
Offline Offline
Full Member
***
Karma: 0
Posts: 188
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Grazie per le risposte!
Alla fine sono riuscito a scrivere un programma che tramite Arduino mi legge la temperatura dal sensore LM35 e mi stampa in una finestra il valore sia in gradi Celsius che Kelvin inoltre disegna anche un grafico delle temperature registrate.
Se a qualcuno dovesse interessare ecco il codice:
Code:
import cc.arduino.*;
import processing.serial.*;

PFont f;

Arduino arduino;
int tempPin = 0; 
float tempC;
float tempK;
int xPos = 150;
int yPos = 320;

void setup() {
  size(400,400);
  background(0,71,171);
  f = createFont("Arial",26);
  arduino = new Arduino(this, Arduino.list()[0], 57600);
  rettangolo();
   }
   
void rettangolo() {
  fill(116,186,255);
  stroke(0);
  rect(150,220,200,100);
  }
 
void valori() {
  stroke(0,71,171);
  fill(0,71,171);
  rect(249,30,110,156);
  textFont(f);
  fill(255);
  text(str(int(tempC)) + " °C",250,100);
  text(str(int(tempK)) + " K",250,150);
  }

void draw() {
   //calcolo temperatura
  tempC = arduino.analogRead(tempPin);           
  tempC = tempC*0.5;
  tempK = tempC+273.15;
  delay(1000);
  valori();
  //disegno grafico
  stroke(183,15,175);
  line(xPos, yPos, xPos, yPos - tempC);
  if (xPos >= 350) {
    xPos = 150;
    rettangolo();
    }
    else {
      xPos++;
      }
     }
Logged

Pages: [1]   Go Up
Jump to: