Club robotique de Sophia-Antipolis

Accueil > POBOTpedia > Programmation > Apprendre à coder > Programmation Arduino > Une interface IHM pour Arduino

Une interface IHM pour Arduino

Contrôle par PC d’un Arduino

dimanche 18 septembre 2011, par Loïc


Toutes les versions de cet article : [English] [français]

Loïc a développé une interface utilisateur très simple mais complète pour les cartes Arduino. Il a développé son propre protocole sur quatre octets seulement, permettant une plus grande vitesse que Firmata. Des fonctionnalités étendues (enregistrement, stockage, chargement de fichiers) font de cette IHM une des meilleures qu’on puisse trouver. Cet avis n’engage que moi (Julien) mais je laisse le soin à Loïc de vous présenter son travail afin de vous en convaincre :

Comment introduire le monde réel dans nos applications ? Comment interagir avec nos créations numériques dans le monde concret qui nous entoure ? Une solution relativement facile à mettre en œuvre consiste à utiliser la plateforme de développement matériel Arduino et de l’interfacer avec Arduino IHM 2.1.

Principe

arduino_IHM_004

La solution repose sur une bibliothèque (library) appelée IHM2_1_PDE qui implémente un protocole de communication entre la carte Arduino et l’ordinateur-hôte.

En termes plus simples, cette librairie permet de faire dialoguer facilement la carte et l’ordinateur en permettant depuis l’ordinateur de modifier directement la configuration de la carte sans avoir à modifier le code que l’on a chargé initialement dans celle-ci.

Cette solution s’avère particulièrement pratique lorsque la carte est embarquée dans un dispositif difficile d’accès, avec seulement une communication sans-fil pour intervenir.

Pourtant, ce dispositif de contrôle par ordinateur n’est pas incompatible avec une utilisation autonome, comme nous le verrons plus tard.

Utilisation

Étape 1 : Installer IHM2_1_PDE sur une carte Arduino

Ouvrez le sketch disponible dans l’archive ci-jointe :

Sketch Arduino IHM 2.1

Depuis l’application Arduino, sélectionnez la bonne plateforme correspondant au modèle de la carte arduino que vous avez : UNO, Duemilanove,...

Sélectionnez le port USB qui communiquera avec la carte Arduino.

arduino_IHM_006

Téléchargez ensuite IHM2_1_PDE dans l’Arduino.

Étape 2 : Installer le logiciel

L’archive ci-dessous contient tout ce qu’il faut pour fonctionner sur un ordinateur PC équipé de Windows. Les bibliothèques logicielles (Qt) sont incluses. Contactez-nous en cas de problème.

Arduino IHM 2.1 (Win)

Il suffit de dézipper l’archive à l’endroit voulu sur votre machine, et c’est tout (comme le logiciel Arduino).

Étape 3 : Ouvrir l’exécutable Arduino IHM 2.1

arduino_IHM_004

Choisissez le port de communication de l’arduino.

La vitesse de communication par défaut est de 115200 : ne la modifiez pas si vous n’avez pas aussi modifié le code IHM2_1_PDE chargé dans l’Arduino.

Connectez-vous après vous être assuré qu’aucune autre application (logiciel Arduino ou application tierce) n’a déjà ouvert le port série associé.

L’utilisation des sorties numériques ("Digital"), ainsi que les entrées analogiques sont accessibles dans la version actuelle.
Différents modes sont disponibles : vous pourrez contrôler les sorties numériques en tout ou rien, connecter des servomoteurs, et changer les valeurs des pattes PWM disponibles selon votre modèle.

arduino_IHM_005

Fonctionnalités avancées

Il est possible d’enregistrer une séquence de commandes en cliquant sur RECORD. C’est particulièrement utile pour reproduire des mouvements de moteurs.

Vous exécutez la séquence courante en appuyant sur PLAY. Le bouton CLEAR permettra d’effacer l’enregistrement.

