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

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 |
|
|
|
|
|
|
|
|