SlideShare une entreprise Scribd logo
1  sur  14
Télécharger pour lire hors ligne
2
Objectif
● En partant d'un problème concret, présenter les différentes
étapes conduisant à la réalisation de sa Preuve de Concept.
● Cette architecture en étapes est très générale :
– conception d'un produit
– bibliographie
– étude théorique
– définition de l'architecture technique
– définition du logiciel embarqué
● conception
● programmation
– tests et validation
4
Cardiofréquencemètre autonome
… pour les applications sportives
6
Pour fixer les idées
… quelque chose qui ressemble à ça
8
Étude préliminaire (2)
Électrocardiogramme*
● le placement des électrodes n'a pas
l'air simple !
● Par contre, la forme du signal est
simple.
* https://fr.wikipedia.org/wiki/Électrocardiographie
Il va falloir un
bon amplificateur !
10
Étude préliminaire (4)
autres méthodes ?
● Et comment marche ce système ?
– il a l'air simple,
– pas besoin de quitter ses vêtements.
– on dirait qu'on analyse la réflexion de la
lumière sur la peau ou la transparence de
la peau.
12
Capteur optique (1)
● Le capteur est, comme tous les
capteurs, constitué de 2 parties :
– transducteur qui traduit la
grandeur physique en signal
électrique,
– mise en forme du signal de
mesure.
14
Signal cardiaque
● Après mise en forme
électronique, les signaux
cardiaques ont la forme
suivante.
● Mesurer la durée d'un
battement revient à mesurer
l'intervalle de temps entre deux
fronts de même sens.
● En fait, il faudra faire la
moyenne de plusieurs durées
pour améliorer la précision.
Et voilà !
16
Architecture technique
Microcontrôleur – Arduino UnoMicrocontrôleur – Arduino Uno
Shield GroveShield Grove
Afficheur LCD – 16x2Afficheur LCD – 16x2
Pile 9V – 6LR61Pile 9V – 6LR61
LED – rougeLED – rouge
CapteurCapteur
18
La Machine à États finis
● Les états mémorisent le passé qu'il est nécessaire de connaître
pour prédire le comportement.
● On identifie 3 états :
– INIT : ils ne s'est encore rien passé
– HIGH : le dernier événement qui s'est produit est high
– LOW : le dernier événement qui s'est produit est low
● Il y a deux événements :
– high = (signal cardiaque = high)*
– low = (signal cardiaque = low)
● La machine à états finis est décrite par son diagramme des
états.
* cette expression est un prédicat : une affirmation qui est soit vrai soit fausse
20
Parenthèse
comment déterminer la moyenne ?
On dispose d'un compte-temps
indiquant combien de temps s'est
écoulé depuis que le micro-contrôleur
a été démarré chaque fois qu'on
l'interroge.
: date de départ
: date du kème front montant: date du kème front montant
Juste une soustraction
et une division !
22
Arduino UNO est le
micro-contrôleur
#define PULSE_PIN 2
#define LOW 0
#define HIGH 1
int pulse_pin = PULSE_PIN;
int pulse;
int detection_state;
...
void setup(){
pinMode(pulse_pin, INPUT);
detection_state = LOW;
count = 0;
}
void loop(){
pulse = digitalRead(pulse_pin);
if((detection_state == LOW) && (pulse == HIGH)){
/*** here an heart beat begins ***/
detection_state = HIGH;
/*** action performed when in the rising edge ***/
}
if((detection_state == HIGH) && (pulse == LOW){ detection_state = LOW; }
}
24
Et les actions ?
...
#define COUNTMAX 16
...
unsigned long current_time;
unsigned long current_interval;
int count;
int heart_rate; // beats/minute
void setup(){
...
}
void loop(){
pulse = digitalRead(pulse_pin);
digitalWrite(led_pin, pulse);
if((detection_state == LOW) && (pulse == HIGH)){
/*** here an heart beat begins ***/
detection_state = HIGH;
/*** action performed when in the rising edge ***/
if(count++ == COUNTMAX){
count = 0;
current_interval = millis() - current_time;
current_time = current_time + current_interval;
heart_rate = (int)((float)COUNTMAX*1000.0*60.0/(float)current_interval);
}
}
if((detection_state == HIGH) && (pulse == LOW){ detection_state = LOW; }
}
26
Gestion de l'affichage (2)
#include <Wire.h>
#include "rgb_lcd.h"
rgb_lcd lcd;
...
void setup(){
...
lcd.begin(16, 2);
lcd.setCursor(0,0); lcd.print("Pinch your ear");
}
void loop(){
...
if((detection_state == LOW) && (pulse == HIGH)){
/*** here an heart beat begins ***/
detection_state = HIGH;
lcd.setCursor(count,1); lcd.print(".");
if(count++ == COUNTMAX){
...
heart_rate = (int)((float)COUNTMAX*1000.0*60.0/(float)current_interval);
lcd.clear();
lcd.setCursor(0,0); lcd.print("Heart Rate: ");
lcd.print((heart_rate > 40)? heart_rate : 0);
}
}
if((detection_state == HIGH) && (pulse == LOW){ detection_state = LOW; }
}
28
Merci pour votre attention
des questions ?

Contenu connexe

Tendances (7)

Cours1 presentation de l'environnement arduino
Cours1   presentation de l'environnement arduinoCours1   presentation de l'environnement arduino
Cours1 presentation de l'environnement arduino
 
01 cours automate
01 cours automate01 cours automate
01 cours automate
 
Supervision industrielle www.automate pro.blogspot.com
Supervision industrielle www.automate pro.blogspot.comSupervision industrielle www.automate pro.blogspot.com
Supervision industrielle www.automate pro.blogspot.com
 
تمارين وحلول خاصة ببرمجة Ladder et instructions automates
تمارين وحلول خاصة ببرمجة Ladder et instructions automatesتمارين وحلول خاصة ببرمجة Ladder et instructions automates
تمارين وحلول خاصة ببرمجة Ladder et instructions automates
 
Microcontrôleur
MicrocontrôleurMicrocontrôleur
Microcontrôleur
 
Cours et travaux diriges sur l'automatisme et les systemes automatises
Cours et travaux diriges sur l'automatisme et les systemes automatisesCours et travaux diriges sur l'automatisme et les systemes automatises
Cours et travaux diriges sur l'automatisme et les systemes automatises
 
Rapport voiture radiocommandée
Rapport voiture radiocommandéeRapport voiture radiocommandée
Rapport voiture radiocommandée
 

En vedette (10)

Ad Dept. Portfolio
Ad Dept. PortfolioAd Dept. Portfolio
Ad Dept. Portfolio
 
Trabajo practico n 1
Trabajo practico n 1Trabajo practico n 1
Trabajo practico n 1
 
Trabajo Norma
Trabajo NormaTrabajo Norma
Trabajo Norma
 
How to Cancel your Subscription
How to Cancel your SubscriptionHow to Cancel your Subscription
How to Cancel your Subscription
 
FERRETERÍA COA
FERRETERÍA COAFERRETERÍA COA
FERRETERÍA COA
 
Du lich me kong = 5 diem du lich tien giang
Du lich me kong = 5 diem du lich tien giangDu lich me kong = 5 diem du lich tien giang
Du lich me kong = 5 diem du lich tien giang
 
Módulo 1
Módulo 1Módulo 1
Módulo 1
 
Goro testimonials
Goro testimonialsGoro testimonials
Goro testimonials
 
Pavitra
PavitraPavitra
Pavitra
 
Final Presentation
Final PresentationFinal Presentation
Final Presentation
 

Similaire à Conception et réalisation d'un quadricoptère pour la prise de vue aérienne

Exercices vhdl
Exercices vhdlExercices vhdl
Exercices vhdl
yassinesmz
 

Similaire à Conception et réalisation d'un quadricoptère pour la prise de vue aérienne (20)

Presntation about Arduino pins and for what
Presntation about Arduino pins and for whatPresntation about Arduino pins and for what
Presntation about Arduino pins and for what
 
PPT01_Initiation à l’Arduino.ppt
PPT01_Initiation à l’Arduino.pptPPT01_Initiation à l’Arduino.ppt
PPT01_Initiation à l’Arduino.ppt
 
presentation serrure codee
presentation serrure codeepresentation serrure codee
presentation serrure codee
 
Les systèmes embarqués arduino
Les systèmes embarqués arduinoLes systèmes embarqués arduino
Les systèmes embarqués arduino
 
ppt.pptx
ppt.pptxppt.pptx
ppt.pptx
 
Intro archi
Intro archiIntro archi
Intro archi
 
T ps dsp
T ps dspT ps dsp
T ps dsp
 
Ch8 architecture
Ch8 architectureCh8 architecture
Ch8 architecture
 
ch8_architecture.ppt
ch8_architecture.pptch8_architecture.ppt
ch8_architecture.ppt
 
Exercices vhdl
Exercices vhdlExercices vhdl
Exercices vhdl
 
IoT.pptx
IoT.pptxIoT.pptx
IoT.pptx
 
Cours Systemes embarques.pptx
Cours Systemes embarques.pptxCours Systemes embarques.pptx
Cours Systemes embarques.pptx
 
SCAIME - eNodView, logiciel de paramétrage et d'analyse du signal pour contrô...
SCAIME - eNodView, logiciel de paramétrage et d'analyse du signal pour contrô...SCAIME - eNodView, logiciel de paramétrage et d'analyse du signal pour contrô...
SCAIME - eNodView, logiciel de paramétrage et d'analyse du signal pour contrô...
 
Présentation systema de controle d'acces et de température
Présentation systema de controle d'acces et de températurePrésentation systema de controle d'acces et de température
Présentation systema de controle d'acces et de température
 
Arduino
ArduinoArduino
Arduino
 
Boost.SIMD
Boost.SIMDBoost.SIMD
Boost.SIMD
 
Support Formation Samsung - Python - Session 1 - 2022.pptx
Support Formation Samsung - Python - Session 1 - 2022.pptxSupport Formation Samsung - Python - Session 1 - 2022.pptx
Support Formation Samsung - Python - Session 1 - 2022.pptx
 
Correction des exercices du thème 6 du manuel du cours 3ème année
Correction des exercices du thème 6 du manuel du cours 3ème annéeCorrection des exercices du thème 6 du manuel du cours 3ème année
Correction des exercices du thème 6 du manuel du cours 3ème année
 
Présentation de l andronessness
Présentation de l andronessnessPrésentation de l andronessness
Présentation de l andronessness
 
121115 Présentation Arduino Cocoaheads
121115 Présentation Arduino Cocoaheads121115 Présentation Arduino Cocoaheads
121115 Présentation Arduino Cocoaheads
 

Plus de So Fab

Plus de So Fab (12)

Enact meet companies during 6th march day
Enact meet companies during 6th march dayEnact meet companies during 6th march day
Enact meet companies during 6th march day
 
Carnet de bord tocs2018 3
Carnet de bord tocs2018 3Carnet de bord tocs2018 3
Carnet de bord tocs2018 3
 
Biot magazine hiver 2018
Biot magazine hiver 2018Biot magazine hiver 2018
Biot magazine hiver 2018
 
Conception et réalisation d'un quadricoptère pour la prise de vue aérienne
Conception et réalisation d'un quadricoptère pour la prise de vue aérienneConception et réalisation d'un quadricoptère pour la prise de vue aérienne
Conception et réalisation d'un quadricoptère pour la prise de vue aérienne
 
Robot marin affiche a3
Robot marin affiche a3 Robot marin affiche a3
Robot marin affiche a3
 
Valbonne octobre2016
Valbonne octobre2016Valbonne octobre2016
Valbonne octobre2016
 
l'info octobre 2016
l'info octobre 2016l'info octobre 2016
l'info octobre 2016
 
Articles labellisation SoFAB - février 2016
Articles labellisation SoFAB - février 2016Articles labellisation SoFAB - février 2016
Articles labellisation SoFAB - février 2016
 
Azur entreprise- Industria 2015
Azur entreprise- Industria 2015Azur entreprise- Industria 2015
Azur entreprise- Industria 2015
 
Ra so fab 2014 2015 web
Ra so fab 2014 2015 webRa so fab 2014 2015 web
Ra so fab 2014 2015 web
 
Modélisation3d
Modélisation3dModélisation3d
Modélisation3d
 
SOFAB 3 mois après
SOFAB 3 mois aprèsSOFAB 3 mois après
SOFAB 3 mois après
 

Conception et réalisation d'un quadricoptère pour la prise de vue aérienne

  • 1. 2 Objectif ● En partant d'un problème concret, présenter les différentes étapes conduisant à la réalisation de sa Preuve de Concept. ● Cette architecture en étapes est très générale : – conception d'un produit – bibliographie – étude théorique – définition de l'architecture technique – définition du logiciel embarqué ● conception ● programmation – tests et validation
  • 2. 4 Cardiofréquencemètre autonome … pour les applications sportives
  • 3. 6 Pour fixer les idées … quelque chose qui ressemble à ça
  • 4. 8 Étude préliminaire (2) Électrocardiogramme* ● le placement des électrodes n'a pas l'air simple ! ● Par contre, la forme du signal est simple. * https://fr.wikipedia.org/wiki/Électrocardiographie Il va falloir un bon amplificateur !
  • 5. 10 Étude préliminaire (4) autres méthodes ? ● Et comment marche ce système ? – il a l'air simple, – pas besoin de quitter ses vêtements. – on dirait qu'on analyse la réflexion de la lumière sur la peau ou la transparence de la peau.
  • 6. 12 Capteur optique (1) ● Le capteur est, comme tous les capteurs, constitué de 2 parties : – transducteur qui traduit la grandeur physique en signal électrique, – mise en forme du signal de mesure.
  • 7. 14 Signal cardiaque ● Après mise en forme électronique, les signaux cardiaques ont la forme suivante. ● Mesurer la durée d'un battement revient à mesurer l'intervalle de temps entre deux fronts de même sens. ● En fait, il faudra faire la moyenne de plusieurs durées pour améliorer la précision. Et voilà !
  • 8. 16 Architecture technique Microcontrôleur – Arduino UnoMicrocontrôleur – Arduino Uno Shield GroveShield Grove Afficheur LCD – 16x2Afficheur LCD – 16x2 Pile 9V – 6LR61Pile 9V – 6LR61 LED – rougeLED – rouge CapteurCapteur
  • 9. 18 La Machine à États finis ● Les états mémorisent le passé qu'il est nécessaire de connaître pour prédire le comportement. ● On identifie 3 états : – INIT : ils ne s'est encore rien passé – HIGH : le dernier événement qui s'est produit est high – LOW : le dernier événement qui s'est produit est low ● Il y a deux événements : – high = (signal cardiaque = high)* – low = (signal cardiaque = low) ● La machine à états finis est décrite par son diagramme des états. * cette expression est un prédicat : une affirmation qui est soit vrai soit fausse
  • 10. 20 Parenthèse comment déterminer la moyenne ? On dispose d'un compte-temps indiquant combien de temps s'est écoulé depuis que le micro-contrôleur a été démarré chaque fois qu'on l'interroge. : date de départ : date du kème front montant: date du kème front montant Juste une soustraction et une division !
  • 11. 22 Arduino UNO est le micro-contrôleur #define PULSE_PIN 2 #define LOW 0 #define HIGH 1 int pulse_pin = PULSE_PIN; int pulse; int detection_state; ... void setup(){ pinMode(pulse_pin, INPUT); detection_state = LOW; count = 0; } void loop(){ pulse = digitalRead(pulse_pin); if((detection_state == LOW) && (pulse == HIGH)){ /*** here an heart beat begins ***/ detection_state = HIGH; /*** action performed when in the rising edge ***/ } if((detection_state == HIGH) && (pulse == LOW){ detection_state = LOW; } }
  • 12. 24 Et les actions ? ... #define COUNTMAX 16 ... unsigned long current_time; unsigned long current_interval; int count; int heart_rate; // beats/minute void setup(){ ... } void loop(){ pulse = digitalRead(pulse_pin); digitalWrite(led_pin, pulse); if((detection_state == LOW) && (pulse == HIGH)){ /*** here an heart beat begins ***/ detection_state = HIGH; /*** action performed when in the rising edge ***/ if(count++ == COUNTMAX){ count = 0; current_interval = millis() - current_time; current_time = current_time + current_interval; heart_rate = (int)((float)COUNTMAX*1000.0*60.0/(float)current_interval); } } if((detection_state == HIGH) && (pulse == LOW){ detection_state = LOW; } }
  • 13. 26 Gestion de l'affichage (2) #include <Wire.h> #include "rgb_lcd.h" rgb_lcd lcd; ... void setup(){ ... lcd.begin(16, 2); lcd.setCursor(0,0); lcd.print("Pinch your ear"); } void loop(){ ... if((detection_state == LOW) && (pulse == HIGH)){ /*** here an heart beat begins ***/ detection_state = HIGH; lcd.setCursor(count,1); lcd.print("."); if(count++ == COUNTMAX){ ... heart_rate = (int)((float)COUNTMAX*1000.0*60.0/(float)current_interval); lcd.clear(); lcd.setCursor(0,0); lcd.print("Heart Rate: "); lcd.print((heart_rate > 40)? heart_rate : 0); } } if((detection_state == HIGH) && (pulse == LOW){ detection_state = LOW; } }
  • 14. 28 Merci pour votre attention des questions ?