Annonce

>>> Bienvenue sur codelab! >>> Première visite ? >>> quelques mots sur codelab //// partage de liens //// une carte des membres//// (apéros) codelab


#61 2013-07-06 21:24:50 Re : Ressources Processing et tutoriels en ligne

fabax
nouveau membre
Date d'inscription: 2013-07-06
Messages: 9
Site web

Re: Ressources Processing et tutoriels en ligne



Bonjour !

Voici un nouveau site sur processing que je lance avec des amis tutoprocessing.com .
Je vais faire en sorte de poster des tutos régulièrement dessus pour ceux que ca interesse. n'hesitez pas a me dire si vous le trouvez utile (ou pas tous les avis m'interessent ) ).


Mon site sur processing : tutoprocessing.com

Hors ligne

 

#62 2016-01-11 01:26:25 Re : Ressources Processing et tutoriels en ligne

Pilou
membre
Date d'inscription: 2014-07-15
Messages: 72

Re: Ressources Processing et tutoriels en ligne



Celui-ci vient de sortir! smile (6 janvier 2016) Des codes et chapitres en ligne sur le lien! wink
Par l'auteur du fameux Dernier Blog et son article sur la découverte de Processing! cool
http://www.images.hachette-livre.fr/media/imgArticle//DUNOD/2015/9782100737840-001-T.jpeg

Dernière modification par Pilou (2016-01-11 01:37:40)


Est beau ce qui plaît sans concept
Petit site

Hors ligne

 

#63 2016-01-11 01:47:13 Re : Ressources Processing et tutoriels en ligne

Pilou
membre
Date d'inscription: 2014-07-15
Messages: 72

Re: Ressources Processing et tutoriels en ligne


Est beau ce qui plaît sans concept
Petit site

Hors ligne

 

#64 2017-02-02 11:02:43 Re : Ressources Processing et tutoriels en ligne

alismont
nouveau membre
Date d'inscription: 2017-02-02
Messages: 2

Re: Ressources Processing et tutoriels en ligne



Bonjour à tous.

Mon problème: de liaison entre une tablette Samsung et une arduino.
Type de liaison: USB micro sur tablette et port USB sur Arduino.

Voici mon code source: en processing mode android.....

import io.inventit.processing.android.serial.*;

//import processing.serial.*;  //<>// //<>//
import controlP5.*; // importe la librairie GUI controlP5

//-----Variables bargraphe-----------
BarGraphe barGraphe;
BarGraphe barGraphe2;

int value=0;
float yB=0.00;
float yBPr=0.00;
float yBSM=0.00;
float BG1=0;
float BG2=0;

//--------------Variable programme-------
PFont font;

PrintWriter output;
PFont myFont;     // The display font
String inString;  // Input string from serial port
int lf = 10;      // ASCII linefeed
String t=":";
String[] tag = new String[110];
int MEMOSYN=0;
String TramEcriture="";
int i=0;
int L=50;
char c1;

//--Shape --
PShape s;
PShape s1;
PShape s2;
int sq=0;
//-- GUI --
ControlP5 cp5;    // déclare un objet principal de la librairie  controlP5
ListBox l;
Textlabel Tl;
ControlTimer c;
Textlabel tt;
Chart myChart;
Chart myChart2;

//-- Divers --
int TransmissionSQ=0;
int cnt = 0;
int compteur=0;
String Recu="";

BufferedReader reader;
String line;

Toggle togglePause; // déclare un/des objets Toggle

Slider sliderCoeff; // déclare un/ des objet Slider
Slider sliderBase; // déclare un/ des objet Slider

ControlWindow cw1; // déclare un/des objet fenetre ControlWindow

String[] TextValue = new String[100];
String[] men1= new String[100];
String OKPROC="OKPROC";
String OKFIN="OKFIN"; 

//------ Déclaration des variables de couleur utiles ----
int jaune=color(255, 255, 0);
int vert=color(0, 255, 0);
int rouge=color(255, 0, 0);
int bleu=color(0, 0, 255);
int noir=color(0, 0, 0);
int blanc=color(255, 255, 255);
int bleuclair=color(0, 255, 255);
int violet=color(255, 0, 255);

// --- Port Série ---
Serial  myPort; // Création objet désignant le port série

int PasApas=0;
boolean LAI1=false;
boolean LPSA=false;
boolean LPOS1=false;
boolean LDIO=false;

float AI1=0.0;
float PSA=0.0;
String DIO;

float test=0.0;
int Lu=0;

int LectureAI1=0;
int LecturePSA=0;
int LectureADD=0;
int LectureDIO=0;

