Outils pour utilisateurs

Outils du site


tp_capteur_actionneur2

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
tp_capteur_actionneur2 [2021/02/19 17:02]
bvandepo ancienne révision (2020/09/14 14:08) restaurée
tp_capteur_actionneur2 [2021/02/19 20:20] (Version actuelle)
Ligne 48: Ligne 48:
  
 === Présentation du matériel=== === Présentation du matériel===
-{{http://homepages.laas.fr/bvandepo/files/iut/tp_lpro_capteur/balance_et_arduino.jpg}}+{{https://bvdp.inetdoc.net/files/iut/tp_lpro_capteur/balance_et_arduino.jpg}}
  
  
-{{http://homepages.laas.fr/bvandepo/files/iut/tp_lpro_capteur/balance.jpg}}+{{https://bvdp.inetdoc.net/files/iut/tp_lpro_capteur/balance.jpg}}
  
  
-datasheet du composant convertisseur HX711: http://homepages.laas.fr/bvandepo/files/iut/tp_lpro_capteur/hx711_english_p1-5.pdf+datasheet du composant convertisseur HX711: https://bvdp.inetdoc.net/files/iut/tp_lpro_capteur/hx711_english_p1-5.pdf
  
 Schéma de connexion du composant convertisseur HX711:  Schéma de connexion du composant convertisseur HX711: 
  
-{{http://homepages.laas.fr/bvandepo/files/iut/tp_lpro_capteur/vue_interne_hx711.png}}+{{https://bvdp.inetdoc.net/files/iut/tp_lpro_capteur/vue_interne_hx711.png}}
  
 explication des connexions: explication des connexions:
Ligne 220: Ligne 220:
  
  
-{{http://homepages.laas.fr/bvandepo/files/iut/tp_tns/TODO.jpg}} Lire et essayer de comprendre les différentes parties de ce squelette d'application. Demander à l'enseignant en cas de difficulté, APRES avoir tout lu. Compléter la fonction **loop()** pour déclencher la lecture d'un échantillon et écrire en ASCII sa valeur sur le port série, suivi d'un retour à la ligne. Programmer l'Arduino et vérifier dans la console série que l'affichage des valeurs fluctue lorsque vous appuyez (ou tirez) légèrement sur la balance.+{{https://bvdp.inetdoc.net/files/iut/tp_tns/TODO.jpg}} Lire et essayer de comprendre les différentes parties de ce squelette d'application. Demander à l'enseignant en cas de difficulté, APRES avoir tout lu. Compléter la fonction **loop()** pour déclencher la lecture d'un échantillon et écrire en ASCII sa valeur sur le port série, suivi d'un retour à la ligne. Programmer l'Arduino et vérifier dans la console série que l'affichage des valeurs fluctue lorsque vous appuyez (ou tirez) légèrement sur la balance.
  
  
Ligne 231: Ligne 231:
  
  
-{{http://homepages.laas.fr/bvandepo/files/iut/tp_tns/TODO.jpg}} Ajouter dans la fonction **loop()** le nécessaire (en vous aidant des fonctions fournies dans le squelette **bool detecteFrontMontantPortB(unsigned char numerobit)** et **unsigned char LirePortB()**) pour que l'échantillon ne soit acquis que:+{{https://bvdp.inetdoc.net/files/iut/tp_tns/TODO.jpg}} Ajouter dans la fonction **loop()** le nécessaire (en vous aidant des fonctions fournies dans le squelette **bool detecteFrontMontantPortB(unsigned char numerobit)** et **unsigned char LirePortB()**) pour que l'échantillon ne soit acquis que:
   * si le bit 6 du port d'entrée présente un front montant (ceci permet d'obtenir un unique échantillon)   * si le bit 6 du port d'entrée présente un front montant (ceci permet d'obtenir un unique échantillon)
   * ou si le bit 7 du port d'entrée est à l'état haut (ceci permet d'obtenir des échantillons en continu)   * ou si le bit 7 du port d'entrée est à l'état haut (ceci permet d'obtenir des échantillons en continu)
Ligne 253: Ligne 253:
  
  
-{{http://homepages.laas.fr/bvandepo/files/iut/tp_tns/TODO.jpg}} Piloter le barregraphe pour allumer une seule LED indiquant une valeur de 0 à 7 qui est fonction affine par rapport au données brutes du capteur dont vous devrez mémoriser les valeurs minimales et maximales. Ainsi pour la valeur minimum mesurée par le capteur, vous devrez allumer la led 0 et pour la valeur maximum mesurée par le capteur, vous devrez allumer la led 7.+ 
 +{{https://bvdp.inetdoc.net/files/iut/tp_tns/TODO.jpg}} Lancer l'outils de visualisation de courbes d'arduino (via Outils->Traceur série), et visualiser le signal issus du capteur en fonction du temps (positionner l'interrupteur 6 en position 1 pour faire l'acquisition en continu). Vous devriez voir un tracé tel que celui ci si vous exercer des pressions variables sur le capteur: 
 + 
 +{{https://bvdp.inetdoc.net/files/iut/tp_lpro_capteur/chronogramme.png}} 
 + 
 +   
 + 
 + 
 +{{https://bvdp.inetdoc.net/files/iut/tp_tns/TODO.jpg}} Piloter le barregraphe pour allumer une seule LED indiquant une valeur de 0 à 7 qui est fonction affine par rapport au données brutes du capteur dont vous devrez mémoriser les valeurs minimales et maximales. Ainsi pour la valeur minimum mesurée par le capteur, vous devrez allumer la led 0 et pour la valeur maximum mesurée par le capteur, vous devrez allumer la led 7.
  
  
Ligne 268: Ligne 276:
        
        
-{{http://homepages.laas.fr/bvandepo/files/iut/tp_pic/validation.png}} Une fois les réponses validées, faire valider à l'enseignant.+{{https://bvdp.inetdoc.net/files/iut/tp_pic/validation.png}} Une fois les réponses validées, faire valider à l'enseignant.
  
  
Ligne 293: Ligne 301:
   cd plot   cd plot
   rm serialhistoplot.py*   rm serialhistoplot.py*
-  wget http://homepages.laas.fr/bvandepo/files/iut/tp_lpro_capteur/serialhistoplot.py+  wget https://bvdp.inetdoc.net/files/iut/tp_lpro_capteur/serialhistoplot.py
   chmod a+x serialhistoplot.py   chmod a+x serialhistoplot.py
   echo fini   echo fini
Ligne 305: Ligne 313:
 Vous devriez voir l'affichage se stabiliser vers:  Vous devriez voir l'affichage se stabiliser vers: 
  
-{{http://homepages.laas.fr/bvandepo/files/iut/tp_lpro_capteur/histogramme.png}}+{{https://bvdp.inetdoc.net/files/iut/tp_lpro_capteur/histogramme.png}}
  
 et dans la console obtenir les informations statistiques: et dans la console obtenir les informations statistiques:
Ligne 320: Ligne 328:
 L'histogramme affiché par l'application fournie contient au maximum 10 intervalles de valeurs (axe horizontal) pour lesquels la fréquence relative d’occurrence est représentée (sur l'axe vertical). Ceci permet d'avoir une représentation graphique de la distribution des valeurs et de les interpréter ( https://fr.wikipedia.org/wiki/Histogramme#Interpr%C3%A9tation ). L'application fournie calcule la moyenne et l'écart type ( https://fr.wikipedia.org/wiki/%C3%89cart_type#Intervalle_de_fluctuation ) et affiche fonction appelée "densité de probabilité de la loi normale" ( https://fr.wikipedia.org/wiki/Loi_normale ) correspondant à ces moyennes et écarts types. Cet affichage permet de comparer l'histogramme issu des données avec une distribution normale (aussi appelée gaussienne) et de vérifier si les données suivent ou non une distribution normale. Pour l'exemple précédent, l'histogramme et la fonction de densité de probabilité sont assez proches, indiquant que les échantillons suivent une distribution de loi normale. L'histogramme affiché par l'application fournie contient au maximum 10 intervalles de valeurs (axe horizontal) pour lesquels la fréquence relative d’occurrence est représentée (sur l'axe vertical). Ceci permet d'avoir une représentation graphique de la distribution des valeurs et de les interpréter ( https://fr.wikipedia.org/wiki/Histogramme#Interpr%C3%A9tation ). L'application fournie calcule la moyenne et l'écart type ( https://fr.wikipedia.org/wiki/%C3%89cart_type#Intervalle_de_fluctuation ) et affiche fonction appelée "densité de probabilité de la loi normale" ( https://fr.wikipedia.org/wiki/Loi_normale ) correspondant à ces moyennes et écarts types. Cet affichage permet de comparer l'histogramme issu des données avec une distribution normale (aussi appelée gaussienne) et de vérifier si les données suivent ou non une distribution normale. Pour l'exemple précédent, l'histogramme et la fonction de densité de probabilité sont assez proches, indiquant que les échantillons suivent une distribution de loi normale.
  
-{{http://homepages.laas.fr/bvandepo/files/iut/tp_tns/TODO.jpg}} Tester maintenant cette application sur un autre générateur aléatoire. Pour cela, copier coller dans un terminal:+{{https://bvdp.inetdoc.net/files/iut/tp_tns/TODO.jpg}} Tester maintenant cette application sur un autre générateur aléatoire. Pour cela, copier coller dans un terminal:
   ~/plot/serialhistoplot.py -t2   ~/plot/serialhistoplot.py -t2
      
Ligne 334: Ligne 342:
   ~/plot/serialhistoplot.py    ~/plot/serialhistoplot.py 
      
-{{http://homepages.laas.fr/bvandepo/files/iut/tp_tns/TODO.jpg}} Jouez sur les interrupteurs 0,6 et 7 du port d'entrée de la carte et observer l'évolution de l'affichage sur le PC. Analyser la distribution des valeurs lorsque la masse posée sur la balance ne change pas. Suit elle une loi normale? Faire de même en changeant la masse alors que l'application intègre les échantillons et analyser la distribution.+{{https://bvdp.inetdoc.net/files/iut/tp_tns/TODO.jpg}} Jouez sur les interrupteurs 0,6 et 7 du port d'entrée de la carte et observer l'évolution de l'affichage sur le PC. Analyser la distribution des valeurs lorsque la masse posée sur la balance ne change pas. Suit elle une loi normale? Faire de même en changeant la masse alors que l'application intègre les échantillons et analyser la distribution.
  
  
  
-{{http://homepages.laas.fr/bvandepo/files/iut/tp_tns/TODO.jpg}} Procéder maintenant à l'acquisition des mesures pour les masses de référence (fournies par l'enseignant). Pour cela, au lieu d'utiliser une seule mesure brute, nous allons utiliser l'application sur le PC pour calculer la moyenne d'un grand nombre de mesures, afin de minimiser l'influence du bruit de mesure. Pour chacune des masses de référence procéder suivant la séquence suivante:+{{https://bvdp.inetdoc.net/files/iut/tp_tns/TODO.jpg}} Procéder maintenant à l'acquisition des mesures pour les masses de référence (fournies par l'enseignant). Pour cela, au lieu d'utiliser une seule mesure brute, nous allons utiliser l'application sur le PC pour calculer la moyenne d'un grand nombre de mesures, afin de minimiser l'influence du bruit de mesure. Pour chacune des masses de référence procéder suivant la séquence suivante:
   - positionner la masse au centre du plateau de la balance et attendre quelques secondes que la balance se stabilise mécaniquement (qu'il n'y ait plus d'oscillations mécaniques dues à l'élasticité). Veillez à partir d'ici à ne pas toucher la balance, la masse et même à éviter les vibrations de la table   - positionner la masse au centre du plateau de la balance et attendre quelques secondes que la balance se stabilise mécaniquement (qu'il n'y ait plus d'oscillations mécaniques dues à l'élasticité). Veillez à partir d'ici à ne pas toucher la balance, la masse et même à éviter les vibrations de la table
   - générer un front montant sur l'entrée 0 du port d'entrée sur la carte Arduino pour déclencher une réinitialisation des mesures et mettre l'entrée 6 à l'état 1 pour acquérir des échantillons en continu.   - générer un front montant sur l'entrée 0 du port d'entrée sur la carte Arduino pour déclencher une réinitialisation des mesures et mettre l'entrée 6 à l'état 1 pour acquérir des échantillons en continu.
Ligne 345: Ligne 353:
  
  
-{{http://homepages.laas.fr/bvandepo/files/iut/tp_pic/validation.png}} Une fois les réponses validées, faire valider à l'enseignant.+{{https://bvdp.inetdoc.net/files/iut/tp_pic/validation.png}} Une fois les réponses validées, faire valider à l'enseignant.
  
 ====Caractérisation et étalonnage "à la main" du capteur==== ====Caractérisation et étalonnage "à la main" du capteur====
Ligne 351: Ligne 359:
 Nous allons maintenant analyser les mesures réalisées à l'exercice précédent et déterminer la fonction (et ses paramètres) qui relie les données brutes à la grandeur physique mesurée.  Nous allons maintenant analyser les mesures réalisées à l'exercice précédent et déterminer la fonction (et ses paramètres) qui relie les données brutes à la grandeur physique mesurée. 
  
-{{http://homepages.laas.fr/bvandepo/files/iut/tp_tns/TODO.jpg}} Reporter sur une feuille de papier quadrillée les mesures précédentes et proposer une fonction $mesurande=f(donnée)$ . Déterminer les paramètres de cette fonction et la coder dans le programme Ardunio afin que l'Arduino fournisse sur le port série non plus les données brutes mais la masse en gramme. Utiliser l'application sur PC pour afficher les statisques sur les mesures en gramme fournies par l'Arduino. Analyser:+{{https://bvdp.inetdoc.net/files/iut/tp_tns/TODO.jpg}} Reporter sur une feuille de papier quadrillée les mesures précédentes et proposer une fonction $mesurande=f(donnée)$ . Déterminer les paramètres de cette fonction et la coder dans le programme Ardunio afin que l'Arduino fournisse sur le port série non plus les données brutes mais la masse en gramme. Utiliser l'application sur PC pour afficher les statisques sur les mesures en gramme fournies par l'Arduino. Analyser:
   * Les valeurs moyennes affichées pour des masses connues utilisées ou non pour l'étalonnage.    * Les valeurs moyennes affichées pour des masses connues utilisées ou non pour l'étalonnage. 
   * Les écarts types en gramme pour un objet posé de manière statique sur la balance.   * Les écarts types en gramme pour un objet posé de manière statique sur la balance.
Ligne 358: Ligne 366:
  
  
-{{http://homepages.laas.fr/bvandepo/files/iut/tp_pic/validation.png}} Une fois les réponses validées, faire valider à l'enseignant.+{{https://bvdp.inetdoc.net/files/iut/tp_pic/validation.png}} Une fois les réponses validées, faire valider à l'enseignant.
  
  
-{{http://homepages.laas.fr/bvandepo/files/iut/tp_tns/BONUS.jpg}} Demandez à l'enseignant si vous êtes concernés par cette question:  Estimation au sens des moindres carrés des paramètres de la fonction $f$ en utilisant toutes les mesures. +{{https://bvdp.inetdoc.net/files/iut/tp_tns/BONUS.jpg}} Demandez à l'enseignant si vous êtes concernés par cette question:  Estimation au sens des moindres carrés des paramètres de la fonction $f$ en utilisant toutes les mesures. 
  
 <ifauth @prof> <ifauth @prof>
Ligne 568: Ligne 576:
  
  
-{{http://homepages.laas.fr/bvandepo/files/iut/tp_tns/TODO.jpg}}  Compléter la fonction     **echantillon_t TraiteUnEchantillon(echantillon_t ek)** pour qu'elle calcule la moyenne des échantillons stockés dans le tableau **memoireVk** contenant **nbMemoireVk** échantillons. Cette valeur doit ensuite être retournée par la fonction.+{{https://bvdp.inetdoc.net/files/iut/tp_tns/TODO.jpg}}  Compléter la fonction     **echantillon_t TraiteUnEchantillon(echantillon_t ek)** pour qu'elle calcule la moyenne des échantillons stockés dans le tableau **memoireVk** contenant **nbMemoireVk** échantillons. Cette valeur doit ensuite être retournée par la fonction.
  
 <ifauth @prof> <ifauth @prof>
Ligne 595: Ligne 603:
 </ifauth>           </ifauth>          
                      
-{{http://homepages.laas.fr/bvandepo/files/iut/tp_pic/validation.png}} Une fois les réponses validées, faire valider à l'enseignant.+{{https://bvdp.inetdoc.net/files/iut/tp_pic/validation.png}} Une fois les réponses validées, faire valider à l'enseignant.
  
  
Ligne 645: Ligne 653:
  
  
-{{http://homepages.laas.fr/bvandepo/files/iut/tp_tns/TODO.jpg}} Copier coller le nouveau code dans votre programme précédent, adapter **NBOBJETS** au nombre d'objet que vous souhaitez reconnaître ainsi que la fonction **void initListeObjets()**. Compléter les fonctions **void setup()** et **void loop()** pour effectuer la reconnaissance d'objets. Piloter le barregraphe pour allumer la led correspondant au numéro de l'objet détecté et les éteindre toutes dans le cas où la masse mesurée ne correspond à aucun objet connu. Afficher sur la console Serial le nom de l'objet détecté. Expliquer pourquoi il peut arriver qu'un objet soit temporairement détecté à tort et proposer une solution pour résoudre ce problème (sans forcément l'implémenter).+{{https://bvdp.inetdoc.net/files/iut/tp_tns/TODO.jpg}} Copier coller le nouveau code dans votre programme précédent, adapter **NBOBJETS** au nombre d'objet que vous souhaitez reconnaître ainsi que la fonction **void initListeObjets()**. Compléter les fonctions **void setup()** et **void loop()** pour effectuer la reconnaissance d'objets. Piloter le barregraphe pour allumer la led correspondant au numéro de l'objet détecté et les éteindre toutes dans le cas où la masse mesurée ne correspond à aucun objet connu. Afficher sur la console Serial le nom de l'objet détecté. Expliquer pourquoi il peut arriver qu'un objet soit temporairement détecté à tort et proposer une solution pour résoudre ce problème (sans forcément l'implémenter).
  
 Un cas d'usage du système que vous devez réaliser est le suivant: La sortie pilotée par le barregraphe pourrait par exemple piloter un aiguillage des pièces vers différents tapis, permettant ainsi le tri. Un cas d'usage du système que vous devez réaliser est le suivant: La sortie pilotée par le barregraphe pourrait par exemple piloter un aiguillage des pièces vers différents tapis, permettant ainsi le tri.
  
  
-{{http://homepages.laas.fr/bvandepo/files/iut/tp_pic/validation.png}} Une fois les réponses validées, faire valider à l'enseignant.+{{https://bvdp.inetdoc.net/files/iut/tp_pic/validation.png}} Une fois les réponses validées, faire valider à l'enseignant.
  
 <ifauth @prof> <ifauth @prof>
tp_capteur_actionneur2.txt · Dernière modification: 2021/02/19 20:20 (modification externe)