Commander des systèmes et acquérir des données avec une carte

TP PCSI – CI6
Commander des systèmes et acquérir des
données avec une carte Arduino Uno
CI6 :
Proposer et valider une solution de
l’organisation de la commande d’un
système logique ou numérique.
À l’issue de ce TP, les compétences acquises doivent vous permettre plus particulière-
ment de :
Exprimer le fonctionnement par un ensemble d’équations logiques
Identifier les entrées et sorties d’un système logique
Analyser et décrire le comportement attendu
Exprimer le comportement attendu (représentation technique imposée)
Réaliser les fonctions logiques (représentation technique imposée)
Tester la réalisation de fonctions logiques et valider par rapport au CdC
Valider le fonctionnement d’une fonction logique par câblage ou simulation
page 1
TP PCSI – CI6
Table des matières
1 Problématique 3
1.1 Commande de systèmes par micro-contrôleurs . . . . . . . . . . . . . . . . . . 3
1.2 Présentation de la carte Arduino Uno . . . . . . . . . . . . . . . . . . . . . . . 3
1.3 Toolbox Arduino sous Scilab Xcos . . . . . . . . . . . . . . . . . . . . . . . . 4
2 Commande de l’allumage d’une LED 4
2.1 Par interface Arduino (langage C) . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2 Par interface graphique Scilab Xcos . . . . . . . . . . . . . . . . . . . . . . . . 4
3 Programmation de la lecture d’un port analogique (potentiomètre) 6
3.1 Par interface Arduino (langage C) . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.2 Par interface graphique Scilab Xcos . . . . . . . . . . . . . . . . . . . . . . . . 6
4 Programmation du pilotage de la puissance de la LED avec le potentiomètre 6
4.1 Par interface Arduino (langage C) . . . . . . . . . . . . . . . . . . . . . . . . . 6
4.2 Par interface graphique Scilab Xcos . . . . . . . . . . . . . . . . . . . . . . . . 7
5 Commande d’un moteur à courant continu en boucle ouverte 8
5.1 Par interface Arduino (langage C) . . . . . . . . . . . . . . . . . . . . . . . . . 8
5.2 Par interface graphique Scilab Xcos . . . . . . . . . . . . . . . . . . . . . . . . 9
6 Lecture du codeur incrémental 9
6.1 Par interface Arduino (langage C) . . . . . . . . . . . . . . . . . . . . . . . . . 9
6.2 Par interface graphique Scilab Xcos . . . . . . . . . . . . . . . . . . . . . . . . 10
7 Commande du moteur en boucle fermée 11
page 2
TP PCSI – CI6
1 Problématique
1.1 Commande de systèmes par micro-contrôleurs
Les parties commandes des système actuels sont réalisées avec des cartes micro-controleurs
permettant de piloter des sorties en fonction de l’état des entrées. Nous allons utiliser la pla-
tine Arduino afin de programmer un micro-controleur dans des situations simples (acquisi-
tion de la valeur d’un potentiomètre, allumer une led, piloter un moteur...).
1.2 Présentation de la carte Arduino Uno
Une carte Arduino Uno comporte les ports (pins en anglais) suivants :
14 (+6) Entrées – Sorties logiques (port ou «pin Di-
gital »de 0 à 13) :
série asynchrone (avec 0 sur Rx et 1 sur Tx) : les
pins 0 et 1 ne seront donc pas utilisables
2 Interruptions externes sur 2 et 3 (utilisées pour
le codeur en quadrature)
Sortie 13 couplée à une LED sur la carte
6 Entrées analogiques (A0 à A5) :
la tension d’entrée doit nécessairement être infé-
rieure à la tension de référence (5 V ou 1,1 V ou
AREF : référence externe)
6 CAN 10 bits (plage de 1024) à 10kHz maximum
ces entrées peuvent aussi fonctionner comme des
E/S numériques
6 Sorties «Analogiques »: 6 PWM sur les ports 3,
5, 6, 9, 10 et 11, construites sur les pins d’entrées-
sorties logiques
Q 1 : Identifer les ports détaillés ci-dessus sur la carte réelle.
La programmation de toutes les cartes de la famille Arduino, dont le modèle Uno uti-
lisé dans le cadre de cette séance, se fait dans un langage simplifié adapté du C/C++, basé
sur l’utilisation de «classes »(ou macro-commandes) faciles à comprendre et à modifier, y
compris par des personnes non spécialistes de la programmation.
Le projet «Open Source »Arduino a en effet initialement été créé pour la mise en œuvre
d’environnements sonores ou visuels à destination de créations artistiques, il était indis-
pensable que l’interface soit réduite à la mise en œuvre séquentielle d’ordres simples et
l’acquisition de données analogiques ou numériques.
Le logiciel de programmation, gratuit et utilisable sans installation sur l’ordinateur sur
les environnements Windows, MacOS ou Linux, est téléchargeable en ligne à l’adresse http ://Ar-
duino.cc/en/Main/Software. Sur ce même site, le guide d’installation est aussi disponible
(http ://Arduino.cc/en/Guide/HomePage). Par ailleurs, sur Internet, la littérature est four-
nie.
Comme les mémoires sont de type Flash, le programme reste «indéfiniment »en mé-
moire, même sans alimentation, après son implantation dans le micro-contrôleur : pour
charger le programme, la liaison USB permet de communiquer avec le micro-contrôleur
à travers une liaison série.
page 3
TP PCSI – CI6
1.3 Toolbox Arduino sous Scilab – Xcos
Une toolbox Arduino a été développée dans Scilab – Xcos. La gestion de la liaison série
est intégrée à la toolbox. Pour faire fonctionner la toolbox, il faut aussi préalablement char-
ger le programme toolbox_Arduino.ino dans l’Arduino. L’Arduino est alors prêt pour être
interfacé avec Scilab et Xcos.
2 Commande de l’allumage d’une LED
2.1 Par interface Arduino (langage C)
Brancher la carte Arduino Uno grâce au câble USB. Retenir le port COM utilisé. Le nu-
méro port COM doit être inférieur à 9 (si ce n’est pas le cas, il faut le changer dans les
paramètres avancés).
Lancer le logiciel Arduino puis vérifier dans le menu déroulant «outils »que le type de
carte et le port COM sont correctement sélectionnés.
Ouvrir l’exemple blink dans fichierexemples01.basics puis téléverser (charger) le pro-
gramme dans l’Arduino : le téléversement consiste à compiler le programme puis le trans-
mettre à l’Arduino.
Q 2 : Vérifier que cet exemple permet de faire clignoter la diode associé au pin 13 à une
fréquence de 0,5 Hz.
Un programme Arduino comporte au moins 2 fonctions principales :
setup() : la fonction qui est exécutée dès la connexion sur le port série a été réalisée
loop() : la fonction qui tourne en boucle dès la fonction setup terminé
Matériel à disposition : une platine Labdec, une LED et une résistance et des petits câbles.
Q 3 : Modifier le programme pour allumer la diode fournie (diode associée à une résis-
tance, voir figure 1) à brancher sur un des ports numériques (ou «pin digital ») en mettant
le fil noir sur la masse GND et le fil rouge sur la sortie logique choisie. Téléverser et vérifier
le fonctionnement.
Remarque : il est possible de tester le sens passant de la diode en la reliant directement au 5 V.
FIGURE 1 – Schéma électrique du montage de la LED.
2.2 Par interface graphique Scilab – Xcos
Sous Scilab, à partir du module Arduino, glisser dans la fenêtre Xcos :
Un bloc de configuration du port : double-cliquer dessus pour définir le port COM
auquel est relié l’Arduino.
Un bloc d’échantillonnage : il permet de spécifier le temps de simulation ainsi que la
fréquence d’échantillonnage .
page 4
TP PCSI – CI6
Un bloc commandant une sortie logique (digitale) de l’Arduino.
Une entrée PULSE : à partir du module CPGE et à configurer pour avoir un clignote-
ment de 1 seconde.
Bloc de configuration du port :
Bloc d'échantillonage :
Bloc de commande sortie logique
digitale :
Entrée pulse (module CPGE) :
FIGURE 2 – Blocs Xcos à utiliser.
On pourra dans un premier temps utiliser la diode de la carte Arduino associée au port 13.
Q 4 : Paramétrer les blocs introduits (on gardera la fréquence d’échantillonnage par
défaut) et relier l’entrée Pulse et la sortie logique.
Lancer la simulation et vérifier le bon fonctionnement : les deux diodes Rx et Tx sur la
carte doivent indiquer la communication série entre Xcos et l’Arduino tandis qu’une troi-
sième diode reliée au pin paramétré doit clignoter.
On propose maintenant de commander le clignotement de la LED par appui sur un bou-
ton poussoir, qui sera câblé en utilisant une résistance de tirage (pull up) (voir figure 3).
FIGURE 3 – Schéma électrique du montage du bouton poussoir.
Q 5 : Remplacer l’entrée Pulse par un bouton poussoir en utilisant le bloc "digital read".
Brancher le bouton poussoir en reliant la masse (le fil noir) à GND (niveau logique bas),
le fil rouge au +5V (niveau logique haut) et le fil bleu sur la pin digitale de votre choix, en
concordance avec votre déclaration dans le bloc digital read.
Relier l’entrée et la sortie logique, correspondant au bouton poussoir et à la diode, de
façon à l’allumer à chaque appui.
Vérifier le bon fonctionnement.
page 5
1 / 11 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans l'interface ou les textes ? Ou savez-vous comment améliorer l'interface utilisateur de StudyLib ? N'hésitez pas à envoyer vos suggestions. C'est très important pour nous!