Prise de photos

Theo, Robin, Nicolas

Objectif

Mettre en place des caméras de manière à pouvoir réaliser des prises de vues pertinentes.

Modèle de caméra : SQ11 mini DV

Caractéristiques de la caméra

Résolution de la vidéo: 1920×1080, 1280×720 (15/30 images par secondes)
Résolution photo: 4032x3024Type de fichier photo: JPEG
Angle: 140 °
Capteur de mouvement: plage 5 mètres
Enregistrement en charge +
Durée: 100 minutes dans le mode d’enregistrement continu,
Environ 5 heures en mode capteur de mouvement
autour de l’horloge 24/7 lorsqu’une alimentation externe
Support de carte mémoire: Micro SD jusqu’à 64 Go
Enregistrement en boucle +
L’appareil fonctionne de -10° C à +60° C

Tâches à réaliser

Analyse fonctionnelle

Angles de vue

Nous disposons de 4 mini caméras et prévoyons de le disposer comme ceci :
  • Une caméra fixe dirigée vers le bas,pour voir le sol
  • Une caméra fixe dirigée vers le haut, pour visualiser le ballon, le parachute
  • Une caméra fixe sur le coté
  • Une caméra orientable pour réaliser des vues panoramiques.
Il y a la prise de vue horizontale et verticale, prise de vue horizontale en haute altitude et en basse car une prise de vue verticale n’a aucune importance.(sauf au décollage et à l’atterrissage : la prise de vue verticale visant le sol est importante, pour montrer la prise d’altitude).
 

Fréquences et types de prise de vue

Il est important de filmer le décollage, l’éclatement du ballon, l’ouverture du parachute et l’atterrissage.

Pour ne pas rater le moment où le ballon éclate et où le parachute se déploie on utilisera le mode détecteur de mouvement.

Pour le reste du vol, il n’y a pas assez de place sur la carte SD, il suffira donc de prendre 1 photo (ou un panoramique) à intervalle de temps régulier, 1 seconde par exemple.

Calcul :

A compléter !!

1 photo toute les secondes x nombre de camera x nombre de secondes du vol = _____ photos

Chaque photo fait ____ octets en moyenne

Soit un total de ____ octets

On privilégiera les prises de vue verticales à basse altitude et horizontales en haute altitude. Il faut aussi prévoir une détection de mouvement pour filmer d’éventuels événements

Conditions en altitude

La pression atmosphérique baisse, la température varie et peut atteindre -60°C !
Il y aura aussi des rayonnements solaires importants.
La température basse est un problème, car le constructeur indique que la température de fonctionnement doit être comprise entre -10°C et 60°C.
Ceci est sans doute dû à la présence d’une batterie Lipo. Il faudra donc maintenir les batteries au chaud dans la nacelle, et protéger le capteur au maximum du froid.
 
 

Mise en œuvre des caméras

Il y a deux boutons pour contrôler la caméra « ON/OFF » et « Mode », et une LED multicolore. Impossible de voir la LED : il faudra donc réaliser les commandes « à l’aveugle » !

Fonctions :

  • Allumage : « ON/OFF » – 1 seconde environ – LED Bleue
  • Extinction : « ON/OFF » – 6 secondes environ
  • LED IR :  « ON/OFF » – 2 secondes environ

Une fois la caméra allumée :

  • Démarrage/Arrêt enregistrement : « ON/OFF » – 1 seconde environ
  • Passage 720P/1080P : « Mode » –  1 seconde environ
  • Passage en mode Photo : « Mode » –   seconde environ – LED Rouge
  • Prise de photo : « ON/OFF » – 1 seconde environ

Logigramme :

 

Contrôle des boutons par un Arduino

On souhaite pouvoir déclencher la prise de photo de manière préprogrammée, à l’aide d’un Arduino.

Pour cela, il faut utiliser un circuit qui permettra de faire comme si on appuyait sur les boutons !

Démontage de la caméra et soudure de fils sur les connecteurs des boutons

Afin de pouvoir réutiliser la batterie Li-po, nous la dessoudons de la caméra, et ressoudons des connecteurs femelle à ses bornes :

Il n’y a aucune indication de capacité sur cette batterie, nous devons chercher sur Internet pour essayer de trouver sa capacité.

D’après ses dimensions, il s’agirait d’une batterie de 100mAh de capacité.

 
 
Ébauche de programme
 
/* Contrôle de la caméra
    avec un CD4066B

code : xx
------
1er caractère
 - o = bouton OnOff
 - m = bouton Mode
 
 - 1 = allumer
 - 0 = eteindre
 - v = démarrer/arrêter video 1080P
 - p = prendre photo

2eme caractère (optionnel)
 - s = simple clic
 - d = double clic
 
*/

#define buttonOnOff 7
#define buttonMode 8
int finAppui = 1000; // temps d'attente obligatoire entre 2 commandes (en ms)
int intervalDClic = 500; // en ms
int interval = 200; // en ms


void setup() {
  pinMode(buttonOnOff, OUTPUT);
  digitalWrite(buttonOnOff, LOW);

  pinMode(buttonMode, OUTPUT);
  digitalWrite(buttonMode, LOW);

  Serial.begin(9600);
}

