TP PCSI – CI6 Commander des systèmes et acquérir des données avec une carte Ard

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 uploads/Philosophie/ tp-pcsi-ci6-arduino.pdf

  • 29
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager