Processing - Décrypter un code complexe
- Miya & Max
- 2 nov. 2018
- 2 min de lecture
Une fois que l'on a acquis les principes de base de la programmation (voir Analyse de ligne de code ), il est nécessaire pour progresser de savoir décrypter un code complexe et inconnu afin de le comprendre et de pouvoir réutiliser les structures qui le composent.
Le programme que nous allons étudier en guise d'exemple combine l’utilisation d’un micro et d’un micro-contrôleur arduino.
L’arduino peut communiquer par un port série avec l’ordinateur.
Le code

Cette première ligne est une importation de toutes les fonctionnalités (comme l'indique le caractère "*") de la bibliothèque audio « minim ».

C’est la déclaration de la variable décimale nommée « stockage » à laquelle on affecte avec float la valeur 250.

Création de l’objet minim de la classe Minim.

Création de l’objet in de la classe AudioInput.

Importation de la librairie permettant la communication série avec l’arduino.

Déclaration de la variable entière "val" et de la variable "var 1".

Appel de la fonction serialinitilisation écrite dans le dernier onglet.

"serialread" lit les données envoyées par l’arduino. Les données lues vont permettre de dessiner à l’écran un rectangle proportionnel à la charge du condensateur.

La fonction "textSize" définit la taille du texte et admet un seul paramètre (ici, 20).

La fonction "text" est une fonction qui prend trois paramètres et qui affiche par exemple « canal gauche » en position x et y = 20 (à partir de l’angle supérieur gauche).

La fonction "fill" est une fonction qui prend pour paramètre une couleur exprimée en hexadécimale. Elle va s’appliquer sur les formes suivantes, des rectangles dans ce cas.

La fonction "rect" est une fonction qui prend quatre paramètres : la position x, la position y (de l’angle supérieur gauche, à nouveau), puis largeur et longueur.

Pour cette condition if, si le test est vrai, on affiche « batterie pleine », sinon on exécute un calcul.


"String" correspond à des objets chaînes de caractère.

Il s’agit d’un copier-coller d’un exemple de la librairie « séries ».
Les librairies
Au lancement de Processing, il ne charge que les fonctions Java minimales. Si on veut rajouter d’autres possibilités, comme la gestion du son, il faut importer (menu/sketch/importer une librairie) une librairie qui ajoute des fonctionnalités.
Dans fichier/Exemples/Librairies, on trouve des exemples d’utilisation de la librairie.
Le programme ne fonctionne pas si il n’y a pas de micro (entrée in) et s’il n’y a pas d’arduino (entrée série). Donc, pour l’exécuter quand même sans arduino, il est possible de mettre en commentaire
« serialinitilisation(); ».
L'arduino
L’environnement de programmation d’arduino est sur le modèle de processing. Il permet de téléverser des applications dans la plaque arduino.
La fonction loop d’arduino s’exécute en boucle comme le draw de processing.

Voici une mémoire de code arduino insérée en commentaire dans le code processing:

Déclaration d’une constante entière de valeur 1.

Ouverture du port série à une vitesse d’échange des bits de 9600 bauds.

Lecture de la valeur analogique de la voie 1. Un condensateur sera relié à cette voie et l’arduino transmettra par le port série une valeur image de la tension.

La fonction "delay" indique qu'il y a 50 millisecondes d'attente.
"serialread" lit les données envoyées par l’arduino. (ligne processing). Les données lues vont permettre de dessiner à l’écran un rectangle proportionnel à la charge du condensateur.
Comentarios