void loop() {
  byte b, c; // codes pour bouton et clic (exemple os = simple cilc sur OnOff)
    if (Serial.available() >= 2) {
      b = Serial.read();
      c = Serial.read();
      Serial.read();   // lecture du retour chariot
      
      byte bo = 0;
      switch (b) {
         case 111 : // 111 : code ascii de o (bouton OnOff)
         bo = buttonOnOff;
         Serial.print("OnOff : ");
         break; // fin cas 111
 
         case 109 : // 109 : code ascii de m (bouton Mode))
         bo = buttonMode;
         Serial.print("Mode : ");
         break; // fin cas 109

         case 49 : // 49 : code ascii de 1
         Serial.print("Allumage...");
         allumer();
         Serial.print("Ok");
         break; // fin cas 49

         case 48 : // 48 : code ascii de 0
         Serial.print("Extinction forcee...");
         forcer_eteindre();
         Serial.print("Ok");
         break; // fin cas 48

         case 0x70 : // 0x70 : code ascii de p
         Serial.print("Prise photo...");
         prendre_photo();
         Serial.print("Ok");
         break; // fin cas 49

         case 0x76 : // 0x76 : code ascii de v
         Serial.print("Stat/Stop vidéo...");
         start_stop_video();
         Serial.print("Ok");
         break; // fin cas 48
      } // fin switch
      
      switch (c) {
         case 115 : // 115 : code ascii de s (simple clic)
         simpleClic(bo, 1000);
         Serial.print("simple-clic");
         break; // fin cas 115
 
         case 100 : // 100 : code ascii de d (double clic))
         doubleClic(bo);
         Serial.print("double-clic");
         break; // fin cas 100
      } // fin switch

      Serial.println();
      }
}

void pureClic(int bouton, int duree) { // duree en ms
  digitalWrite(bouton, HIGH);
  delay(duree);
  digitalWrite(bouton, LOW);
}

void simpleClic(int bouton, int duree) { // duree en ms
  pureClic(bouton, duree);
  delay(finAppui);
}

void doubleClic(int bouton) {
  pureClic(bouton, intervalDClic);
  delay(intervalDClic);
  pureClic(bouton, intervalDClic);
  delay(finAppui);
}

////////////////////////////////////////////////////////////////
void allumer(){
  simpleClic(buttonOnOff, 1000);
}

void forcer_allumer(){
  forcer_eteindre();
  allumer();
}

void eteindre(){
  simpleClic(buttonOnOff, 6000);
}


void forcer_eteindre(){
  simpleClic(buttonOnOff, 1000); // Allumage / Mise en veille / Sortie de veille
  simpleClic(buttonOnOff, 6000); // Extinction réelle
}

//////////////////////////////////////////////////////////////
void mode_photo(){
  forcer_allumer();
  doubleClic(buttonMode);
}

void prendre_photo(){
  mode_photo();
  simpleClic(buttonOnOff, 500);
}

///////////////////////////////////////////////////////////////
void mode_1080P(){
  forcer_allumer();
  allumer();
  simpleClic(buttonMode, 500);
}

void start_stop_video(){
  mode_1080P();
  simpleClic(buttonOnOff, 500);
}

Choix de la stratégie de prise de vues

Vérification la capacité de la carte mémoire

Résultat de recherche d'images pour "combien de temps de video en 1080p sur 64go"La capacité va jusqu’à 64 Go, mais nous possédons des cartes de 32 Go.
D’après le tableau ci-contre, nous pouvons enregistrer 2h54 de vidéo.
 
 

Calcul de la consommation énergétique

Faire une photo ou un schéma du câblage pour la mesure de consommation

  • éteint : 28,8 μA
  • en attente: 118 mA
  • pour une photo : 180 mA pendant 3s environ
  • en mode enregistrement : 180 mA (2s), puis 120mA, puis 180mA (2s).
  • en mode « détection de mouvement » (sans mouvement) : 125 mA

Tension : 3.75 V

Logigramme

Il faut prévoir de ne rater aucun des événements qui vont se produire. Il faut pour cela anticiper la durée du vol !

 

Événement Instant Durée Haut Bas Coté Pano
Décollage 0 10min Vidéo Vidéo Vidéo Vidéo
Vol 10 min ≈ 2h 1 photo / 5min 1 photo / 5min 1 photo / 5min 1 photo / 5min
Éclatement ≈ 2h   Mode détection Mode détection Mode détection Mode détection
Descente ≈ 2h ≈ 30min 1 photo / min Vidéo 1 photo / min 1 photo / min
Atterrissage ≈ 2h30   1 photo / 10min 1 photo / 10min 1 photo / 10min 1 photo / 10min

 

 

 
 

 

Analyse des performances

  • Temps nécessaire pour déclencher une photo : 0.5 s
  • Poids (caméra + câbles + circuit du switch CMOS) : ______ g

 

Expérimentations et optimisations (poids, consommation énergétique, quantité de données, …)

 

Humidité de fonctionnement: 15-85%
Dimensions: 23x23x23 mm et 15 grammes

Répartition des tâches

date
Théo Robin
Nicolas
21/01/2019 3 questions questions 4 question 1 2 3
28/01/2019 Contribution Assistance Questions « mise en œuvre des cameras » et « analyse des performances »
  organigramme organigramme organigramme
  finalisation questions+ branchement arduino finalisation questions+ branchement arduino finalisation questions+ branchement arduino
       
       

 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *