Mesurer la masse de la Terre avec Arduino : Guide DIY étape par étape
Composants et fournitures
- Arduino UNO × 1
- Câble USB-A vers B × 1
- Résistances 560 Ω × 4
- Résistances 100 Ω × 2
- Capteurs piézoélectriques × 4
- Émetteur IR (générique) × 1
- Récepteur IR (générique) × 1
- Potentiomètre rotatif × 1
- Amplificateur opérationnel UA741C × 1
- Plaque d'essai (breadboard) × 1
- Fils de 1,2 m × 3
- Circuit imprimé universel 5×5 cm × 1
- Ruban adhésif × 1
- Feuille de carton × 1
Applications et services en ligne
- Arduino IDE
À propos de ce projet
Introduction
Un jour, en me pesant sur une balance, une question m'est venue : « Quelle est la masse de la Terre ? » Et surtout : « Comment peut-on la mesurer ? » Il n'existe aucune balance assez grande pour y poser la Terre. Il faut donc une méthode indirecte. Voici la mise en œuvre d'une telle méthode pour déterminer la masse de notre planète.
Étape 1 : La méthode indirecte
Au début du XIXe siècle, les scientifiques ont utilisé la deuxième loi de Newton (F = ma) et la loi de la gravitation universelle (F = G·m·M/r²) pour calculer la masse de la Terre. En remplaçant l'accélération a par l'accélération de la pesanteur g et en combinant les deux équations, on obtient :
m·g = G·m·M / r²
Ce qui se simplifie en :
M = (g·r²) / G
On connaît la constante de gravitation G et le rayon terrestre r. Il reste à déterminer g expérimentalement à l'aide d'un Arduino et de quelques capteurs. Ensuite, on calculera M.
Étape 2 : Principe de l'expérience
Pour mesurer g, on utilise la chute libre. Les paramètres qui la caractérisent sont : vitesse initiale, vitesse finale, distance parcourue, temps de vol et accélération.
- Vitesse initiale : vitesse au début de la chute (0 m/s si on lâche l'objet sans impulsion).
- Vitesse finale : vitesse à l'impact.
- Distance parcourue : hauteur de chute (fixée à 1 mètre).
- Temps de vol : durée de la chute.
- Accélération : taux de variation de la vitesse, égal à g.
L'équation du mouvement :
d = v₀·t + ½·a·t²
Avec d = 1 m et v₀ = 0, il reste :
1 = ½·g·t² → g = 2 / t²
L'Arduino mesurera le temps de vol t grâce à deux horodatages : début et fin de chute.
Étape 3 : Matériel nécessaire
Voir la liste des composants ci-dessus. Des photos illustrent le montage.
Étape 4 : Schéma 1 – Circuit IR (détection du départ)
Ce circuit horodate le début de la chute. Points clés :
- LED IR en polarisation directe (éclaire la photodiode).
- Photodiode en polarisation inverse.
- Sortie (jonction cathode/résistance) vers une entrée de l'ampli-op.
- L'autre entrée de l'ampli-op reliée au potentiomètre (seuil de déclenchement).
- Sortie de l'ampli-op vers l'Arduino (pin 4).
Étape 5 : Schéma 2 – Circuit piézoélectrique (détection de l'arrivée)
Ce circuit horodate la fin de la chute. Points clés :
- 4 capteurs piézoélectriques montés en parallèle.
- Chacun avec une résistance 560 Ω en parallèle pour limiter les pics de tension.
- Bornes négatives au ground, bornes positives sur entrées analogiques de l'Arduino.
Étape 6 : Assemblage mécanique
- Construire un « toit » en carton fixé au mur à ~1,10 m de haut.
- Fixer le module IR face vers le bas sous le toit.
- Relier la sortie de l'ampli-op à la pin 4 de l'Arduino (fil 1,2 m).
- Alimenter le module IR depuis l'Arduino (VCC/GND, deux autres fils 1,2 m).
- Placer le module piézoélectrique au sol, juste sous le module IR.
- Tout fixer solidement (ruban, attaches).
Étape 7 : Déroulement de l'expérience
- Coller une fine saillie sur le dessus de l'objet test (ex. : un petit cube).
- Tenir l'objet à la marque des 1 mètre, saillie interceptant le faisceau IR.
- Lâcher l'objet sans impulsion.
- Dès que le faisceau IR est rétabli → horodatage de départ.
- À l'impact sur les capteurs piézo → pic de tension → horodatage d'arrivée.
- Différence = temps de vol t.
Étape 8 : Code Arduino
Le code (fourni en bas) attend le signal IR (pin 4), démarre le chronomètre, surveille les 4 entrées analogiques (A0–A3) pour détecter un pic au-dessus du seuil (110), arrête le chronomètre et affiche le temps de vol en millisecondes sur le port série.
Étape 9 : Réalisation de l'expérience
- Régler le seuil piézo dans le code.
- Aligner le panneau piézo sous le module IR.
- Lâcher l'objet depuis 1 m sans force parasite.
Étape 10 : Résultats et masse de la Terre
Trois essais : 443 ms, 443 ms, 464 ms → moyenne 450 ms.
g = 2 / (0,450)² ≈ 9,88 m/s²
M = (9,88 × (6,371×10⁶)²) / (6,674×10⁻¹¹) ≈ 6,01 × 10²⁴ kg
Valeur de référence : 5,972 × 10²⁴ kg. L'erreur est inférieure à 1 % — excellent pour du matériel amateur !
Code Arduino
const int sensorPin1 = A0;
const int sensorPin2 = A1;
const int sensorPin3 = A2;
const int sensorPin4 = A3;
const int photoPin = 4;
const int ledPin = 13;
const int threshold = 110;
char stringToPrint[100];
int startTime, endTime;
int val1, val2, val3, val4;
void setup() {
Serial.begin(115200);
pinMode(ledPin, OUTPUT);
pinMode(sensorPin1, INPUT);
pinMode(sensorPin2, INPUT);
pinMode(sensorPin3, INPUT);
pinMode(sensorPin4, INPUT);
pinMode(photoPin, INPUT);
}
void loop() {
int start = digitalRead(photoPin);
startTime = millis();
if (start == HIGH) digitalWrite(ledPin, HIGH);
while (start == LOW) {
digitalWrite(ledPin, LOW);
val1 = analogRead(sensorPin1);
val2 = analogRead(sensorPin2);
val3 = analogRead(sensorPin3);
val4 = analogRead(sensorPin4);
if ((val1 >= threshold) || (val2 >= threshold) || (val3 >= threshold) || (val4 >= threshold)) {
endTime = millis();
sprintf(stringToPrint, "%d ms", endTime - startTime);
Serial.println(stringToPrint);
digitalWrite(ledPin, HIGH);
delay(1000);
digitalWrite(ledPin, LOW);
start = HIGH;
}
}
}
Schémas
Schéma Fritzing du circuit IR, photo du montage, schéma du circuit piézoélectrique, photo du montage piézo.
Processus de fabrication
- Mesurer la qualité de l'air avec OpenSensors : Guide Arduino et Python
- Contrôler la Luminosité de LEDs par PWM avec un Bouton Poussoir sur Arduino Mega
- Construire un dispositif de lévitation ultrasonique avec Arduino – Guide étape par étape
- Mesure Précise de Fréquence et Rapport Cyclique avec Arduino UNO
- Find Me : Localisateur d'objets intelligent avec Arduino et Bluetooth
- Mesure de distance en temps réel par sonar Arduino et visualisation Processing
- Compteur de stationnement intelligent : Suivi véhicule en temps réel avec Arduino, Processing et PHP
- Intégrer le capteur de pouls MAX30100 avec Arduino : Guide complet
- Évaluer la maturité numérique de votre entreprise : un cadre éprouvé