- Composants requis
- Schéma
- Communication série à l'aide de la fenêtre de commande MATLAB
- Communication série à l'aide de l'interface graphique MATLAB
MATLAB est un logiciel polyvalent qui peut être utilisé pour une grande variété d'applications. Dans les tutoriels précédents de MATLAB, nous avons expliqué comment utiliser MATLAB pour contrôler le moteur à courant continu, le servomoteur et les appareils ménagers. Ici, dans ce didacticiel, nous allons apprendre à utiliser MATLAB pour la communication série. Pour la réception de la communication série, nous utilisons ici Arduino.
Il existe deux façons de configurer la communication série entre MATLAB et Arduino, l'une utilise la fenêtre de commande et l'autre utilise l'interface graphique MATLAB. Le code Arduino pour les deux méthodes restera le même. Si vous êtes nouveau dans MATLAB, il est recommandé de commencer avec un simple programme de clignotement de LED avec MATLAB et d'apprendre la terminologie de base utilisée dans MATLAB.
Composants requis
- Ordinateur portable installé par MATLAB (préférence: R2016a ou versions supérieures)
- Arduino UNO
- LED (n'importe quelle couleur)
- Résistance (330 ohms)
Schéma
Le schéma de circuit ci-dessus restera le même pour les deux manières d'établir une communication série entre MATLAB et Arduino.
Communication série à l'aide de la fenêtre de commande MATLAB
C'est la méthode simple pour configurer la communication série entre Arduino et MATLAB. Ici, nous enverrons simplement les données de MATLAB à l'Arduino en série à l'aide de la fenêtre de commande, puis Arduino lira les données série entrantes. Ensuite, ces données transmises en série peuvent être utilisées pour contrôler tout ce qui est connecté à l'Arduino. Ici, nous avons connecté une LED à Arduino, qui sera allumée et éteinte en fonction des données reçues en série par l'Arduino.
Tout d'abord, téléchargez le code Arduino donné dans Arduino UNO, puis commencez à coder dans la fenêtre de l'éditeur MATLAB. Pour ouvrir un nouveau script d'éditeur, cliquez sur `` Nouveau script '' comme indiqué dans l'image ci-dessous:
Ensuite, copiez et collez le code MATLAB complet ci-dessous dans la fenêtre de l'éditeur pour la communication série entre MATLAB et Arduino.
% Code MATLAB pour la communication série entre Arduino et MATLAB x = série ('COM18', 'BAUD', 9600); fopen (x); aller = vrai; tandis que go a = input ('Appuyez sur 1 pour allumer la LED & 0 pour éteindre:'); fprintf (x, a); if (a == 2) go = false; fin fin
Dans le code donné, la commande ci-dessous est utilisée pour définir la communication série dans MATLAB. Assurez-vous que le numéro de port com est le numéro de port sur lequel Arduino est connecté et que le débit en bauds doit être défini de la même manière dans les codes Arduino et MATLAB.
x = série ('COM18', 'BAUD', 9600);
Pour ouvrir le port série, utilisez la commande ci-dessous, fopen (x);
La commande ci-dessous est utilisée pour envoyer des données de MATLAB à Arduino en série, où x est pour appeler série et a est la valeur entrée par l'utilisateur.
fprintf (x, a);
Nous utilisons la fonction while pour créer une boucle infinie et chaque fois que l'utilisateur saisit le nombre «2», la boucle se cassera.
tandis que go a = input ('Appuyez sur 1 pour allumer la LED & 0 pour éteindre:'); fprintf (x, a); if (a == 2) go = false; fin fin
Après avoir terminé le codage du script de l'éditeur MATLAB, cliquez sur `` RUN '' pour exécuter votre programme comme indiqué dans l'image ci-dessous,
MATLAB prend quelques secondes pour traiter le code et démarrer la communication série, attendez que MATLAB affiche le message `` BUSY '' dans le coin inférieur gauche de l'écran du logiciel, comme indiqué dans l'image ci-dessous.
Maintenant, vous verrez la fenêtre de commande pour envoyer l'entrée utilisateur, nous avons défini le message par défaut, 'Appuyez sur 1 pour allumer la LED et sur 0 pour éteindre:'
Envoyez «1» pour allumer la LED, «0» pour éteindre la LED et «2» pour interrompre l'opération. Vous pouvez définir n'importe quel nombre pour n'importe quelle tâche, tout ce que vous avez à faire est simplement de changer le code Arduino en conséquence. Le code Arduino complet est donné à la fin.
Vous pouvez consulter la vidéo ci-dessous pour comprendre le processus complet d' envoi de données série de MATLAB à Arduino à l'aide de la fenêtre de commande.
Communication série à l'aide de l'interface graphique MATLAB
Pour démontrer la communication série à l'aide de l'interface graphique MATLAB, nous allons créer deux boutons graphiques à l'aide de MATLAB pour allumer et éteindre la LED connectée à l'Arduino. Les données seront envoyées en série de MATLAB à Arduino en cliquant sur ces boutons pour allumer et éteindre la LED. Arduino contiendra le code pour recevoir les données série de MATLAB et contrôler la LED en fonction des données série reçues. Le code Arduino restera le même que le précédent, la seule différence est que, auparavant, nous envoyions des données série '1' et '0' via la fenêtre de commande de MATLAB, et maintenant les mêmes données seront envoyées en cliquetant sur deux boutons graphiques.
Pour lancer l'interface graphique, tapez la commande ci-dessous dans la fenêtre de commande
guider
Une fenêtre contextuelle s'ouvre, puis sélectionnez une nouvelle interface graphique vierge comme indiqué dans l'image ci-dessous,
Choisissez maintenant deux boutons-poussoirs pour allumer et éteindre la LED, comme indiqué ci-dessous,
Pour redimensionner ou changer la forme des boutons, il suffit de cliquer dessus et vous pourrez faire glisser les coins du bouton. En double-cliquant sur le bouton poussoir, vous pouvez changer la couleur, la chaîne et l'étiquette de ce bouton particulier. Nous avons personnalisé deux boutons comme indiqué dans l'image ci-dessous.
Vous pouvez personnaliser les boutons selon votre choix. Maintenant, lorsque vous enregistrez cela, un code sera généré dans la fenêtre Editeur de MATLAB. Modifiez ce code en fonction de la tâche que vous souhaitez effectuer par votre Arduino à l'aide de l'interface graphique MATLAB. Nous avons donc édité ci-dessous le code MATLAB. Pour en savoir plus sur la fenêtre de commande, la fenêtre de l'éditeur, etc.
Le code MATLAB complet, pour l'établissement de la communication série entre MATLAB et Arduino est donné à la fin de ce projet. En outre, nous incluons le fichier GUI (.fig) et le fichier de code (.m) ici pour téléchargement (cliquez avec le bouton droit sur le lien puis sélectionnez `` Enregistrer le lien sous… ''), à l'aide desquels vous pouvez personnaliser les boutons selon vos besoins. Vous trouverez ci-dessous quelques modifications que nous avons apportées pour contrôler la LED connectée à Arduino.
Copiez et collez le code ci-dessous sur la ligne no. 74 pour configurer le port série et la vitesse de transmission.
tout effacer; global x; x = série ('COM18', 'BAUD', 9600); % Assurez-vous que le débit en bauds et le port COM sont % identiques à ceux de Arduino IDE fopen (x);
où, fopen (x) est utilisé pour ouvrir le port série pour la communication série.
Lorsque vous faites défiler vers le bas, vous verrez qu'il existe deux fonctions créées pour les deux boutons dans l'interface graphique. Maintenant, écrivez le code dans les deux fonctions en fonction de la tâche que vous souhaitez effectuer au clic.
Dans la fonction du bouton LED-ON , copiez et collez le code ci-dessous juste avant la fin de la fonction pour allumer la LED. Comme vous le voyez dans le code ci-dessous, fprintf (x, 1) est utilisé pour envoyer des données série de MATLAB vers série Arduino. Ici, nous envoyons « 1 » à la série Arduino et si vous vérifiez le code Arduino, vous trouverez que Arduino brillera la LED en faisant sa 13 e HIGH broches, lorsqu'il reçoit « 1 » sur son port série.
global x; fprintf (x, 1);
Dans la fonction du bouton LED-OFF , copiez et collez le code ci-dessous juste avant la fin de la fonction pour éteindre la LED. Comme vous le voyez dans le code ci-dessous, fprintf (x, 0) est utilisé pour envoyer des données série de MATLAB vers série Arduino. Dans cette partie, nous envoyons « 0 » à la série Arduino et si vous vérifiez le code Arduino, vous trouverez que Arduino désactivera la LED en faisant sa 13 e LOW broche, lorsqu'il reçoit « 0 » sur son port série.
global x; fprintf (x, 0);
Après avoir terminé le codage GUI MATLAB et configuré le matériel selon le schéma de circuit, cliquez simplement sur le bouton Exécuter pour exécuter le code modifié dans le fichier.m.
MATLAB peut prendre quelques secondes pour répondre, ne cliquez sur aucun bouton de l'interface graphique jusqu'à ce que MATLAB affiche l'indication BUSY, que vous pouvez voir dans le coin inférieur gauche de l'écran comme indiqué ci-dessous,
Lorsque tout est prêt, cliquez sur le bouton LED-ON et LED-OFF pour allumer et éteindre la LED. Lorsque vous appuyez sur LED-Touche , 13 e broche Arduino et LED Devient HIGH connecté à ce code commence rougeoyante, et lorsque vous appuyez sur le bouton LED OFF , 13 e broche Arduino passe au niveau BAS qui rend la LED pour éteindre.
Vous pouvez regarder la vidéo ci-dessous pour comprendre le processus complet d' envoi de données série de MATLAB à Arduino à l'aide de l'interface graphique MATLAB.