Skip to main content

Tournicayou (Photogrammétrie)

Construction d'un appareil photogramméphotogrammétrique dans le cadre de l'UE Atelier Fablab LU3SV062

Informations

  • ÉÉtudiants :
    • ZoéZoé ALBENGA (zoealbenga@outlook.com)
    • Lucas GORINIGorini
  • Encadrants : 
    • Responsables de l'UE : Fabrice Minoletti et Pierre ThéThéry
    • Responsable du projet : Fabrice Minoletti et Pierre ThéThéry
  • Parcours : SV/ST : UE_FabLab : LU3ST062 
  • Date : S6

Contexte

La photogrammétrie est une technique de mesure qui consiste à déterminer la forme, les dimensions et la situation d'un objet dans l'espace à partir de plusieurs prises de vues photographiques de cet objet. La photogrammétrie répond au besoin de reconstruction numérique en 3D d'un objet, d'un bâtiment, d'un terrain. Elle est aujourd'hui une méthode de mesure 3D utilisée dans divers domaines : topographie, architecture, BTP, géologie, archéologie…

 

Objectifs

Notre objectif de alisation pour cette UE est la d'un socle pour la photogramméphotogrammétrie. Celui-ci aurait comme application dans un premier temps la alisation "d'image en 3D" pour certaines pierres ponces, puis àà usage plus large par la suite.

MatéMatériel

  • Carte Arduino

Construction

ÉÉtape 1 : 
ÉÉtape 2 : 
ÉÉtape 3 : 
ÉÉtape 4 : 
ÉÉtape 5 : 
ÉÉtape 6 : 
ÉÉtape 7 : 

Journal de bord

30/01/26

re ance : Sujet PhotogramméPhotogrammétrie (SchéSchéma) + couverte de ARDUINO

  • PremièPremières flexions alisation sur la de ce support àà photogramméphotogrammétrie.
  • alisation de plusieurs dessins "idéidées" (voir photos).
  • PremièPremière manipulation avec le logiciel ARDUINO, premier codage. Bien difficile....1er essai ARDUINO.png
 

Codage avec Arduino, led clignotant SOS en morse.

06/02/26

me ance : Retour sur le support (SchéSchémas) + Mise en place des diffédifférentes éétapes

  • Reprise de la structure du support de photogramméphotogrammétrie --> bras tournant autour du support
  • Mise en place des diffédifférentes éétapes :
    • Moteur + programmation
    • Moule àà Tarte
    • Arduino + camécaméras + affichage ordi àà voir ?
    • Bras : support camécaméras + Led
      • Bonus : éécran + angles + focus camécaméras
13/02/2026

me ance : Freecad + Arduino

FREECAD

Apprentissage des fonctions de base du logiciel Freecad. Plusieurs essaies infructueux de la conception de la pièpièce crantécrantée permettant le soutien du moteur autour de l'objet àà photographier.

VidéVidéos youtube visionnévisionnées pour le modèmodèle Freecad : 

LE COULOMMIERS EST TERMINÉTERMINÉ (18/02) - Mauvaise dimension

Pour crécréer le coulommiers, qui fait office d'engrenage interne permettant le placement du bras, il faut crécréer deux corps diffédifférents sur FreeCad. Les corps sont créécréés sur le module Part design

  • Un cercle de 600 mm de diamèdiamètre et 200 mm de haut
  • Un engrenage àà veloppante de Dp = 495 mm, M = 2,5 mm, z = 198 et 200 mm de haut

Une fois les deux corps forméformés, il faut utiliser une boolébooléenne pour former le rouage final grâgrâce au module Part

Attention : Les valeurs inscrites sont les valeurs erronéerronées

ARDUINO

Familiarisation avec le logiciel Arduino et alisation d'un premier montage :

  • MatéMatériels :
    • Arduino Uno + ble USB de liaison Arduino/Ordinateur
    • bles de connexion
    • Step Motor 28 BYJ-48

 

  • SchéSchéma de connexion :

