Processing – interface graphique programmable côté PC pour le système Arduino.Par X. HINAULT. 2010 - 2012 IMPORTANT : Bien qu'utile en phase d'initiation à la programmation d'interfaces graphiques, j'estime que Processing montre vite ses limites dès lors que l'on souhaite réaliser de vraies interfaces graphiques système (ou GUI). D'autre part, Processing est trop gourmand en ressources système et est inutilisable sur une plateforme telle que le RaspberryPi, pcDuino ou autre mini-PC. J'utilise donc à présent et je conseille d'utiliser plutôt le langage Python associé à la librairie graphique Qt. Tout en offrant les mêmes fonctionnalités que Processing (réseau, série, OpenCV, OpenGL, etc..), cette solution de niveau professionnel, libre, multi-plateforme et mature s'avère bien plus puissante sous bien des aspects. C'est également un apprentissage ayant une portée bien plus polyvalente que Processing. Voir ma rubrique dédiée : Développer avec Python L'interface graphique programmable Processing, véritable "couteau suisse logiciel", écrite en Java (multiplateforme donc...) par le MIT, libre et opensource, donne la possibilité de créer des interfaces graphiques côté PC pour communiquer avec le système Arduino. On peut ainsi commander à la souris ou au clavier la carte Arduino ou bien afficher sur le PC des graphiques à partir des données reçues depuis la carte Arduino. Processing permet également de réaliser de la capture vidéo, du traitement d'image, des applications réseau serveur ou client, de la lecture de son, de la reconnaissance vocale... !! Cette interface utilise un langage dédié facile à prendre en main. Que du bon... et même du très très bon !
On this page... (hide)
1. Découvrir Processing
2. Le langage Processing
3. Graphismes avec Processing![]() 3.1 Tracé de courbe avec Processing3.2 Grapheurs avec interfaces GUI
4. Interface GUI avec Processing![]() 4.1 Mes programmes Processing : grapheurs avec interfaces graphiques
4.2 Interface graphique GUI ControlP5 :Contrôles de base de l'interface graphique GUI ControlP5 :Sliders (réglages linéaires) : Boutons graphiques : Champs Texte : Interface GUI ControlP5 et librairie Video openCVInterface GUI ControlP5 et PImage
Interface GUI controlP5 et sons (Minim)5. Communication Série avec Processing
6. Utilisation du texte avec Processing6.1 En mode console texte6.2 En mode graphique7. Gestion des fichiers et répertoires avec Processing![]() Datalogging texte
Datalogging Image
Datalogging VidéoDatalogging Son8. Ligne de commande programmée avec Processing (Gnu/Linux Ubuntu)![]()
9. Les entrées souris et clavier avec Processing10. Les sons et synthèse vocale avec Processing10.1 Ressources
10.2 Mes programmes Processing utilisant les sonsIl y 3 façons différentes de générer des sons à partir de Processing :
Sons avec la librairie Minim
Sons avec mplayer lancé en ligne de commande depuis Processing
Synthèse vocale avec espeak lancé en ligne de commande depuis Processing
11. Reconnaissance vocale avec Processing12. Traitement et analyse d'images avec Processing![]()
13. Vidéo avec Processing![]() 13.1 RessourcesGSVideo (capture et lecture vidéo) openCV (capture et reconnaissance visuelle) - obsolète - voir à présent : librairie javacvPro
Un petit truc bien utile sous Ubuntu : l'interface graphique "Video4Linux Device Preference" (paquet gtk-v4l) permet de régler l'image webcam même en cours d'utilisation avec Processing : pratique pour régler la luminosité ou autre. 13.2 Mes programmes Processing utilisant la capture vidéo simpleCapture vidéo avec la librairie GSVideo
1 webcam :
Plusieurs webcams (multi-cam) : J'ai personnellement réussi à utiliser GSVideo pour la capture de 8 flux vidéos webcam simultanément sous Ubuntu !
Capture vidéo avec GSVideo et traitement d'image avec la librairie OpenCV javacvPro
13.3 Datalogging Image et Vidéo
PAGES D'ARCHIVES Capture vidéo simple avec la librairie OpenCV hypermédiaCapture vidéo avec GSVideo et traitement d'image avec la librairie OpenCV hypermédia
14. Reconnaissance visuelle et suivi d'objet avec Processing![]() ![]() Ressources14.1 L'ESSENTIEL :GSVideo (capture et lecture vidéo) Ma librairie javacvPro : implémentation pour Processing de la librairie openCV 2.3.x (utilise javacv) NOUVEAU! 14.2 Pour mémoire :javacv : implémentation java de la librairie openCV
librairie openCV "hypermedia" (capture et reconnaissance visuelle) - obsolète : voir à présent Javacvpro -
Codes Processing utilisant les fonctions de ma librairie Processing javacvPro (OpenCV 2.3.x)![]() 14.3 Présentation
14.4 Exemples d'utilisation de base.14.5 Traitement d'image "statique" : Les programmes d'exemple de la référence.
14.6 Traitement d'image en direct d'un ou plusieurs flux vidéos issus d'une ou plusieurs webcams avec la librairie GSVideo (capture vidéo) et ma librairie OpenCV javacvPro pour Processing (reconnaissance visuelle)Traitements simplesReconnaissance et suivi de visageSuivi d'objet coloréDétection et suivi d'une balle colorée
Détection de plusieurs balles colorées
Divers
Codes de Mécatronique utilisant la reconnaissance visuelleTests techniques 1 tourelle Pan
2 tourelles Pan (2 servomoteurs)
1 tourelle Pan-Tilt (2 servomoteurs)
2 tourelles Pan-Tilt (4 servomoteurs)
Bras robotisé Reconnaissance et suivi d'objetRecherche de concordance entre une image objet et une image scène
Voir également : ARToolkit : réalité augmentée et 3D positionning avec Processing Techniques de soustraction du fond
Approche simplifiée
Approche avancée
Détection et suivi de la main et des doigtsDétection de la main et des doigts
Approche simplifiée de la détection des doigts
Suivi de la main et des doigts
Divers
PAGES D'ARCHIVES Codes de Mécatronique utilisant la reconnaissance visuelle1 tourelle Pan-Tilt
2 tourelles Pan-Tilt
Bras robotisé Avec la librairie OpenCV "hypermedia" pour Processing seule (capture vidéo + reconnaissance visuelle)
Avec librairie GSVideo (capture vidéo) et librairie OpenCV "hypermedia" pour Processing (reconnaissance visuelle)14.7 Suivi d'objet coloréDétection et suivi d'une balle colorée
Détection de plusieurs balles colorées
Divers
14.8 Reconnaissance et suivi de visage
14.9 Détection et suivi de la main et des doigtsDétection de la main et des doigts
Approche simplifiée de la détection des doigts
Suivi de la main et des doigts
14.10 Divers
Codes Processing utilisant les fonctions javacv "in-line"14.11 Les objets fondamentaux "statiques" d'OpenCVObjet IplIMage (conteneur d'image natif OpenCV)
Filtrage d'image simples Objet CvMat (Matrice 1 à n Dimensions).
14.12 Les objets fondamentaux "dynamiques" d'OpenCVDétection de contours
14.13 Techniques et stratégies utilesTechniques de soustraction du fondApproche simplifiéeApproche plus avancée15. Communications Serveur/Client avec Processing16. Mathématique avec Processing17. 3D avec Processing18. ARToolkit : réalité augmentée et 3D positionning avec ProcessingIntroductionARToolkit : mes codes Processing de réalité augmentéePremiers essais
Mes codes de réalité augmentée
ARToolkit : mes codes Processing pour suivi par webcam
ARToolkit : mes codes Processing pour positionnement 3D en robotique19. Animations avec Processing20. Mes programmes Processing pour ArduinoInterface GUI vers Arduino
|