Aller au contenu
MC News
  • Le site sera en maintenance bientôt pendant au moins 24H ... mise à jour

Chatbox - 88336 Messages. Spammers: neoskyriper (12735) . chronoss (11568) . crash over ride (10324) .

Load More
    Vous n'avez pas la permission pour chater.
    • b&nder
      b&nder

      Le Port Série/Interface QT

      Le port série que nous avons utilisé dans l'article précedent,permet une communication bi-directionnelle en série(leds Tx/Rx  transmission/Reception sur la carte),la transmission série étant un protocole de communication qui peut être utilisé pour recevoir ou envoyer des données sur des appareils équipés d'une liaison.

       

      Pour faire simple une transmission en série s'oppose à une transmission en parallelle,la transmission en série envoie les données de façon séquentielles regroupées en Octet,la transmission en parallelle envoie les donées simultanément.Concretement une transmission en parallelle envoie le nombre de byte à travers un bus(regroupement de fils)plus le bus est large plus de bits sont envoyés simultanément.

      pc-images-parallele.png

      La transmission série nécessite 2 fils pour fonctionner Rx et Tx,la vitesse est moindre que dans une transmission parallelle mais la simplicité du protocole série permet de faire communiquer différents périphériques facilement.La vitesse est exprimée en bauds(bits/ par seconde).

      pc-images-serie2.png

       

      L'exemple le plus simple est surement la communication entre l'arduino et le Pc via le port série.

      Attention! on parle de ports séries car le fonctionnement est identique mais dans ce cas là il s'agit d'un port série émulé via un composant de l'arduino et votre hôte usb du Pc.Quand on veut utiliser une liaison série 100% hardware entre différents péripheriques il faudra vérifier les niveaux logique(la tension de fonctionnement et celle de réference) utilisés sur les péripheriques!!!

      usb1.1.png

      Ouvrez l'IDE par défaut de l'arduino et creéz un sketch(fichier source par défaut utilisé par l'IDE Arduino) dans lequel vous taperez le code qui suit:

      void setup() {
      //On initialise le port série à 9600 bauds
      //Nous verrons plus tard les différents paramétres
        Serial.begin(9600);
      }
      
      void loop() {
      //On envoie du texte via le port série
        Serial.println("hello modconsoles");
        delay(2000); 
      //on attend 2 secondes
      //on repart au début de la boucle
      }

       

      Compilez le fichier et uploadez le vers votre carte puis ouvrez le moniteur série de l'IDE.

      Vous devriez avoir une fenêtre qui s'ouvre dans laquelle notre texte envoyé par l'Arduino s'affiche toutes les 2 secondes,si ce n'est pas le cas vérifiez que vous avez bien la même vitesse(en bauds) dans le code arduino et en bas de la fenêtre du moniteur série.

      1507900491-screenshot-20171013-151314.pn

      Le moniteur série faisant partie de l'IDE marche trés bien mais reste vraiment basique(une ligne pour l'envoi et le cadre pour la reception),comme nous l'avons vu plus haut il existe plusieurs façons d'ouvrir une liaison série(terminal,application,matériels..) ici nous verrons comment communiquer entre l'arduino et une application QT.

      Qt est un framework crée à l'origine par Nokia,sa principale force réside dans la portabilité du code entre les différentes plateformes.Je ne rentrerai pas dans les détails de l'installation de Qt,rendez-vous sur le site de Qt pour le télechargez selon votre Os.Qt est trés puissant pour par exemples créer des interfaces graphiques simplement,L'IDE de Qt QtCreator permet d'éditer la partie graphique et le code source de l'appli,posséde un debugger integré et surtout une documentation integré d'une clarté et richesse assez impressionante.

       

       

       

      • Aimer 1


      Retour utilisateur


      petit code grace a b&nder pour commander un servo  moteur avec sont ordinateur 

       

      #include <Servo.h> //utilise la librairie avec des fonctions pour le moteur

      #define PIN_SERVO 9

      Servo servo1; // on crée un objet servo


      void setup() {


        servo1.attach(PIN_SERVO); // le pin pour controler le moteur
       
       
        Serial.begin(9600);
        Serial.println("Pret");
        servo1.write(90); // on positionne le servo au centre (180/2)

      }

      void loop() {

        static int val = 0;
       
       

        if ( Serial.available()) {
          char ch = Serial.read();

          switch(ch) {
            case '0'...'9':
            val = val * 10 + ch - '0';
            break;
            case 'w':
               servo1.write(val);
               val = 0;
               break;
            case 'd':
              servo1.detach();
              break;
            case 'a':
              servo1.attach(PIN_SERVO);
              break;
          }
        }
      }

       

      et la video de demonstration  

       

      Modifié par neoskyriper

      Partager ce commentaire


      Lien vers le commentaire
      Partager sur d’autres sites


      Créer un compte ou se connecter pour commenter

      Vous devez être membre afin de pouvoir déposer un commentaire

      Créer un compte

      Créez un compte sur notre communauté. C’est facile !

      Créer un nouveau compte

      Se connecter

      Vous avez déjà un compte ? Connectez-vous ici.

      Connectez-vous maintenant

    ModConsoles

    Web Sites / Sites Web (FR)


    Web Sites / Sites Web (EN)


    Stores / Magasins


    ×