En haut à droite, deux boutons : "Sauver" vous permet d’enregistrer votre séquence en fichier texte (.txt) sur votre PC. Le bouton "Ouvrir" vous permet de récupérer des fichiers texte (.txt) sur votre PC.

Exemple

Le robot Quarduino est entièrement contrôlé par cette application. Une carte mémoire permettra de stocker chacune des chorégraphies élémentaires afin que le robot soit autonome.

Evolutions

Vous constaterez dans l’interface PC qu’un onglet "Oscilloscope" prévoit déjà l’utilisation de la seconde moitié de la carte, avec un tracé des sorties analogiques.

Une seconde version est également développée spécifiquement à chaque robot afin d’associer plusieurs sorties de servomoteurs entre-elles. Le langage de communication est alors étendu pour permettre de faire passer des consignes spécifiques à la morphologie du robot avec toujours la même économie de caractères.

Portfolio

Vos commentaires

  • Le 24 juillet 2012 à 23:13, par FERRANT Gérard En réponse à : Une interface IHM pour Arduino

    réalisation vraiment superbe. Félicitations et merci de le proposer gratuitement.
    Existe-t-il un fichier pde qui permettrait de transformer un arduino en port série virtuel équivalent au module USBmod3 avec toutes les sorties DTR,TXD,RXD,DCD,RI,CTS,RTS et DSR

    • Le 25 juillet 2012 à 00:12, par Julien H. En réponse à : Une interface IHM pour Arduino

      Bonsoir,

      Non les micro-contrôleurs AVR présents sur les cartes Arduino Uno et suivantes ne supportent pas le contrôle de flux, à ce que j’ai compris.

    • Le 22 juin 2013 à 17:03, par Félix Dhumes En réponse à : Une interface IHM pour Arduino

      Exact, mais cependant avec la Leonardo c’est possible.

    • Le 22 juin 2013 à 17:15, par Julien H. En réponse à : Une interface IHM pour Arduino

      Merci pour l’info ! Concrètement, comment ça fonctionne ? Il y a un tutoriel sur la Léonardo disponible quelque part ?

    Répondre à ce message

  • Le 23 mai 2012 à 16:18, par casper22 En réponse à : Une interface IHM pour Arduino

    Bonjour

    IHM pour Arduino est-il aussi compatible avec le 1.0 en .ino ?

    Merci d’avance

    Répondre à ce message

  • Le 21 septembre 2011 à 13:05, par Alban En réponse à : Une interface IHM pour Arduino

    Ok ...Vite fait un Petit test effectué avec l’outil IHM...
    juste 1 led sur le port N°13 connecté en direct sur la MegaADK ne semble pas marcher apres avoir suivi la procedure ...

    • Le 21 septembre 2011 à 17:45, par Loïc En réponse à : Une interface IHM pour Arduino

      Bonjour !
      Le projet Arduino IHM 2.0 fonctionne pour le moment avec l’arduino UNO et Duemilanove. Ce programme n’a jamais été testé sur d’autres modèles Arduino.

    • Le 9 avril 2012 à 02:34, par NoirDesir En réponse à : Une interface IHM pour Arduino

      Bonjour,
      Merci pour cette super petit appli.
      10 minutes après avoir découvert ce post, je m’amusais en connectant pour la première fois deux servos sur une Arduino Mega1280, et en enregistrant une petite "chorégraphie".

    Répondre à ce message

  • Le 21 septembre 2011 à 19:23, par Alban En réponse à : Une interface IHM pour Arduino

    Ok ...Bonsoir ...Apres avoir pris mon temps et surtout SELECTIONNé LE BON PORT COM ....j’ai testé une led sur le port 13 ...Ca marche Nickel ...carte mega ADK Original arduino ...win 7/64 Bit
    Bravo l’artiste ...Bon maintenant que l’as fait comme ca ...va falloir faire pareil pour "Android" ....

    Répondre à ce message

Un message, un commentaire ?

modération a priori

Attention, votre message n’apparaîtra qu’après avoir été relu et approuvé.

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.