int scan=0;
int psq=1;
String ADD="";

//*************************** SETUP ***************************************************************************
void setup() {
  //size(2000, 1000);
  fullScreen();
  //println(Serial.list()); // affiche dans la console la liste des ports s�ries
  //myPort = new Serial(this, Serial.list()[0], 9600, 'O', 7, 1); // Initialise une nouvelle instance du port S�rie
  //myPort = new Serial(this, Serial.list(this)[0], 9600, 'O', 7, 1);
  myPort = new Serial(this, Serial.list(this)[0], 9600, 'N', 8, 1); // Initialise une nouvelle instance du port S�rie
  //myPort.bufferUntil(lf); // attendre arriv�e d'un saut de ligne pour g�n�rer �v�nement s�rie
  myPort.buffer(1000);
  myPort.clear();

  //-- Shape
  s = loadShape("shape1-1.svg");
  s1 = loadShape("shape1-2.svg");
  s2 = loadShape("shape1-3.svg");

  barGraphe = new BarGraphe(500, 90);
  barGraphe2 = new BarGraphe(500, 90);

  //size(displayWidth, displayHeight, P3D);
  orientation(LANDSCAPE);

  font = loadFont("Arial-Black-48.vlw");
  barGraphe.Start(); // start bargraphe
  //barGraphe2.Start(); // start bargraphe

  ControlP5.printPublicMethodsFor(ListBox.class);
  // --- police texte ---
  PFont font = createFont("arial", 20); // crée un objet de police texte

  //-- Init GUI --
  frameRate(60);
  cp5 = new ControlP5(this);

  c = new ControlTimer();
  tt = new Textlabel(cp5, "--", 120, 120);
  c.setSpeedOfTime(1);
  tt.setPosition(500, 10);
  tt.setFont(createFont("Georgia", 30));


  myChart = cp5.addChart("dataflow")
    .setPosition(300, 400)
    .setSize(500, 200)
    .setRange(-5, 5)
    .setView(Chart.LINE) // use Chart.LINE, Chart.PIE, Chart.AREA, Chart.BAR_CENTERED
    .setStrokeWeight(1.5)
    .setColorCaptionLabel(color(40))
    ;

  myChart.addDataSet("incoming");
  myChart.setData("incoming", new float[100]);

  myChart2 = cp5.addChart("dataflow2")
    .setPosition(1220, 400)
    .setSize(500, 200)
    .setRange(-4100, 4100)
    .setView(Chart.LINE) // use Chart.LINE, Chart.PIE, Chart.AREA, Chart.BAR_CENTERED
    .setStrokeWeight(1.5)
    .setColorCaptionLabel(color(40))
    ;

  myChart2.addDataSet("incoming2");
  myChart2.setData("incoming2", new float[100]);

  cp5.addTextfield("DB")
    .setPosition(20, 20)
    .setSize(200, 30)
    .setFont(createFont("arial", 30))
    .setAutoClear(false)
    ;


  Tl= cp5.addTextlabel("label")
    .setText("Valeur: ")
    .setPosition(700, 60)
    .setColorValue(0xffffff00)
    .setFont(createFont("Georgia", 20))
    ;

  cp5.addBang("clear")
    .setPosition(250, 60)
    .setSize(80, 20)
    .getCaptionLabel().align(ControlP5.CENTER, ControlP5.CENTER)
    ; 

  cp5.addBang("Add")
    .setPosition(250, 20)
    .setSize(80, 30)
    .getCaptionLabel().align(ControlP5.CENTER, ControlP5.CENTER)
    ; 

  cp5.addBang("AI1")
    .setPosition(130, 220)
    .setSize(80, 20)
    .getCaptionLabel().align(ControlP5.CENTER, ControlP5.CENTER)
    ; 

  cp5.addBang("PSA")
    .setPosition(130, 250)
    .setSize(80, 20)
    .getCaptionLabel().align(ControlP5.CENTER, ControlP5.CENTER)
    ;

  cp5.addBang("EXIT")
    .setPosition(250, 100)
    .setSize(80, 20)
    .getCaptionLabel().align(ControlP5.CENTER, ControlP5.CENTER)
    ;

  cp5.addBang("DIO")
    .setPosition(130, 280)
    .setSize(80, 20)
    .getCaptionLabel().align(ControlP5.CENTER, ControlP5.CENTER)
    ;

  background(0);
  textSize(32);
  fill(255, 100, 100);
  //text("MACVALVES..................", 380, 28);

  //-- Init Shape --
  s.setVisible(false);
  s1.setVisible(false);
  s2.setVisible(false);
}

