Arduino et Matlab : laissez parler utilisant des communications série ! (3 / 4 étapes)

Étape 3: Matlab : nous allons dompter la bête !

Ici, je suppose que vous êtes familiarisé avec l’environnement Matlab, au moins avec la base. Si mon hypothèse n’est pas correct, ne paniquez pas, et jetez un oeil ici : Matlab pour les débutants!
Je vais aborder le côté Matlab de la manière suivante : J’ai crée un fichier de ".m" seul script qui comprendra toutes les fonctions que nous allons utiliser. De cette façon, une fois que vous aurez l’emprise sur chaque section du script (MainScript), tout ce que vous avez à faire est lancez-le en écrivant son nom dans l’espace de travail, et tout à coup vous aurez Arduino et votre PC à l’échange de données agréablement et facilement ! Assurez-vous que vous enregistrez tous les trois documents que j’ai joint ici dans le même dossier que doit avoir été choisie comme le dossier actif dans la fenêtre « Dossier en cours » dans la vue principale de Matlab ! En règle générale, que vous devez vous rappeler que Matlab doit accéder facilement à la fonction que vous citez dans le script principal, sinon vous obtenez un signal d’erreur d’une fonction non déclarée !
Nous allons commencer le script avec l’enregistrement du nom du port série dans la variable comPort. Comme j’ai dit avant, assurez-vous que vous connaissez le nom exact du Arduino est connecté au port. Le nouvel article, nous nous occupons de l’initialisation de communication série. Nous allons écrire un fonction fichier nommé setupSerial, qui accepte, comme entrée, l’en-tête de port série et redonne l' objet serial arduino et la valeur "serialFlag" qui nous dit que l’objet de série a été créé.
petite astuce très utile: Si vous avez besoin d’aide avec la fonction de la syntaxe ou avec toute autre commande de Matlab, n’hésitez pas à demander à Matlab ! Vous avez juste à taper dans la fenêtre de commande Matab, « aider » suivie de la rubrique que vous souhaitez en savoir plus. Si le sujet existe, Matlab vous donnera une brève réponse directement à la veuve de commande, sinon vous pouvez naviguer dans le navigateur « aide » en tapant « doc » dans l’espace de travail et cliquez sur entrer.
Passons ! Je vais finira analysant le MainScript avant de prendre en considération les autres fonctions.
Il s’agit de la section consacrée à la visualisation graphique des données : une figure h est créé, et un système d’un x et axe des y et une ligne, qui nous aidera à visualiser les données que nous obtenons du capteur., sont créés aussi bien garder à l’esprit que chaque fois que vous créez un objet, quel que soit son type peut être (séries objets une figure, une interface graphique d’objet... ecc) vous créez également une série de propriétés associés à lui. Vous pouvez utiliser ces propriétés pour appeler des fonctions ou à créer des conditions pour les boucles (while, car, si... ecc). La commande « if(~exist('h','var'))... » a-t-il un sens plus maintenant?? NON ? Ecoute : nous voulons vérifier si la propriété var de l' objet h est égal à zéro ! Si c’est le cas, que nous devons créer l’objet de la figure, depuis un 0 dans la propriété var , signifie que le chiffre n’existe pas encore!!

Maintenant venons-en à la dernière section du script. Ici vous avez quelques lignes qui agissent comme le noyau de l’ensemble du programme : avec la boucle « while » nous allons envoyer à l’Arduino, la commande « R », qui signifie « Hé vous, lisez la température pour moi et me renvoyer le résultat de votre lecture! ». Vous remarquerez que nous avons une nouvelle fonction à l’intérieur le tout en boucle, c'est-à-dire, readTemp, brièvement, il s’occupera de la bureaucratie qui se cache derrière la communication sérielle du point de vue de Matlab. Je vais revenir à elle quand je vais analyser les deux fonctions du script. Une information est manquante : le taux d’échantillonnage, au cours de laquelle nous aimerions obtenir des lectures de température. Elle s’exprime par la commande « pause » à la fin du while boucle ! Si vous souhaitez sélectionner une valeur de température toutes les heures, vous devez écrire pause(3600) (commande pause acceptent le paramètre en secondes).
OK, maintenant nous allons analyser les deux fonctions :
setupSerial : ce qui crée l’objet serial Arduino connecté au port série comPort. La commande pour créer l’objet de série est tout simplement nom-de-la-objet = série (nom-de-le-port). Aussi simple que ça ! Notez que, en tant que la propriété de l’objet de série, nous établissons (à l’aide de la commande set , suivie de la propriété dont la valeur que nous voulons créer) le débit en bauds 9600 égale à celle définie sur l’Arduino.

readTemp: peu de choses plus vous devez maintenant : n’oubliez pas les commandes, nous avons utilisé sur Arduino à lire de la mémoire tampon de série et écrire dans Serial.println et Serial.read ? Ici sont respectivement remplacés par fprintf et fscanf . C’est tout. La syntaxe est facile et vous pouvez le vérifier dans le navigateur d’aide de Matlab. fprintf exige, comme la première entrée, l’objet de série que nous voulons écrire, et comme le deuxième élément d’information le personnage, nous tenons à envoyer (dans notre cas "R", ce qui signifie pour nous "Lire"). fscanf veut l’objet série aussi bien, et le format que nous voulons que les données à visualiser, dans notre cas un floating point numéro indiqué avec le simbol "%f" (DHT 22 valeurs de température sont résolus jusqu'à un dixième de degré celsius).

Notez que, la quantité de lectures qui vont être enregistrées sera égale à la valeur de la variable « buf_len » (la valeur par défaut dans le script est 30, changez-le à votre propre gré!). Après la lecture 30, une nouvelle sera remplacée sur la première lecture stockée dans le tableau « tcdata », qui contiendra toutes les valeurs de température dans un ordre chronologique.

Articles Liés

Pyduino, interface Arduino avec Python par le biais de communication série

Pyduino, interface Arduino avec Python par le biais de communication série

Apprenez comment interfacer arduino par le biais de communication série avec python en utilisant la bibliothèque de pyduino. Il y a quelques autres tutoriels là-bas sur instructables quant à l'interface arduino avec python, mais ils ne vous montrent
Processus de communication série en Arduino

Processus de communication série en Arduino

Le matériel de l'Arduino a un support intégré pour communication série sur les broches 0 et 1 (qui va également à l'ordinateur via la connexion USB). La prise en charge native série arrive via un morceau de matériel (intégré dans la puce) appelé un U
Passer un moteur utilisant Arduino et communication série

