Étape 4: Utilisation de traitement pour rendre le graphique
Traitement :
Si vous n’avez pas utilisé le traitement avant que vous pouvez télécharger le logiciel de www.processing.org. Traitement est très comme arduino, mais ses sorties sont image plutôt que du matériel en fonction. Traitement aura l’information nous avez imprimé à serial(9600) et l’utiliser pour établir une courbe.
Notre croquis peut sembler assez compliqué, mais il permet le croquis à entrées multiples de plante assoiffée et mettre tous les graphiques sur une seule page. Lisez-le pour voir comment ça fonctionne.
Import processing.serial.* ;
Serial myPort ;
String delimiterBetweenMultipleValues = "|" ;
String delimiterBetweenLabelAndValue = ":" ;
int numserialreads = 0 ;
int graphStartX = 100 ;
int textPadding = 2 ;
int circleDiameter = 3 ;
String [] valuePairs ;
pointe à tracer booléen = false ;
drawCircle boolean = true ;
drawLine boolean = true ;
xPos int = graphStartX ; position horizontale du graphique
partH int ; hauteur d’écran partielle
int valmin = 0 ; Valeur minimale de graphe
valmax int = 600 ; Valeur maximale du graphique
void setup()
{
Size(1366, 700) ; ajuster à la taille de votre écran
println(Serial.List()) ; Obtenir la configuration série
myPort = nouvelle série (ce, Serial.list() [0], 9600) ; Ouvrir le Port série à 9600
myPort.clear() ; Vider la mémoire tampon
myPort.bufferUntil('\n') ; Ne génèrent pas un serialEvent() sauf si vous obtenez un caractère de saut de ligne :
arrière-plan (170, 219, 207) ; Couleur de fond initial
textSize(42) ; Taille du texte
remplissage (237, 61, 138) ; Couleur de police
}
void draw()
{
Tout se passe dans la serialEvent()
}
keyPressed() Sub //This va nous rafraîchir l’écran quand il a heurté le "n" clé
{
Si (clé == ' n ') {}
PosX = 0 ;
arrière-plan (170, 219, 207) ; Lingettes écran avec fond turquoise
}
}
void serialEvent (Serial myPort)
{
String inString = myPort.readStringUntil('\n') ; Obtenez la chaîne ASCII :
Si (inString! = null) {}
numserialreads ++ ;
inString = trim(inString) ; Coupez tout espace blanc
println(inString) ; Voir l’établissement de la chaîne de données entrantes
Si (numserialreads < 20) //Reset tout
{
println("Initializing") ;
retour ;
}
Si (numserialreads == 20) //Reset tout
{
PosX = 0 ; Revenir en position 0
arrière-plan (170, 219, 207, 255) ; Effacer l’écran et afficher le fond turquoise
}
valuePairs = split (inString, delimiterBetweenMultipleValues) ; diviser la chaîne entrante en paires de valeur/étiquette et stocker dans un tableau.
int totalinputs = valuePairs.length ;
partH = hauteur / totalinputs ; Diviser écran vers le haut par nombre de capteurs
pour (int j = 0; j
{
String [] paire ;
paire = split (valuePairs [j], delimiterBetweenLabelAndValue) ;
Label As String ;
label = paire [0] ;
texte (étiquette, 10, partH*(j+1) -10) ;
pair[1]=Trim(pair[1]) ;
int valeur = int(pair[1]) ;
valeur = int (carte (valeur, valmin, valmax, 0, partH)) ; Carte de la valeur à la variable hauteur partielle
Si (j == 0) {}
accident vasculaire cérébral (245, 230, 86) ;
}
Si (j == 1) {}
accident vasculaire cérébral (241, 90, 49) ;
}
Si (j == 2) {}
accident vasculaire cérébral (0, 173, 181) ;
}
ligne (xPos, partH*(j+1), xPos, partH*(j+1) - valeur) ; graphique sa valeur
Stroke(255) ; divisant la couleur de ligne
ligne (0, partH*(j+1), largeur, partH*(j+1)) ;
}
Si (xPos > = largeur)
{
PosX = 0 ;
arrière-plan (170, 219, 207, 255) ; Effacer l’écran et afficher le fond turquoise
} else
{
xPos ++ ; incrémenter la position horizontale du graphe
}
}
}
exit() Sub {}
myPort.stop() ;
}