//******************************* MAIN PROGRAMME *********************************************
void draw() {
  background(0);

  //-- gestion scan
  if (LAI1 && !LPSA) {
    sq=0;
    if (LAI1 && Lu==0 && LectureAI1==0) {
      Lu=1;
      myPort.write("5AI1?");
      myPort.write(13);
      // myPort.write(10);
      LectureAI1=1;
    }
  }

  if (!LAI1 && LPSA) {
    sq=0;
    if (LPSA && Lu==0 && LecturePSA==0) {
      Lu=1;
     myPort.write("5PSA?");
      //myPort.write("5VB5?");
      myPort.write(13);
      //myPort.write(10);
      LecturePSA=1;
    }
  }

  if (LAI1 && LPSA) {
    switch(psq) {
    case 1:
      //-- Traitement AI1
      if (LAI1 && Lu==0 && LectureAI1==0) {
        Lu=1;
        myPort.write("5AI1?");
        myPort.write(13);
        //myPort.write(10);
        LectureAI1=1;
        psq=2;
      }
      break;
    case 2:
      if (LPSA && Lu==0 && LecturePSA==0) {
        Lu=1;
        myPort.write("5PSA?");
        myPort.write(13);
        //myPort.wr ite(10);
        LecturePSA=1;
        psq=1;
      }
      break;
    }
  }

  if (LDIO) {
    sq=0;
    if (LDIO && Lu==0 && LectureDIO==0) {
      Lu=1;
      myPort.write("5DIN7.8?");
      myPort.write(13);
      //myPort.write(10);
      LectureDIO=1;
    }
  }


  delay(100);
  //--Lecture --
  lectureBuffer();


  //-- Affichage bargraph--

  barGraphe.Display(); // affichage horloge



  //-- Affichage compteur
  tt.setValue(c.toString());
  tt.draw(this);


  //-- Affichage AI--
  if (LAI1) {
    if ( !Float.isNaN(AI1)  ) {
      fill(250, 226, 5);
      textSize(20);
      text(AI1, 232, 230);
      barGraphe.Running(100, 360);// rafraîchissement image
      //println(AI1);       
      BG1=barGraphe.Integration(AI1, 144, 965, 70, -110, -50);// (float _yB, int _PointBLx, int _PointBLy, int _LargeurX)
    }
  } else {
    fill(250, 226, 5);
    textSize(20);
    text("        ", 232, 230);
  }

  //-- Affichage AI--
  if (LPSA) {
    if ( !Float.isNaN(PSA)  ) {   
      fill(250, 226, 5);
      textSize(20);
      text(PSA, 232, 270);
      //barGraphe.Running(1000, 360);// rafraîchissement image
      //println(PSA);
      //BG1=barGraphe2.Integration(PSA, 1044, 965, 70, -0.50, 0);
    }
  } else {
    fill(250, 226, 5);
    textSize(20);
    text("        ", 232, 270);
  }

  //-- Affichage ADD
  fill(250, 226, 5);
  textSize(20);
  text("Recu: "+ADD, 25, 140);

  //-- Affichage DIO
  if (LDIO) {
    text("DIN7.8: "+DIO, 20, 315);
  } else {
    text("DIN7.8:      ", 20, 315);
  }

  //-- Affichage mouse--
  text(mouseX+"  "+mouseY, 1235, 37);

  //-- Graph --
  myChart.push("incoming", (AI1));
  myChart2.push("incoming2", (PSA));

  //-- Affichage shape --
  shape(s);
  shape(s1);
  shape(s2);
}

//*********************** DEBUT FONCTIONS *************************************

void lectureBuffer() {
  while (myPort.available() > 0) {
    String inBuffer = myPort.readString();   
    if (inBuffer != null) {


      if (LectureADD==1) {

        //println(inBuffer.substring(0));
        ADD=inBuffer.substring(0);
        LectureADD=0;
      }

      if (LectureAI1==1) {
        //println(inBuffer.substring(8));
        AI1=float(inBuffer.substring(8));
        LectureAI1=0;
      }

      if (LecturePSA==1) {
        //println(inBuffer.substring(8, 14));
        PSA=float(inBuffer.substring(8));
        LecturePSA=0;
      }

      if (LectureDIO==1) {
        //println(inBuffer.substring(11));
        DIO=inBuffer.substring(11);
        println(DIO);
        LectureDIO=0;
      }
    }
    myPort.clear();
    Lu=0;
  }
}