Montage step motor 28BYJ-48.png

  •  Code : 
    • Ce code permet au moteur de aliser une rotation dans le sens des aiguilles d'une montre, attendre 1 secondes (s), puis de faire une rotation dans le sens contraire des aiguilles d'une montre, puis de nouveau attendre 1 s.
#include <Stepper.h> 

double stepsPerRevolution = 2048;

Stepper myStepper(stepsPerRevolution, 8, 10, 9, 11);  // Pin inversion to make the library work

void setup() { 
  myStepper.setSpeed(10);
  Serial.begin(9600); 
  } 

  void loop() {
    // 1 rotation counterclockwise:
    Serial.println("counterclockwise");
    myStepper.step(stepsPerRevolution);
    delay(1000); 

   // 1 rotation clockwise: 
   Serial.println("clockwise");
   myStepper.step(-stepsPerRevolution); 
   delay(1000); 
}

 Une librairie Stepper.h existe.

    • SuccèSuccès de ce premier montage et code associéassocié. Manipulation du code nous permettant d'obtenir une rotation dans le sens des aiguilles d'une montre avec arrêarrêt de 1 s. (suppression de la premièpremière partie de la void loop) 
    • Rapide essaies de changement de vitesse = ÉÉCHEC --> comprendre pourquoi àà la prochaine ance.

--> Prochaine éétape : aliser le montage avec ajout d'un potentiomèpotentiomètre permettant de contrôcontrôler la vitesse de rotation ainsi que le sens (--> potentiomèpotentiomètre vers la droite= sens des aiguilles d'une montre ; potentiomèpotentiomètre àà gauche = sens inverse )

Photogrammétrie du MNHN

 

20/02/2026

me ance : Freecad + Arduino

Partie Freecad : 

ModéModélisation du rouage pour le moteur pas àà pas, et reprise de dimension du coulommiers. Pour calculer le nombre de dents de chaque rouage, externe (Moteur) comme interne (Coulommiers) nous avons suivi l'ééquation suivante :

Dp/M = z

Dp  => Le diamèdiamètre primitif ; M => Module du rouage ; z => Nombre de dents

Pour que deux engrenages puissent fonctionner ensemble il faut respecter 3 conditions :

  • Ils doivent avoir un module éégal
  • Ils doivent avoir un angle de pression éégal (par convention 20°20°)
  • Leur diamèdiamètre primitif doit êêtre tangent

Pour le dernier point, la distance entre le centre des rouages Dr = ((z1+z2)*M)/2

Pour le coulommiers :

La modémodélisation comporte deux corps.

  • Un cercle de 300 mm de diamèdiamètre et 100 mm de haut
  • Un engrenage àà veloppante de Dp = 250 mm, M = 2,5 mm, z = 100 et 100 mm de haut

