Hi,
I'm using G4P Library and I want to add Arduino code in my sketch but I can't.
I'm using VSPE and Proteus for the Arduino UNO.
Here it's my Processing code (with G4P) :
import g4p_controls.*;
import processing.serial.*;
Serial monPort;
int mesure;
PImage background;
PImage background2;
PImage logocondorcet;
int d = day(); // Variable jour
int m = month(); // Variable mois
int y = year(); // Variable année
//Initialisation des variables
int temperature; //Temperature mesurée par l'Arduino
int j; //Indice de travail
int k; //Indice de travail
public void setup(){
size(800, 500, JAVA2D);
createGUI();
customGUI();
background = loadImage("background.png"); // background
logocondorcet = loadImage("logocondo.png"); // logo condorcet
background2 = loadImage("background2.png"); // background2
textFont(loadFont("Roboto-Light-20.vlw")); // police de caractère
println(Serial.list()); // Affichage dans la console de la liste des ports serie du PC
// monPort = new Serial(this, "COM2", 9600); //Initialisation de la communicaiton port serie
//monPort.bufferUntil('\n'); //Attend la réception d'un fin de ligne pour générer un serialEvent()
}
public void draw(){
background(background);
image(logocondorcet, 5,10);
String s = String.valueOf(d); // jour
text(s, 632, 77);
text("/", 644,77);
s = String.valueOf(m); // mois
text(s, 652, 77);
text("/", 665,77);
s = String.valueOf(y); // année
text(s, 673, 77);
text(+hour()+ ":"+minute()+":"+second(), 720, 77);
}
synchronized public void win_draw1(PApplet appc, GWinData data) { //_CODE_:window1:473254:
appc.background(background2);
appc.textFont(loadFont("Roboto-Light-20.vlw")); // police de caractère
appc.fill(250);
String s = String.valueOf(d); // jour
appc.text(s, 632, 77);
appc.text("/", 644,77);
s = String.valueOf(m); // mois
appc.text(s, 652, 77);
appc.text("/", 665,77);
s = String.valueOf(y); // année
appc.text(s, 673, 77);
appc.text(+hour()+ ":"+minute()+":"+second(), 720, 77);
// température
appc.fill(250);
appc.stroke(0);
appc.strokeWeight(1);
//appc.rect (90,20,180,500); // Thermometre
appc.fill(255,0,0);
appc.fill(0,0,255);
appc.fill(50);
appc.noStroke();
appc.rect(210,10,20,360); // rectangle barre
appc.ellipse(220, 360, 40, 40); // ellipse barre
// dessin du réservoir
appc.ellipse(220, 360, 40, 40);
appc.fill(#FF1008); // ROUGE
appc.ellipse(220, 360, 40, 40);
//Gradations et textes tous les 10 degrés
fill(50);
strokeWeight(2);
stroke(50);
} //_CODE_:window1:473254:
synchronized public void win_draw2(PApplet appc, GWinData data) { //_CODE_:window2:601170:
appc.background(background2);
appc.textFont(loadFont("Roboto-Light-20.vlw")); // police de caractère
appc.fill(250);
String s = String.valueOf(d); // jour
appc.text(s, 632, 77);
appc.text("/", 644,77);
s = String.valueOf(m); // mois
appc.text(s, 652, 77);
appc.text("/", 665,77);
s = String.valueOf(y); // année
appc.text(s, 673, 77);
appc.text(+hour()+ ":"+minute()+":"+second(), 720, 77);
} //_CODE_:window2:601170:
synchronized public void win_draw3(PApplet appc, GWinData data) { //
appc.background(background2);
appc.textFont(loadFont("Roboto-Light-20.vlw")); // police de caractère
appc.fill(250);
String s = String.valueOf(d); // jour
appc.text(s, 632, 77);
appc.text("/", 644,77);
s = String.valueOf(m); // mois
appc.text(s, 652, 77);
appc.text("/", 665,77);
s = String.valueOf(y); // année
appc.text(s, 673, 77);
appc.text(+hour()+ ":"+minute()+":"+second(), 720, 77);
} //_CODE_:window2:601170:
void createWindows() // temperature et humidité
{
window1 = GWindow.getWindow(this, "Window title", 0, 0, 800, 500, JAVA2D);
window1.setActionOnClose(G4P.CLOSE_WINDOW);
window1.addDrawHandler(this, "win_draw1");
imgButton8 = new GImageButton(window1, 521, 7, new String[] { "User.png", "User.png", "User.png" } );
imgButton8.addEventHandler(this, "imgButton8_click1");
imgButton9 = new GImageButton(window1, 685, 463, new String[] { "quitter.png", "quitter.png", "quitter.png" } );
imgButton9.addEventHandler(this, "imgButton9_click1");
imgButton10 = new GImageButton(window1, 354, 409, new String[] { "humid.png", "humid.png", "humid.png" } );
imgButton10.addEventHandler(this, "imgButton10_click1");
imgButton11 = new GImageButton(window1, 74, 410, new String[] { "temp.png", "temp.png", "temp.png" } );
imgButton11.addEventHandler(this, "imgButton11_click1");
imgButton12 = new GImageButton(window1, 405, 177, new String[] { "humid2.png", "humid2.png", "humid2.png" } );
imgButton12.addEventHandler(this, "imgButton12_click1");
}
void createWindows2() // comptage
{
window2 = GWindow.getWindow(this, "Comptage", 521, 7, 800, 500, JAVA2D);
window2.setActionOnClose(G4P.CLOSE_WINDOW);
window2.addDrawHandler(this, "win_draw2");
imgButton13 = new GImageButton(window2, 253, 110, new String[] { "Comptage2.png", "Comptage2.png", "Comptage2.png" } );
imgButton13.addEventHandler(this, "imgButton13_click1");
imgButton14 = new GImageButton(window2, 521, 7, new String[] { "User.png", "User.png", "User.png" } );
imgButton14.addEventHandler(this, "imgButton14_click1");
imgButton18 = new GImageButton(window2, 685, 463, new String[] { "quitteeeer.png", "quitteeeer.png", "quitteeeer.png" } );
imgButton18.addEventHandler(this, "imgButton18_click1");
}
void createWindows3() // masse
{
window3 = GWindow.getWindow(this, "Window title", 0, 0, 800, 500, JAVA2D);
window3.setActionOnClose(G4P.CLOSE_WINDOW);
window3.addDrawHandler(this, "win_draw3");
imgButton15 = new GImageButton(window3, 521, 7, new String[] { "User.png", "User.png", "User.png" } );
imgButton15.addEventHandler(this, "imgButton15_click1");
imgButton16 = new GImageButton(window3, 257, 409, new String[] { "boutonkg.png", "boutonkg.png", "boutonkg.png" } );
imgButton16.addEventHandler(this, "imgButton16_click1");
imgButton17 = new GImageButton(window3, 259, 118, new String[] { "kgmass.png", "kgmass.png", "kgmass.png" } );
imgButton17.addEventHandler(this, "imgButton17_click1");
imgButton19 = new GImageButton(window3, 685, 463, new String[] { "quitteeeer.png", "quitteeeer.png", "quitteeeer.png" } );
imgButton19.addEventHandler(this, "imgButton19_click1");
}
// Use this method to add additional statements
// to customise the GUI controls
public void customGUI(){
}
and I want to add that to the win_draw1 :
// Librairie communication serie
import processing.serial.*;
// Initialisation des variables
Serial monPort; // Déclatation port série pour la lecture des données envoyées par Arduino
int mesure; // Mesure lue sur le port
//Initialisation des variables
int temperature; //Temperature mesurée par l'Arduino
int j; //Indice de travail
int k; //Indice de travail
//Traitements d'initialisation
void setup() {
//Initialisations port série
println(Serial.list()); // Affichage dans la console de la liste des ports serie du PC
monPort = new Serial(this, "COM2", 9600); //Initialisation de la communicaiton port serie
monPort.bufferUntil('\n'); //Attend la réception d'un fin de ligne pour générer un serialEvent()
//Initialisatiopns graphiques
size (240,540);
background(#9FB84D); // VERT CLAIR
smooth(); //On active le lissage
//Dessin des cadres -------------------------
stroke(0);
strokeWeight(1);
fill(230);
rect (20,20,180,500); //Thermometre
//Dessin des titres -------------------------
fill(255,0,0);
text("Thermomètre Station Météo",30, 40);
fill(0,0,255);
//Dessin du thermomètre -----------------------
fill(50);
noStroke();
rect(100,70,20,420);
ellipse(110, 490, 40, 40);
//Dessin du réservoir
ellipse(110, 70, 20, 20);
fill(#FF1008); // ROUGE
ellipse(110, 490, 30, 30);
//Gradations et textes tous les 10 degrés
fill(50);
strokeWeight(2);
stroke(50);
//à gauche
for (int i = 0; i < 11; i++) {
j=i*40;
k=i*10-50;
line(90, 475-j, 100,475-j);
text(k+" °C", 50, 475-j);
}
//Gradations fines des degrés
//à gauche
strokeWeight(1);
stroke(50);
for (int i = 0; i < 50; i++) {
j=i*8;
line(95, 475-j, 100,475-j);
}
//à droite
strokeWeight(1);
stroke(50);
}
}
//Traitements itératifs
void draw() {
// Pas de traitement car tout est réalisé dans la fonction serialEvent()
}
//Traitements à réception d'une fin de ligne
void serialEvent (Serial monPort)
{
//Récupération sur le port série de la tension sous forme de chaine de caractères
String tensionCar = monPort.readStringUntil('\n');
if (tensionCar != null)
{
tensionCar = trim(tensionCar); // Suppression des blancs au début et à la fin de la chaine de caractère
int tensionNum = int(tensionCar); // Conversion de la tension codée en CHAR en valeur décimale puis calcul température
float temperature = ((500 * tensionNum) / (3.3 * 1024)) - 50.0;
//Affichage des températures ----------------
//Dessin des cadres -------------------------
stroke(0);
strokeWeight(1);
//Dessin du thermomètre -----------------------
fill(50);
noStroke();
rect(100,70,20,420);
ellipse(110, 490, 40, 40);
// Dessin du réservoir
ellipse(110, 70, 20, 20);
fill(#FF1008); // ROUGE VIF
ellipse(110, 490, 30, 30);
//Dessin temperature actuelle -----------------------
noStroke();
fill(#FF1008); // ROUGE VIF
rect(105,476-(50+temperature)*4,10,(50+temperature)*4);
fill(#F59300); // ORANGE
rect(110,476-(50+temperature)*4,3,(50+temperature)*4);
}
}
Here it's the Arduino code :
int temperature;
void setup()
{
Serial.begin(9600);
}
void loop()
{
temperature = analogRead(A1);
Serial.println(temperature);
delay(1000);
}
Can you help me to add this code to the win_draw1 ? It's for the temperature.
I'm sorry for the french code, if you can help me with Skype (in live) it's cool.
Regards,
Itachi