//-- Event bouton CLEAR
public void clear() {
  cp5.get(Textfield.class, "DB").clear();
}

//-- Event bouton ADD
public void Add() {
  if (Lu==0) {
    Lu=1;
    myPort.write(cp5.get(Textfield.class, "DB").getText());
    myPort.write(13);
    //myPort.write(10);
    //println("envoyer"+cp5.get(Textfield.class, "DB").getText());
    LectureADD=1;
  }
}
//-- Set lecture AI1
public void AI1() {
  if (!LAI1) {
    LAI1=true;
    s.setVisible(true);
  } else
  {
    LAI1=false;
    s.setVisible(false);
  }
}

//-- Lecture PSA
public void PSA() {
  if (!LPSA) {
    LPSA=true;
    s1.setVisible(true);
  } else
  {
    LPSA=false;
    s1.setVisible(false);
  }
}
//-- Lecture DIO
public void DIO() {
  if (!LDIO) {
    LDIO=true;
    s2.setVisible(true);
  } else
  {
    LDIO=false;
    s2.setVisible(false);
  }
}
//-- Event
void controlEvent(ControlEvent theEvent) {
  if (theEvent.isAssignableFrom(Textfield.class)) {
    //println("controlEvent: accessing a string from controller "
    //+theEvent.getName()+"': "
    //+theEvent.getStringValue());
  }
  if (theEvent.getName().equals("myList")) {
  }
}


//--  Mouse press
void mousePressed() {
  c.reset();
}
//-- Exit bouton
public void EXIT() {
  exit(); // Stops the program
}

//************* CLASS ***************
class BarGraphe
{
  float yB=0;
  float yBPr=0;
  float yBSM=0;
  float H=0;

  boolean running ;
  int x, y ;
  PImage img;

  BarGraphe(int inX, int inY)
  {
    x = inX ;
    y = inY ;
    running = false ;
  }

  void Display() {

    int s = second();  // Values from 0 - 59 // affichage de l'heure
    int m = minute();  // Values from 0 - 59
    int h = hour();    // Values from 0 - 23
    fill(152);
    textFont(font);
    textSize(30);
    text(h+"/"+m+":"+s, 1000, 50);
  }

  void Start() {                                                               // chargement image
    img = loadImage("BarGraphe1.jpg");
  }           

  void Running(int inImgX, int inImgY) {                                                            // affichage image
    image(img, inImgX, inImgY, img.width*2, img.height*2);
  }

  float Integration(float _yB, int _PointBLx, int _PointBLy, int _LargeurX, float Hcoef1, float Hcoef2) {    // intégration affichage
    yB=_yB;// hauteur en pourcent
    yBSM=((yBSM*5)+yB)/6;

    H = ((Hcoef1*yBSM) + Hcoef2); // mise à échelle 0-1000% 1/10de% vers pixel
    //println(H);
    fill(253, 86, 99);
    rect( _PointBLx, _PointBLy, _LargeurX, H, 20);
    textSize(20);
    text(String.format("%.2f", yBSM), _PointBLx, _PointBLy-545);
    return (yBSM) ;
  }
}


Erreur après le transfert:
Port:null
check 1. make sure androidmanifest.xml contains <use-feature> tag for android.hardware.usb.host
2. usb serial is connected to the device

Après l'application s'arrête.....




Précision:

Dans le setup() si je supprime cette ligne:

myPort = new Serial(this, Serial.list(this)[0], 9600, 'N', 8, 1); // Initialise une nouvelle instance du port S�rie

et dans le draw() je ne fait plus appel à l'objet "myport", l'application tourne. Le problème est dans la communication.

Après le chargement dans la tablette en mode android à partir de IDE processing j'obtiens ce message dans la console processing:

debug:
FATAL EXCEPTION: Animation Thread
Process: processing.test.macvalvesandroid, PID: 31622
java.lang.ArrayIndexOutOfBoundsException: length=0; index=0
    at processing.test.macvalvesandroid.MacvalvesAndroid.setup(MacvalvesAndroid.java:130)
    at processing.core.PApplet.handleDraw(Unknown Source)
    at processing.core.PGraphicsAndroid2D.requestDraw(Unknown Source)
    at processing.core.PApplet.run(Unknown Source)
    at java.lang.Thread.run(Thread.java:818)


Pourriez-vous m'aider s.v.p.

Dernière modification par alismont (2017-02-02 11:11:23)

Hors ligne

 

fil rss de cette discussion : rss

Pied de page des forums

Powered by FluxBB

codelab, graphisme & code : emoc / 2008-2017