Passer un moteur utilisant Arduino et communication série

avez-vous déjà demandé comment les robots se déplacent ?  Avez-vous jamais voulu écrire un programme pour contrôler un robot ?  Dans l'affirmative, ce tutoriel sera un excellent pied-à-terre pour apprendre les commandes électroniques avec l'Arduino M
Arduino Wireless Communication série

Arduino Wireless Communication série

il y a plusieurs façons de communiquer avec Arduinos distant. J'ai constaté que beaucoup d'entre eux atteint un point de prix légèrement plus élevé que ce que je voudrais. Aussi, ethernet shields (et wifi dito?) consomment beaucoup pins précieux maté
ATtiny85 & ATtiny84 analogiques broches, Communication série, etc.

ATtiny85 & ATtiny84 analogiques broches, Communication série, etc.

j'aime utiliser un ATtiny84 ou un ATtiny85 sur mes projets. Ils peuvent économiser quelques centimes et faire la conception un peu plus petit. L'instruction meilleure pour le paramétrage de ces puces pour être utilisé avec l'IDE Arduino est sur le si
Arduino pour MATLAB GUI - Acquisition de données en direct (& tracé) des postes clé émetteur RC

Arduino pour MATLAB GUI - Acquisition de données en direct (& tracé) des postes clé émetteur RC

J'ai créé un programme, en utilisant un Arduino, faire vivre d'acquisition de données et le tracé directement dans MATLAB. Je pense que c'est très utile et peut aider beaucoup de gens se demandent comment l'interface Arduino & MATLAB, alors j'écris i
Ultrasons cartographe en utilisant Arduino et MatLab

Ultrasons cartographe en utilisant Arduino et MatLab

Vision est l'un des plus passionnants sens vous pouvez doter votre robot. La capacité de percevoir les obstacles permet à un robot faire une décision éclairée au sujet des mouvements plus amples.Cependant, il n'est également pas les sens plus faciles
Matrice de LED utilisant des registres à décalage

Matrice de LED utilisant des registres à décalage

cette instructable est censée être une explication plus complète que d'autres disponibles en ligne. En particulier, cela vous donnera plus d'explication matérielle celle située sous le chapiteau de LED instructable par led555.ObjectifsCette instructa
Intel Edison Arduino serial pour communication série de processus hôte

Intel Edison Arduino serial pour communication série de processus hôte

L'évasion de Intel Edison Arduino est un mini-ordinateur basé sur linux qui peut être programmé à l'aide de l'IDE Arduino et le cadre. Il peut également être utilisé comme n'importe quel autre système Linux en C/C++, Python, node.js et beaucoup d'aut
RS485 Communication série entre Arduino Mega et Arduino Nano avec Visuino

RS485 Communication série entre Arduino Mega et Arduino Nano avec Visuino

Parfois, il faut connecter les cartes Arduino situés très loin les uns des autres. RS-485 est un moyen très pratique pour connecter les planches avec seulement 2 conducteurs et peut fonctionner à une distance de 1200 m (4000 ft). Il permet aussi de m
Utiliser des capteurs et actionneurs pour faire un labyrinthe labyrinthe mécanique

Utiliser des capteurs et actionneurs pour faire un labyrinthe labyrinthe mécanique

Un accéléromètre trois axes capte l'inclinaison de la créer Kinoma. Kinoma Create traite les données de l'inclinaison dans le logiciel pour contrôler la rotation de deux moteurs servo connectés le labyrinthe. Le résultat est mouvement intuitif du lab
Arduino pour MySQL Python en utilisant l’interface

Arduino pour MySQL Python en utilisant l’interface

Voici un bref tutoriel qui devrait vous lever et courir interfacer votre Adruino avec une base de données MySQL. Pour des raisons de ce tutoriel, je suppose que vous savez comment configurer et utiliser MySQL. Ce tutoriel ne nécessite pas beaucoup d'
Post-It facile / mosaïques pense-bête utilisant des logiciels libres.

Post-It facile / mosaïques pense-bête utilisant des logiciels libres.

je travaille dans un établissement à but non lucratif avec des enfants et ont cherché à travailler avec eux des projets qui ne coûtent pas une fortune. Une chose qui a attiré mon attention était la mosaïque de Post-It d'Elvis qui fait le tour en lign
Vernier capteurs et Arduino (ou Teensy) pour l’enregistrement des données

Vernier capteurs et Arduino (ou Teensy) pour l’enregistrement des données

regardons comment recueillir des données provenant de capteurs éducatifs Vernier à l'aide d'un Conseil de développement microcontrôleur compatible Arduino.Si vous avez juste besoin d'interfacer une sonde avec un ordinateur et veulent tout faire, vous