Pour former le rouage interne, il faut faire la diffédifférence des deux corps grâgrâce àà la boolébooléenne dans le module Part. (c.f. https://www.youtube.com/watch?v=3wPDnRFfgEg) 

Pour le rouage externe ce dernier doit êêtre fixéfixé sur la "tige" du moteur faisant 19 mm de long. Il faut creuser un cylindre de 5mm de diamèdiamètre au centre du rouage avec une corde de 3mm afin de respecter l'aspect de la tige.

La modémodélisation comporte deux corps.

  • Un cylindre de 5mm de diamèdiamètre coupécoupé d'une corde de 3mm et faisant 19mm de haut
  • Un engrenage externe de Dp = 45 mm, M = 2,5 mm, z = 18 et 19 mm de haut

Impression 3D des pièpièces pour tests ultéultérieurs.

ARDUINO

Retour sur le montage et la alisation du circuit de la semaine dernièdernière = ÉÉCHEC. Nous n'avons pas trouver la raison pour laquelle la ussite de la semaine passépassée n'éétait plus alisable. (Changement de moteur, rification et retour sur les explications du code, changement de code, rification du fonctionnement de la carte Arduino uno...)

alisation d'un autre montage avec le moteur Servo :

  • MatéMatériels :
    • Arduino Uno + ble USB de liaison Arduino/Ordinateur
    • bles de connexion
    • Step Motor MicroServo SG90

 

  • SchéSchéma de connexion :

montage-servo.png


  •  Code : 
    • Ce code permet au moteur de aliser une rotation de 180° dans le sens des aiguilles d'une montre, attendre 1 secondes (s), puis de faire une rotation de 180° dans le sens contraire des aiguilles d'une montre, puis de nouveau attendre 1 s.
#include <Servo.h>  // on ajoute la bibliothèbibliothèque servo

Servo servoMoteur;   //On crécrée un objet servo appeléappelé servoMoteur

void setup(){ 
  Serial.begin(9600);
  //On associe le servo àà la broche 2
  servoMoteur.attach(2);
  servoMoteur.write(0); // on initialise le servo sur l'angle 0
}
 
void loop(){
  // tour de 0 àà 180º180º
  for (int i = 0; i <= 180; i++){
    servoMoteur.write(i);
    Serial.print("Angle:  ");
    Serial.println(i);
    delay(30);
  }
 // tour de 180 a 
  for (int i = 179; i > 0; i--){
    servoMoteur.write(i);
    Serial.print("Angle:  ");
    Serial.println(i);
    delay(30);
  }
}
    • AprèAprès plusieurs ééchecs, et des changements de codes, succèsuccès de la manipulation. Notre moteur se place de l'angle 0 àà l'angle 90, puis àà celui 180 avant de revenir àà 0 et de recommencer sa boucle. AprèAprès chaque placement celui-ci fait une pause de 1 s. Notre moteur avance degrédegré par degrédegré.
    • Modification de notre code pour aliser un mouvement de 20°20° en  20°20° avec 1 s de lai entre chaque placement.
#include <Servo.h>  // on ajoute la bibliothèque servo

Servo servoMoteur;   //On crée un objet servo appelé servoMoteur

void setup(){ 
  Serial.begin(9600);
  //On associe le servo à la broche 2
  servoMoteur.attach(2);
  servoMoteur.write(0); // on initialise le servo sur l'angle 0
}
void loop(){

  // de 0 à 180° par pas de 20°
  for (int angle = 0; angle <= 180; angle += 20){

    servoMoteur.write(angle);   // positionne le servo
    Serial.print("Angle: ");
    Serial.println(angle);      // affiche l'angle

    delay(1000);  // pause de 1 seconde
  }

}

--> Prochaine étape : Tester un code Arduino avec le moteur à utiliser !

27/02/2026

5ème Séance : Arduino !!!

Objectif de la ance : Finaliser le code Arduinoarduino pour le moteur, tester les pièpièces 3D, conception du bras

06/03/2026

Une partieConception du moulesocle àmoteur tartesur Freecad. Les mesures sont encore à vérifier. Le socle est composé d'un assemblage Freecad de deux pièces. La première correspond au support même du moteur, et dispose de 4 trous permettant fixation par vis et un rouagecinquième ontplus étélarge impriméspermettant au bras du moteur de passer. (Le moteur est fixé par la surface où se situe le bras). L'autre pièce est un rectangle permettant l'insertion d'une roue à billes, servant au roulement du support moteur sur le coulommiers. Cette pièce possède un trou permettant le passage d'une tige maintenant la roue en impressionplace. La conception de cette tige en 3D est réalisée, mais reste à voir pour sa conception (photoImpression ci-dessous)3D, métal, autre ?). Le rectangle possède un creux en forme de puzzle servant à l'insertion du socle du bras, devant encore être modélisé. 

Fichier

STL 13/03/2026de

la pièce décrite :