LRSD 2012 IUT de CERGY
BUT GEII Neuville
Sommaire
Généralités sur la station de mesure Page 1 titre et sommaire
Page 2 but et présentation générale Page 3 planning des actions à mener
Page 4 décomposition fonctionnelle, mots clefs.
Page 5 SAE1-S2-AT Carte « Capteur » mesure de température : principe Page 6 SAE1-S2-AT Carte « Capteur » mesure de température : étude Page 7 SAE1-S2-AT Carte « Capteur » mesure de température : réalisation
Page 8 SAE1-S2-B « Banc de test » des cartes capteur : présentation Page 9 SAE1-S2-B « Banc de test » : travail
Page 10 SAE1-S2-C Carte « micro » : description
Page 11 SAE1-S2-C Carte « micro » : initiation à la programmation Page 12 SAE1-S2-C Carte « micro » : premier travail demandé Page 13 SAE1-S2-C Livraison finale : mode Bi-Capteurs Page 14 SAE1-S1-D programme « IHM »
Page 15 Protocole DUJ10
Page 16 SAE1-S2-AF Carte capteur de force : principe
Page 17 SAE1-S2-AF « sujet capteur de force » : étude et réalisation Page 18 SAE1-S2-AL capteur de Lumière
Formations et exercices
Pages 19,20 Programmation graphique de l'IHM. initiation à processing Page 21 rapport final
Page 1
SAE1-S2 : « la chaîne de mesure »
Scénario de la SAE1 de S2
Pour cette SAE , vous serez le technicien d'un laboratoire dans une entreprise du GEII.
Un ingénieur est votre chef. Le patron lui demande l'étude d'une «chaîne de mesure bi-capteurs».
Votre chef utilisera ses compétences et fera le découpage WBS du projet, ensuite il déterminera ses aspects technologiques, pour enfin vous présenter votre travail .
Il vous expliquera l'objectif de l'étude et ses constituants principaux ( issus de l'état de l'art en la matière) et il vous donnera les dates clefs auxquelles vous présenterez des résultats .
But : concevoir une chaîne de mesure, recevant 2 capteurs , température , et force.
L'affichage des mesures se fera sur un écran déporté ( PC) . Cahier des charges :
Capteur de température : plage 0 à 30°
Capteur de Force , plage de 0 à 100 Newtons
Créer une fonction d'autocalibration actionnée par l' interrupteur K Alimentation à partir du port USB d'un ordinateur
Utilisation de ressources matérielles et logicielles imposée
Validation du « banc de test » servant au test des cartes capteurs .
LRSD 2021
Page 2 SAE1-S2-C
« Banc de test » bi-capteurs
SAE1-S2-D
Programme « IHM » Carte« micro » bi-capteurs
SAE1-S2-B
SAE1-S2-AT ou AF
2 Cartes Capteurs
AT : « capteur de température » AF : « capteur de force »
Aspect Général
Désignation des éléments de la chaîné de mesure
SAE1-S2 : « CHAINE DE MESURE »
vos Missions seront
SAE1-S2-A carte « capteur de température » Elle mesure la température ambiante (de 0 à 30°C)
Vous allez : Étudier, réaliser et tester la carte SAE1-S2-A Calculs, simulations , schéma , routage , câblage et test ..
SAE1-S2-B « banc de test »
Il est utilisé en production pour valider les cartes capteur
Vous évaluerez si cette carte ( IUT) est conforme à son cahier des charges Vous aurez à écrire le rapport de test du banc de test
SAE1-S2-C carte « micro »
Sert à numériser les infos du capteur et les envoyer vers le PC en DUJ10 Carte IUT , Vous allez Écrire et tester le son Programme opérationnel.
Programmation en C sur mbed SAE1-S2-D Programme « IHM » pour PC
Pour Afficher les données issues des cartes micro.
Production IUT à modifier pour Afficher votre non SAE1-S2-E carte « capteur de force » :
Elle mesure une force de pression ( 1 à 10Kgrs)
Vous allez : Étudier, réaliser et tester la carte SAE1-S2-E Calculs, simulations , schéma , câblage et test ..
maquette sur plaque lab , le circuit imprimé n'est pas une demande imposée .
Liste des Jalons
Jalon A semaine du 21 mars Sujet « capteur de force »
Date limite pour rendre le rapport de test du banc de test Vous pouvez commencer l'apprentissage sur mbed
Jalon B Semaine du 6 juin
Date limite pour le Rendu du dossier de fabrication au prof Soutenance devant un client . Avec tous les capteurs Travail à faire
Mars .. carte capteur de température finie et testée Critiques sur le banc de test
Avril mise au point carte Force sur plaque lab Carte micro page 11 12 13
Mai mise en œuvre carte lumière sur plaque lab
Le logiciel micro est multi cartes ( T , F , L , et rien ) Travail sur processing
Juin finalisation processing avec l'aspect visuel qui vous plaira
Dans votre cahier de SAE ( noté)
Tracez un calendrier 2022, avec les semaines qui vont jusqu’à la soutenance Placez y les 6 jalons
Placez les actions à faire pour tenir les jalons actions d'auto formation
Vous vous auto formerez avant d'en avoir besoin à l'utilisation de processing
Vous aurez regardé le fonctionnement du programme micro avant de travailler dessus
SAE1-S2- Travail à faire
Lundis 17/01 24/01 31/01 07/02 14/02 21/02x 28/02x 07/03 14/03 21/03 28/03 04/04 11/04 18/04 25/04x 02/05x 09/05 16/05 23/05 30/05 07/06
Page 3
SAE1-S2 : analyse fonctionnelle : mots clef.
Page 4 SAE1-S2-AT
ou
SAE1-S2-AF
Présentation de « la chaîne de mesure » en mode « capteur de température »
Banc de test de la carte « capteur »
3V3 Vs P0 P1 Vr
SAE1-S2-B
« Banc de test » Carte « capteur »
« Banc de test »
Il Fournit 3V3 à la carte capteur Il Recopie Vs vers un point de test
Il Fait la tension de calibration Vr avec un potentiomètre présent .
Il Recopie Vr vers un point de test
Il Allume des leds en fonction de P0, P, 3.3V 3V3
Vs P0 P1 Vr
Carte « capteur AT»
'Ta' la température ambiante agit sur la tension de diode Vd.
Cahier des charges : si Ta varie de 0 à 30°C, Vs varie de 0 à 3V exemple : Vs = 2V à 20°C calibration Vr permet d'avoir Vs= 2V à Ta = 20°C P0 P1 2 bits du code carte Ils indiquent à la carte « micro » dans quel mode faire les mesures.
Température 1 1 rien 0 0 Lumière 1 0 force 0 1
Carte « micro »
Mesure , transmet et fabrique Vr calibration Vs = 2V à 20°C Communique avec le PC , des ordres et des datas en DUJ140.
Ordres vers le PC suivant liste Datas vers le PC
Vs : tension = ici la température Vr : tension de calibration Vp : potentiomètre carte micro ordres en écoute du PC
Suivant liste , (pas de datas) Réglage potentiomètre de test Programme écrit sur mbed
Programme « IHM » Interface Homme Machine Affiche des infos sur l' écran Écoute le clavier et la liaison série (USB)
communique des datas et des ordres avec la carte micro.
protocole duj10 ( voire liste) Adapte son mode d'affichage au type de capteur connecté sur la carte micro
Le programme exécutable écrit en processing
SAE1-S2-AT ou
SAE1-S2-AF SAE1-S2-C
Carte « capteur » Carte « micro »
Ordres
datas
SAE1-S2-D
Programme « IHM »
5V
réglage
écran
Clavier souris
5 à 10 V 0,1A
Le banc de test est l'outil indispensable pour qualifier la carte capteur, il faudra le valider.
Carte « capteur AT » Vs mesure : 2V à 20°C 3V à 30°C
Vr calibration : calibre 2V à 20°C P0 P1 2 bits de code de la carte Idée La captation de température se fait en mesurant la tension Vd
Le capteur est une diode, dont la tension (Vd) varie avec la température. La plage de mesure demandée va de 0°C à 30°C. La tension Vd sera amplifiée et additionnée d'un offset Vr.
L'offset Vr permet de compenser les erreurs de fabrication des diodes, en exécutant une calibration à une température étalon , pour par exemple obtenir Vs = 2V à 20°C ( 20°C est la température ambiante en salle de TP ) .
Ta
Carte « capteur AF » Vs mesuré : 0V à 0 N 3V à 100 N Vr calibration : calibre 0V à 0N P0 P1 2 bits de code de la carte Idée La captation de force se fait en mesurant la résistance d'une
F
SAE1-S2-AT : principe de la carte « capteur de Température »
Mesure de la température , avec calibration du capteur, et restitution .
carte
Température
ambiante Ta Tension
de sortie VS alim
3,3V
Tension d'étalonnage Vr
Cahier des charges
Ta la température Ambiante : de 0 à 30°C Vs la tension de sortie
Vs = 0V à 0°C et 3,3V à 33°C (+0,1V/°C) Étalonnage on force Vs = 2,5V à 25°C Vr : Tension Étalonnage Vr de 0 à 3,3V Soit une compensation de +- 50°C mini
MC304 7 1
Capteur à diode
Le capteur utilisé est une simple diode 1N914.
La tension d'une diode varie en fonction du courant qui la traverse, mais aussi en fonction de sa température.
à Id constant : Vd = Vdo(25°C) – 2mV x( Ta-25°C) Ta température ambiante à mesurer
Le constructeur donne ce graphe ou Vd est exprimé , pour différentes températures en fonction de Id.
(les incertitudes de fabrication sont de +-20mV).
exemple pour id = 0,3mA : Vd(25°C) = 0,54 Pour Ta != 25°C : Vd = 0,54V – 2mV (Ta – 25°C) On calculera Vd pour Ta = 25°C
Pour Ta = 30°C : Vd = 0,53 , ( -2mV x 5°C = -10mV)
0V 3,3V
Id Vd
Étudions Vd et Vs sur la carte «capteur de température » Le cahier des charges dit : Vs = 2,5 V à 25°C Vs = 3 V à 30°C Le capteur dit Vd = 0,54V à 25°C Vd = 0,53V à 30°C La carte aura pour fonction de faire Vs = a x Vd + b
Je dérive l'équation dVs/dVd = a = -50 car pour dTa = 5°C dvS = 0,5V dVd = -10mV Si a = -50 L'équation devient Vs = -50 Vd + b
Je me replace à 25°C Vs = 2,5V = -50 Vd + b avec Vd(25°C) = 0,54V 2,5V = -27 V + b on en déduit que b = 29,5V L'équation de la fonction à réaliser sur la carte capteur est : Vs = -50Vd + 29,5V
axVd+b Vd
Vr
Vs carte
Spécifications techniques de la carte Dimensions max 60x60 mm
Connecteur 7 points sur une face Brochage du connecteur
1 2 3 4 5 6 7
0V Vs P0 3,3V P1 Vr 0V
Vd Vs
ta 0,6
0,5 3,3V
0
Ce simple graph montre que pour fabriquer Vs il faudra : amplifier et inverser Vd + lui ajouter un offset
Vs = a Vd + b
Page 5 PARTIE THEORIQUE
Diode 1N4148 ou 1N914
Connecteur femelle
Donc si Ta Vd Vs
SAE1-S2-AT
fs3 fs1
fs2
fs4
fs5
fs6
Fs1 connecteur d'entée sortie
broches 1 2 3 4 5 6 7
0V Vs P0 3,3v P1 Vr 0V
Pin 1&7 Pin 4 alimentation 0 , 3,3V ( 50 mA max )
Pin 2 Vs signal représentant la température qui peut aller de 0 à 3,3V Pin 5 Vr signal de compensation de température de 0 à 3,3V
Pin 3 et 5 P0 P1 mis à 3,3V comme une signature de la carte « température » Fs2 signature de la carte , R6 résistance de rappel à 3,3V (1L)
Pour une carte capteur de température P0 et P1 = 1L ( assuré par R6) Pour une carte capteur de force P0 = 1L P1 = 0L
Si P0 ou P1 sont accidentellement mis à 0V le courant dans R6 est <= à 0,1mA vérifiez Fs3 Capteur de température R3 polarisation , D1 diode de mesure ( 1N4148 ou 1N914 ) La résistance R3 polarise D1 pour qu'un courant de 0,3mA la traverse ( à 25°C), vérifiez Fs4 mise à niveau et filtrage de Vr
R1 et R2 divisent par 2 la tension Vr
R1 R2 C2 forment un filtre possédant une fréquence de coupure de <= à 100hz On Impose R1 ou R2 >= 100K . calculez R1 R2 C2
Fs5 suiveur , ½ AOP 3,3V rail to rail MCP6022 une bête de course Ampli suiveur , pour ne pas consommer du courant sur D1 Fs6 fonction « ax+b » ½ AOP 3,3V Rail to rail MCP6022
En DC Par le théorème de la superposition je trouve Vs = - Vd x (R5/R4) + ( Vr/2 )x( 1 + R5/R4 ) L'équation de la transformation ( gain offset ) Vs = -50 Vd – 29,5 V
Impédance d'entrée : vue de l'entrée Vd : Zin >= 10K
R4 et R5 assureront le gain exprimé par ax+b ( rappel « a » est un gain de -50) Vr peut aller de 0 à 3,3V, elle est choisie pour que à ta = 20°C Vs =2V ( calibration) On impose toute résistance >= à 10K proposez des valeurs pour R4 et R5
En AC Exprimez la fonction de transfert, Vs par rapport à Vd (en mettant Vr = 0 V ) Votre équation ne sera écrite que avec R4 R5 C1 et la fréquence
Exprimez la fréquence de coupure fc
Calculez C1 pour avoir une fréquence de coupure fc <= à 100Hz
vd Vr
Vs
SCHEMA de départ
ANALYSE FONCTIONNELLE et calculs
La valeur des R et C est irréaliste
ETUDE de la carte « capteur de température »
SAE1-S2-AT
REALISATION de la carte « CAPTEUR de température»
1/ Comprendre
Comment mesurer une température avec une diode Comprendre la résolution de l'équation y = a. x+ b
2/ calculer ou vérifier la valeur des composants R1 2 3 4 5 6 C1 et C2 Le calcul de C1 et C2 sera abordé en séance 2
3/ exemple du travail à avoir fait en séance 1
Câbler une diode et 10K vers 3,3V, mesurez Vd20°C ( on dira qu'il fait 20°C dans la pièce) Observez la disparité de mesures entre les binômes soit 0,55V +- 20mV
Simulez le montage sur protéus ( 1N4148 ou 1N914)
Observez que pour tous les binômes Vd est de 0,598V ( 0°C en fait ) Simulez le montage proposé ( avec l'AOP en 3V3 ( ! 2 AOP dans le boîtier)) Remplacez Vd par un générateur égal à votre Vd20°C mesuré.
Calculez Vr pour obtenir Vs= 2V à 20°C avec votre Vd mesuré à 20°C Mettez un générateur sur Vr et observez 2V en sortie.
Câblez le tout
L'alimentation de l'AOP en 3V3 , avec la diode ..
Placez la tension sur Vr à la bonne valeur ( pas facile à régler) Ajustez Vr pour avoir Vs = 2V ( on dit qu'il fait 20°C dans la pièce) 3/ exemple de travail à avoir fait en séance 2 et 3
Suivez les explications du prof pour calculer C1 et C2
Placez le connecteur comme sur mon schéma , respectez son sens.
Vérifiez que toutes les résistances soient des RES40 et les condensateurs CAP10 Commencez le routage
Partie Schéma 1/ faites un nouveau projet protéus , avec le pcb
New project .. schéma A4 , Create PCB en généric sigle layer , no firmware 2/Faites y un copier coller du schéma déjà simulé ou recommencez .
Attention au choix des composants
Résistances RES40 et Condensateur CAP20
Utilisez les connecteurs comme indiqué sur le schéma donné 3/ obtenez une Validation finale de votre schéma par l'enseignant
Partie Routage Positionnez le bord de carte autour d'une zone à router de 50/50mm max Placez les composants et routez avec des fils de type 30
Faites une simulation de présentation en 3D
Placez vos initiales et votre groupe de TP sur le cuivre de votre carte , Obtenez une validation de l'enseignant
Éditez les fichiers GERBER
Page 7
Notez le sens
du connecteur
SAE1-S2-B « banc de test »
La carte SAE-S2-B est le « BANC de test » dédié aux cartes « capteur AT et AF » Sa conception fut menée par le sous traitant en charge de fabriquer les cartes capteurs Cette carte est chargée de dire si les cartes capteurs fabriquées sont livrables
VOTRE MISSION :
vérifier si le « banc de test » est lui même opérationnel
Connecteur pour recevoir la carte à tester
Schéma
Cahier des charges du banc de test
Alimentation banc de test 5V à 10V . par des fils pré câblés sur J1 ( protection par D1) Un régulateur produit le 3V3 nécessaire à l'ensemble des besoins de la carte LED D2 Elle indique la présence d'une carte capteur de température
U2 décode P0 et P1 au niveau 1 logique
LED D4 Elle indique la présence d'une carte capteur de force U2 décode P0 = 1L et P1 = 0L
RV1 Règle Vr avec une plage de 0,9V et 2,3V pour assurer Vs = 2V à 20°C J2 3 points de test 3 = Vr , 2 = 0V , 1 Vs
Aspect Visuel
Potentiomètre pour fournir Vr
LED
Carte température LED : 3V3 ok LED
carte Force 5V
0V Vr 0V Vs
SAE1-S2-B
Le Banc de test est un outil dédié à la production des cartes « capteurs », c'est l'entreprise chargée de produire les cartes capteurs qui le réalise, à partir du « cahier des charges » que vous lui avez fournit . Votre mission consiste à vérifier si le « banc de test » opérationnel .
Voilà une « vraie » mission de technicien
1/ Phase théorique : vous analyserez le schéma du banc de test pour trouver les erreurs.
2/ Phase pratique : vous validez par la pratique les erreurs, et en trouvez d'autres ? 3/ Phase Rédaction : vous rédigez le rapport de test du banc de test .
1/ PHASE THEORIQUE
Votre travail consiste à calculer si les contraintes sont respectées Pour vous aider voici quelques questions simples
QUESTIONS (vos réponses seront dans votre cahier de SAE) A/ Led D1 D1 s'allume si le 3v3 est présent
Le courant d'allumage de la diode Led est de 5mA
La tension d'allumage au bornes de la diode (5mA) = 2,2V La résistance R2 est elle à la bonne valeur
Proposez une nouvelle valeur de R
B/ Réglage de Vr avec RV1 Réglage de la tension Vr de 0,9V à 2,3V Calculs avec la sortie Vr à vide, RV1 et R4 et R5 = 10K
a)Calculez Vr max min Potentiomètre tourné à fond à gauche ou à droite . Cette variation est elle compatible avec le cahier des charges ?
b)Proposez une nouvelle valeur de R4 et R5 pour assurer la compatibilité Faites une simulation protéus de cette proposition .
(V RV1 est calculable ,grâce à u = R i i dans RV1 aussi ! , V R4 = i R4 ) C/ logique d'allumage de D2 et D4 validation type de carte
D2 s'allume si U2B4 = 1L avec P0 et P1 = 1L D4 s'allume si U2C10= 1L avec P0= 0L et P1 = 1L
Faites la tableau logique de U2B4 et U2C10 en fonction de P0 et P1 Les diodes D2 et D4 sont elles bien commandées
Faites des proposition qui ne modifient pas trop la carte D/ LED D2 D2 s'allume avec U2C10 = 1L
Le courant d'allumage de la diode Led est de 5mA
La tension d'allumage au bornes de la diode (5mA) = 2,2V La résistance R3 est elle à la bonne valeur
Proposez une nouvelle valeur de R3
E/ LED D4 D4 s'allume avec U2B4 = 1L .
Le courant d'allumage de la diode Led est de 5mA
La tension d'allumage au bornes de la diode (5mA) = 2,2V La résistance R11 est elle à la bonne valeur
Proposez une nouvelle valeur de R11
2/ PHASE PRATIQUE
Vous disposez du banc de test
Faites les tests appropriés sur le connecteur J9 du banc de test Et mettez en évidence les observation A, B , C , D citées plus haut
3/ Rapport de test du banc de test
Oui le banc de test est utilisable pour tester les cartes capteurs, mais il n'est pas pratique.
Vous écrirez le rapport de test du banc de test destiné au sous traitant Vous lui expliquerez
1/ des difficultés pratiques qu'il rencontrera dans l'utilisation du banc de test 2/ vous lui expliquerez comment comprendre les indications du banc
3/ vous lui préconiserez des modifications pour corriger les points incriminés
Page 9
Interrupteur K
On peut faire un court circuit avec les doigts entre les 2 broches du connecteur LED
Pour s’entraîner à la faire clignoter
SCHEMA
Connecteur interface Vers une carte capteur
SAE1-S2-AT ou SAE1-S2-AF Masse 0V
Entrée analogique de Vs Entrée P0
3,3V Entrée P1
Sortie analogique vers Vr 0V
Potentiomètre pour jouer en l’absence de carte capteur
1
7
SAE1-S2-C la carte « micro»
La carte « micro » incorpore un module à microprocesseur ARM M4 ( ST).
Vous la programmerez avec le compilateur 'C' sur le site MBED ( ou nouvellement KEIL) La carte micro mesure Vs , fabrique Vr et sérialise les datas vers le PC
base de départ : vous disposez dans mon compte mbed , accessible par une recherche google avec « mbed dujardin » d'un répertoire nommé « base_mbed_SAE1_S2 »
Vous pouvez l'implanter par un clic dans votre compte mbed ( ouvrez votre compte mbed) N'oubliez pas de déclarer l'utilisation du module L432KC
La carte « MicroC » est produite par l'IUT
Carte « micro »
Points importants
P0 , P1 codage du mode : température 1L 1L . force 0L 1L . lumière 1L 0L . rien 0L 0L Vs : entrée analogique de 0 à 3,3V ( 2,5V pour 25°C)
traduit en un float de 0 à 1 L'entrée E0 , elle est protégée par une 10 K Vr : sortie analogique de 0 à 3,3V permet de compenser les erreurs du capteur.
Protégée par une 10K qui peut atténue de (?) le signal de sortie Vp : tension donnée par le potentiomètre de la carte
USB
usb
Vp
E/S L432KC Vs A0 J5 2 P1 A1 J5 5 Vp A2 P0 A3 J5 3 Vr A4 J5 6 LED D9 K D2
SAE1-S2-C
Travail : initiation à la Programmation de la carte « micro»
TRAVAIL a faire
1/ formez vous à l'utilisation de la carte et de mbed seule , sans le programme processing
compilez base_mbed_SAE1_S2 , chargez le dans la carte micro ( comme dans une clef usb) Vous verrez la diode clignoter 10 fois ? :)
exercices
a) Modifier étape0() pour faire clignoter la LED 20 fois
b) dans le main , en début de boucle while(1) , ajoutez cette ligne : etape = inter ; Et enlever etape = 1 ; dans etape 0() .. testez avec K on ou off
c) modifiez etape1() pour allumer la LED si Vp > 1,5V ( 1/2)
2/ formez vous à l'utilisation de la carte et de mbed , avec le programme PC Revenez à la version initiale de base_mbed_SAE1_S2
Lancez le programme sur PC logiciel_SAE1_S2.exe
A/ Observez qu'en tournant le potentiomètre la valeur affichée de Vp change Faire un cc sur l'interrupteur
repérez dans etape1() la façon de mener les étapes.
B/ sur le PC vous cliquez sur –, - ,To, +, ++, le PC envoie les ordres r m s p q vers « micro » Voyez comment dans interrupt() , Le décodage fait changer la valeur de Vr ( DUJ10) C/ Dans etape1() vous aller faire croire au PC qu'une carte température est connectée Malgré l'absence de décodage de P0 et P1 envoyez un 'e' à la place du 'h' D/ vous enverrez au PC la valeur de Vp à la place de la température
Duj10 envoie le potentiomètre par cette ligne d'ASCII 'D''x''x''x''P' Changez le 'P' par un 'T'
E/ imaginez de Lire P0 et P1 = 1L pour faire ce transfert
Page 11
init()
etape = 0 etape0(
)
etape = 1 etape1(
)
Etape = 0
Boucle sans fin
Lire P0
envoyer r ou s Clignoter led 2s
Envoyer 'h' Wait 0,2s LED =0 etape = 1
Lire inter envoyer 'w' v'
Lire Vp D - - - P
interrupt()
ecoute les ordres . l k r m s p q
init()
115200bps LED=0 Envoyer d
Mode « pas de carte capteur » datas transmises en duj10 main etape0() etape1() sousprog Le programme proposé fait :
Au début du main : il initialise les broches utiles,et prépare les variables .
Ensuite : dans init() Il initialise certaines parties matérielles de l'ARM ( liaison série) Ensuite : En boucle , en fonction de la variable etape il exécute 2 sous programmes Au début étape = 0 , donc il commence par exécuter le sous programme etape(0) Étape0() fait clignoter 2 S led , envoie un 'h' , et place etape = 1
maintenant étape = 1 il exécutera toujours le sous programme etape1() Etape1() mesure l'état des E/S et du potentiomètre et les envoie au PC Contenu du répertoire mbed dit « base_mbed_SAE1-S2 »
main déclaration des broches, des variables globales , et des différents constituants sousprog sous programmes utiles au main , interruption et initialisation
etape0 sous programme etape0() appelé dans le main etape1 sous programme etape1() appelé dans le main
SAE1-S2-C
gestion simple de la carte capteur SAE1-S2-AT
Les programmes vus lors de la séance précédente , vous ont rendus autonomes.
Ils ne seront pas tous réutilisés pendant cette séance ..
Attention : il vous est demandé de ne pas changer la structure en étapes
Avec un Court Circuit sur K , il y a calibration du capteur .ou Vs = 2V à 20°C Sans court circuit sur K mesure et transfert des données de la carte en DUJ10 Dans le main , après init(), au début de la boucle while(1) :
: etape recopie la valeur de K ( inter)
If CC sur K (0L), exécuter étape0() , avec : clignotement Led , + calibration() If K est libre (1L), exécuter etape1() , Mesure et transmission de Vs Vr et Vp Pour le moment calibration() et un sous programme presque vide , on s'y prépare ..
C'est quoi une calibration ?
Dans le main , l'état de l'interrupteur amène le programme à exécuter 2 sous programmes différents .. à tout moment on pourra faire un cc sur K pour relancer une calibration par l'étape0() Lors de la calibration .. il faut accepter l'idée qu'il fait 20°C dans les salles de TP.
la carte 432KC va chercher toute seule la tension qu'il faut mettre sur « Vr » , pour que la tension Vs soit de 2V, et compenser toute seule les erreurs de fabrication de la diode.
Lorsque la calibration est finie vous prévenez le PC par un 'c' Voila 2 méthodes de calibration
1) méthode incrémentale .. très lente et rustique
1/ Vs et Vr = 0 .. ( Vr le float est à mettre sur la broche outVr par un outVr.write(Vr) ) 2/ dans un while , tant que Vs < 2V
Faire : Vr= Vr + 0,001 et mettre en sortie outVr Et attendre 0,01S et enfin mesurer Vs
3/ éteindre la LED , et envoyer un 'c' vers le PC
2) méthode par approximation successive , plus rapide et plus fine 1/ Vr = 0,5 , Q = Vr/2 ( Q est un float)
2/ dans un for , faire 10 fois
outVr.write(Vr) ; Attendre 20ms , mesurer Vs Si Vs > 2V Vr = Vr – Q
Si Vs < 2V Vr = Vr + Q Q = Q/2
init()
etape = 0 etape0() etape = 1 etape1() Boucle
sans fin
main
interrupt() Traiter les ordres . l k r m s p q
init()
115200bps LED=0 etape = 0 Envoyer e Envoyer d sousprog
Clignoter led 2s
Envoyer 'e' Envoyez un 'd' Appel
calibration()
Wait 0,2s LED =0
etape0()
Lire P0 et P1 Envoyer r ou s Envoyer t ou v Envoyer 'e' Lire Vp
Duj10 D - - - P Lire Vs
Duj10 D - - - T Lire Vr
Duj10 D - - - C etape1()
Wait 0,2S
Dans un premier temps le Sous programme de calibration est vide ( seulement envoyer un 'c') Le décodage de r m s p q dans interrupt() rend possible une calibration manuelle.
Travail demandé en une séance
Calibration() ?
Envoyer 'c'
faux
faux
etape = inter
SAE1-S2-C LIVRAISON FINALE
Travail : programmation du mode Multi-Capteurs
Fonctionnement du programme est montré en mode 2 capteurs T et F main.cpp
Après l'init() faire une boucle infinie Lire les tensions sur P0 et P1 ,
déterminer l'état logique de P0 et P1, l'écrire dans les variables p0 et p1 Gérer l'envoie de r s t u et v et w suivant l'état de P0 P1 et inter.
Suivant inter
Si inter est en court circuit , lancer la calibration ( etape0() ; ) Sinon faire des mesures en boucle suivant l'état de p0 et p1
etape0.h fichier dédié aux actions a faire en cas de demande de calibration (K=0) D’abord , La led clignote 2 secondes , elle finit allumée.
Ensuite , suivant l'état de p0 et p1
Appel de calibrationT() ou calibrationF() Attendre 0,2S
étate1.h fichier dédié aux mesures à faire dans le cas ou K = 1
Avec les programmes de mesure comme etape1T() etape1L() etape1F() ;
Après avoir indiqué le type de carte , il mesurent et transfernt en DIL10 Vr Vp Vs Sousprog.h différents sous programmes utiles aux fonctions et les calibrations T et F
Page 13
interrupt() Traiter les ordres . l k r m s p q
init()
115200bps LED=0 'h' 'd' > PC
Lire la tension de P0 et P1 Mettre 0 ou 1 dans p0 et p1 Envoyer au choix r s t v Envoyer v w suivant inter
main.cpp etape0.h etape1.h sousprog.h
init()
calibrationT() calibrationF()
calibrationT()
Jouer sur Vr pour que Vs = 2V à 20°C
Finir par 'c' > pc calibrationF()
Jouer sur Vr pour que Vs = 0,1V pot au milieu Finir par 'c' > pc Attention, le capteur de force fonctionne mal .. il sera remplacé par le potentiomètre de la plaque LAB
La calibration se fera au point milieu du potentiomètre sot 3,3V/2 : 1,65V , qui enverra 0,1V en sortie ( = ! 0)
Améliorations ..dans le main , vous appellerez le programme etapeL() ; si p0 = 1 et p1 = 0
Dans calibrationL() il n'y aura que c > PC . etape = inter
etape = 1
Etape0() ;
Gestion des variables P0 est le nom de la broche
P = P0.read() lit P0 et place un float dans P , P ira de 0 à 1 exemple 0,2 p0 est un entier mis à 0 ou 1 suivant la tension sur P0 ( 1 Logique si P > 0,5) OutVr.write(Vr) place le float Vr vers la sortie Vr de la carte MICRO ( 0 à 3,3V) p0=1&p1=1
etape1T() ;
p0=0&p1=1 etape1F() ;
p0=0&p1=0 'h'> pc
mesures etape1T() { 'e' > PC Lire Vs Vr Vp Duj10 > PC Wait 0,1s } etape1F() { 'f' > PC Lire Vs Vr Vp Duj10 > PC Wait 0,1s}
Clignoter led 2s 'h' et 'd' > PC
Si p0=p1=1L calibrationT() ; Si p0=0 p1=1 calibrationF() ;
Wait 0,2s LED =0 etape0()
calibrations while(1)
=0 mesures calibrations
Semaine de 19/04 : vous détecterez les 4 possibilités ( P0 P1) , et en informerez le PC ( e,h,g,f) Le PC commutera de mode, vous observerez les modifications à porter dans processing.
Calibration simple sur T et F faite avec le capteur ( calibration complexe est un plus)
2 semaines de travail
SAE1-S2-D « IHM »
« logiciel_SAE1_S2.exe »
Ce logiciel sert à afficher les datas et les ordres en provenance de la carte « micro » , il sait aussi envoyer des ordres ( calibration ++ ou – ) vers la carte micro . Ilcommunique avec la carte « micro » par liaison série en ASCII en utilisant le protocole DUJ10.
De base ce logiciel est multi capteurs, suivant l'ordre reçu en provenance de la carte micro(e,f,g,h) Présentation du mode mesure de température
Carte « micro » Programme « IHM » Mesure de Vs avec une carte température
De 0 à 3,33V Envoyée de 0 à 333 arrivée dans la variable température Duj10 : 'D' ''-' '-' '-' 'T' affichage dans la zone de mesure et Vs Mesure de Vs avec une carte force
De 0 à 3,33V Envoyée de 0 à 333 arrivée dans la variable force
Duj10 : 'D' ''-' '-' '-' 'F' affichage dans la zone de mesure et Vs Mesure de Vs avec une carte lumière
De 0 à 3,33V Envoyée de 0 à 333 arrivée dans la variable lumière
Duj10 : 'D' ''-' '-' '-' 'L' affichage dans la zone de mesure et Vs Mesure de Vr sur la carte capteur
De 0 à 3,3V Envoyée de 0 à 1000 arrivée dans la variable Vk Duj10 'D' '-' '- ' '-' ''C' affichage de la variable « Vr»
Vp tension du potentiomètre sur carte micro
De 0 à 3,33V Envoyée de 0 à 333 arrivée dans la variable potentiomètre Duj10 'D' '-' '-' '-' 'P' affichage de la variable «Vp »
mode température 'e' mode force 'f' change le type d'affichage Mode lumière 'g' mode rien 'h'
Calibration faite 'c' Calibration non faite 'd' indique calibration OK ou non
P0 = 0 duj10 'r' duj10 'l' LED ON
P0 = 1 duj10 's' duj10 'k' LED OFF
P1 = 0 duj10 't' duj10 'r' Vr-- - 20mv
P1 = 1 duj10 'u' duj10 'm' Vr - - 1mv
K = 0 duj10 'v' duj10 's' Vr = 1,22 V
K = 1 duj10 'w' duj10 'p' Vr + + 1 mv
Duj10 'q' Vr++ + 20mv Protocole DUJ10
À 115200bps
Liste des Ordres et datas échangés en DUJ10
D A T A S
O R D R E S
Zones d'affichage
Zone « informations légales » Informe sur le logiciel en place Zone technique
Présentation des datas et ordres reçus de la carte micro
Zones pour clic
envoyer des ordres à la carte micro Calibration de vK et + et – sur vK Zone mesure
Travail à faire
Après vous êtes formés à processing ( 2 dernières pages de la SAE)
Vous ouvrez Source-logicielPC/ logiciel-SAE1S2/ et ouvrez processing ( à télécharger à l'IUT) Vous vous rendez dans l'onglet « rien » et analyser l'action faite
Glissez en début de fenêtre votre nom , une ligne est vide
Faites un run , cliquez sur le port série visible . Sans carte micro le programme exécute « rien » Adaptez à votre convenance chacune des fenêtres d'affichage
Protocole Duj10
Gestion de la communication entre la carte Micro et le PC
Principe chacun des 2 objets peut émettre ou recevoir des ordres ou des datas Les ordres sont codés par des caractères ASCII en minuscule de a à z
Les datas sont codées par des caractères ASCII en majuscules et des chiffres Codage des ordres
Un ordre = un ASCII , il est choisi dans les minuscules « a , b , c ....z « Exemple processing : du PC vers la carte Micro
myPort.write('s'); place le s en ascii sur la liaison série du PC nommée « myPort » Exemple en mbed de la carte Micro vers le PC
serie.put('p') place le p en ascii sur la liaison serie de la carte nommée serie Pour la SAE1-S2 c'est le logiciel coté PC qui limite les ordres transmis et reçus.
Liste des « ordres » envoyés du PC vers la carte micro « l » : Led on ; « k » led off ;
« r » vK - - ; « m » vK - ; « s » vK = 1,22V ; « p » vK+ ; « q » vK ++
Liste des Ordres attendus par le PC en provenance de MicroC « r » P0 = 0 ; s P0 = 1 ; t P1 = 0 ; u P1 = 1 ;
« v » inter = 0 ; « w » inter = 1 ; « c » calibration faite ; « d » non calibré Codage des datas transmises
Les datas sont envoyées en ASCII codé décimal, avec des majuscules A à Zet chiffres 0 à 9 Un caractère commence la transmission .. un caractère ferme la transmissions
Le caractère d'ouverture est toujours l'ASCII 'D' comme Début de transfert Le caractère de fermeture dépend de l'utilisation de la valeur transmise
Exemple 'D' '1' '2' '3' 'X' envoie 123 vers la variable X du récepteur Les datas ne sont que positives, et ne peuvent dépasser 16Bits .
Pour la SAE1-S2 seule le PC attend des datas
Datas transmises par la carte micro , équipée d'une carte capteur température D --- T tension liée à la température de 0 à 333 ( 333 pour 3,33V ) D --- P tension mesurée sur le potentiomètre de 0 à 333 ( 333 pour 3,33V ) D --- C tension de compensation , Vk :sortie A4 , de 0 à 1000 ( 1000 pour 3,33V) Décodage des datas ( fournit)
Le récepteur reçoit les ascii à la queue le le
Chacune d'elle est placée dans un tampon et analysée ( un int convient )
À chaque caractère arrivé une serie d'actions est faite ( sous programme de reception) Si c'est un 'D' il fait titi = 0
Si c'est un '0' à '9' il met la valeur dans un tableau à l'adresse titi, et incrémente titi
Exemple avec '0' il fait { tabl[titi] = 0 ; et titi++ ; } …// tabl[] est un tableau de 10 cases ( attention la valeur 0 est différente de l'ASCII '0' )
Si c'est un 'X' il reconstitue la valeur pour la mettre dans la variable X Il fait , tant que titi > 0 { X = X + tabl[titi]* 10 EXP titi ; titi-- ; } Et à la fin quant titi = 0 , la valeur qui est dans X est bonne Limites
La transmission des chiffres négatifs n'est pas faisable ( le – n'existe pas ) Pour cela , On choisira la transmission d'un entier avec un offset
Exemple dans une gamme d'entrée +-512 ( plage = max – min = 1024) On transmettra de de 0 à 1024 , la plage.
soit à transmettre 100 On enverra (plage/2) + 100 = 512 + 100 = 612
Page 15
SAE1-S2-AF : carte « capteur de force »
Mesure une force . Le capteur de force est une résistance, constituée d'une feuille de velostat tenue entre 2 surfaces conductrices. Son écrasement la rend plus conductrice.
Autre intérêt, Le matériau velostat , réagit aussi à la température .
Caractéristiques mesurées pour 1 cm² de surface
Proposition de schéma d'installation du capteur
Principe de mesure
Le capteur ( figure 2) est fait de 2 surfaces identiques en velostat , montées en pont ..
L'une d'elles (R2) recevra la force à mesurer , R3 servira d'étalon en température Placées à la même température , R2 et R3 ont presque la même résistance.
Sans pression, les 2 résistances forment un pont diviseur ou J2 2 out = 3,3V/2
Une pression sur le capteur ( en R2) , fait baisser la valeur de R2 et augmenter Vout ..
Circuit de mesure associé au capteur
La tension procurée par J2 2 out, est envoyée vers un amplificateur, Vr lui sera soustrait.
Calculez Vs en fonction de Ve , Vr , R4 et R5
Figure 2
Page 17
«SUJET : CAPTEUR de FORCE»
Données de base Au repos Rc = Rt
Ve = 3,3V/2 , nous voulons Vs = 0V Au travail : Force de 10Newton Rc baisse Ve = 3,3V/2 + 0,5V nous voulons Vs = 2V
Étude théorique
QUESTIONS
Extraction des paramètres « a » et « b »
En dérivant l'équation ou Vs = a Ve+ b , nous trouvons a = dVs/dVe 1/ calculez la valeur de a à partir des données de base
: dVe = Ve au travail – Ve au repos
Quel est le dVe de 0 et 10N Q1 dVe = ...
Quel est le dVs associé Q2 dVs = ….. . Quel est a = dVs/dVe Q3 a = ….
2/ prenons le cas ou VS = 0V = a Ve + b
Vous connaissez Ve vous connaissez Vs et a , alors calculez b Q4 b = ….
Étude du montage à AOP
Vs=aVe+b Vs
F Ve
capteur
compensation
b
+ -
Ve
Vr
R5 R4
Vs
Vous allez utiliser le théorème de superposition Vs1
Ve existe Vr = 0
Vs2 Vr existe Ve = 0
Q5 : Vs1 = Ve x….... Q6 : Vs2 = Vr x …....
Vs = Vs1 + Vs2 Q7 Vs = …... Ve + ….. V r Comparez Q3 et Q4 Vs = a Ve + b Proposez une valeur pour R5 et R4 ( >= 10K) Proposez une valeur pour Vr qui donne b (Q4)
Q8 R5 = Q9 R4 = Q10 Vr =
Étude du filtre composé par R1 et C2 1/ de quel type de filtre s'agit il ?
Q11 type =
R1 C2
Ve Vs
Exprimez la fonction de transfert de ce filtre
Avec R1 C2 et jw ( ou f) Q12 T = Proposez une valeur de R1 et C2 pour que ce filtre
Possède une fréquence de coupure de 100Hz Q13 R1 = ….... Q14 C2 = …...
3,3V
0V
équation avec R5 et R4 Équation avec R5 et R4
Exprimez l'équation finale
Rc Rt
Rc Rt talon
«SUJET : CAPTEUR de LUMIERE»
BUT concevoir la maquette de faisabilité d'un capteur de lumière , elle devra s'interfacer avec le connecteur de la carte micro .
Cahier des charges .. mesurer 1V à 200Lux.
PRINCIPE Une photodiode transforme en un courant électrique . l’énergie lumineuse qu'elle reçoit sur la surface de sa jonction.
Le courant produit : Ip , traverse la diode dans le sens Cathode vers Anode Vs = Rp . Ip
ETUDE THEORIQUE
En moyenne une diode en silicium produit un Ip de 0,6A pour 1W/m² La diode BPX65 possède une surface de 1mm²
Q1 Quelle sera le courant Ip sous un éclairement de 1W/m² ? Sachant Qu'une énergie de 1,5KW/m² correspond environ à 90 000 Lux Q2 Quelle énergie correspond à 1000 Lux ?( base soleil)
Si une BPX65 est soumise 1000Lux ( question Q2) Q3 quel courant Ip produit elle ? .
Dans une salle de TP l’éclairement est en moyenne de 100Lux
Q4 quel sera « Ip » si la BPX65 est placée dans une salle de TP Calculer Rp
Q5 quelle résistance Rp mettre pour mesurer Vs = 1V avec 100Lux.
MONTAGE A UTILISER
Calcul des composants
Q6 Que vaut Ip , donc Vs dans le noir
Q7 calculez R2 pour avoir Vs = 1V avec 200 Lux
Q8 R1 et C2 doivent constituer un filtre passe bas , qui coupera efficacement Toutes les fréquences supérieures à 10Hz
Proposer une valeur pour R1 et C2
Q9 proposez un filtre passe bas ( non inverseur) du second ordre :)
Qui puisse remplacer très efficacement R1 et C2
Q1 : …... µA
Q2 :….... W/m²
Q3 :….... µA
Q4 :….... µA
Q5 :….... Meg
V1 Ip
Ip Rp
Q6 Ip =….... A Vs = …... V Q7 :….... Meg
Q8 R1 =….... meg C2 = …...µF a et b doivent être mises au bon
potentiel pour dire à la carte MICRO qu'il s'agit d'un capteur de lumière.
INITIATION à la Programmation en PROCESSING
Processing est un environnement de développement logiciel créé par le MIT, But, donner à tous ,les moyens de développer librement des applications .
Pour fonctionner Processing utilise le noyau JAVA present dans toutes les machines modernes.
Mise en place de processing
Faites une recherche avec « processing », downloadez le processing.zip vous convenant.
Décompressez dans un répertoire connu, et lancez processing au travers de l’icône ( 5 sec) processing ne s'installe pas et ne pollue pas la table des registres .
Il fonctionne sur le moteur JAVA présent sur toutes les machines . Exemple avec un programme simple ( une boule suivra la souris )
Aspect de la fenêtre processing après avoir édité quelques lignes aspect de l'application
En cours d’exécution dans sa propre fenêtre
Le draw est exécuté à chaque rafraîchissement de votre écran setup , prépare la fenêtre de l'app Ne se lance qu'au debut Taille de la fenêtre application
Ellise trace un cercle
À la position de la souris en X et Y Et de rayon horizontal15 et vertical 15
A faire
Testez le programme proposé ci dessus Changer le rayon X ou Y , changez de size ..
Icône de RUN à cliquer Pour exécuter le Lancement de l'application ecrite
Page 19
Partie 1 Apprenons à mieux nous servir de Processing
Testez ce programme
Changez ce chiffre
Observez ! ( avec un run )
Testez ce programme
Testez vos programmes dans le draw
1) comment dessiner un rectangle ( allez consulter référence en haut à droite) Rectangle plein ou vide comment faire .. rect() ?
Entouré d'une ligne ou non !!
Dessinez votre espace de jeu .. une table rectangle de 500/400 verte Au centre d'une fenêtre de programme de 600/500 ( noire )
Positionnez une petite raquette au milieu gauche de ta table
2 ) Récupérez la valeur de la position x ou Y de la souris , et injectez la dans les coordonnées verticales de la raquette!!
Servez vous de cet exemple
3) positionnez une balle .. ( ellipse ) sur le tapis vert en PosX et PosY ( 300 300) 4) animez cette balle en faisant que PosX= PosX+dx et PosY = PosY + dy ( 1 ) Si la balle sort du tapis vert à droite c'est que PosX est trop grand
Faites un if et si c'est le cas inversez dx Faites cela pour les 4 cotés du tapis vert . ;
Vous comprenez .. alors faites rebondir .. sur une seule raquette à la souris ! Changer les 3 valeurs
ajoutez cette ligne après le background À la place de
Glissez avant ellipse À la
place
Glisser un fill(50) avant une nouvelle ellipse