TP n°2 Programmation sur microcontrôleur Nom / prénom : .......................

TP n°2 Programmation sur microcontrôleur Nom / prénom : ................................................................... Date : ….. / ….. / …....... Note : ..... / 20 Nom / prénom : ................................................................... Nom / prénom : ................................................................... Nom / prénom : ................................................................... Dans ce TP, nous allons utiliser un microcontrôleur Arduino (architecture AVR) pour mettre en place un programme fonctionnant avec les contraintes liées à la programmation temps réel souple. L'objectif final est de faire tourner plusieurs sous-programmes de manière non bloquante en utilisant le paradigme « super loop » 1. « Bare metal » avec le paradigme « super loop » a) Prise en main de l'IDE Arduino La première étape consiste à télécharger l'IDE Arduino ainsi que les pilotes pour les contrôleurs série FTDI ou CH340 en fonction de votre platine. b) Utilisation des entrées / sorties 1 Le port série 1) Dites comment vous faîtes pour activer le port série et envoyer un message : ........................................................................................................................................................................... ........................................................................................................................................................................... ........................................................................................................................................................................... 2) Quel est le protocole utilisé et quelles sont les informations envoyées ? ........................................................................................................................................................................... ........................................................................................................................................................................... ........................................................................................................................................................................... 3) Ecrivez un programme qui agit comme un serveur echo en affichant les caractères envoyés : Code figurant dans l'archive de rendu 2 Lecture / écriture digitale 4) Quelle est la procédure pour positionner une broche en entrée et faire une lecture ? ........................................................................................................................................................................... ........................................................................................................................................................................... ........................................................................................................................................................................... 5) Quelle est la procédure pour positionner une broche en sortie et changer son niveau logique ? ........................................................................................................................................................................... ........................................................................................................................................................................... ........................................................................................................................................................................... 1/7 3 Lecture analogique Expliquez brièvement le fonctionnement de l’échantillonnage avec un convertisseur analogique / numérique. Vous pouvez aborder le concept de précision et de discrétisation : ........................................................................................................................................................................... ........................................................................................................................................................................... ........................................................................................................................................................................... ........................................................................................................................................................................... ........................................................................................................................................................................... ........................................................................................................................................................................... ........................................................................................................................................................................... ........................................................................................................................................................................... ........................................................................................................................................................................... Votre dessin ici : 6) Branchez un potentiomètre et indiquez les branchements ci-dessous : 7) Testez son fonctionnement en affichant périodiquement sa valeur sur le port série : Code figurant dans l'archive de rendu 2/7 4 Signal PWM 8) Détaillez la forme et comment est réalisé un signal PWM. Vous pouvez aborder la notion de cycle de travail ainsi que celle de timer : ........................................................................................................................................................................... ........................................................................................................................................................................... ........................................................................................................................................................................... ........................................................................................................................................................................... ........................................................................................................................................................................... ........................................................................................................................................................................... ........................................................................................................................................................................... Votre dessin ici : 9) Utilisez un signal PWM, modulé proportionnellement à votre potentiomètre pour faire briller la LED intégrée à la platine Arduino. Code figurant dans l'archive de rendu 3/7 c) Api UART L'intérêt d'une Api est d'offrir, au travers d'une interface spécifiée, un ensemble de fonctionnalités. Dans notre cas, nous allons proposer le contrôle des broches au travers du port série : • changement d'état d'une broche (état haut ou bas) ; • changement de sens d'une broche (entrée ou sortie) ; • lecture de l'état d'une broche (état haut ou bas mais aussi la valeur) ; • bascule de l'état d'une broche (état haut si bas et inversement) ; • bascule temporaire d'une broche (idem précédent mais avec un timer) ; • signal PWM sur une broche • … 1 Définition d'un protocole Chaque protocole, peu importe le niveau OSI auquel il appartient, possède un format prédéfini qui lui permet de véhiculer des messages. Les messages sont utilisés pour différentes fonctions : • information sur l 'état des stations ; • information sur l'état du réseau ; • envoi d'informations ; • demande de confirmation ; • … Dans notre cas de figure, les choses sont simples puisque la communication est full-duplex et unicast. Il n'y aura donc pas a gérer le multicast, les collisions, les retransmissions, etc. Les messages seront envoyés depuis le port série et « digérés » par un sous-programme qui décidera de l'action à entreprendre : changement d'état d'une broche, lecture d'état, message d'erreur, etc. Pour les questions qui suivent, vous pouvez formuler votre analyse en vous appuyant sur des protocoles existants comme ICMP, IP... 10) Lorsque l'on essaie de lire un message, souvent les problèmes suivants se posent : • Comment détecter l'arrivée d'un message ? • Comment détecter la fin d'un message ? • Comment séparer les différents champs ? • Comment déterminer l'action à entreprendre ? • Comment déterminer une erreur ? • … 4/7 Définissez le format des messages en expliquant comment vous adressez les problématiques ci-dessus : Début d'un message : ........................................................................................................................................................................... ........................................................................................................................................................................... ........................................................................................................................................................................... Fin d'un message : ........................................................................................................................................................................... ........................................................................................................................................................................... ........................................................................................................................................................................... Séparation des champs : ........................................................................................................................................................................... ........................................................................................................................................................................... ........................................................................................................................................................................... Choix de l'action à entreprendre : ........................................................................................................................................................................... ........................................................................................................................................................................... ........................................................................................................................................................................... Gestion des erreurs : ........................................................................................................................................................................... ........................................................................................................................................................................... ........................................................................................................................................................................... Format de vos messages : 11) Définissez les différents messages qui circuleront sur votre réseau ainsi que leur signification en fonction de la réponse à la question précédente : 5/7 2 Définition de l'API Maintenant que les messages sont définis, il ne vous reste plus qu'a spécifier votre API en expliquant comment réaliser les actions : Message avec un exemple Retour Action Succès : Erreur : Permet la lecture de l'état d'une broche digital Succès : Erreur : Permet la lecture de l'état d'une broche analogique Succès : Erreur : Permet la modification de l'état d'une broche Succès : Erreur : Permet la bascule de l'état d'une broche Succès : Erreur : Permet la lecture du mode d'une broche Succès : Erreur : Permet la modification du mode d'une broche Succès : Erreur : Permet l'activation de la modulation PWM sur une broche Succès : Erreur : Permet l'a bascule de l'état d'une broche de manière temporaire (timer) Lors de l'élaboration de votre API expliquez comment avez vous adressé les difficultés suivantes : • RAZ du mécanisme de lecture des messages : .................................................................................................................................................................................................................................................................... .................................................................................................................................................................................................................................................................... • Sauvegarde du sens d'une broche : .................................................................................................................................................................................................................................................................... .................................................................................................................................................................................................................................................................... • Implémentation des timers : .................................................................................................................................................................................................................................................................... .................................................................................................................................................................................................................................................................... Vous joindrez le code de votre API à l'archive de rendu uploads/Litterature/ tp2-arduino-serial.pdf

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