Comment lier Processing et Arduino?

Comment lier Processing et Arduino?

Arduino processing ide

Tutoriel sur le langage Processing pour les débutants en Arduino qui explique et démontre comment communiquer entre un Arduino et un ordinateur. Processing est un langage et un environnement de programmation basé sur le langage Java. Dans cette partie du tutoriel Arduino pour les débutants, le code du programme d’exemple est chargé dans l’IDE Processing. Ensuite, le code du programme d’exemple est exécuté. Il en résulte une application qui envoie des données à une carte Arduino via la connexion USB. Un sketch sur la carte Arduino reçoit les données de l’application et y réagit.

Complétez les parties précédentes de ce tutoriel Arduino pour débutants avant de poursuivre avec cette partie. Cette partie du tutoriel nécessite que l’IDE Arduino soit déjà installé et testé en programmant une carte Arduino. Les parties précédentes du tutoriel couvrent ces tâches.

L’image ci-dessous montre l’IDE Processing avec un exemple de code ouvert sur la gauche. Lorsque ce code d’exemple est exécuté, il produit l’application à droite de l’image ci-dessous. Cette petite fenêtre d’application fonctionnant sur un ordinateur réagit aux mouvements de la souris. Lorsque le curseur ou le pointeur de la souris est déplacé sur le carré gris au milieu de la fenêtre, la LED intégrée à l’Arduino s’allume. D’autre part, lorsque le curseur de la souris est déplacé hors du carré gris, la LED intégrée à l’Arduino s’éteint.

Processing lit la série à partir de l’arduino

J’essaie de faire communiquer un arduino avec java en utilisant jssc. Juste pour tester, j’essaie de recevoir les données sur l’Arduino et de les renvoyer au PC, c’est assez simple. Le problème est que la carte semble ne pas les recevoir. Lorsqu’un code pour Arduino est envoyé, cela fonctionne bien, mais il ne peut pas recevoir de données. J’ai d’abord pensé que le problème venait de jssc, donc j’ai changé mon application pour Processing, même problème. J’ai même essayé de changer la carte, aucune différence, la carte est en bon état et peut communiquer normalement avec Arduino Serial Monitor. Donc mon problème doit être le code Java et Processing. Je sais que c’est un problème très simple, et j’ai un peu honte de poster ceci, ce doit être un problème très simple qui me dépasse.

  Comment générer un signal PWM Arduino?

Téléchargement du traitement Arduino

Mise à jour pour Raspberry Pi 2/Processing 2.2.1/Processing 3.0.5 : Raspbian est maintenant livré avec Java 8, et Processing n’aime que Java 7. oracle-java7-jdk est toujours dans les dépôts, alors installez-le, et suivez les instructions ci-dessous. C’est un peu flou, mais quand il fonctionne, il est assez rapide sur le Raspberry Pi 2. Vous aurez peut-être plus de chance en exécutant Processing.js ou p5.js dans le navigateur.

Avec la disponibilité de Sun Oracle hardfloat Java, Processing fonctionne maintenant à un rythme décent sur le Raspberry Pi. Mes anciennes instructions sont maintenant très obsolètes. Voici les instructions actuelles et testées pour l’installer sous Raspbian.

[Il s’agit d’une solution particulière pour installer une distribution Processing 2.1 compatible Serial/Firmata sur un Raspberry Pi. Processing a encore des problèmes avec d’autres aspects de la programmation visuelle (en particulier la vidéo) que je n’aborde pas ici].

(Je ne vais pas entrer dans le téléchargement de Firmata sur votre Arduino ici. Tout ce que je peux vous recommander est d’utiliser la version la plus récente à firmata/arduino, plutôt que l’ancien code fourni avec votre distribution Arduino).

Exemple de traitement en série

Un autre problème concerne cette partie du code : if (device_detected). La fonction draw() est comme la fonction Arduino loop(), c’est-à-dire qu’elle tourne en boucle dans le code. Elle essaie à plusieurs reprises d’établir une nouvelle connexion série au même port, ce qui pourrait expliquer pourquoi le message d’erreur Port occupé est répété dans les messages d’erreur de la console.

Si vous installez la bibliothèque controlP5 dans l’IDE Processing, vous pouvez utiliser ce sketch de test de port pour voir l’ID du port changer chaque fois que vous créez une nouvelle connexion avec lui. Je soupçonne votre sketch de se connecter à l’Arduino la première fois via la fonction draw(), puis de continuer à essayer de se connecter au même port qui est occupé.

  Comment obtenir un circuit clignotant à LED?