Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Mide la masa de la Tierra con Arduino: Guía paso a paso DIY

Componentes y materiales

Componente Cantidad
Arduino UNO 1
Cable USB-A a B 1
Resistencia de 560 ohmios 4
Resistencia de 100 ohmios 2
Sensor piezoeléctrico 4
Emisor IR (genérico) 1
Receptor IR (genérico) 1
Potenciómetro rotativo (genérico) 1
Amplificador operacional UA741C 1
Protoboard (genérica) 1
Cables de 1.2 metros 1
PCB de propósito general 1
Cinta adhesiva 1
Cartón 1

Aplicaciones y servicios en línea

Sobre el proyecto

Introducción

Un día me estaba pesando en una báscula y de repente me pregunté: "¿Cuál sería la masa de la Tierra?" Y lo más importante: "¿Cómo podemos medirla?" No existe una báscula lo suficientemente grande para colocar la Tierra. Debe haber alguna forma indirecta de medir su masa. Aquí presento la implementación de uno de esos métodos indirectos.

Paso 1: El método indirecto

A principios del siglo XIX, los científicos utilizaron la segunda ley de Newton y la ley de la gravitación universal para medir la masa de la Tierra. Estas ecuaciones son F = ma y F = (GmM)/r² respectivamente (m = masa del objeto, a = aceleración, G = constante gravitacional, M = masa de la Tierra, r = radio de la Tierra). Si sustituimos g (aceleración debida a la gravedad) por la 'a' y combinamos ambas ecuaciones, obtenemos:

mg = GmM/r²

Despejando M (masa de la Tierra):

M = (g·r²)/G

Asumiremos que conocemos los valores de G y r. Encontraremos g mediante un pequeño experimento con Arduino y algunos sensores. Finalmente, combinaremos todo para calcular M.

Paso 2: Visión general del experimento

(Ten paciencia con un poco de matemáticas, Arduino entrará en acción pronto)

Para determinar la aceleración de la gravedad necesitamos entender la "caída libre": un movimiento en el que un cuerpo se desplaza hacia la Tierra bajo la única acción de la gravedad. Los términos que caracterizan esta caída son:

Una de las ecuaciones de Newton establece:

Distancia = (velocidad_inicial × tiempo) + (aceleración × tiempo²)/2

Hay 4 variables, incluyendo la aceleración (g). Si conocemos 3, podemos calcular la 4ª. Fijamos dos:

Quedan dos incógnitas: tiempo de vuelo y g. Aquí es donde Arduino nos ayuda a medir el tiempo de vuelo con dos marcas temporales: inicio y fin de la caída.

Sustituyendo los valores fijos:

1 = (g × tiempo²)/2 → g = 2 / tiempo²

Paso 3: Materiales necesarios

Paso 4: Esquemático 1 - Circuito IR

Este circuito marca el instante inicial de la caída libre. Puntos clave:

Paso 5: Esquemático 2 - Circuito piezoeléctrico

Este circuito marca el instante final de la caída. Puntos clave:

Paso 6: Montaje completo

Paso 7: Detalles del experimento

  1. Pega una pequeña protuberancia fina en la parte superior del objeto que caerá.
  2. Sujeta el objeto a la marca de 1 m de modo que la protuberancia interrumpa el haz IR.
  3. Suelta el objeto sin impartir fuerza (caída libre) hacia la zona de aterrizaje piezoeléctrica.
  4. Al caer, el haz IR queda libre → señal de inicio.
  5. Al impactar, los sensores piezoeléctricos generan pico de voltaje controlado → señal de fin.
  6. Restando fin - inicio obtenemos el tiempo de vuelo para calcular g.

Paso 8: Código Arduino

El código es sencillo. Se explica en detalle en el video adjunto (minuto 13:35).

Paso 9: Realicemos el experimento

Paso 10: Resultados y masa de la Tierra

Tras 3 repeticiones, tiempos de vuelo obtenidos:

Promedio: 450 ms

Sustituyendo en g = 2 / t² → g ≈ 9.8755 m/s².

Finalmente, M = (g·r²)/G → M ≈ 6.0066 × 10²⁴ kg.

Valor real (Google): 5.972 × 10²⁴ kg. ¡Nos hemos acercado bastante!

Código

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

Esquemáticos

Esquemáticos Fritzing para circuito IR y circuito piezoeléctrico, además de fotos del hardware montado.

Proceso de manufactura

  1. Medición de la Calidad del Aire con OpenSensors: Guía para Arduino y Python
  2. Control de Brillo LED con PWM mediante Pulsador en Arduino Mega
  3. Construye un Dispositivo de Levitación Ultrasónica con Arduino – Guía Paso a Paso
  4. Medición precisa de frecuencia y ciclo de trabajo con Arduino UNO
  5. Find Me: Localizador Inteligente de Objetos con Arduino y Bluetooth
  6. Medición de Distancia en Tiempo Real con Sonar Arduino y Visualización en Processing
  7. Contador Inteligente de Plazas de Aparcamiento: Seguimiento en Tiempo Real con Arduino, Processing y PHP
  8. Integración del Sensor de Pulso MAX30100 con Arduino: Guía Paso a Paso
  9. Guía Paso a Paso: Conectar Sensor de Humedad de Suelo YL-39/YL-69 a Arduino UNO
  10. Crea una Interfaz Web en PHP para Controlar tu Arduino Uno
  11. Evaluando la Madurez Digital de su Empresa: Un Marco Comprobado